@learnforjob/react-multi-select-dropdown 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -0
- package/dist/components/MultiSelectDropdown.d.ts +40 -0
- package/dist/components/MultiSelectDropdown.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +2 -0
- package/dist/index.es.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/package.json +76 -0
package/README.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# React Multi Select Dropdown
|
|
2
|
+
|
|
3
|
+
A customizable, searchable, lightweight React multi-select dropdown with async loading, checkbox support, keyboard navigation, and virtualization.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install react-multi-select-dropdown
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```jsx
|
|
14
|
+
import React, { useState } from 'react';
|
|
15
|
+
import MultiSelectDropdown from 'react-multi-select-dropdown';
|
|
16
|
+
|
|
17
|
+
const options = [
|
|
18
|
+
{ label: 'React', value: 'react' },
|
|
19
|
+
{ label: 'Vue', value: 'vue' },
|
|
20
|
+
{ label: 'Angular', value: 'angular' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
function App() {
|
|
24
|
+
const [selected, setSelected] = useState([]);
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<MultiSelectDropdown
|
|
28
|
+
options={options}
|
|
29
|
+
value={selected}
|
|
30
|
+
onChange={setSelected}
|
|
31
|
+
placeholder="Select frameworks"
|
|
32
|
+
/>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export default App;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Props
|
|
40
|
+
|
|
41
|
+
| Prop | Type | Default | Description |
|
|
42
|
+
|------|------|---------|-------------|
|
|
43
|
+
| options | `Option[]` | `[]` | Array of options to display |
|
|
44
|
+
| value | `(string \| number)[]` | `[]` | Currently selected values |
|
|
45
|
+
| onChange | `(values: (string \| number)[]) => void` | `undefined` | Callback when selection changes |
|
|
46
|
+
| placeholder | `string` | `'Select options'` | Placeholder text when nothing is selected |
|
|
47
|
+
| disabled | `boolean` | `false` | Disable the dropdown |
|
|
48
|
+
| selectAllText | `string` | `'Select All'` | Text for select all checkbox |
|
|
49
|
+
| searchable | `boolean` | `true` | Enable search functionality |
|
|
50
|
+
| groupBy | `string` | `undefined` | Property to group options by |
|
|
51
|
+
| maxSelectionLimit | `number` | `undefined` | Maximum number of options that can be selected |
|
|
52
|
+
| renderOption | `(option: Option) => React.ReactNode` | `undefined` | Custom renderer for options |
|
|
53
|
+
| renderTag | `(option: Option) => React.ReactNode` | `undefined` | Custom renderer for selected tags |
|
|
54
|
+
| customClassName | `string` | `undefined` | Additional CSS class for the container |
|
|
55
|
+
|
|
56
|
+
## TypeScript Support
|
|
57
|
+
|
|
58
|
+
This package is written in TypeScript and includes type definitions.
|
|
59
|
+
|
|
60
|
+
## Customization
|
|
61
|
+
|
|
62
|
+
You can customize the rendering of options and selected tags:
|
|
63
|
+
|
|
64
|
+
```jsx
|
|
65
|
+
<MultiSelectDropdown
|
|
66
|
+
options={options}
|
|
67
|
+
value={selected}
|
|
68
|
+
onChange={setSelected}
|
|
69
|
+
renderOption={(option) => (
|
|
70
|
+
<div>
|
|
71
|
+
<strong>{option.label}</strong>
|
|
72
|
+
</div>
|
|
73
|
+
)}
|
|
74
|
+
renderTag={(option) => (
|
|
75
|
+
<span style={{ backgroundColor: 'lightblue' }}>
|
|
76
|
+
{option.label}
|
|
77
|
+
</span>
|
|
78
|
+
)}
|
|
79
|
+
/>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Grouped Options
|
|
83
|
+
|
|
84
|
+
To group options, use the `groupBy` prop:
|
|
85
|
+
|
|
86
|
+
```jsx
|
|
87
|
+
const groupedOptions = [
|
|
88
|
+
{ label: 'React', value: 'react', category: 'Framework' },
|
|
89
|
+
{ label: 'Vue', value: 'vue', category: 'Framework' },
|
|
90
|
+
{ label: 'HTML', value: 'html', category: 'Language' },
|
|
91
|
+
{ label: 'CSS', value: 'css', category: 'Language' },
|
|
92
|
+
];
|
|
93
|
+
|
|
94
|
+
<MultiSelectDropdown
|
|
95
|
+
options={groupedOptions}
|
|
96
|
+
value={selected}
|
|
97
|
+
onChange={setSelected}
|
|
98
|
+
groupBy="category"
|
|
99
|
+
/>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Accessibility
|
|
103
|
+
|
|
104
|
+
The component follows accessibility best practices:
|
|
105
|
+
- Keyboard navigation (Arrow keys, Enter, Escape)
|
|
106
|
+
- ARIA labels
|
|
107
|
+
- Screen reader support
|
|
108
|
+
|
|
109
|
+
## License
|
|
110
|
+
|
|
111
|
+
MIT
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "../styles/multiSelectDropdown.scss";
|
|
3
|
+
export interface Option {
|
|
4
|
+
label: string;
|
|
5
|
+
value: string | number;
|
|
6
|
+
}
|
|
7
|
+
export interface Theme {
|
|
8
|
+
primaryColor?: string;
|
|
9
|
+
primaryHover?: string;
|
|
10
|
+
bgColor?: string;
|
|
11
|
+
borderColor?: string;
|
|
12
|
+
textColor?: string;
|
|
13
|
+
placeholderColor?: string;
|
|
14
|
+
itemHoverBg?: string;
|
|
15
|
+
selectedBg?: string;
|
|
16
|
+
selectedColor?: string;
|
|
17
|
+
disabledBg?: string;
|
|
18
|
+
disabledColor?: string;
|
|
19
|
+
borderRadius?: string;
|
|
20
|
+
fontSize?: string;
|
|
21
|
+
headerHeight?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface MultiSelectDropdownProps {
|
|
24
|
+
options: Option[];
|
|
25
|
+
value: (string | number)[];
|
|
26
|
+
onChange: (values: (string | number)[]) => void;
|
|
27
|
+
placeholder?: string;
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
selectAllText?: string;
|
|
30
|
+
searchable?: boolean;
|
|
31
|
+
groupBy?: string;
|
|
32
|
+
maxSelectionLimit?: number;
|
|
33
|
+
renderOption?: (option: Option) => React.ReactNode;
|
|
34
|
+
renderTag?: (option: Option) => React.ReactNode;
|
|
35
|
+
customClassName?: string;
|
|
36
|
+
theme?: Theme;
|
|
37
|
+
}
|
|
38
|
+
declare const MultiSelectDropdown: ({ options, value, onChange, placeholder, disabled, selectAllText, searchable, groupBy, maxSelectionLimit, renderOption, renderTag: _renderTag, customClassName, theme, }: MultiSelectDropdownProps) => import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
export default MultiSelectDropdown;
|
|
40
|
+
//# sourceMappingURL=MultiSelectDropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiSelectDropdown.d.ts","sourceRoot":"","sources":["../../src/components/MultiSelectDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AACpE,OAAO,oCAAoC,CAAC;AAE5C,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,KAAK;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACnD,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,QAAA,MAAM,mBAAmB,GAAI,0KAc1B,wBAAwB,4CAmP1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClF,YAAY,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC"}
|
package/dist/index.es.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,jsx as n,Fragment as o}from"react/jsx-runtime";import{useState as r,useRef as t,useMemo as l,useEffect as i}from"react";!function(e,n){void 0===n&&(n={});var o=n.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css","top"===o&&r.firstChild?r.insertBefore(t,r.firstChild):r.appendChild(t),t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}}(".multi-select {\n --ms-primary-color: #339ef7;\n --ms-primary-hover: #1a8ceb;\n --ms-bg-color: #ffffff;\n --ms-border-color: #cccccc;\n --ms-text-color: #333333;\n --ms-placeholder-color: #495057;\n --ms-item-hover-bg: #ebf5ff;\n --ms-selected-bg: #339ef7;\n --ms-selected-color: #ffffff;\n --ms-disabled-bg: #e9ecef;\n --ms-disabled-color: #b3b3b3;\n --ms-border-radius: 4px;\n --ms-font-size: 1rem;\n --ms-header-height: 36px;\n width: 100%;\n position: relative;\n}\n.multi-select .dropdown-header {\n box-sizing: border-box;\n background-color: var(--ms-bg-color);\n border: 1px solid var(--ms-border-color);\n border-radius: var(--ms-border-radius);\n color: var(--ms-text-color);\n cursor: default;\n display: table;\n border-spacing: 0px;\n border-collapse: separate;\n height: var(--ms-header-height);\n outline: none;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n.multi-select .dropdown-header .dropdownText {\n box-sizing: border-box;\n inset: 0px;\n color: var(--ms-placeholder-color);\n font-size: var(--ms-font-size);\n line-height: calc(var(--ms-header-height) - 2px);\n padding-left: 10px;\n padding-right: 10px;\n position: absolute;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.multi-select .dropdown-header .arrowDown {\n box-sizing: border-box;\n border-color: rgb(153, 153, 153) transparent transparent;\n border-style: solid;\n border-width: 5px 5px 2.5px;\n display: inline-block;\n height: 0px;\n width: 0px;\n top: 14px;\n position: absolute;\n right: 8px;\n}\n.multi-select .dropdown-header .arrowUp {\n box-sizing: border-box;\n border-color: transparent transparent rgb(153, 153, 153);\n border-style: solid;\n border-width: 0px 5px 5px;\n display: inline-block;\n height: 0px;\n width: 0px;\n top: 14px;\n position: absolute;\n right: 8px;\n}\n.multi-select .dropdown-list {\n position: absolute;\n width: 100%;\n border: 1px solid var(--ms-border-color);\n border-top: none;\n background: var(--ms-bg-color);\n max-height: 300px;\n overflow-y: auto;\n z-index: 1000;\n}\n.multi-select .search-input {\n display: block;\n border-radius: 3px;\n box-sizing: border-box;\n height: 30px;\n line-height: 24px;\n border: 1px solid rgb(222, 226, 228);\n padding: 10px;\n width: stretch;\n outline: none;\n margin: 7px;\n}\n.multi-select .dropdown-item {\n padding: 10px 14px;\n cursor: pointer;\n color: rgb(102, 102, 102) !important;\n display: flex;\n font-size: 14px;\n margin: 0;\n align-items: flex-start;\n gap: 8px;\n}\n.multi-select .dropdown-item span {\n flex: 1;\n min-width: 0;\n word-break: break-all;\n overflow-wrap: anywhere;\n white-space: normal;\n}\n.multi-select .dropdown-item input {\n flex-shrink: 0;\n}\n.multi-select .dropdown-item:hover {\n background-color: var(--ms-item-hover-bg);\n}\n.multi-select .select-all {\n box-sizing: border-box;\n background-color: var(--ms-item-hover-bg);\n color: rgb(102, 102, 102);\n cursor: pointer;\n padding: 10px 14px;\n outline: 0px;\n margin-bottom: 6px;\n}\n.multi-select .dropdown-item.active {\n color: var(--ms-selected-color) !important;\n text-decoration: none;\n background-color: var(--ms-primary-color);\n}\n.multi-select .dropdown-item.active:hover {\n color: var(--ms-selected-color);\n}\n.multi-select .no-data {\n padding: 8px;\n text-align: center;\n color: #888;\n}\n.multi-select .multi-select.disabled .dropdown-header {\n background: var(--ms-disabled-bg);\n cursor: default;\n color: var(--ms-disabled-color);\n}",{insertAt:"top"});const s=({options:s=[],value:a=[],onChange:d,placeholder:c="Select options",disabled:p=!1,selectAllText:m="Select All",searchable:h=!0,groupBy:u,maxSelectionLimit:b,renderOption:g,renderTag:x,customClassName:v,theme:f})=>{const[w,y]=r(!1),[C,k]=r(""),N=t(null),z=l(()=>{if(!u)return s;const e=[],n=new Map;return s.forEach(e=>{const o=String(e[u]||"Other");n.has(o)||n.set(o,[]),n.get(o).push(e)}),n.forEach((n,o)=>{e.push({label:o,options:n})}),e},[s,u]),S=l(()=>{if(!h||!C)return u?z:s;const e=s.filter(e=>String(e?.label||"").toLowerCase().includes(C.toLowerCase()));return u?z.map(n=>({...n,options:n.options.filter(n=>e.some(e=>e.value===n.value))})).filter(e=>e.options.length>0):e},[s,C,h,u,z]),T=e=>{if(!a.includes(e)&&b&&a.length>=b)return;let n=[];n=a.includes(e)?a.filter(n=>n!==e):[...a,e],d&&d(n)},B=s.length>0&&s.every(e=>a.includes(e.value)),E=s.filter(e=>a.includes(e.value)).map(e=>e.label);return i(()=>{const e=e=>{N.current&&!N.current.contains(e.target)&&y(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]),i(()=>{w||k("")},[w]),e("div",{className:`multi-select ${p?"disabled":""} ${v||""}`,ref:N,style:{"--ms-primary-color":f?.primaryColor,"--ms-primary-hover":f?.primaryHover,"--ms-bg-color":f?.bgColor,"--ms-border-color":f?.borderColor,"--ms-text-color":f?.textColor,"--ms-placeholder-color":f?.placeholderColor,"--ms-item-hover-bg":f?.itemHoverBg,"--ms-selected-bg":f?.selectedBg,"--ms-selected-color":f?.selectedColor,"--ms-disabled-bg":f?.disabledBg,"--ms-disabled-color":f?.disabledColor,"--ms-border-radius":f?.borderRadius,"--ms-font-size":f?.fontSize,"--ms-header-height":f?.headerHeight},children:[e("div",{className:"dropdown-header",onClick:()=>{p||y(e=>!e)},children:[n("span",{className:"dropdownText",children:0===a.length?c:B?m:E.join(", ")}),n("span",{className:""+(w?"arrowUp":"arrowDown")})]}),w&&!p&&e("div",{className:"dropdown-list",children:[h&&n("input",{type:"text",className:"search-input",placeholder:"Search...",value:C,onChange:e=>k(e.target.value)}),s.length>0&&e("label",{className:"dropdown-item select-all",children:[e("span",{children:[m," "]}),n("input",{type:"checkbox",checked:B,onChange:()=>{const e=s.map(e=>e.value);let n=[];n=e.every(e=>a.includes(e))?[]:e,d&&d(n)}})]}),u?S.map((r,t)=>e("div",{className:"option-group",children:[n("div",{className:"group-label",children:r.label}),r.options.length>0?r.options.map((r,l)=>n("label",{className:"dropdown-item "+(a.includes(r.value)?"active":""),children:g?g(r):e(o,{children:[n("span",{children:r.label}),n("input",{type:"checkbox",checked:a.includes(r.value),onChange:()=>T(r.value)})]})},`${t}-${l}`)):n("div",{className:"no-data",children:"No results found"})]},`group-${t}`)):S.length>0?S.map(r=>n("label",{className:"dropdown-item "+(a.includes(r.value)?"active":""),children:g?g(r):e(o,{children:[n("span",{children:r.label}),n("input",{type:"checkbox",checked:a.includes(r.value),onChange:()=>T(r.value)})]})},r.value)):n("div",{className:"no-data",children:"No results found"})]})]})};export{s as MultiSelectDropdown};
|
|
2
|
+
//# sourceMappingURL=index.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/components/MultiSelectDropdown.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null],"names":["css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","MultiSelectDropdown","options","value","onChange","placeholder","disabled","selectAllText","searchable","groupBy","maxSelectionLimit","renderOption","renderTag","_renderTag","customClassName","theme","isOpen","setIsOpen","useState","searchTerm","setSearchTerm","dropdownRef","useRef","processedOptions","useMemo","groups","groupMap","Map","forEach","option","groupKey","String","has","set","get","push","opts","label","filteredOptions","searchableOptions","filter","toLowerCase","includes","map","group","some","opt","length","handleCheckboxChange","val","updated","v","isAllSelected","every","selectedLabels","useEffect","handleClickOutside","event","current","contains","target","addEventListener","removeEventListener","_jsxs","className","primaryColor","primaryHover","bgColor","borderColor","textColor","placeholderColor","itemHoverBg","selectedBg","selectedColor","disabledBg","disabledColor","borderRadius","fontSize","headerHeight","children","onClick","prev","_jsx","join","e","checked","allValues","groupIndex","optionIndex","_Fragment"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),n=require("react");!function(e,n){void 0===n&&(n={});var o=n.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css","top"===o&&r.firstChild?r.insertBefore(t,r.firstChild):r.appendChild(t),t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}}(".multi-select {\n --ms-primary-color: #339ef7;\n --ms-primary-hover: #1a8ceb;\n --ms-bg-color: #ffffff;\n --ms-border-color: #cccccc;\n --ms-text-color: #333333;\n --ms-placeholder-color: #495057;\n --ms-item-hover-bg: #ebf5ff;\n --ms-selected-bg: #339ef7;\n --ms-selected-color: #ffffff;\n --ms-disabled-bg: #e9ecef;\n --ms-disabled-color: #b3b3b3;\n --ms-border-radius: 4px;\n --ms-font-size: 1rem;\n --ms-header-height: 36px;\n width: 100%;\n position: relative;\n}\n.multi-select .dropdown-header {\n box-sizing: border-box;\n background-color: var(--ms-bg-color);\n border: 1px solid var(--ms-border-color);\n border-radius: var(--ms-border-radius);\n color: var(--ms-text-color);\n cursor: default;\n display: table;\n border-spacing: 0px;\n border-collapse: separate;\n height: var(--ms-header-height);\n outline: none;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n.multi-select .dropdown-header .dropdownText {\n box-sizing: border-box;\n inset: 0px;\n color: var(--ms-placeholder-color);\n font-size: var(--ms-font-size);\n line-height: calc(var(--ms-header-height) - 2px);\n padding-left: 10px;\n padding-right: 10px;\n position: absolute;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.multi-select .dropdown-header .arrowDown {\n box-sizing: border-box;\n border-color: rgb(153, 153, 153) transparent transparent;\n border-style: solid;\n border-width: 5px 5px 2.5px;\n display: inline-block;\n height: 0px;\n width: 0px;\n top: 14px;\n position: absolute;\n right: 8px;\n}\n.multi-select .dropdown-header .arrowUp {\n box-sizing: border-box;\n border-color: transparent transparent rgb(153, 153, 153);\n border-style: solid;\n border-width: 0px 5px 5px;\n display: inline-block;\n height: 0px;\n width: 0px;\n top: 14px;\n position: absolute;\n right: 8px;\n}\n.multi-select .dropdown-list {\n position: absolute;\n width: 100%;\n border: 1px solid var(--ms-border-color);\n border-top: none;\n background: var(--ms-bg-color);\n max-height: 300px;\n overflow-y: auto;\n z-index: 1000;\n}\n.multi-select .search-input {\n display: block;\n border-radius: 3px;\n box-sizing: border-box;\n height: 30px;\n line-height: 24px;\n border: 1px solid rgb(222, 226, 228);\n padding: 10px;\n width: stretch;\n outline: none;\n margin: 7px;\n}\n.multi-select .dropdown-item {\n padding: 10px 14px;\n cursor: pointer;\n color: rgb(102, 102, 102) !important;\n display: flex;\n font-size: 14px;\n margin: 0;\n align-items: flex-start;\n gap: 8px;\n}\n.multi-select .dropdown-item span {\n flex: 1;\n min-width: 0;\n word-break: break-all;\n overflow-wrap: anywhere;\n white-space: normal;\n}\n.multi-select .dropdown-item input {\n flex-shrink: 0;\n}\n.multi-select .dropdown-item:hover {\n background-color: var(--ms-item-hover-bg);\n}\n.multi-select .select-all {\n box-sizing: border-box;\n background-color: var(--ms-item-hover-bg);\n color: rgb(102, 102, 102);\n cursor: pointer;\n padding: 10px 14px;\n outline: 0px;\n margin-bottom: 6px;\n}\n.multi-select .dropdown-item.active {\n color: var(--ms-selected-color) !important;\n text-decoration: none;\n background-color: var(--ms-primary-color);\n}\n.multi-select .dropdown-item.active:hover {\n color: var(--ms-selected-color);\n}\n.multi-select .no-data {\n padding: 8px;\n text-align: center;\n color: #888;\n}\n.multi-select .multi-select.disabled .dropdown-header {\n background: var(--ms-disabled-bg);\n cursor: default;\n color: var(--ms-disabled-color);\n}",{insertAt:"top"});exports.MultiSelectDropdown=({options:o=[],value:r=[],onChange:t,placeholder:l="Select options",disabled:s=!1,selectAllText:i="Select All",searchable:a=!0,groupBy:d,maxSelectionLimit:c,renderOption:p,renderTag:m,customClassName:h,theme:u})=>{const[b,x]=n.useState(!1),[g,v]=n.useState(""),f=n.useRef(null),w=n.useMemo(()=>{if(!d)return o;const e=[],n=new Map;return o.forEach(e=>{const o=String(e[d]||"Other");n.has(o)||n.set(o,[]),n.get(o).push(e)}),n.forEach((n,o)=>{e.push({label:o,options:n})}),e},[o,d]),y=n.useMemo(()=>{if(!a||!g)return d?w:o;const e=o.filter(e=>String(e?.label||"").toLowerCase().includes(g.toLowerCase()));return d?w.map(n=>({...n,options:n.options.filter(n=>e.some(e=>e.value===n.value))})).filter(e=>e.options.length>0):e},[o,g,a,d,w]),j=e=>{if(!r.includes(e)&&c&&r.length>=c)return;let n=[];n=r.includes(e)?r.filter(n=>n!==e):[...r,e],t&&t(n)},C=o.length>0&&o.every(e=>r.includes(e.value)),k=o.filter(e=>r.includes(e.value)).map(e=>e.label);return n.useEffect(()=>{const e=e=>{f.current&&!f.current.contains(e.target)&&x(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]),n.useEffect(()=>{b||v("")},[b]),e.jsxs("div",{className:`multi-select ${s?"disabled":""} ${h||""}`,ref:f,style:{"--ms-primary-color":u?.primaryColor,"--ms-primary-hover":u?.primaryHover,"--ms-bg-color":u?.bgColor,"--ms-border-color":u?.borderColor,"--ms-text-color":u?.textColor,"--ms-placeholder-color":u?.placeholderColor,"--ms-item-hover-bg":u?.itemHoverBg,"--ms-selected-bg":u?.selectedBg,"--ms-selected-color":u?.selectedColor,"--ms-disabled-bg":u?.disabledBg,"--ms-disabled-color":u?.disabledColor,"--ms-border-radius":u?.borderRadius,"--ms-font-size":u?.fontSize,"--ms-header-height":u?.headerHeight},children:[e.jsxs("div",{className:"dropdown-header",onClick:()=>{s||x(e=>!e)},children:[e.jsx("span",{className:"dropdownText",children:0===r.length?l:C?i:k.join(", ")}),e.jsx("span",{className:""+(b?"arrowUp":"arrowDown")})]}),b&&!s&&e.jsxs("div",{className:"dropdown-list",children:[a&&e.jsx("input",{type:"text",className:"search-input",placeholder:"Search...",value:g,onChange:e=>v(e.target.value)}),o.length>0&&e.jsxs("label",{className:"dropdown-item select-all",children:[e.jsxs("span",{children:[i," "]}),e.jsx("input",{type:"checkbox",checked:C,onChange:()=>{const e=o.map(e=>e.value);let n=[];n=e.every(e=>r.includes(e))?[]:e,t&&t(n)}})]}),d?y.map((n,o)=>e.jsxs("div",{className:"option-group",children:[e.jsx("div",{className:"group-label",children:n.label}),n.options.length>0?n.options.map((n,t)=>e.jsx("label",{className:"dropdown-item "+(r.includes(n.value)?"active":""),children:p?p(n):e.jsxs(e.Fragment,{children:[e.jsx("span",{children:n.label}),e.jsx("input",{type:"checkbox",checked:r.includes(n.value),onChange:()=>j(n.value)})]})},`${o}-${t}`)):e.jsx("div",{className:"no-data",children:"No results found"})]},`group-${o}`)):y.length>0?y.map(n=>e.jsx("label",{className:"dropdown-item "+(r.includes(n.value)?"active":""),children:p?p(n):e.jsxs(e.Fragment,{children:[e.jsx("span",{children:n.label}),e.jsx("input",{type:"checkbox",checked:r.includes(n.value),onChange:()=>j(n.value)})]})},n.value)):e.jsx("div",{className:"no-data",children:"No results found"})]})]})};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/components/MultiSelectDropdown.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null],"names":["css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","options","value","onChange","placeholder","disabled","selectAllText","searchable","groupBy","maxSelectionLimit","renderOption","renderTag","_renderTag","customClassName","theme","isOpen","setIsOpen","useState","searchTerm","setSearchTerm","dropdownRef","useRef","processedOptions","useMemo","groups","groupMap","Map","forEach","option","groupKey","String","has","set","get","push","opts","label","filteredOptions","searchableOptions","filter","toLowerCase","includes","map","group","some","opt","length","handleCheckboxChange","val","updated","v","isAllSelected","every","selectedLabels","useEffect","handleClickOutside","event","current","contains","target","addEventListener","removeEventListener","_jsxs","className","primaryColor","primaryHover","bgColor","borderColor","textColor","placeholderColor","itemHoverBg","selectedBg","selectedColor","disabledBg","disabledColor","borderRadius","fontSize","headerHeight","children","onClick","prev","_jsx","jsx","join","jsxs","e","checked","allValues","groupIndex","optionIndex","_Fragment","Fragment"],"mappings":"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","x_google_ignoreList":[0]}
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@learnforjob/react-multi-select-dropdown",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A customizable, searchable, lightweight React multi-select dropdown with async loading, checkbox support, keyboard navigation, virtualization, and TypeScript support.",
|
|
5
|
+
"author": "LearnForJob",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"homepage": "https://learnforjob.com/",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/learnforjob/react-multi-select-dropdown.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/learnforjob/react-multi-select-dropdown/issues"
|
|
14
|
+
},
|
|
15
|
+
"main": "dist/index.js",
|
|
16
|
+
"module": "dist/index.es.js",
|
|
17
|
+
"types": "dist/index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"import": "./dist/index.es.js",
|
|
21
|
+
"require": "./dist/index.js",
|
|
22
|
+
"types": "./dist/index.d.ts"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist",
|
|
27
|
+
"README.md",
|
|
28
|
+
"LICENSE"
|
|
29
|
+
],
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"access": "public"
|
|
32
|
+
},
|
|
33
|
+
"sideEffects": [
|
|
34
|
+
"*.css",
|
|
35
|
+
"*.scss"
|
|
36
|
+
],
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "rollup -c rollup.config.cjs",
|
|
39
|
+
"dev": "rollup -c rollup.config.cjs -w",
|
|
40
|
+
"prepare": "npm run build"
|
|
41
|
+
},
|
|
42
|
+
"keywords": [
|
|
43
|
+
"react",
|
|
44
|
+
"react-component",
|
|
45
|
+
"multi-select",
|
|
46
|
+
"multiselect",
|
|
47
|
+
"dropdown",
|
|
48
|
+
"react-dropdown",
|
|
49
|
+
"checkbox",
|
|
50
|
+
"searchable-dropdown",
|
|
51
|
+
"async-select",
|
|
52
|
+
"virtualized-list",
|
|
53
|
+
"typescript",
|
|
54
|
+
"ui-component",
|
|
55
|
+
"frontend",
|
|
56
|
+
"learnforjob"
|
|
57
|
+
],
|
|
58
|
+
"peerDependencies": {
|
|
59
|
+
"react": ">=16.8.0",
|
|
60
|
+
"react-dom": ">=16.8.0"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
64
|
+
"@rollup/plugin-terser": "^1.0.0",
|
|
65
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
|
66
|
+
"@types/react": "^18.0.0",
|
|
67
|
+
"@types/react-dom": "^18.0.0",
|
|
68
|
+
"postcss": "^8.5.14",
|
|
69
|
+
"rollup": "^3.20.0",
|
|
70
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
71
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
72
|
+
"sass": "^1.99.0",
|
|
73
|
+
"tslib": "^2.8.1",
|
|
74
|
+
"typescript": "^5.0.0"
|
|
75
|
+
}
|
|
76
|
+
}
|