mirror of
https://github.com/element-plus/element-plus.git
synced 2025-08-26 21:40:18 +08:00
docs: improve code (#5040)
* docs: remove unused code * refactor(docs): improve code
This commit is contained in:
@ -1,5 +1,6 @@
|
|||||||
module.exports = {
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||||
rules: {
|
const { defineConfig } = require('eslint-define-config')
|
||||||
'@typescript-eslint/no-var-requires': 'off',
|
|
||||||
},
|
module.exports = defineConfig({
|
||||||
}
|
rules: {},
|
||||||
|
})
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
module.exports = {
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||||
|
const { defineConfig } = require('eslint-define-config')
|
||||||
|
|
||||||
|
module.exports = defineConfig({
|
||||||
rules: {
|
rules: {
|
||||||
'no-console': 'off',
|
'no-console': 'off',
|
||||||
},
|
},
|
||||||
}
|
})
|
||||||
|
@ -15,6 +15,7 @@ async function main() {
|
|||||||
if (fs.existsSync(localeOutput)) {
|
if (fs.existsSync(localeOutput)) {
|
||||||
throw new Error(exists)
|
throw new Error(exists)
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(chalk.cyan('Starting for build doc for developing'))
|
console.log(chalk.cyan('Starting for build doc for developing'))
|
||||||
// all language should be identical since it is mirrored from crowdin.
|
// all language should be identical since it is mirrored from crowdin.
|
||||||
const dirs = await fs.promises.readdir(componentLocaleRoot, {
|
const dirs = await fs.promises.readdir(componentLocaleRoot, {
|
||||||
@ -29,9 +30,7 @@ async function main() {
|
|||||||
await fs.promises.writeFile(
|
await fs.promises.writeFile(
|
||||||
path.resolve(localeOutput, 'lang.json'),
|
path.resolve(localeOutput, 'lang.json'),
|
||||||
JSON.stringify(languages),
|
JSON.stringify(languages),
|
||||||
{
|
'utf-8'
|
||||||
encoding: 'utf-8',
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// loop through en-US
|
// loop through en-US
|
||||||
@ -49,7 +48,11 @@ async function main() {
|
|||||||
await traverseDir(enUS, languagePaths, localeOutput)
|
await traverseDir(enUS, languagePaths, localeOutput)
|
||||||
}
|
}
|
||||||
|
|
||||||
async function traverseDir(dir, paths, targetPath) {
|
async function traverseDir(
|
||||||
|
dir: string,
|
||||||
|
paths: { name: string; pathname: string }[],
|
||||||
|
targetPath: string
|
||||||
|
) {
|
||||||
const contents = await fs.promises.readdir(dir, { withFileTypes: true })
|
const contents = await fs.promises.readdir(dir, { withFileTypes: true })
|
||||||
|
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
|
@ -5,22 +5,22 @@ import navLocale from '../i18n/pages/sidebar.json'
|
|||||||
|
|
||||||
function getNav() {
|
function getNav() {
|
||||||
return Object.fromEntries(
|
return Object.fromEntries(
|
||||||
Object.entries(navLocale).map(([lang, val]) => {
|
Object.entries(navLocale).map(([lang, locales]) => {
|
||||||
const value: {
|
const item: {
|
||||||
link: string
|
link: string
|
||||||
text: string
|
text: string
|
||||||
activeMatch?: string
|
activeMatch?: string
|
||||||
}[] = Object.values(val).map((item) => ({
|
}[] = Object.values(locales).map((item) => ({
|
||||||
...item,
|
...item,
|
||||||
link: `${ensureLang(lang)}${item.link}`,
|
link: `${ensureLang(lang)}${item.link}`,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
value.push({
|
item.push({
|
||||||
text: lang === 'zh-CN' ? '旧版文档' : 'Old Doc',
|
text: lang === 'zh-CN' ? '旧版文档' : 'Old Doc',
|
||||||
link: 'https://doc-archive.element-plus.org/',
|
link: 'https://doc-archive.element-plus.org/',
|
||||||
})
|
})
|
||||||
|
|
||||||
return [lang, value]
|
return [lang, item]
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import path from 'path'
|
import path from 'path'
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import { parse } from 'vue/compiler-sfc'
|
|
||||||
import MarkdownIt from 'markdown-it'
|
import MarkdownIt from 'markdown-it'
|
||||||
import mdContainer from 'markdown-it-container'
|
import mdContainer from 'markdown-it-container'
|
||||||
import { highlight } from '../utils/highlight'
|
import { highlight } from '../utils/highlight'
|
||||||
@ -45,9 +44,9 @@ export const mdPlugin = (md: MarkdownIt) => {
|
|||||||
path.resolve(docRoot, 'examples', `${sourceFile}.vue`),
|
path.resolve(docRoot, 'examples', `${sourceFile}.vue`),
|
||||||
'utf-8'
|
'utf-8'
|
||||||
)
|
)
|
||||||
const existingScriptIndex = hoistedTags.findIndex((tag) => {
|
const existingScriptIndex = hoistedTags.findIndex((tag) =>
|
||||||
return scriptSetupRE.test(tag)
|
scriptSetupRE.test(tag)
|
||||||
})
|
)
|
||||||
if (existingScriptIndex === -1) {
|
if (existingScriptIndex === -1) {
|
||||||
hoistedTags.push(`
|
hoistedTags.push(`
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -59,11 +58,9 @@ export const mdPlugin = (md: MarkdownIt) => {
|
|||||||
}
|
}
|
||||||
if (!source) throw new Error(`Incorrect source file: ${sourceFile}`)
|
if (!source) throw new Error(`Incorrect source file: ${sourceFile}`)
|
||||||
|
|
||||||
const { html, js, css, cssPreProcessor, jsPreProcessor } =
|
|
||||||
generateCodePenSnippet(source)
|
|
||||||
return `<Demo :demos="demos" source="${encodeURIComponent(
|
return `<Demo :demos="demos" source="${encodeURIComponent(
|
||||||
highlight(source, 'vue')
|
highlight(source, 'vue')
|
||||||
)}" path="${sourceFile}" html="${html}" js="${js}" css="${css}" css-pre-processor="${cssPreProcessor}" js-pre-processor="${jsPreProcessor}" raw-source="${encodeURIComponent(
|
)}" path="${sourceFile}" raw-source="${encodeURIComponent(
|
||||||
source
|
source
|
||||||
)}" description="${encodeURIComponent(localMd.render(description))}">`
|
)}" description="${encodeURIComponent(localMd.render(description))}">`
|
||||||
} else {
|
} else {
|
||||||
@ -72,15 +69,3 @@ export const mdPlugin = (md: MarkdownIt) => {
|
|||||||
},
|
},
|
||||||
} as ContainerOpts)
|
} as ContainerOpts)
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateCodePenSnippet(source: string) {
|
|
||||||
const { template, script, styles } = parse(source).descriptor
|
|
||||||
const css = styles.pop()
|
|
||||||
return {
|
|
||||||
html: encodeURIComponent(template?.content ?? ''),
|
|
||||||
js: encodeURIComponent((script || { content: '' }).content),
|
|
||||||
css: encodeURIComponent(css?.content || ''),
|
|
||||||
cssPreProcessor: css?.lang || 'none',
|
|
||||||
jsPreProcessor: script?.lang || 'none',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"en-US": {
|
|
||||||
"view-source": "View source",
|
|
||||||
"edit-in-editor": "Edit in PlayGround",
|
|
||||||
"edit-on-github": "Edit on Github",
|
|
||||||
"edit-in-codepen": "Edit in Codepen.io",
|
|
||||||
"copy-code": "Copy code",
|
|
||||||
"switch-button-option-text": "Switch to Options API",
|
|
||||||
"switch-button-setup-text": "Switch to Composition API",
|
|
||||||
"copy-success": "Copied!",
|
|
||||||
"copy-error": "This browser does not support automatic copy!"
|
|
||||||
}
|
|
||||||
}
|
|
@ -5,16 +5,18 @@ import 'virtual:windi-base.css'
|
|||||||
import 'virtual:windi-components.css'
|
import 'virtual:windi-components.css'
|
||||||
|
|
||||||
import VPApp, { globals, NotFound } from '../vitepress'
|
import VPApp, { globals, NotFound } from '../vitepress'
|
||||||
|
import { define } from '../utils/types'
|
||||||
|
|
||||||
// windicss utilities should be the last style import
|
// windicss utilities should be the last style import
|
||||||
import 'virtual:windi-utilities.css'
|
import 'virtual:windi-utilities.css'
|
||||||
// windicss devtools support (dev only)
|
// windicss devtools support (dev only)
|
||||||
import 'virtual:windi-devtools'
|
import 'virtual:windi-devtools'
|
||||||
|
|
||||||
export default {
|
import type { Theme } from 'vitepress'
|
||||||
|
|
||||||
|
export default define<Theme>({
|
||||||
NotFound,
|
NotFound,
|
||||||
Layout: VPApp,
|
Layout: VPApp,
|
||||||
logo: '/images/element-plus-logo-small.svg',
|
|
||||||
enhanceApp: ({ app }) => {
|
enhanceApp: ({ app }) => {
|
||||||
app.use(ElementPlus)
|
app.use(ElementPlus)
|
||||||
|
|
||||||
@ -22,4 +24,4 @@ export default {
|
|||||||
app.component(name, Comp)
|
app.component(name, Comp)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
}
|
})
|
||||||
|
@ -4,6 +4,7 @@ import escapeHtml from 'escape-html'
|
|||||||
import prism from 'prismjs'
|
import prism from 'prismjs'
|
||||||
|
|
||||||
// prism is listed as actual dep so it's ok to require
|
// prism is listed as actual dep so it's ok to require
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||||
const loadLanguages = require('prismjs/components/index')
|
const loadLanguages = require('prismjs/components/index')
|
||||||
|
|
||||||
// required to make embedded highlighting work...
|
// required to make embedded highlighting work...
|
||||||
|
1
docs/.vitepress/utils/types.ts
Normal file
1
docs/.vitepress/utils/types.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export const define = <T>(value: T): T => value
|
@ -1,100 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import { computed, ref } from 'vue'
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
css: {
|
|
||||||
type: String,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
cssPreProcessor: {
|
|
||||||
type: String,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
js: {
|
|
||||||
type: String,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
jsPreProcessor: {
|
|
||||||
type: String,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
html: {
|
|
||||||
type: String,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
const globalMapper = {
|
|
||||||
"'vue'": 'Vue',
|
|
||||||
"'element-plus'": 'ElementPlus',
|
|
||||||
}
|
|
||||||
|
|
||||||
const js = computed(() => {
|
|
||||||
const decodedJs = decodeURIComponent(props.js || '')
|
|
||||||
const imports = /(import*) ([^'\n]*) from ([^\n]*)/g
|
|
||||||
const globals = []
|
|
||||||
let match
|
|
||||||
while ((match = imports.exec(decodedJs))) {
|
|
||||||
const [, , members, target] = match
|
|
||||||
|
|
||||||
globals.push(`const ${members} = ${globalMapper[target]};`)
|
|
||||||
}
|
|
||||||
const componentRegex = decodedJs.includes('export default defineComponent')
|
|
||||||
? /export default defineComponent\({([\s\S]*)}\)/g
|
|
||||||
: /export default {([\s\S]*)}/g
|
|
||||||
|
|
||||||
let component = componentRegex.exec(decodedJs)
|
|
||||||
component = ((component && component[1]) || '')
|
|
||||||
.replace(/\n {2}/g, '\n')
|
|
||||||
.trim()
|
|
||||||
|
|
||||||
return `${globals.join('\n')}
|
|
||||||
var Main = {
|
|
||||||
${component}
|
|
||||||
};
|
|
||||||
|
|
||||||
const app = Vue.createApp(Main);
|
|
||||||
app.use(ElementPlus);
|
|
||||||
app.mount("#app");
|
|
||||||
`
|
|
||||||
})
|
|
||||||
|
|
||||||
const data = computed(() => {
|
|
||||||
return JSON.stringify({
|
|
||||||
html: `<script src="//unpkg.com/vue@next"><${'/script'}>
|
|
||||||
<script src="//unpkg.com/element-plus/dist/index.full.js"><${'/script'}>
|
|
||||||
<div id="app">
|
|
||||||
${decodeURIComponent(props.html).trim()}
|
|
||||||
</div>
|
|
||||||
`,
|
|
||||||
css: `@import url("//unpkg.com/element-plus/dist/index.css");
|
|
||||||
${decodeURIComponent(props.css).trim()}
|
|
||||||
`,
|
|
||||||
js: js.value,
|
|
||||||
css_pre_processor: props.cssPreProcessor,
|
|
||||||
js_pre_processor:
|
|
||||||
props.jsPreProcessor === 'ts' ? ' typescript' : props.jsPreProcessor,
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
const formRef = ref(null)
|
|
||||||
|
|
||||||
const submit = () => {
|
|
||||||
formRef.value.submit?.()
|
|
||||||
}
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
submit,
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<form
|
|
||||||
ref="formRef"
|
|
||||||
action="https://codepen.io/pen/define/"
|
|
||||||
method="POST"
|
|
||||||
target="_blank"
|
|
||||||
>
|
|
||||||
<input type="hidden" name="data" :value="data" />
|
|
||||||
</form>
|
|
||||||
</template>
|
|
@ -51,7 +51,7 @@ const copySvgIcon = async (name, refs) => {
|
|||||||
<ul class="demo-icon-list">
|
<ul class="demo-icon-list">
|
||||||
<li
|
<li
|
||||||
v-for="component in Icons"
|
v-for="component in Icons"
|
||||||
:key="component"
|
:key="component.name"
|
||||||
:ref="component.name"
|
:ref="component.name"
|
||||||
class="icon-item"
|
class="icon-item"
|
||||||
@click="copySvgIcon(component.name, $refs)"
|
@click="copySvgIcon(component.name, $refs)"
|
||||||
|
@ -28,7 +28,7 @@ onMounted(async () => {
|
|||||||
window.addEventListener(
|
window.addEventListener(
|
||||||
'click',
|
'click',
|
||||||
(e) => {
|
(e) => {
|
||||||
const link = e.target.closest('a')
|
const link = (e.target as HTMLElement).closest('a')
|
||||||
if (!link) return
|
if (!link) return
|
||||||
|
|
||||||
const { protocol, hostname, pathname, target } = link
|
const { protocol, hostname, pathname, target } = link
|
||||||
@ -69,9 +69,7 @@ onMounted(async () => {
|
|||||||
location.href = `https://element-plus.gitee.io${toLang}${location.pathname.slice(
|
location.href = `https://element-plus.gitee.io${toLang}${location.pathname.slice(
|
||||||
toLang.length
|
toLang.length
|
||||||
)}`
|
)}`
|
||||||
} catch (e) {
|
} catch {}
|
||||||
// do nothing
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -86,8 +86,8 @@ const decodedDescription = computed(() =>
|
|||||||
)
|
)
|
||||||
|
|
||||||
const onPlaygroundClicked = () => {
|
const onPlaygroundClicked = () => {
|
||||||
const code = usePlayGround(props.rawSource)
|
const { link } = usePlayGround(props.rawSource)
|
||||||
window.open(`https://element-plus.run/#${code}`)
|
window.open(link)
|
||||||
}
|
}
|
||||||
|
|
||||||
const copyCode = async () => {
|
const copyCode = async () => {
|
||||||
|
@ -56,7 +56,7 @@ export function useActiveSidebarLinks(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function deactiveLink(link: HTMLElement) {
|
function deactiveLink(link: HTMLElement | null) {
|
||||||
link && link.classList.remove('active')
|
link && link.classList.remove('active')
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ function getPageOffset() {
|
|||||||
function getAnchorTop(anchor: HTMLAnchorElement) {
|
function getAnchorTop(anchor: HTMLAnchorElement) {
|
||||||
const pageOffset = getPageOffset()
|
const pageOffset = getPageOffset()
|
||||||
try {
|
try {
|
||||||
return anchor.parentElement.offsetTop - pageOffset - 15
|
return anchor.parentElement!.offsetTop - pageOffset - 15
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ export const useLang = () => {
|
|||||||
let lang: string
|
let lang: string
|
||||||
|
|
||||||
if (path?.includes('/')) {
|
if (path?.includes('/')) {
|
||||||
lang = path.split('/').shift()
|
lang = path.split('/').shift()!
|
||||||
} else {
|
} else {
|
||||||
lang = defaultLang
|
lang = defaultLang
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { onUnmounted } from 'vue'
|
import { onUnmounted } from 'vue'
|
||||||
|
import { isClient } from '@vueuse/core'
|
||||||
import {
|
import {
|
||||||
addClass,
|
addClass,
|
||||||
hasClass,
|
hasClass,
|
||||||
@ -6,7 +7,6 @@ import {
|
|||||||
removeClass,
|
removeClass,
|
||||||
} from '@element-plus/utils/dom'
|
} from '@element-plus/utils/dom'
|
||||||
import getScrollBarWidth from '@element-plus/utils/scrollbar-width'
|
import getScrollBarWidth from '@element-plus/utils/scrollbar-width'
|
||||||
import { isServer } from '../utils'
|
|
||||||
|
|
||||||
export const useLockScreen = () => {
|
export const useLockScreen = () => {
|
||||||
let scrollBarWidth = 0
|
let scrollBarWidth = 0
|
||||||
@ -19,7 +19,7 @@ export const useLockScreen = () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const cleanup = () => {
|
const cleanup = () => {
|
||||||
if (isServer) return
|
if (!isClient) return
|
||||||
removeClass(document.body, 'el-popup-parent--hidden')
|
removeClass(document.body, 'el-popup-parent--hidden')
|
||||||
if (withoutHiddenClass) {
|
if (withoutHiddenClass) {
|
||||||
document.body.style.paddingRight = bodyPaddingRight
|
document.body.style.paddingRight = bodyPaddingRight
|
||||||
@ -27,7 +27,7 @@ export const useLockScreen = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const lock = () => {
|
const lock = () => {
|
||||||
if (isServer) return
|
if (!isClient) return
|
||||||
withoutHiddenClass = !hasClass(document.body, 'el-popup-parent--hidden')
|
withoutHiddenClass = !hasClass(document.body, 'el-popup-parent--hidden')
|
||||||
if (withoutHiddenClass) {
|
if (withoutHiddenClass) {
|
||||||
bodyPaddingRight = document.body.style.paddingRight
|
bodyPaddingRight = document.body.style.paddingRight
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { NOOP } from '@vue/shared'
|
import { NOOP } from '@vue/shared'
|
||||||
import { isServer } from '../utils'
|
import { isClient } from '@vueuse/core'
|
||||||
import { useFeatureFlag } from './feature-flag'
|
import { useFeatureFlag } from './feature-flag'
|
||||||
|
|
||||||
const THEME_KEY = 'preferred_theme'
|
const THEME_KEY = 'preferred_theme'
|
||||||
@ -7,7 +7,7 @@ const PREFER_SYSTEM = 'system'
|
|||||||
|
|
||||||
export const useTheme = () => {
|
export const useTheme = () => {
|
||||||
const themeEnabled = useFeatureFlag('theme')
|
const themeEnabled = useFeatureFlag('theme')
|
||||||
if (isServer || !themeEnabled.value) return NOOP
|
if (!isClient || !themeEnabled.value) return NOOP
|
||||||
|
|
||||||
const cachedPreference = localStorage.getItem(THEME_KEY) || PREFER_SYSTEM
|
const cachedPreference = localStorage.getItem(THEME_KEY) || PREFER_SYSTEM
|
||||||
// refer to https://css-tricks.com/dark-modes-with-css/
|
// refer to https://css-tricks.com/dark-modes-with-css/
|
||||||
|
@ -1,20 +1,16 @@
|
|||||||
import { isRef, ref } from 'vue'
|
import { isRef, ref } from 'vue'
|
||||||
|
import { isBoolean } from '@vueuse/core'
|
||||||
|
import type { MaybeRef } from '@vueuse/core'
|
||||||
|
|
||||||
import type { Ref } from 'vue'
|
export const useToggle = (getToggled?: MaybeRef<boolean>) => {
|
||||||
|
|
||||||
const isBool = (val: unknown): val is boolean => {
|
|
||||||
return typeof val === 'boolean'
|
|
||||||
}
|
|
||||||
|
|
||||||
export const useToggle = (getToggled?: Ref<boolean>) => {
|
|
||||||
const val = isRef(getToggled)
|
const val = isRef(getToggled)
|
||||||
? getToggled
|
? getToggled
|
||||||
: ref(isBool(getToggled) ? getToggled : false)
|
: ref(isBoolean(getToggled) ? getToggled : false)
|
||||||
|
|
||||||
return [
|
return [
|
||||||
val,
|
val,
|
||||||
(toggle?: boolean) => {
|
(toggle?: boolean) => {
|
||||||
val.value = isBool(toggle) ? toggle : !val.value
|
val.value = isBoolean(toggle) ? toggle : !val.value
|
||||||
},
|
},
|
||||||
] as const
|
] as const
|
||||||
}
|
}
|
||||||
|
@ -1,31 +1,38 @@
|
|||||||
/* eslint-disable */
|
|
||||||
import { utoa } from '../utils'
|
import { utoa } from '../utils'
|
||||||
|
|
||||||
const scriptRe = /<script[^>]*>([\s\S]*)<\/script>/
|
const scriptRe = /<script[^>]*>([\s\S]*)<\/script>/
|
||||||
|
|
||||||
|
const MAIN_FILE_NAME = 'App.vue'
|
||||||
|
const SETUP_CODE = `import { setupElementPlus } from './element-plus.js'
|
||||||
|
setupElementPlus()`
|
||||||
|
|
||||||
export const usePlayGround = (source: string) => {
|
export const usePlayGround = (source: string) => {
|
||||||
const decodeCode = decodeURIComponent(source)
|
const decodeCode = decodeURIComponent(source)
|
||||||
const result = decodeCode.match(scriptRe)
|
const result = decodeCode.match(scriptRe)
|
||||||
let finalCode = ''
|
let code: string
|
||||||
if (result) {
|
if (result) {
|
||||||
finalCode = decodeCode.replace(
|
code = decodeCode.replace(
|
||||||
scriptRe,
|
scriptRe,
|
||||||
`<script lang="ts" setup>
|
`<script lang="ts" setup>
|
||||||
import { setupElementPlus } from './element-plus.js'
|
${SETUP_CODE}
|
||||||
setupElementPlus()
|
|
||||||
$1
|
$1
|
||||||
<\/script>`
|
</script>`
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
finalCode = `${decodeCode}
|
code = `${decodeCode}
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { setupElementPlus } from './element-plus.js'
|
${SETUP_CODE}
|
||||||
setupElementPlus()
|
</script>
|
||||||
<\/script>
|
|
||||||
`
|
`
|
||||||
}
|
}
|
||||||
const originCode = {
|
const originCode = {
|
||||||
'App.vue': finalCode,
|
[MAIN_FILE_NAME]: code,
|
||||||
|
}
|
||||||
|
|
||||||
|
const encoded = utoa(JSON.stringify(originCode))
|
||||||
|
const link = `https://element-plus.run/#${encoded}`
|
||||||
|
return {
|
||||||
|
encoded,
|
||||||
|
link,
|
||||||
}
|
}
|
||||||
return utoa(JSON.stringify(originCode))
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { useData } from 'vitepress'
|
import { useData } from 'vitepress'
|
||||||
import { joinUrl } from '../utils'
|
|
||||||
|
|
||||||
import type { PageData } from 'vitepress'
|
import type { PageData } from 'vitepress'
|
||||||
|
|
||||||
@ -19,17 +18,6 @@ export const useToc = () => {
|
|||||||
return computed(() => resolveHeaders(page.value.headers))
|
return computed(() => resolveHeaders(page.value.headers))
|
||||||
}
|
}
|
||||||
|
|
||||||
export const resolveLink = (base: string, path: string) => {
|
|
||||||
if (path === undefined) {
|
|
||||||
return path
|
|
||||||
}
|
|
||||||
// keep relative hash to the same page
|
|
||||||
if (path.startsWith('#')) {
|
|
||||||
return path
|
|
||||||
}
|
|
||||||
return joinUrl(base, path)
|
|
||||||
}
|
|
||||||
|
|
||||||
export const resolveHeaders = (headers: PageData['headers']) => {
|
export const resolveHeaders = (headers: PageData['headers']) => {
|
||||||
return mapHeaders(groupHeaders(headers))
|
return mapHeaders(groupHeaders(headers))
|
||||||
}
|
}
|
||||||
|
@ -14,10 +14,12 @@ import IconList from './components/globals/icons.vue'
|
|||||||
|
|
||||||
import ParallaxHome from './components/globals/parallax-home.vue'
|
import ParallaxHome from './components/globals/parallax-home.vue'
|
||||||
|
|
||||||
|
import type { Component } from 'vue'
|
||||||
|
|
||||||
export { default as NotFound } from './components/vp-not-found.vue'
|
export { default as NotFound } from './components/vp-not-found.vue'
|
||||||
|
|
||||||
export default VPApp
|
export default VPApp
|
||||||
export const globals = [
|
export const globals: [string, Component][] = [
|
||||||
['Demo', VPDemo],
|
['Demo', VPDemo],
|
||||||
['MainColor', MainColor],
|
['MainColor', MainColor],
|
||||||
['NeutralColor', NeutralColor],
|
['NeutralColor', NeutralColor],
|
||||||
|
@ -8,7 +8,17 @@ import { inBrowser } from 'vitepress'
|
|||||||
|
|
||||||
import type { Route } from 'vitepress'
|
import type { Route } from 'vitepress'
|
||||||
|
|
||||||
export * from 'vitepress/dist/client/theme-default/utils'
|
export {
|
||||||
|
isArray,
|
||||||
|
isNullish,
|
||||||
|
isExternal,
|
||||||
|
isActive,
|
||||||
|
normalize,
|
||||||
|
joinUrl,
|
||||||
|
ensureEndingSlash,
|
||||||
|
ensureStartingSlash,
|
||||||
|
removeExtention,
|
||||||
|
} from 'vitepress/dist/client/theme-default/utils'
|
||||||
|
|
||||||
export function utoa(data: string): string {
|
export function utoa(data: string): string {
|
||||||
return btoa(unescape(encodeURIComponent(data)))
|
return btoa(unescape(encodeURIComponent(data)))
|
||||||
@ -61,8 +71,6 @@ export function createGitHubUrl(
|
|||||||
}${folder || ''}${path}${ext || ''}`
|
}${folder || ''}${path}${ext || ''}`
|
||||||
}
|
}
|
||||||
|
|
||||||
export const isServer = typeof window === 'undefined'
|
|
||||||
|
|
||||||
export function createCrowdinUrl(targetLang: string) {
|
export function createCrowdinUrl(targetLang: string) {
|
||||||
let translateLang = ''
|
let translateLang = ''
|
||||||
// for zh-CN zh-HK zh-TW, maybe later we will have cases like Chinese lang
|
// for zh-CN zh-HK zh-TW, maybe later we will have cases like Chinese lang
|
||||||
@ -70,7 +78,7 @@ export function createCrowdinUrl(targetLang: string) {
|
|||||||
if (targetLang.startsWith('zh-')) {
|
if (targetLang.startsWith('zh-')) {
|
||||||
translateLang = targetLang.split('-').join('').toLocaleLowerCase()
|
translateLang = targetLang.split('-').join('').toLocaleLowerCase()
|
||||||
} else {
|
} else {
|
||||||
translateLang = targetLang.split('-').shift().toLocaleLowerCase()
|
translateLang = targetLang.split('-').shift()!.toLocaleLowerCase()
|
||||||
}
|
}
|
||||||
return `https://crowdin.com/translate/element-plus/all/en-${translateLang}`
|
return `https://crowdin.com/translate/element-plus/all/en-${translateLang}`
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||||
const { defineConfig } = require('eslint-define-config')
|
const { defineConfig } = require('eslint-define-config')
|
||||||
|
|
||||||
module.exports = defineConfig({
|
module.exports = defineConfig({
|
||||||
|
@ -58,8 +58,10 @@ const tableRef = ref<InstanceType<typeof ElTable>>()
|
|||||||
const resetDateFilter = () => {
|
const resetDateFilter = () => {
|
||||||
tableRef.value!.clearFilter(['date'])
|
tableRef.value!.clearFilter(['date'])
|
||||||
}
|
}
|
||||||
// TODO: improvement typeing when refactor table
|
// TODO: improvement typing when refactor table
|
||||||
const clearFilter = () => {
|
const clearFilter = () => {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
|
// @ts-expect-error
|
||||||
tableRef.value!.clearFilter()
|
tableRef.value!.clearFilter()
|
||||||
}
|
}
|
||||||
const formatter = (row: User, column: TableColumnCtx<User>) => {
|
const formatter = (row: User, column: TableColumnCtx<User>) => {
|
||||||
|
@ -35,7 +35,9 @@ const multipleSelection = ref<User[]>([])
|
|||||||
const toggleSelection = (rows?: User[]) => {
|
const toggleSelection = (rows?: User[]) => {
|
||||||
if (rows) {
|
if (rows) {
|
||||||
rows.forEach((row) => {
|
rows.forEach((row) => {
|
||||||
// TODO: improvement typeing when refactor table
|
// TODO: improvement typing when refactor table
|
||||||
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
|
// @ts-expect-error
|
||||||
multipleTableRef.value!.toggleRowSelection(row, undefined)
|
multipleTableRef.value!.toggleRowSelection(row, undefined)
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
@ -59,7 +59,9 @@ const props = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const onQueryChanged = (query: string) => {
|
const onQueryChanged = (query: string) => {
|
||||||
// TODO: fix typeing when refactor tree-v2
|
// TODO: fix typing when refactor tree-v2
|
||||||
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
|
// @ts-expect-error
|
||||||
treeRef.value!.filter(query)
|
treeRef.value!.filter(query)
|
||||||
}
|
}
|
||||||
const filterMethod = (query: string, node: TreeNode) => {
|
const filterMethod = (query: string, node: TreeNode) => {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@element-plus/docs",
|
"name": "@element-plus/docs",
|
||||||
"version": "0.0.1",
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "pnpm gen-locale && vitepress dev .",
|
"dev": "pnpm gen-locale && vitepress dev .",
|
||||||
"build": "cross-env NODE_ENV=production && vitepress build .",
|
"build": "cross-env NODE_ENV=production && vitepress build .",
|
||||||
@ -9,6 +9,8 @@
|
|||||||
"crowdin-credentials": "sucrase-node .vitepress/build/crowdin-credentials.ts"
|
"crowdin-credentials": "sucrase-node .vitepress/build/crowdin-credentials.ts"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@docsearch/js": "^3.0.0-alpha.42",
|
||||||
|
"@docsearch/react": "^3.0.0-alpha.42",
|
||||||
"@vueuse/core": "7.4.1",
|
"@vueuse/core": "7.4.1",
|
||||||
"axios": "0.24.0",
|
"axios": "0.24.0",
|
||||||
"clipboard-copy": "4.0.1",
|
"clipboard-copy": "4.0.1",
|
||||||
|
26
pnpm-lock.yaml
generated
26
pnpm-lock.yaml
generated
@ -148,6 +148,8 @@ importers:
|
|||||||
docs:
|
docs:
|
||||||
specifiers:
|
specifiers:
|
||||||
'@crowdin/cli': 3.7.4
|
'@crowdin/cli': 3.7.4
|
||||||
|
'@docsearch/js': ^3.0.0-alpha.42
|
||||||
|
'@docsearch/react': ^3.0.0-alpha.42
|
||||||
'@types/markdown-it': 12.2.3
|
'@types/markdown-it': 12.2.3
|
||||||
'@vueuse/core': 7.4.1
|
'@vueuse/core': 7.4.1
|
||||||
axios: 0.24.0
|
axios: 0.24.0
|
||||||
@ -163,6 +165,8 @@ importers:
|
|||||||
vite-plugin-windicss: 1.6.1
|
vite-plugin-windicss: 1.6.1
|
||||||
vitepress: 0.20.10
|
vitepress: 0.20.10
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@docsearch/js': 3.0.0-alpha.42
|
||||||
|
'@docsearch/react': 3.0.0-alpha.42
|
||||||
'@vueuse/core': 7.4.1_vue@3.2.26
|
'@vueuse/core': 7.4.1_vue@3.2.26
|
||||||
axios: 0.24.0
|
axios: 0.24.0
|
||||||
clipboard-copy: 4.0.1
|
clipboard-copy: 4.0.1
|
||||||
@ -271,7 +275,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-E7+VJwcvwMM8vPeaVn7fNUgix8WHV8A1WUeHDi2KHemCaaGc8lvUnP3QnvhMxiDhTe7OpMEv4o2TBUMyDgThaw==}
|
resolution: {integrity: sha512-E7+VJwcvwMM8vPeaVn7fNUgix8WHV8A1WUeHDi2KHemCaaGc8lvUnP3QnvhMxiDhTe7OpMEv4o2TBUMyDgThaw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@algolia/autocomplete-shared': 1.5.0
|
'@algolia/autocomplete-shared': 1.5.0
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/autocomplete-preset-algolia/1.5.0_algoliasearch@4.10.5:
|
/@algolia/autocomplete-preset-algolia/1.5.0_algoliasearch@4.10.5:
|
||||||
resolution: {integrity: sha512-iiFxKERGHkvkiupmrFJbvESpP/zv5jSgH714XRiP5LDvUHaYOo4GLAwZCFf2ef/L5tdtPBARvekn6k1Xf33gjA==}
|
resolution: {integrity: sha512-iiFxKERGHkvkiupmrFJbvESpP/zv5jSgH714XRiP5LDvUHaYOo4GLAwZCFf2ef/L5tdtPBARvekn6k1Xf33gjA==}
|
||||||
@ -281,27 +284,22 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@algolia/autocomplete-shared': 1.5.0
|
'@algolia/autocomplete-shared': 1.5.0
|
||||||
algoliasearch: 4.10.5
|
algoliasearch: 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/autocomplete-shared/1.5.0:
|
/@algolia/autocomplete-shared/1.5.0:
|
||||||
resolution: {integrity: sha512-bRSkqHHHSwZYbFY3w9hgMyQRm86Wz27bRaGCbNldLfbk0zUjApmE4ajx+ZCVSLqxvcUEjMqZFJzDsder12eKsg==}
|
resolution: {integrity: sha512-bRSkqHHHSwZYbFY3w9hgMyQRm86Wz27bRaGCbNldLfbk0zUjApmE4ajx+ZCVSLqxvcUEjMqZFJzDsder12eKsg==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/cache-browser-local-storage/4.10.5:
|
/@algolia/cache-browser-local-storage/4.10.5:
|
||||||
resolution: {integrity: sha512-cfX2rEKOtuuljcGI5DMDHClwZHdDqd2nT2Ohsc8aHtBiz6bUxKVyIqxr2gaC6tU8AgPtrTVBzcxCA+UavXpKww==}
|
resolution: {integrity: sha512-cfX2rEKOtuuljcGI5DMDHClwZHdDqd2nT2Ohsc8aHtBiz6bUxKVyIqxr2gaC6tU8AgPtrTVBzcxCA+UavXpKww==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@algolia/cache-common': 4.10.5
|
'@algolia/cache-common': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/cache-common/4.10.5:
|
/@algolia/cache-common/4.10.5:
|
||||||
resolution: {integrity: sha512-1mClwdmTHll+OnHkG+yeRoFM17kSxDs4qXkjf6rNZhoZGXDvfYLy3YcZ1FX4Kyz0DJv8aroq5RYGBDsWkHj6Tw==}
|
resolution: {integrity: sha512-1mClwdmTHll+OnHkG+yeRoFM17kSxDs4qXkjf6rNZhoZGXDvfYLy3YcZ1FX4Kyz0DJv8aroq5RYGBDsWkHj6Tw==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/cache-in-memory/4.10.5:
|
/@algolia/cache-in-memory/4.10.5:
|
||||||
resolution: {integrity: sha512-+ciQnfIGi5wjMk02XhEY8fmy2pzy+oY1nIIfu8LBOglaSipCRAtjk6WhHc7/KIbXPiYzIwuDbM2K1+YOwSGjwA==}
|
resolution: {integrity: sha512-+ciQnfIGi5wjMk02XhEY8fmy2pzy+oY1nIIfu8LBOglaSipCRAtjk6WhHc7/KIbXPiYzIwuDbM2K1+YOwSGjwA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@algolia/cache-common': 4.10.5
|
'@algolia/cache-common': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/client-account/4.10.5:
|
/@algolia/client-account/4.10.5:
|
||||||
resolution: {integrity: sha512-I9UkSS2glXm7RBZYZIALjBMmXSQbw/fI/djPcBHxiwXIheNIlqIFl2SNPkvihpPF979BSkzjqdJNRPhE1vku3Q==}
|
resolution: {integrity: sha512-I9UkSS2glXm7RBZYZIALjBMmXSQbw/fI/djPcBHxiwXIheNIlqIFl2SNPkvihpPF979BSkzjqdJNRPhE1vku3Q==}
|
||||||
@ -309,7 +307,6 @@ packages:
|
|||||||
'@algolia/client-common': 4.10.5
|
'@algolia/client-common': 4.10.5
|
||||||
'@algolia/client-search': 4.10.5
|
'@algolia/client-search': 4.10.5
|
||||||
'@algolia/transporter': 4.10.5
|
'@algolia/transporter': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/client-analytics/4.10.5:
|
/@algolia/client-analytics/4.10.5:
|
||||||
resolution: {integrity: sha512-h2owwJSkovPxzc+xIsjY1pMl0gj+jdVwP9rcnGjlaTY2fqHbSLrR9yvGyyr6305LvTppxsQnfAbRdE/5Z3eFxw==}
|
resolution: {integrity: sha512-h2owwJSkovPxzc+xIsjY1pMl0gj+jdVwP9rcnGjlaTY2fqHbSLrR9yvGyyr6305LvTppxsQnfAbRdE/5Z3eFxw==}
|
||||||
@ -318,14 +315,12 @@ packages:
|
|||||||
'@algolia/client-search': 4.10.5
|
'@algolia/client-search': 4.10.5
|
||||||
'@algolia/requester-common': 4.10.5
|
'@algolia/requester-common': 4.10.5
|
||||||
'@algolia/transporter': 4.10.5
|
'@algolia/transporter': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/client-common/4.10.5:
|
/@algolia/client-common/4.10.5:
|
||||||
resolution: {integrity: sha512-21FAvIai5qm8DVmZHm2Gp4LssQ/a0nWwMchAx+1hIRj1TX7OcdW6oZDPyZ8asQdvTtK7rStQrRnD8a95SCUnzA==}
|
resolution: {integrity: sha512-21FAvIai5qm8DVmZHm2Gp4LssQ/a0nWwMchAx+1hIRj1TX7OcdW6oZDPyZ8asQdvTtK7rStQrRnD8a95SCUnzA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@algolia/requester-common': 4.10.5
|
'@algolia/requester-common': 4.10.5
|
||||||
'@algolia/transporter': 4.10.5
|
'@algolia/transporter': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/client-personalization/4.10.5:
|
/@algolia/client-personalization/4.10.5:
|
||||||
resolution: {integrity: sha512-nH+IyFKBi8tCyzGOanJTbXC5t4dspSovX3+ABfmwKWUYllYzmiQNFUadpb3qo+MLA3jFx5IwBesjneN6dD5o3w==}
|
resolution: {integrity: sha512-nH+IyFKBi8tCyzGOanJTbXC5t4dspSovX3+ABfmwKWUYllYzmiQNFUadpb3qo+MLA3jFx5IwBesjneN6dD5o3w==}
|
||||||
@ -333,7 +328,6 @@ packages:
|
|||||||
'@algolia/client-common': 4.10.5
|
'@algolia/client-common': 4.10.5
|
||||||
'@algolia/requester-common': 4.10.5
|
'@algolia/requester-common': 4.10.5
|
||||||
'@algolia/transporter': 4.10.5
|
'@algolia/transporter': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/client-search/4.10.5:
|
/@algolia/client-search/4.10.5:
|
||||||
resolution: {integrity: sha512-1eQFMz9uodrc5OM+9HeT+hHcfR1E1AsgFWXwyJ9Q3xejA2c1c4eObGgOgC9ZoshuHHdptaTN1m3rexqAxXRDBg==}
|
resolution: {integrity: sha512-1eQFMz9uodrc5OM+9HeT+hHcfR1E1AsgFWXwyJ9Q3xejA2c1c4eObGgOgC9ZoshuHHdptaTN1m3rexqAxXRDBg==}
|
||||||
@ -341,33 +335,27 @@ packages:
|
|||||||
'@algolia/client-common': 4.10.5
|
'@algolia/client-common': 4.10.5
|
||||||
'@algolia/requester-common': 4.10.5
|
'@algolia/requester-common': 4.10.5
|
||||||
'@algolia/transporter': 4.10.5
|
'@algolia/transporter': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/logger-common/4.10.5:
|
/@algolia/logger-common/4.10.5:
|
||||||
resolution: {integrity: sha512-gRJo9zt1UYP4k3woEmZm4iuEBIQd/FrArIsjzsL/b+ihNoOqIxZKTSuGFU4UUZOEhvmxDReiA4gzvQXG+TMTmA==}
|
resolution: {integrity: sha512-gRJo9zt1UYP4k3woEmZm4iuEBIQd/FrArIsjzsL/b+ihNoOqIxZKTSuGFU4UUZOEhvmxDReiA4gzvQXG+TMTmA==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/logger-console/4.10.5:
|
/@algolia/logger-console/4.10.5:
|
||||||
resolution: {integrity: sha512-4WfIbn4253EDU12u9UiYvz+QTvAXDv39mKNg9xSoMCjKE5szcQxfcSczw2byc6pYhahOJ9PmxPBfs1doqsdTKQ==}
|
resolution: {integrity: sha512-4WfIbn4253EDU12u9UiYvz+QTvAXDv39mKNg9xSoMCjKE5szcQxfcSczw2byc6pYhahOJ9PmxPBfs1doqsdTKQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@algolia/logger-common': 4.10.5
|
'@algolia/logger-common': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/requester-browser-xhr/4.10.5:
|
/@algolia/requester-browser-xhr/4.10.5:
|
||||||
resolution: {integrity: sha512-53/MURQEqtK+bGdfq4ITSPwTh5hnADU99qzvpAINGQveUFNSFGERipJxHjTJjIrjFz3vxj5kKwjtxDnU6ygO9g==}
|
resolution: {integrity: sha512-53/MURQEqtK+bGdfq4ITSPwTh5hnADU99qzvpAINGQveUFNSFGERipJxHjTJjIrjFz3vxj5kKwjtxDnU6ygO9g==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@algolia/requester-common': 4.10.5
|
'@algolia/requester-common': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/requester-common/4.10.5:
|
/@algolia/requester-common/4.10.5:
|
||||||
resolution: {integrity: sha512-UkVa1Oyuj6NPiAEt5ZvrbVopEv1m/mKqjs40KLB+dvfZnNcj+9Fry4Oxnt15HMy/HLORXsx4UwcthAvBuOXE9Q==}
|
resolution: {integrity: sha512-UkVa1Oyuj6NPiAEt5ZvrbVopEv1m/mKqjs40KLB+dvfZnNcj+9Fry4Oxnt15HMy/HLORXsx4UwcthAvBuOXE9Q==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/requester-node-http/4.10.5:
|
/@algolia/requester-node-http/4.10.5:
|
||||||
resolution: {integrity: sha512-aNEKVKXL4fiiC+bS7yJwAHdxln81ieBwY3tsMCtM4zF9f5KwCzY2OtN4WKEZa5AAADVcghSAUdyjs4AcGUlO5w==}
|
resolution: {integrity: sha512-aNEKVKXL4fiiC+bS7yJwAHdxln81ieBwY3tsMCtM4zF9f5KwCzY2OtN4WKEZa5AAADVcghSAUdyjs4AcGUlO5w==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@algolia/requester-common': 4.10.5
|
'@algolia/requester-common': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@algolia/transporter/4.10.5:
|
/@algolia/transporter/4.10.5:
|
||||||
resolution: {integrity: sha512-F8DLkmIlvCoMwSCZA3FKHtmdjH3o5clbt0pi2ktFStVNpC6ZDmY307HcK619bKP5xW6h8sVJhcvrLB775D2cyA==}
|
resolution: {integrity: sha512-F8DLkmIlvCoMwSCZA3FKHtmdjH3o5clbt0pi2ktFStVNpC6ZDmY307HcK619bKP5xW6h8sVJhcvrLB775D2cyA==}
|
||||||
@ -375,7 +363,6 @@ packages:
|
|||||||
'@algolia/cache-common': 4.10.5
|
'@algolia/cache-common': 4.10.5
|
||||||
'@algolia/logger-common': 4.10.5
|
'@algolia/logger-common': 4.10.5
|
||||||
'@algolia/requester-common': 4.10.5
|
'@algolia/requester-common': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@antfu/utils/0.3.0:
|
/@antfu/utils/0.3.0:
|
||||||
resolution: {integrity: sha512-UU8TLr/EoXdg7OjMp0h9oDoIAVr+Z/oW9cpOxQQyrsz6Qzd2ms/1CdWx8fl2OQdFpxGmq5Vc4TwfLHId6nAZjA==}
|
resolution: {integrity: sha512-UU8TLr/EoXdg7OjMp0h9oDoIAVr+Z/oW9cpOxQQyrsz6Qzd2ms/1CdWx8fl2OQdFpxGmq5Vc4TwfLHId6nAZjA==}
|
||||||
@ -955,7 +942,6 @@ packages:
|
|||||||
|
|
||||||
/@docsearch/css/3.0.0-alpha.42:
|
/@docsearch/css/3.0.0-alpha.42:
|
||||||
resolution: {integrity: sha512-AGwI2AXUacYhVOHmYnsXoYDJKO6Ued2W+QO80GERbMLhC7GH5tfvtW5REs/s7jSdcU3vzFoxT8iPDBCh/PkrlQ==}
|
resolution: {integrity: sha512-AGwI2AXUacYhVOHmYnsXoYDJKO6Ued2W+QO80GERbMLhC7GH5tfvtW5REs/s7jSdcU3vzFoxT8iPDBCh/PkrlQ==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@docsearch/js/3.0.0-alpha.42:
|
/@docsearch/js/3.0.0-alpha.42:
|
||||||
resolution: {integrity: sha512-8rxxsvFKS5GzDX2MYMETeib4EOwAkoxVUHFP5R4tSENXojhuCEy3np+k3Q0c9WPT+MUmWLxKJab5jyl0jmaeBQ==}
|
resolution: {integrity: sha512-8rxxsvFKS5GzDX2MYMETeib4EOwAkoxVUHFP5R4tSENXojhuCEy3np+k3Q0c9WPT+MUmWLxKJab5jyl0jmaeBQ==}
|
||||||
@ -967,7 +953,6 @@ packages:
|
|||||||
- '@types/react'
|
- '@types/react'
|
||||||
- react
|
- react
|
||||||
- react-dom
|
- react-dom
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@docsearch/react/3.0.0-alpha.42:
|
/@docsearch/react/3.0.0-alpha.42:
|
||||||
resolution: {integrity: sha512-1aOslZJDxwUUcm2QRNmlEePUgL8P5fOAeFdOLDMctHQkV2iTja9/rKVbkP8FZbIUnZxuuCCn8ErLrjD/oXWOag==}
|
resolution: {integrity: sha512-1aOslZJDxwUUcm2QRNmlEePUgL8P5fOAeFdOLDMctHQkV2iTja9/rKVbkP8FZbIUnZxuuCCn8ErLrjD/oXWOag==}
|
||||||
@ -982,7 +967,6 @@ packages:
|
|||||||
algoliasearch: 4.10.5
|
algoliasearch: 4.10.5
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@algolia/client-search'
|
- '@algolia/client-search'
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@element-plus/icons-vue/0.2.4_vue@3.2.26:
|
/@element-plus/icons-vue/0.2.4_vue@3.2.26:
|
||||||
resolution: {integrity: sha512-RsJNyL58rwxtsjeMy34o8txkL6UlME1stWsUlRpTac6UE9Bx9gdJvnDXbIKhOJqBLX17fBjmposdrn6VTqim2w==}
|
resolution: {integrity: sha512-RsJNyL58rwxtsjeMy34o8txkL6UlME1stWsUlRpTac6UE9Bx9gdJvnDXbIKhOJqBLX17fBjmposdrn6VTqim2w==}
|
||||||
@ -2421,7 +2405,6 @@ packages:
|
|||||||
'@algolia/requester-common': 4.10.5
|
'@algolia/requester-common': 4.10.5
|
||||||
'@algolia/requester-node-http': 4.10.5
|
'@algolia/requester-node-http': 4.10.5
|
||||||
'@algolia/transporter': 4.10.5
|
'@algolia/transporter': 4.10.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/ansi-align/3.0.1:
|
/ansi-align/3.0.1:
|
||||||
resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
|
resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
|
||||||
@ -8327,7 +8310,6 @@ packages:
|
|||||||
|
|
||||||
/preact/10.5.14:
|
/preact/10.5.14:
|
||||||
resolution: {integrity: sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ==}
|
resolution: {integrity: sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/prelude-ls/1.1.2:
|
/prelude-ls/1.1.2:
|
||||||
resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=}
|
resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=}
|
||||||
|
Reference in New Issue
Block a user