2
0
mirror of https://github.com/tenrok/vue-select.git synced 2026-06-04 06:32:23 +03:00

Squashed commit of the following:

commit 8c3a1b107b
Author: Jeff Sagal <sagalbot@gmail.com>
Date:   Fri Jul 15 09:57:37 2022 -0700

    bump to vitepress 1.0.0-alpha.4

commit 96ff08406c
Author: Jeff Sagal <sagalbot@gmail.com>
Date:   Wed Feb 23 10:25:36 2022 -0800

    vitepress wip

    mostly working, feeling like vuepress should still be considered

commit f3e22e0439
Author: Jeff Sagal <sagalbot@gmail.com>
Date:   Sat Feb 19 17:18:30 2022 -0800

    remove yarn, rename readme

commit 8cd3bbeb51
Author: Jeff Sagal <sagalbot@gmail.com>
Date:   Sat Feb 19 17:17:22 2022 -0800

    install vitepress
This commit is contained in:
Jeff Sagal
2022-07-18 09:40:42 -07:00
parent 0a1c4cf5fd
commit 223f3a6d85
78 changed files with 549 additions and 8959 deletions
+11 -11
View File
@@ -1,15 +1,15 @@
/* eslint-env node */
require("@rushstack/eslint-patch/modern-module-resolution");
require('@rushstack/eslint-patch/modern-module-resolution')
module.exports = {
"root": true,
"extends": [
"plugin:vue/vue3-essential",
"eslint:recommended",
"@vue/eslint-config-typescript/recommended",
"@vue/eslint-config-prettier"
],
"env": {
"vue/setup-compiler-macros": true
}
root: true,
extends: [
'plugin:vue/vue3-essential',
'eslint:recommended',
'@vue/eslint-config-typescript/recommended',
'@vue/eslint-config-prettier',
],
env: {
'vue/setup-compiler-macros': true,
},
}
@@ -3,10 +3,12 @@
</template>
<script>
import vSelect from 'vue-select'
import countryCodes from '../data/countryCodes'
export default {
name: 'CountrySelect',
components: { vSelect },
data: () => ({
options: countryCodes,
}),
@@ -15,6 +15,7 @@
</template>
<script>
import vSelect from 'vue-select'
import countries from '../data/countries'
export default {
+20
View File
@@ -0,0 +1,20 @@
import { defineConfig } from 'vitepress'
// import { head } from './config/head'
import { themeConfig } from './config/themeConfig'
import { fileURLToPath, URL } from 'url'
export default defineConfig({
title: 'Vue Select',
// head,
themeConfig,
vite: {
resolve: {
alias: {
'@': fileURLToPath(new URL('.', import.meta.url)),
'vue-select': fileURLToPath(
new URL('../../src', import.meta.url)
),
},
},
},
})
+63
View File
@@ -0,0 +1,63 @@
import meta from './meta'
import type { HeadConfig } from 'vitepress'
export const head: HeadConfig = [
// [
// 'link',
// {
// href: '//fonts.googleapis.com/css?family=Source+Sans+Pro:400,600|Roboto Mono',
// rel: 'stylesheet',
// type: 'text/css',
// },
// ],
// [
// 'link',
// {
// href: '//fonts.googleapis.com/css?family=Dosis:300&amp;text=Vue Select',
// rel: 'stylesheet',
// type: 'text/css',
// },
// ],
// ['link', { rel: 'icon', href: `/vue-logo.png` }],
// ['meta', { name: 'theme-color', content: '#3eaf7c' }],
// ['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }],
// [
// 'meta',
// { name: 'apple-mobile-web-app-status-bar-style', content: 'black' },
// ],
// [
// 'link',
// {
// rel: 'apple-touch-icon',
// href: `/icons/apple-touch-icon-152x152.png`,
// },
// ],
// [
// 'link',
// {
// rel: 'mask-icon',
// href: '/icons/safari-pinned-tab.svg',
// color: '#3eaf7c',
// },
// ],
// [
// 'meta',
// {
// name: 'msapplication-TileImage',
// content: '/icons/msapplication-icon-144x144.png',
// },
// ],
// ['meta', { name: 'msapplication-TileColor', content: '#000000' }],
// ['meta', { name: 'title', content: meta.title }],
// ['meta', { name: 'description', content: meta.description }],
// ['link', { rel: 'icon', href: meta.icon, type: 'image/png' }],
// ['meta', { property: 'og:image', content: meta.icon }],
// ['meta', { property: 'twitter:image', content: meta.icon }],
// ['meta', { name: 'description', content: meta.description }],
// ['meta', { property: 'og:description', content: '' }],
// ['meta', { property: 'twitter:description', content: meta.description }],
// ['meta', { property: 'twitter:title', content: meta.title }],
// ['meta', { property: 'og:title', content: meta.title }],
// ['meta', { property: 'og:site_name', content: meta.title }],
// ['meta', { property: 'og:url', content: meta.url }],
]
@@ -1,4 +1,4 @@
module.exports = {
export default {
title: 'Vue Select | VueJS Select2/Chosen Component',
description:
'Everything you wish the HTML select element could do, wrapped up into a lightweight, extensible Vue component.',
+75
View File
@@ -0,0 +1,75 @@
import { defineConfig } from 'vitepress'
export const themeConfig = defineConfig({
themeConfig: {
siteTitle: 'Vue Select',
// nav: [{link: '/', text: 'Home'}],
editLink: {
pattern:
'https://github.com/sagalbot/vue-select/edit/master/docs/:path',
},
sidebar: [
{
text: 'Community',
items: [
{ text: 'Sponsors 🎉', link: 'sponsors' },
{ text: 'Contributors', link: 'contributors' },
],
},
{
text: 'Getting Started',
items: [
{ link: 'guide/install', text: 'Installation' },
{ link: 'guide/options', text: 'Dropdown Options' },
{ link: 'guide/values', text: 'Selecting Values' },
{ link: 'guide/upgrading', text: 'Upgrading 2.x to 3.x' },
],
},
{
text: 'Templating & Styling',
items: [
{ link: 'guide/components', text: 'Child Components' },
{ link: 'guide/css', text: 'CSS & Selectors' },
{ link: 'guide/slots', text: 'Slots' },
],
},
{
text: 'Accessibility',
items: [
{ link: 'guide/accessibility', text: 'WAI-ARIA Spec' },
{ link: 'guide/localization', text: 'Localization' },
],
},
{
text: 'Use Cases',
items: [
{ link: 'guide/validation', text: 'Validation' },
{ link: 'guide/selectable', text: 'Limiting Selections' },
{ link: 'guide/pagination', text: 'Pagination' },
{ link: 'guide/infinite-scroll', text: 'Infinite Scroll' },
{ link: 'guide/vuex', text: 'Vuex' },
{ link: 'guide/ajax', text: 'AJAX' },
{ link: 'guide/loops', text: 'Using in Loops' },
],
},
{
text: 'Customizing',
items: [
{ link: 'guide/keydown', text: 'Keydown Events' },
{ link: 'guide/positioning', text: 'Dropdown Position' },
{ link: 'guide/opening', text: 'Dropdown Opening' },
{ link: 'guide/filtering', text: 'Option Filtering' },
],
},
{
text: 'API',
items: [
{ link: 'api/props', text: 'Props' },
{ link: 'api/slots', text: 'Slots' },
{ link: 'api/events', text: 'Events' },
],
},
],
},
})
-20
View File
@@ -1,20 +0,0 @@
const { description } = require('./config/meta')
const head = require('./config/head')
const plugins = require('./config/plugins')
const themeConfig = require('./config/themeConfig')
const { resolve } = require('path')
module.exports = {
title: 'Vue Select',
description,
head,
plugins,
themeConfig,
configureWebpack: {
resolve: {
alias: {
'@': resolve(__dirname, '../../src'),
},
},
},
}
-67
View File
@@ -1,67 +0,0 @@
const isDeployPreview = require('./isDeployPreview')
const meta = require('./meta')
const head = [
[
'link',
{
href:
'//fonts.googleapis.com/css?family=Source+Sans+Pro:400,600|Roboto Mono',
rel: 'stylesheet',
type: 'text/css',
},
],
[
'link',
{
href: '//fonts.googleapis.com/css?family=Dosis:300&amp;text=Vue Select',
rel: 'stylesheet',
type: 'text/css',
},
],
['link', { rel: 'icon', href: `/vue-logo.png` }],
['meta', { name: 'theme-color', content: '#3eaf7c' }],
['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }],
['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }],
[
'link',
{ rel: 'apple-touch-icon', href: `/icons/apple-touch-icon-152x152.png` },
],
[
'link',
{
rel: 'mask-icon',
href: '/icons/safari-pinned-tab.svg',
color: '#3eaf7c',
},
],
[
'meta',
{
name: 'msapplication-TileImage',
content: '/icons/msapplication-icon-144x144.png',
},
],
['meta', { name: 'msapplication-TileColor', content: '#000000' }],
['meta', { name: 'title', content: meta.title }],
['meta', { name: 'description', content: meta.description }],
['link', { rel: 'icon', href: meta.icon, type: 'image/png' }],
['meta', { property: 'og:image', content: meta.icon }],
['meta', { property: 'twitter:image', content: meta.icon }],
['meta', { name: 'description', content: meta.description }],
['meta', { property: 'og:description', content: '' }],
['meta', { property: 'twitter:description', content: meta.description }],
['meta', { property: 'twitter:title', content: meta.title }],
['meta', { property: 'og:title', content: meta.title }],
['meta', { property: 'og:site_name', content: meta.title }],
['meta', { property: 'og:url', content: meta.url }],
]
if (isDeployPreview) {
head.push(
['meta', { name: 'robots', content: 'noindex' }],
['meta', { name: 'googlebot', content: 'noindex' }]
)
}
module.exports = head
-1
View File
@@ -1 +0,0 @@
module.exports = process.env.hasOwnProperty('DEPLOY_PREVIEW')
-22
View File
@@ -1,22 +0,0 @@
const isDeployPreview = require('./isDeployPreview')
module.exports = [
[
'@vuepress/google-analytics',
{
ga: isDeployPreview ? '' : 'UA-12818324-8',
},
],
[
'@vuepress/pwa',
{
serviceWorker: false,
updatePopup: true,
},
],
'@vuepress/plugin-register-components',
'@vuepress/plugin-active-header-links',
'@vuepress/plugin-search',
'@vuepress/plugin-nprogress',
require('../github/index'),
]
-77
View File
@@ -1,77 +0,0 @@
module.exports = {
repo: 'sagalbot/vue-select',
editLinks: true,
docsDir: 'docs',
nav: [{ text: 'Sandbox', link: '/sandbox' }],
sidebar: {
'/': [
{
title: 'Community',
collapsable: false,
children: [
['sponsors', 'Sponsors 🎉'],
['contributors', 'Contributors'],
],
},
{
title: 'Getting Started',
collapsable: false,
children: [
['guide/install', 'Installation'],
['guide/options', 'Dropdown Options'],
['guide/values', 'Selecting Values'],
['guide/upgrading', 'Upgrading 2.x to 3.x'],
],
},
{
title: 'Templating & Styling',
collapsable: false,
children: [
['guide/components', 'Child Components'],
['guide/css', 'CSS & Selectors'],
['guide/slots', 'Slots'],
],
},
{
title: 'Accessibility',
collapsable: false,
children: [
['guide/accessibility', 'WAI-ARIA Spec'],
['guide/localization', 'Localization'],
],
},
{
title: 'Use Cases',
collapsable: false,
children: [
['guide/validation', 'Validation'],
['guide/selectable', 'Limiting Selections'],
['guide/pagination', 'Pagination'],
['guide/infinite-scroll', 'Infinite Scroll'],
['guide/vuex', 'Vuex'],
['guide/ajax', 'AJAX'],
['guide/loops', 'Using in Loops'],
],
},
{
title: 'Customizing',
collapsable: false,
children: [
['guide/keydown', 'Keydown Events'],
['guide/positioning', 'Dropdown Position'],
['guide/opening', 'Dropdown Opening'],
['guide/filtering', 'Option Filtering'],
],
},
{
title: 'API',
collapsable: false,
children: [
['api/props', 'Props'],
['api/slots', 'Slots'],
['api/events', 'Events'],
],
},
],
},
}
-19
View File
@@ -1,19 +0,0 @@
import vSelect from '../../src/components/Select'
export default ({ Vue, options, router, siteData }) => {
Vue.component('v-select', vSelect)
/**
* Remove service workers.
*/
if (typeof navigator !== 'undefined' && 'serviceWorker' in navigator) {
navigator.serviceWorker.getRegistrations().then((registrations) => {
registrations.forEach((registration) => {
registration
.unregister()
.then(() => console.log('Service worker unregistered.'))
.catch(() => console.log('Error unregistering service worker.'))
})
})
}
}
@@ -1,65 +0,0 @@
require('dotenv').config()
const axios = require('axios')
const { graphql } = require('@octokit/graphql')
module.exports = async () => ({
name: 'constants.js',
content: `
export const SPONSORS = ${JSON.stringify(await getSponsors())};
export const CONTRIBUTORS = ${JSON.stringify(await getContributors())};
`,
})
/**
* Get a list of vue select contributors.
* @return {Promise<T>}
*/
async function getContributors() {
const { data } = await axios.get(
'https://api.github.com/repos/sagalbot/vue-select/contributors?per_page=100'
)
return data
}
/**
* Get a list of the current sponsors. Requires GITHUB_TOKEN to be set.
* @return {Promise<*[]|ProfileNode[]|postcss.ChildNode[]|Array<parser.Node>|[]>}
*/
async function getSponsors() {
const query = `
{
user(login: "sagalbot") {
sponsorshipsAsMaintainer(first: 100) {
nodes {
sponsorEntity {
... on User {
id
avatarUrl
login
}
... on Organization {
id
avatarUrl
login
}
}
createdAt
}
}
}
}
`
try {
const { user } = await graphql(query, {
headers: {
authorization: `token ${process.env.GITHUB_TOKEN || ''}`,
},
})
return user.sponsorshipsAsMaintainer.nodes
} catch (e) {
console.log(`${e.status} ${e.name} - Couldn't fetch sponsor data.`)
return []
}
}
-5
View File
@@ -1,5 +0,0 @@
const clientDynamicModules = require('./clientDynamicModules')
module.exports = {
clientDynamicModules: async () => await clientDynamicModules(),
}
@@ -1,54 +0,0 @@
<script>
/**
* @see https://ethical-ad-client.readthedocs.io/en/latest/
*/
export default {
watch: {
$route(to, from) {
if (
to.path !== from.path &&
// Only reload if the ad has been loaded
// otherwise it's possible that the script is appended but
// the ads are not loaded yet. This would result in duplicated ads.
[...this.$el.classList].includes('loaded')
) {
this.$el.innerHTML = ''
this.$el.classList.remove('loaded')
this.load()
}
},
},
mounted() {
this.load()
},
methods: {
load() {
const s = document.createElement('script')
s.id = '_ads_js'
s.src = `https://media.ethicalads.io/media/client/ethicalads.min.js`
s.async = 'async'
this.$el.appendChild(s)
},
},
render(h) {
return h('div', {
attrs: {
id: 'ads',
'data-ea-publisher': 'vue-select',
'data-ea-type': 'image',
},
class: 'flat horizontal',
})
},
}
</script>
<style scoped>
#ads {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
min-height: 264px;
}
</style>
-3
View File
@@ -1,3 +0,0 @@
module.exports = {
extend: '@vuepress/theme-default',
}
-22
View File
@@ -1,22 +0,0 @@
<template>
<ParentLayout></ParentLayout>
</template>
<script>
import ParentLayout from '@parent-theme/layouts/Layout.vue'
export default {
components: {
ParentLayout,
},
}
</script>
<style>
#ads {
border-bottom: 1px solid #eaecef;
}
#ads + .sidebar-links {
padding-top: 1rem;
}
</style>
-175
View File
@@ -1,175 +0,0 @@
export default () => {
document.getElementsByClassName ||
(document.getElementsByClassName = function (e) {
var n,
t,
r,
a = document,
o = []
if (a.querySelectorAll) return a.querySelectorAll('.' + e)
if (a.evaluate)
for (
t = ".//*[contains(concat(' ', @class, ' '), ' " + e + " ')]",
n = a.evaluate(t, a, null, 0, null);
(r = n.iterateNext());
)
o.push(r)
else
for (
n = a.getElementsByTagName('*'),
t = new RegExp('(^|\\s)' + e + '(\\s|$)'),
r = 0;
r < n.length;
r++
)
t.test(n[r].className) && o.push(n[r])
return o
}),
(function () {
function e() {
function e() {
for (
var e = document.getElementsByClassName('codepen'),
t = e.length - 1;
t > -1;
t--
) {
var u = a(e[t])
if (
0 !== Object.keys(u).length &&
((u = o(u)), (u.user = n(u, e[t])), r(u))
) {
var c = i(u),
l = s(u, c)
f(e[t], l)
}
}
m()
}
function n(e, n) {
if ('string' == typeof e.user) return e.user
for (var t = 0, r = n.children.length; t < r; t++) {
var a = n.children[t],
o = a.href || '',
i = o.match(/codepen\.(io|dev)\/(\w+)\/pen\//i)
if (i) return i[2]
}
return 'anon'
}
function r(e) {
return e['slug-hash']
}
function a(e) {
for (var n = {}, t = e.attributes, r = 0, a = t.length; r < a; r++) {
var o = t[r].name
0 === o.indexOf('data-') && (n[o.replace('data-', '')] = t[r].value)
}
return n
}
function o(e) {
return (
e.href && (e['slug-hash'] = e.href),
e.type && (e['default-tab'] = e.type),
e.safe &&
('true' === e.safe
? (e.animations = 'run')
: (e.animations = 'stop-after-5')),
e
)
}
function i(e) {
var n = u(e),
t = e.user ? e.user : 'anon',
r = '?' + l(e),
a = e.preview && 'true' === e.preview ? 'embed/preview' : 'embed',
o = [n, t, a, e['slug-hash'] + r].join('/')
return o.replace(/\/\//g, '//')
}
function u(e) {
return e.host
? c(e.host)
: 'file:' === document.location.protocol
? 'https://codepen.io'
: '//codepen.io'
}
function c(e) {
return e.match(/^\/\//) || !e.match(/https?:/)
? document.location.protocol + '//' + e
: e
}
function l(e) {
var n = ''
for (var t in e)
'' !== n && (n += '&'), (n += t + '=' + encodeURIComponent(e[t]))
return n
}
function s(e, n) {
var r
e['pen-title']
? (r = e['pen-title'])
: ((r = 'CodePen Embed ' + t), t++)
var a = {
id: 'cp_embed_' + e['slug-hash'].replace('/', '_'),
src: n,
scrolling: 'no',
frameborder: '0',
height: d(e),
allowTransparency: 'true',
allowfullscreen: 'true',
allowpaymentrequest: 'true',
name: 'CodePen Embed',
title: r,
class: 'cp_embed_iframe ' + (e['class'] ? e['class'] : ''),
style: 'width: ' + p + '; overflow: hidden;',
},
o = '<iframe '
for (var i in a) o += i + '="' + a[i] + '" '
return (o += '></iframe>')
}
function d(e) {
return e.height ? e.height : 300
}
function f(e, n) {
if (e.parentNode) {
var t = document.createElement('div')
;(t.className = 'cp_embed_wrapper'),
(t.innerHTML = n),
e.parentNode.replaceChild(t, e)
} else e.innerHTML = n
}
function m() {
'function' == typeof __CodePenIFrameAddedToPage &&
__CodePenIFrameAddedToPage()
}
var p = '100%'
e()
}
function n(e) {
;/in/.test(document.readyState)
? setTimeout('window.__cp_domReady(' + e + ')', 9)
: e()
}
var t = 1
;(window.__cp_domReady = n),
(window.__CPEmbed = e),
n(function () {
new __CPEmbed()
})
})()
}
+11 -11
View File
@@ -32,7 +32,7 @@ Otherwise content in this slot will affect it's positioning.
- `deselect {function}` - function to deselect an option
<SlotFooter />
<<< @/.vuepress/components/SlotFooter.vue
<<< @/.vitepress/components/SlotFooter.vue
## `header` <Badge text="3.8.0+" />
@@ -45,7 +45,7 @@ Displayed at the top of the component, above `.vs__dropdown-toggle`.
- `deselect {function}` - function to deselect an option
<SlotHeader />
<<< @/.vuepress/components/SlotHeader.vue
<<< @/.vitepress/components/SlotHeader.vue
## `list-footer` <Badge text="3.8.0+" />
@@ -58,7 +58,7 @@ so this slot should contain a root `<li>`.
- `filteredOptions {array}` - options filtered by the search text
<SlotListFooter />
<<< @/.vuepress/components/SlotListFooter.vue
<<< @/.vitepress/components/SlotListFooter.vue
## `list-header` <Badge text="3.8.0+" />
@@ -71,7 +71,7 @@ so this slot should contain a root `<li>`.
- `filteredOptions {array}` - options filtered by the search text
<SlotListHeader />
<<< @/.vuepress/components/SlotListHeader.vue
<<< @/.vitepress/components/SlotListHeader.vue
## `no-options`
@@ -83,7 +83,7 @@ The no options slot is displayed above `list-footer` in the dropdown when
- `searching {boolean}` - is the component searching
<SlotNoOptions />
<<< @/.vuepress/components/SlotNoOptions.vue
<<< @/.vitepress/components/SlotNoOptions.vue
## `open-indicator`
@@ -98,7 +98,7 @@ attributes: {
```
<SlotOpenIndicator />
<<< @/.vuepress/components/SlotOpenIndicator.vue
<<< @/.vitepress/components/SlotOpenIndicator.vue
## `option`
@@ -107,7 +107,7 @@ The current option within the dropdown, contained within `<li>`.
- `option {Object}` - The currently iterated option from `filteredOptions`
<SlotOption />
<<< @/.vuepress/components/SlotOption.vue
<<< @/.vitepress/components/SlotOption.vue
## `search`
@@ -151,7 +151,7 @@ If you want the default styling, you'll need to add `.vs__search` to the input y
```
<SlotSearch />
<<< @/.vuepress/components/SlotSearch.vue{5-6}
<<< @/.vitepress/components/SlotSearch.vue{5-6}
## `selected-option`
@@ -162,7 +162,7 @@ This slot doesn't exist if `selected-option-container` is implemented.
- `option {Object}` - A selected option
<SlotSelectedOption />
<<< @/.vuepress/components/SlotSelectedOption.vue
<<< @/.vitepress/components/SlotSelectedOption.vue
## `selected-option-container`
@@ -176,13 +176,13 @@ or have fine grain control over the markup.
- `multiple {Boolean}` - If the component supports the selection of multiple values
<SlotSelectedOptionContainer />
<<< @/.vuepress/components/SlotSelectedOptionContainer.vue
<<< @/.vitepress/components/SlotSelectedOptionContainer.vue
## `spinner`
- `loading {Boolean}` - if the component is in a loading state
<SlotSpinner />
<<< @/.vuepress/components/SlotSpinner.vue
<<< @/.vitepress/components/SlotSpinner.vue
</div>
+2 -3
View File
@@ -24,7 +24,7 @@ about [CSS Custom Properties.](https://developer.mozilla.org/en-US/docs/Web/CSS/
<CssVariables style="margin-top: 1rem;" />
<<< @/.vuepress/components/CssVariables.vue
<<< @/.vitepress/components/CssVariables.vue
### Available CSS Variables <Badge type="primary">3.18+</Badge>
@@ -62,7 +62,7 @@ instances of Vue Select, or add your own classname if you just want to affect on
<CssSpecificity />
<<< @/.vuepress/components/CssSpecificity.vue
<<< @/.vitepress/components/CssSpecificity.vue
## Dropdown Transition
@@ -74,7 +74,6 @@ transition name is `vs__fade`. There's a couple ways to override or change this
negate the default CSS. If you want to remove it entirely, you can set it to an empty string.
```html
<v-select transition="" />
```
+1 -1
View File
@@ -16,4 +16,4 @@ You can use the `filter` and `filterBy` props to hook right into something like
<FuseFilter />
<<< @/.vuepress/components/FuseFilter.vue
<<< @/.vitepress/components/FuseFilter.vue
+5 -1
View File
@@ -1,3 +1,7 @@
<script setup>
import InfiniteScroll from '@/components/InfiniteScroll.vue'
</script>
Vue Select doesn't ship with first party support for infinite scroll, but it's possible to implement
by hooking into the `open`, `close`, and `search` events, along with the `filterable` prop, and the
`list-footer` slot.
@@ -20,4 +24,4 @@ the scroll position.
<InfiniteScroll />
<<< @/.vuepress/components/InfiniteScroll.vue
<<< @/.vitepress/components/InfiniteScroll.vue
+2 -2
View File
@@ -9,7 +9,7 @@
<TagOnComma />
<<< @/.vuepress/components/TagOnComma.vue
<<< @/.vitepress/components/TagOnComma.vue
## mapKeyDown <Badge text="v3.3.0+" />
@@ -69,5 +69,5 @@ This is example listens for the `@` key, and autocompletes an email address with
<CustomHandlers />
<<< @/.vuepress/components/CustomHandlers.vue
<<< @/.vitepress/components/CustomHandlers.vue
+1 -1
View File
@@ -12,6 +12,6 @@ method with the `country` and the `person` object.
<LoopedSelect />
<<< @/.vuepress/components/LoopedSelect.vue
<<< @/.vitepress/components/LoopedSelect.vue
+1 -1
View File
@@ -18,5 +18,5 @@ country has already been selected, we will display the dropdown right away.
<OpenWhenSearchTextPresent />
<<< @/.vuepress/components/OpenWhenSearchTextPresent.vue
<<< @/.vitepress/components/OpenWhenSearchTextPresent.vue
+1 -1
View File
@@ -15,4 +15,4 @@ You can use the `filterable` boolean to turn off Vue Select's filtering, and the
<Paginated />
<<< @/.vuepress/components/Paginated.vue
<<< @/.vitepress/components/Paginated.vue
+1 -1
View File
@@ -30,4 +30,4 @@ popper to calculate positioning for us.
Check out the [Popper Docs](https://popper.js.org/docs/v2/modifiers/) to see the full `modifiers`
API being used below.
<<< @/.vuepress/components/PositionedWithPopper.vue{25-59}
<<< @/.vitepress/components/PositionedWithPopper.vue{25-59}
+2 -2
View File
@@ -31,7 +31,7 @@ This object will be passed to `selectable`, so we can check if the author should
<UnselectableExample />
<<< @/.vuepress/components/UnselectableExample.vue{6}
<<< @/.vitepress/components/UnselectableExample.vue{6}
## Limiting the Number of Selections
@@ -41,4 +41,4 @@ of three books.
<LimitSelectionQuantity />
<<< @/.vuepress/components/LimitSelectionQuantity.vue{8}
<<< @/.vitepress/components/LimitSelectionQuantity.vue{8}
+1 -1
View File
@@ -29,4 +29,4 @@ in your own apps.
<BetterNoOptions />
<<< @/.vuepress/components/BetterNoOptions.vue
<<< @/.vitepress/components/BetterNoOptions.vue
+10 -16
View File
@@ -1,3 +1,9 @@
<script setup>
import vSelect from 'vue-select';
import ReducerNestedValue from '@/components/ReducerNestedValue.vue';
import ReducedWithNoMatchingOption from '@/components/ReducedWithNoMatchingOption.vue';
</script>
## Getting and Setting
### `v-model`
@@ -7,7 +13,6 @@ vue-select takes advantage of the `v-model` syntax to sync values with a parent.
syntax works with primitives and objects.
```html
<v-select v-model="selected" />
```
@@ -29,7 +34,6 @@ The `value` prop lets vue-select know what value is currently selected. It will
numbers or objects. If you're using a `multiple` v-select, you'll want to pass an array.
```html
<v-select :value="selected" />
```
@@ -49,7 +53,6 @@ can bind the selected value with `:value="$store.myValue"`, and use the `input`
mutation, or dispatch an action or anything else you might need to do when the selection changes.
```html
<v-select :value="$store.myValue" @input="setSelected" />
```
@@ -69,7 +72,6 @@ By default, vue-select supports choosing a single value. If you need multiple va
is true, `v-model` and `value` must be an array.
```html
<v-select multiple v-model="selected" :options="['Canada','United States']" />
```
@@ -96,7 +98,6 @@ If we want to display the `country`, but return the `code` to `v-model`, we can
prop to receive only the data that's required.
```html
<v-select :options="options" :reduce="country => country.code" label="country" />
```
@@ -115,11 +116,10 @@ The `reduce` property also works well when you have a deeply nested value:
```
```html
<v-select :options="options" :reduce="country => country.meta.code" label="country" />
```
<reducer-nested-value />
<ReducerNestedValue />
## Caveats with `reduce`
@@ -129,7 +129,7 @@ value, but the complete option object is not present in the `options` array.
<ReducedWithNoMatchingOption />
<<< @/.vuepress/components/ReducedWithNoMatchingOption.vue
<<< @/.vitepress/components/ReducedWithNoMatchingOption.vue
In the example above, the component was supplied with an ID that doesn't exist in the `options`
array. When `value` changes, Vue Select searches the supplied options, running each one
@@ -148,7 +148,6 @@ exist in the `options` array.
To allow input that's not present within the options, set the `taggable` prop to true.
```html
<v-select taggable multiple />
```
@@ -157,7 +156,6 @@ To allow input that's not present within the options, set the `taggable` prop to
If you want added tags to be pushed to the options array, set `push-tags` to true.
```html
<v-select taggable multiple push-tags />
```
@@ -193,8 +191,7 @@ const options = [
];
```
```html
```vue
<v-select
taggable
multiple
@@ -203,7 +200,4 @@ const options = [
:create-option="book => ({ title: book, author: { firstName: '', lastName: '' } })"
:reduce="book => `${book.author.firstName} ${book.author.lastName}`"
/>
```
```
+6 -1
View File
@@ -1,3 +1,8 @@
<script setup>
import SponsorBanner from '.vitepress/components/SponsorBanner.vue';
import CountrySelect from '.vitepress/components/CountrySelect.vue';
</script>
<SponsorBanner />
# Vue Select
@@ -18,7 +23,7 @@ lightweight as possible, while maintaining high standards for accessibility,
developer experience, and customization.
<div style="max-width:25rem; margin: 0 auto; padding: 1rem 0;">
<country-select />
<CountrySelect />
</div>
Vue Select aims to be as lightweight as possible, while maintaining high standards for accessibility,
-30
View File
@@ -1,30 +0,0 @@
{
"name": "@vue-select/docs",
"version": "1.0.0",
"license": "MIT",
"scripts": {
"serve": "vuepress dev",
"build": "vuepress build",
"build:preview": "cross-env DEPLOY_PREVIEW=true vuepress build"
},
"devDependencies": {
"@octokit/graphql": "^4.3.1",
"@popperjs/core": "^2.1.0",
"@vuepress/plugin-active-header-links": "^1.4.0",
"@vuepress/plugin-google-analytics": "^1.4.0",
"@vuepress/plugin-nprogress": "^1.4.0",
"@vuepress/plugin-pwa": "^1.4.0",
"@vuepress/plugin-register-components": "^1.4.0",
"@vuepress/plugin-search": "^1.4.0",
"axios": "^0.19.2",
"cross-env": "^7.0.2",
"date-fns": "^2.11.0",
"dotenv": "^8.2.0",
"fuse.js": "^6.4.0",
"gh-pages": "^2.2.0",
"octonode": "^0.9.5",
"vue": "^2.6.10",
"vuepress": "^1.4.0",
"vuex": "^3.1.0"
}
}
-8317
View File
File diff suppressed because it is too large Load Diff
+4 -2
View File
@@ -23,8 +23,9 @@
"license": "MIT",
"prepare": "npm run build",
"scripts": {
"dev:docs": "cd docs && yarn serve",
"build:docs": "cd docs && yarn build",
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:serve": "vitepress serve docs",
"semantic-release": "semantic-release",
"commit": "git-cz",
"dev": "vite",
@@ -68,6 +69,7 @@
"semantic-release": "^19.0.3",
"typescript": "^4.7.4",
"vite": "^3.0.0",
"vitepress": "^1.0.0-alpha.4",
"vitest": "^0.18.1",
"vue": "^3.2.37",
"vue-tsc": "^0.38.8"
+2 -6
View File
@@ -1,12 +1,8 @@
export default {
mounted(el, { instance }) {
if (instance.appendToBody) {
const {
height,
top,
left,
width,
} = instance.$refs.toggle.getBoundingClientRect()
const { height, top, left, width } =
instance.$refs.toggle.getBoundingClientRect()
let scrollX = window.scrollX || window.pageXOffset
let scrollY = window.scrollY || window.pageYOffset
el.unbindPosition = instance.calculatePosition(el, instance, {
+15 -12
View File
@@ -1,14 +1,17 @@
{
"files": [],
"references": [
{
"path": "./tsconfig.vite-config.json"
},
{
"path": "./tsconfig.app.json"
},
{
"path": "./tsconfig.vitest.json"
}
]
"files": [],
"references": [
{
"path": "./tsconfig.vite-config.json"
},
{
"path": "./tsconfig.app.json"
},
{
"path": "./tsconfig.vitest.json"
},
{
"path": "./tsconfig.vitepress.json"
}
]
}
+9
View File
@@ -0,0 +1,9 @@
{
"extends": "@vue/tsconfig/tsconfig.web.json",
"include": ["./docs/.vitepress/**/*"],
"exclude": [],
"compilerOptions": {
"composite": true,
"baseUrl": "."
}
}
+302 -8
View File
@@ -2,6 +2,129 @@
# yarn lockfile v1
"@algolia/autocomplete-core@1.7.1":
version "1.7.1"
resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.7.1.tgz#025538b8a9564a9f3dd5bcf8a236d6951c76c7d1"
integrity sha512-eiZw+fxMzNQn01S8dA/hcCpoWCOCwcIIEUtHHdzN5TGB3IpzLbuhqFeTfh2OUhhgkE8Uo17+wH+QJ/wYyQmmzg==
dependencies:
"@algolia/autocomplete-shared" "1.7.1"
"@algolia/autocomplete-preset-algolia@1.7.1":
version "1.7.1"
resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.1.tgz#7dadc5607097766478014ae2e9e1c9c4b3f957c8"
integrity sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==
dependencies:
"@algolia/autocomplete-shared" "1.7.1"
"@algolia/autocomplete-shared@1.7.1":
version "1.7.1"
resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.1.tgz#95c3a0b4b78858fed730cf9c755b7d1cd0c82c74"
integrity sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg==
"@algolia/cache-browser-local-storage@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.12.1.tgz#23f4f219963b96918d0524acd09d4d646541d888"
integrity sha512-ERFFOnC9740xAkuO0iZTQqm2AzU7Dpz/s+g7o48GlZgx5p9GgNcsuK5eS0GoW/tAK+fnKlizCtlFHNuIWuvfsg==
dependencies:
"@algolia/cache-common" "4.12.1"
"@algolia/cache-common@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.12.1.tgz#d3f1676ca9c404adce0f78d68f6381bedb44cd9c"
integrity sha512-UugTER3V40jT+e19Dmph5PKMeliYKxycNPwrPNADin0RcWNfT2QksK9Ff2N2W7UKraqMOzoeDb4LAJtxcK1a8Q==
"@algolia/cache-in-memory@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.12.1.tgz#0ef6aac2f8feab5b46fc130beb682bbd21b55244"
integrity sha512-U6iaunaxK1lHsAf02UWF58foKFEcrVLsHwN56UkCtwn32nlP9rz52WOcHsgk6TJrL8NDcO5swMjtOQ5XHESFLw==
dependencies:
"@algolia/cache-common" "4.12.1"
"@algolia/client-account@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.12.1.tgz#e838c9283db2fab32a425dd13c77da321d48fd8b"
integrity sha512-jGo4ConJNoMdTCR2zouO0jO/JcJmzOK6crFxMMLvdnB1JhmMbuIKluOTJVlBWeivnmcsqb7r0v7qTCPW5PAyxQ==
dependencies:
"@algolia/client-common" "4.12.1"
"@algolia/client-search" "4.12.1"
"@algolia/transporter" "4.12.1"
"@algolia/client-analytics@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.12.1.tgz#2976d658655a1590cf84cfb596aa75a204f6dec4"
integrity sha512-h1It7KXzIthlhuhfBk7LteYq72tym9maQDUsyRW0Gft8b6ZQahnRak9gcCvKwhcJ1vJoP7T7JrNYGiYSicTD9g==
dependencies:
"@algolia/client-common" "4.12.1"
"@algolia/client-search" "4.12.1"
"@algolia/requester-common" "4.12.1"
"@algolia/transporter" "4.12.1"
"@algolia/client-common@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.12.1.tgz#104ccefe96bda3ff926bc70c31ff6d17c41b6107"
integrity sha512-obnJ8eSbv+h94Grk83DTGQ3bqhViSWureV6oK1s21/KMGWbb3DkduHm+lcwFrMFkjSUSzosLBHV9EQUIBvueTw==
dependencies:
"@algolia/requester-common" "4.12.1"
"@algolia/transporter" "4.12.1"
"@algolia/client-personalization@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.12.1.tgz#f63d1890f95de850e1c8e41c1d57adda521d9e7f"
integrity sha512-sMSnjjPjRgByGHYygV+5L/E8a6RgU7l2GbpJukSzJ9GRY37tHmBHuvahv8JjdCGJ2p7QDYLnQy5bN5Z02qjc7Q==
dependencies:
"@algolia/client-common" "4.12.1"
"@algolia/requester-common" "4.12.1"
"@algolia/transporter" "4.12.1"
"@algolia/client-search@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.12.1.tgz#fcd7a974be5d39d5c336d7f2e89577ffa66aefdd"
integrity sha512-MwwKKprfY6X2nJ5Ki/ccXM2GDEePvVjZnnoOB2io3dLKW4fTqeSRlC5DRXeFD7UM0vOPPHr4ItV2aj19APKNVQ==
dependencies:
"@algolia/client-common" "4.12.1"
"@algolia/requester-common" "4.12.1"
"@algolia/transporter" "4.12.1"
"@algolia/logger-common@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.12.1.tgz#d6501b4d9d242956257ba8e10f6b4bbf6863baa4"
integrity sha512-fCgrzlXGATNqdFTxwx0GsyPXK+Uqrx1SZ3iuY2VGPPqdt1a20clAG2n2OcLHJpvaa6vMFPlJyWvbqAgzxdxBlQ==
"@algolia/logger-console@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.12.1.tgz#841edd39dd5c5530a69fc66084bfee3254dd0807"
integrity sha512-0owaEnq/davngQMYqxLA4KrhWHiXujQ1CU3FFnyUcMyBR7rGHI48zSOUpqnsAXrMBdSH6rH5BDkSUUFwsh8RkQ==
dependencies:
"@algolia/logger-common" "4.12.1"
"@algolia/requester-browser-xhr@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.12.1.tgz#2d0c18ee188d7cae0e4a930e5e89989e3c4a816b"
integrity sha512-OaMxDyG0TZG0oqz1lQh9e3woantAG1bLnuwq3fmypsrQxra4IQZiyn1x+kEb69D2TcXApI5gOgrD4oWhtEVMtw==
dependencies:
"@algolia/requester-common" "4.12.1"
"@algolia/requester-common@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.12.1.tgz#95bb6539da7199da3e205341cea8f27267f7af29"
integrity sha512-XWIrWQNJ1vIrSuL/bUk3ZwNMNxl+aWz6dNboRW6+lGTcMIwc3NBFE90ogbZKhNrFRff8zI4qCF15tjW+Fyhpow==
"@algolia/requester-node-http@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.12.1.tgz#c9df97ff1daa7e58c5c2b1f28cf7163005edccb0"
integrity sha512-awBtwaD+s0hxkA1aehYn8F0t9wqGoBVWgY4JPHBmp1ChO3pK7RKnnvnv7QQa9vTlllX29oPt/BBVgMo1Z3n1Qg==
dependencies:
"@algolia/requester-common" "4.12.1"
"@algolia/transporter@4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.12.1.tgz#61b9829916c474f42e2d4a6eada0d6c138379945"
integrity sha512-BGeNgdEHc6dXIk2g8kdlOoQ6fQ6OIaKQcplEj7HPoi+XZUeAvRi3Pff3QWd7YmybWkjzd9AnTzieTASDWhL+sQ==
dependencies:
"@algolia/cache-common" "4.12.1"
"@algolia/logger-common" "4.12.1"
"@algolia/requester-common" "4.12.1"
"@babel/code-frame@^7.0.0":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
@@ -94,6 +217,29 @@
dependencies:
"@jridgewell/trace-mapping" "0.3.9"
"@docsearch/css@3.1.1", "@docsearch/css@^3.0.0":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.1.1.tgz#e0976bf995e383f8ee8657306311b9cb95016330"
integrity sha512-utLgg7E1agqQeqCJn05DWC7XXMk4tMUUnL7MZupcknRu2OzGN13qwey2qA/0NAKkVBGugiWtON0+rlU0QIPojg==
"@docsearch/js@^3.0.0":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.1.1.tgz#fbcf85d034b11ae15397310ef117c7d6fb4e6871"
integrity sha512-bt7l2aKRoSnLUuX+s4LVQ1a7AF2c9myiZNv5uvQCePG5tpvVGpwrnMwqVXOUJn9q6FwVVhOrQMO/t+QmnnAEUw==
dependencies:
"@docsearch/react" "3.1.1"
preact "^10.0.0"
"@docsearch/react@3.1.1":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.1.1.tgz#3dffb5db8cf9eb95d6e732cf038264bfc10191ed"
integrity sha512-cfoql4qvtsVRqBMYxhlGNpvyy/KlCoPqjIsJSZYqYf9AplZncKjLBTcwBu6RXFMVCe30cIFljniI4OjqAU67pQ==
dependencies:
"@algolia/autocomplete-core" "1.7.1"
"@algolia/autocomplete-preset-algolia" "1.7.1"
"@docsearch/css" "3.1.1"
algoliasearch "^4.0.0"
"@eslint/eslintrc@^1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f"
@@ -636,6 +782,11 @@
resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397"
integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==
"@types/web-bluetooth@^0.0.14":
version "0.0.14"
resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz#94e175b53623384bff1f354cdb3197a8d63cdbe5"
integrity sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==
"@typescript-eslint/eslint-plugin@^5.0.0":
version "5.30.6"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.6.tgz#9c6017b6c1d04894141b4a87816388967f64c359"
@@ -716,6 +867,11 @@
"@typescript-eslint/types" "5.30.6"
eslint-visitor-keys "^3.3.0"
"@vitejs/plugin-vue@^2.3.2":
version "2.3.3"
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz#fbf80cc039b82ac21a1acb0f0478de8f61fbf600"
integrity sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==
"@vitejs/plugin-vue@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.0.0.tgz#7081e2b3fbe04e291bb85107b9fb57a1fa5e6aeb"
@@ -797,6 +953,11 @@
"@vue/compiler-dom" "3.2.37"
"@vue/shared" "3.2.37"
"@vue/devtools-api@^6.1.4":
version "6.2.1"
resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.2.1.tgz#6f2948ff002ec46df01420dfeff91de16c5b4092"
integrity sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==
"@vue/eslint-config-prettier@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz#44ab55ca22401102b57795c59428e9dade72be34"
@@ -872,6 +1033,28 @@
resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz#4a61dbd29783d01ddab504276dcf0c2b6988654f"
integrity sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==
"@vueuse/core@^8.5.0":
version "8.9.3"
resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-8.9.3.tgz#209ca814a6bd4cbc45c799069efc8cd140e407f0"
integrity sha512-q2pr3N7FPG7IBBhEXTYOJU+38VwKMLP5IfD33byzBV4Th7f1JHT4qPKvJrvr17knAefPRzNqgt9et+xFqaRlPQ==
dependencies:
"@types/web-bluetooth" "^0.0.14"
"@vueuse/metadata" "8.9.3"
"@vueuse/shared" "8.9.3"
vue-demi "*"
"@vueuse/metadata@8.9.3":
version "8.9.3"
resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-8.9.3.tgz#5370d787d324bba111a642b016225c8d0a59fcf9"
integrity sha512-57gZZKtWAmcJaUBmciCohvmumVLz4+FnoVnWj7U5BWs5PC2/7gU9Z0/i1i9leDNeboAauFzAq7z1GjS8eYnT+w==
"@vueuse/shared@8.9.3":
version "8.9.3"
resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-8.9.3.tgz#5083ccf6a1f87a4a7a87410c180d6576a3aa4446"
integrity sha512-foorYQAU3CGknAO1w9No/rpGBJmb7L74MPltnZAYxeBRfhsajjJYYgja+D5IT2vT+/a0NciISaVp3fDwMN1ocA==
dependencies:
vue-demi "*"
JSONStream@^1.0.4:
version "1.3.5"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
@@ -967,6 +1150,26 @@ ajv@^8.11.0:
require-from-string "^2.0.2"
uri-js "^4.2.2"
algoliasearch@^4.0.0:
version "4.12.1"
resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.12.1.tgz#574a2c5424c4b6681c026928fb810be2d2ec3924"
integrity sha512-c0dM1g3zZBJrkzE5GA/Nu1y3fFxx3LCzxKzcmp2dgGS8P4CjszB/l3lsSh2MSrrK1Hn/KV4BlbBMXtYgG1Bfrw==
dependencies:
"@algolia/cache-browser-local-storage" "4.12.1"
"@algolia/cache-common" "4.12.1"
"@algolia/cache-in-memory" "4.12.1"
"@algolia/client-account" "4.12.1"
"@algolia/client-analytics" "4.12.1"
"@algolia/client-common" "4.12.1"
"@algolia/client-personalization" "4.12.1"
"@algolia/client-search" "4.12.1"
"@algolia/logger-common" "4.12.1"
"@algolia/logger-console" "4.12.1"
"@algolia/requester-browser-xhr" "4.12.1"
"@algolia/requester-common" "4.12.1"
"@algolia/requester-node-http" "4.12.1"
"@algolia/transporter" "4.12.1"
ansi-escapes@^4.2.1:
version "4.3.2"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
@@ -1169,6 +1372,11 @@ bl@^4.1.0:
inherits "^2.0.4"
readable-stream "^3.4.0"
body-scroll-lock@^4.0.0-beta.0:
version "4.0.0-beta.0"
resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz#4f78789d10e6388115c0460cd6d7d4dd2bbc4f7e"
integrity sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==
boolbase@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
@@ -2050,7 +2258,7 @@ esbuild-windows-arm64@0.14.49:
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.49.tgz#d83c03ff6436caf3262347cfa7e16b0a8049fae7"
integrity sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==
esbuild@^0.14.47:
esbuild@^0.14.27, esbuild@^0.14.47:
version "0.14.49"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.49.tgz#b82834760eba2ddc17b44f05cfcc0aaca2bae492"
integrity sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==
@@ -2202,7 +2410,7 @@ eslint@^8.20.0:
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
espree@^9.3.1, espree@^9.3.2:
espree@^9.3.2:
version "9.3.2"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596"
integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==
@@ -3212,6 +3420,11 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
jsonc-parser@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.1.0.tgz#73b8f0e5c940b83d03476bc2e51a20ef0932615d"
integrity sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==
jsonfile@^6.0.1:
version "6.1.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
@@ -4384,7 +4597,7 @@ postcss-value-parser@^4.2.0:
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.1.10, postcss@^8.4.14:
postcss@^8.1.10, postcss@^8.4.13, postcss@^8.4.14:
version "8.4.14"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
@@ -4393,6 +4606,11 @@ postcss@^8.1.10, postcss@^8.4.14:
picocolors "^1.0.0"
source-map-js "^1.0.2"
preact@^10.0.0:
version "10.6.6"
resolved "https://registry.yarnpkg.com/preact/-/preact-10.6.6.tgz#f1899bc8dab7c0788b858481532cb3b5d764a520"
integrity sha512-dgxpTFV2vs4vizwKohYKkk7g7rmp1wOOcfd4Tz3IB3Wi+ivZzsn/SpeKJhRENSE+n8sUfsAl4S3HiCVT923ABw==
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -4669,7 +4887,7 @@ resolve-global@^1.0.0:
dependencies:
global-dirs "^0.1.1"
resolve@^1.10.0, resolve@^1.22.1:
resolve@^1.10.0, resolve@^1.22.0, resolve@^1.22.1:
version "1.22.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
@@ -4708,7 +4926,7 @@ rimraf@^3.0.0, rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
rollup@^2.75.6:
rollup@^2.59.0, rollup@^2.75.6:
version "2.77.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.0.tgz#749eaa5ac09b6baa52acc076bc46613eddfd53f4"
integrity sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g==
@@ -4812,7 +5030,7 @@ semver@^6.0.0, semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7:
semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7:
version "7.3.7"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
@@ -4836,7 +5054,21 @@ shebang-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
shiki@^0.10.1:
version "0.10.1"
resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.10.1.tgz#6f9a16205a823b56c072d0f1a0bcd0f2646bef14"
integrity sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==
dependencies:
jsonc-parser "^3.0.0"
vscode-oniguruma "^1.6.1"
vscode-textmate "5.2.0"
signal-exit@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
signal-exit@^3.0.3, signal-exit@^3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -5446,6 +5678,33 @@ verror@1.10.0:
optionalDependencies:
fsevents "~2.3.2"
vite@^2.9.7:
version "2.9.14"
resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.14.tgz#c438324c6594afd1050df3777da981dee988bb1b"
integrity sha512-P/UCjSpSMcE54r4mPak55hWAZPlyfS369svib/gpmz8/01L822lMPOJ/RYW6tLCe1RPvMvOsJ17erf55bKp4Hw==
dependencies:
esbuild "^0.14.27"
postcss "^8.4.13"
resolve "^1.22.0"
rollup "^2.59.0"
optionalDependencies:
fsevents "~2.3.2"
vitepress@^1.0.0-alpha.4:
version "1.0.0-alpha.4"
resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.0.0-alpha.4.tgz#2d9929e2cade3d98f57f61848c01968fb386cee0"
integrity sha512-bOAA4KW6vYGlkbcrPLZLTKWTgXVroObU+o9xj9EENyEl6yg26WWvfN7DGA4BftjdM5O8nR93Z5khPQ3W/tFE7Q==
dependencies:
"@docsearch/css" "^3.0.0"
"@docsearch/js" "^3.0.0"
"@vitejs/plugin-vue" "^2.3.2"
"@vue/devtools-api" "^6.1.4"
"@vueuse/core" "^8.5.0"
body-scroll-lock "^4.0.0-beta.0"
shiki "^0.10.1"
vite "^2.9.7"
vue "^3.2.33"
vitest@^0.18.1:
version "0.18.1"
resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.18.1.tgz#33c5003fc8c4b296801897ae1a3f142f57015574"
@@ -5461,6 +5720,41 @@ vitest@^0.18.1:
tinyspy "^1.0.0"
vite "^2.9.12 || ^3.0.0-0"
vscode-languageserver-textdocument@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.4.tgz#3cd56dd14cec1d09e86c4bb04b09a246cb3df157"
integrity sha512-/xhqXP/2A2RSs+J8JNXpiiNVvvNM0oTosNVmQnunlKvq9o4mupHOBAnnzH0lwIPKazXKvAKsVp1kr+H/K4lgoQ==
vscode-languageserver-types@^3.16.0:
version "3.16.0"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247"
integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==
vscode-nls@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840"
integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==
vscode-oniguruma@^1.6.1:
version "1.6.2"
resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607"
integrity sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==
vscode-textmate@5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e"
integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==
vscode-uri@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.3.tgz#a95c1ce2e6f41b7549f86279d19f47951e4f4d84"
integrity sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==
vue-demi@*:
version "0.13.4"
resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.4.tgz#fcb320892d78d3a7ec227024776f77d9a5c4831d"
integrity sha512-KP4lq9uSz0KZbaqCllRhnxMV3mYRsRWJfdsAhZyt5bV5O1RTpoeDptBRV9NOa/JgOpfaA9ane88VF7OjWNK/DA==
vue-eslint-parser@^9.0.0, vue-eslint-parser@^9.0.1:
version "9.0.3"
resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.0.3.tgz#0c17a89e0932cc94fa6a79f0726697e13bfe3c96"
@@ -5481,7 +5775,7 @@ vue-tsc@^0.38.8:
dependencies:
"@volar/vue-typescript" "0.38.8"
vue@^3.2.37:
vue@^3.2.33, vue@^3.2.37:
version "3.2.37"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.37.tgz#da220ccb618d78579d25b06c7c21498ca4e5452e"
integrity sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==