LemonadeJS Dropdown
Official website and documentation is here
Compatible with Vanilla JavaScript, LemonadeJS, React, Vue or Angular.
The LemonadeJS Dropdown is a versatile solution for efficient option management. It is a framework-agnostic JavaScript plugin designed for seamless integration with Vue, React, and Angular. This feature-rich dropdown incorporates autocomplete for swift selections, grouping for organized options, and lazy loading for optimized performance, contributing to a smooth and improved user experience.
Features
- Lightweight: The JavaScript Dropdown is only about 2 KBytes;
- Integration: It can be used as a standalone library or integrated with any modern framework;
Getting Started
You can install using NPM or using directly from a CDN.
npm Installation
To install it in your project using npm, run the following command:
$ npm install @lemonadejs/dropdown
CDN
To use Dropdown via a CDN, include the following script tags in your HTML file:
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lemonadejs/dist/lemonade.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@lemonadejs/modal/dist/index.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@lemonadejs/modal/dist/style.min.css" />
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@lemonadejs/dropdown/dist/index.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@lemonadejs/dropdown/dist/style.min.css" />
Usage
Quick example with Lemonade
import Dropdown from '@lemonadejs/dropdown';
import '@lemonadejs/dropdown/dist/style.css'
import '@lemonadejs/modal/dist/style.css';
export default function App() {
const self = this;
self.data = [
{ text: "Red", value: 1 },
{ text: "Blue", value: 2 },
{ text: "Green", value: 3 },
{ text: "Yellow", value: 4 },
{ text: "Purple", value: 5 },
{ text: "Gray", value: 6 },
]
return `<div>
<Dropdown :data="self.data" :value="1" />
</div>`
}
Quick example with React
import React, { useRef } from 'react';
import Dropdown from '@lemonadejs/dropdown/dist/react';
import '@lemonadejs/dropdown/dist/style.css'
import '@lemonadejs/modal/dist/style.css';
const data = [
{ text: "Red", value: 1 },
{ text: "Blue", value: 2 },
{ text: "Green", value: 3 },
{ text: "Yellow", value: 4 },
{ text: "Purple", value: 5 },
{ text: "Gray", value: 6 },
]
export default function App() {
const dropdown = useRef();
return (
<div>
<Dropdown data={data} ref={dropdown} value={1} />
</div>);
}
Quick example with Vue
<template>
<Dropdown :data="data" :value="1" />
</template>
<script>
import Dropdown from '@lemonadejs/dropdown/dist/vue'
import '@lemonadejs/dropdown/dist/style.css'
import '@lemonadejs/modal/dist/style.css'
export default {
name: 'App',
components: {
Dropdown
},
data() {
return {
data: [
{ text: "Red", value: 1 },
{ text: "Blue", value: 2 },
{ text: "Green", value: 3 },
{ text: "Yellow", value: 4 },
{ text: "Purple", value: 5 },
{ text: "Gray", value: 6 },
]
};
},
}
</script>
Settings
Attribute | Description |
---|
data: Item[] | An array of options to be displayed. Each item should follow the structure defined in the 'Item Details' section. |
multiple?: boolean | If provided, enables the multiple selection mode, allowing users to select more than one option simultaneously. |
autocomplete?: boolean | If provided, enables the autocomplete feature, displaying an input field that allows users to filter and quickly find options in the Dropdown. |
value?: string | Represents the current value or selected option in the Dropdown. |
type?: string | Specifies the type of display the Dropdown will use. It can be "searchbar" for a search bar interface, "picker" for a selection picker, or "default" for the default dropdown appearance. |
insert?: boolean | Enables the insert feature, allowing users to add a new option directly by typing the title text and clicking on the plus symbol. |
format?: number | Data format type, usually in the form of { id: name } or { value: text } |
width?: number | Specifies the width of the dropdown. |
placeholder?: string | Placeholder text to guide users in the dropdown. |
url?: string | Specifies the URL for fetching the data. Do not declare the data attribute for the url to function properly. |
Item Details
Attribute | Description |
---|
value?: number or string | Represents the identifier or unique value associated with the option. |
group?: string | Indicates the group to which the option belongs, allowing for segregation and organization. |
text?: string | Displays the label or text associated with the option. |
image?: string | Specifies the image URL to be displayed alongside the option. |
synonyms?: string[] | Keywords for easier item identification |
disabled?: boolean | Indicates whether the item is currently disabled |
color?: string | Specifies the color associated with the item |
Events
Event | Trigger |
---|
onclose?: () => void | Invoked when the dropdown modal is closed. |
onbeforeinsert?: (instance, Item) => void | Invoked before an item is added to the options through the insert feature. |
oninsert?: (instance, Item) => void | Invoked after an item is added to the options through the insert feature. |
onchange?: (instance, Item) => void | Invoked when the value changes. |
onload?: (instance, Item) => void | Invoked when appended to the DOM. |
onsearch?: (instance, Item) => void | Invoked when searching for an item. |
| |
onbeforesearch?: (instance, Item) => void | Invoked before initiating a search. |
| |
onopen?: (instance) => void | Invoked when the dropdown is opened. |
License
The LemonadeJS LemonadeJS Dropdown is released under the MIT.
Other Tools