{"id":13418867,"url":"https://github.com/shentao/vue-multiselect","last_synced_at":"2025-09-09T20:44:40.404Z","repository":{"id":38239827,"uuid":"56919458","full_name":"shentao/vue-multiselect","owner":"shentao","description":"Universal select/multiselect/tagging component for Vue.js","archived":false,"fork":false,"pushed_at":"2025-07-26T16:40:20.000Z","size":17813,"stargazers_count":6783,"open_issues_count":293,"forks_count":999,"subscribers_count":97,"default_branch":"master","last_synced_at":"2025-09-07T04:29:36.037Z","etag":null,"topics":["component","dropdown","javascript","select","vue"],"latest_commit_sha":null,"homepage":"https://vue-multiselect.js.org/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shentao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/funding.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["shentao","akki-jat","mattelen"]}},"created_at":"2016-04-23T13:02:33.000Z","updated_at":"2025-09-04T01:49:23.000Z","dependencies_parsed_at":"2022-07-04T10:42:29.193Z","dependency_job_id":"120f22b6-71fe-41ff-b701-d0eb380e4b9d","html_url":"https://github.com/shentao/vue-multiselect","commit_stats":{"total_commits":545,"total_committers":107,"mean_commits":5.093457943925234,"dds":0.6990825688073394,"last_synced_commit":"f1581fc5e9f17e6ae73f5da91ea931dae6c61992"},"previous_names":["monterail/vue-multiselect"],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/shentao/vue-multiselect","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shentao%2Fvue-multiselect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shentao%2Fvue-multiselect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shentao%2Fvue-multiselect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shentao%2Fvue-multiselect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shentao","download_url":"https://codeload.github.com/shentao/vue-multiselect/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shentao%2Fvue-multiselect/sbom","scorecard":{"id":659090,"data":{"date":"2025-08-11","repo":{"name":"github.com/shentao/vue-multiselect","commit":"3845889da3ad104754b6d9940a070aa6e87c95dd"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.8,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/gh-pages.yml:14","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":10,"reason":"16 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: docs/shiki/dist/onig.wasm:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gh-pages.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/shentao/vue-multiselect/gh-pages.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gh-pages.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/shentao/vue-multiselect/gh-pages.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gh-pages.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/shentao/vue-multiselect/gh-pages.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gh-pages.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/shentao/vue-multiselect/gh-pages.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gh-pages.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/shentao/vue-multiselect/gh-pages.yml/master?enable=pin","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"18 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-4www-5p9h-95mh","Warn: Project is vulnerable to: GHSA-9gqv-wp59-fq42","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-vg6x-rcgg-rjx6","Warn: Project is vulnerable to: GHSA-x574-m823-4x7w","Warn: Project is vulnerable to: GHSA-4r4m-qw57-chr8","Warn: Project is vulnerable to: GHSA-xcj6-pq6g-qj4x","Warn: Project is vulnerable to: GHSA-356w-63v5-8wf4","Warn: Project is vulnerable to: GHSA-859w-5945-r5v3","Warn: Project is vulnerable to: GHSA-g3ch-rx76-35fx","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T15:33:12.619Z","repository_id":38239827,"created_at":"2025-08-21T15:33:12.620Z","updated_at":"2025-08-21T15:33:12.620Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274026687,"owners_count":25209739,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["component","dropdown","javascript","select","vue"],"created_at":"2024-07-30T22:01:08.136Z","updated_at":"2025-09-09T20:44:40.389Z","avatar_url":"https://github.com/shentao.png","language":"JavaScript","funding_links":["https://github.com/sponsors/shentao","https://github.com/sponsors/akki-jat","https://github.com/sponsors/mattelen"],"categories":["JavaScript","UI Components","Vue"],"sub_categories":["Form"],"readme":"# vue-multiselect\n\n## Documentation for version 3 (Compatible with Vue 3)\n\nDocumentation for v3.0.0 is almost the same as for v2.x as it is mostly backward compatible. For the full docs for v3 and previous versions, check out: [vue-multiselect.js.org](https://vue-multiselect.js.org/#sub-getting-started)\n\n## Sponsors\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://getform.io/\" target=\"_blank\"\u003e\n    \u003cimg src=\"./svg/getform.svg\" alt=\"GetForm Logo\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://suade.org/\" target=\"_blank\"\u003e\n    \u003cimg src=\"./svg/suade.svg\" alt=\"Suade Logo\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.storyblok.com/developers?utm_source=newsletter\u0026utm_medium=logo\u0026utm_campaign=vuejs-newsletter\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://a.storyblok.com/f/51376/3856x824/fea44d52a9/colored-full.png\" alt=\"Storyblok\" width=\"240px\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.vuemastery.com/\" target=\"_blank\"\u003e\n    \u003cimg src=\"./svg/vuemastery.svg\" alt=\"Vue Mastery Logo\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Features \u0026 characteristics:\n* Vue 3 Compatible\n* NO dependencies\n* Single select\n* Multiple select\n* Tagging\n* Dropdowns\n* Filtering\n* Search with suggestions\n* Logic split into mixins\n* Basic component and support for custom components\n* V-model support\n* Vuex support\n* Async options support\n* Fully configurable (see props list below)\n\n\n## Install \u0026 basic usage\n\n```bash\nnpm install vue-multiselect\n```\n\n```vue\n\u003ctemplate\u003e\n  \u003cdiv\u003e\n    \u003cVueMultiselect\n      v-model=\"selected\"\n      :options=\"options\"\u003e\n    \u003c/VueMultiselect\u003e\n  \u003c/div\u003e\n\u003c/template\u003e\n\n\u003cscript\u003e\nimport VueMultiselect from 'vue-multiselect'\nexport default {\n  components: { VueMultiselect },\n  data () {\n    return {\n      selected: null,\n      options: ['list', 'of', 'options']\n    }\n  }\n}\n\u003c/script\u003e\n\n\u003cstyle src=\"vue-multiselect/dist/vue-multiselect.css\"\u003e\u003c/style\u003e\n```\n\n## JSFiddle\n\n[Example JSFiddle](https://jsfiddle.net/mattelen/8cyt3hrn/5/) – Use this for issue reproduction.\n\n## Examples\n\n### Single select / dropdown\n```vue\n\u003cVueMultiselect\n  :model-value=\"value\"\n  :options=\"source\"\n  :searchable=\"false\"\n  :close-on-select=\"false\"\n  :allow-empty=\"false\"\n  @update:model-value=\"updateSelected\"\n  label=\"name\"\n  placeholder=\"Select one\"\n  track-by=\"name\"\n/\u003e\n```\n\n### Single select with search\n```vue\n\u003cVueMultiselect\n  v-model=\"value\"\n  :options=\"source\"\n  :close-on-select=\"true\"\n  :clear-on-select=\"false\"\n  placeholder=\"Select one\"\n  label=\"name\"\n  track-by=\"name\"\n/\u003e\n```\n\n### Multiple select with search\n```vue\n\u003cVueMultiselect\n  v-model=\"multiValue\"\n  :options=\"source\"\n  :multiple=\"true\"\n  :close-on-select=\"true\"\n  placeholder=\"Pick some\"\n  label=\"name\"\n  track-by=\"name\"\n/\u003e\n```\n\n### Tagging\nwith `@tag` event\n```vue\n\u003cVueMultiselect\n  v-model=\"taggingSelected\"\n  :options=\"taggingOptions\"\n  :multiple=\"true\"\n  :taggable=\"true\"\n  @tag=\"addTag\"\n  tag-placeholder=\"Add this as new tag\"\n  placeholder=\"Type to search or add tag\"\n  label=\"name\"\n  track-by=\"code\"\n/\u003e\n```\n\n``` javascript\n\naddTag (newTag) {\n  const tag = {\n    name: newTag,\n    code: newTag.substring(0, 2) + Math.floor((Math.random() * 10000000))\n  }\n  this.taggingOptions.push(tag)\n  this.taggingSelected.push(tag)\n},\n```\n\n### Asynchronous dropdown\n```vue\n\u003cVueMultiselect\n  v-model=\"selectedCountries\"\n  :options=\"countries\"\n  :multiple=\"multiple\"\n  :searchable=\"searchable\"\n  @search-change=\"asyncFind\"\n  placeholder=\"Type to search\"\n  label=\"name\"\n  track-by=\"code\"\n\u003e\n  \u003ctemplate #noResult\u003e\n    Oops! No elements found. Consider changing the search query.\n  \u003c/template\u003e\n\u003c/VueMultiselect\u003e\n```\n\n``` javascript\nmethods: {\n  asyncFind (query) {\n    this.countries = findService(query)\n  }\n}\n```\n\n## ⚠️ Build Tool Compatibility\n\n**vue-multiselect requires Vue's Options API to function properly.** There are known issues with certain versions of `@vitejs/plugin-vue` that may inadvertently disable the Options API.\n\n### Known Issue with @vitejs/plugin-vue\n\nIf you're experiencing issues after updating `@vitejs/plugin-vue` to version 5.2.2 or later, consider downgrading to version 5.2.1:\n\n```bash\nnpm install @vitejs/plugin-vue@5.2.1\n```\n\nThis issue occurs because changes in the plugin's configuration handling can disable the Options API even when not explicitly configured. See [issue #1901](https://github.com/shentao/vue-multiselect/issues/1901) for more details.\n\n\n## Special Thanks\n\nThanks to Matt Elen for contributing this version!\n\n\u003e A Vue 3 upgrade of [@shentao's](https://github.com/shentao) [vue-mulitselect](https://github.com/shentao/vue-multiselect) component. The idea is that when you upgrade to Vue 3, you can swap the two components out, and everything should simply work. Feel free to check out our story of how we upgraded our product to Vue 3 on our blog at  [suade.org](https://suade.org/a-products-vue-3-migration-a-real-life-story/)\n\n## Contributing\n\n``` bash\n# distribution build with minification\nnpm run bundle\n\n# run unit tests\nnpm run test\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshentao%2Fvue-multiselect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshentao%2Fvue-multiselect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshentao%2Fvue-multiselect/lists"}