large-component-selector 1.0.1 → 1.0.2
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 +9 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
A high-performance React select component designed for handling large datasets with built-in virtualization, async loading, and extensive customization options.
|
|
4
4
|
|
|
5
|
+
This project was developed after extensive effort to build a high-performance dropdown component capable of handling large datasets efficiently. Existing solutions often struggle with performance at scale or lack robust, interactive search capabilities.
|
|
6
|
+
|
|
7
|
+
I built a component using react-select/async and react-window, enabling virtualized rendering of large datasets along with rich, responsive search functionality. The result is a scalable and feature-rich selection component that combines performance with a smooth user experience.
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<img src="https://github.com/Nithin-Reddy-02/large-component-selector/blob/main/assets/Example.gif" width="600" />
|
|
11
|
+
</p>
|
|
12
|
+
|
|
5
13
|
## Features
|
|
6
14
|
|
|
7
15
|
- 🚀 **Virtualized Rendering** - Efficiently handle thousands of items
|
|
@@ -138,4 +146,4 @@ Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
138
146
|
|
|
139
147
|
## License
|
|
140
148
|
|
|
141
|
-
MIT © [Nithin Reddy](https://github.com/Nithin-Reddy-02)
|
|
149
|
+
MIT © [Nithin Reddy](https://github.com/Nithin-Reddy-02)
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e,{memo as n,useRef as o,useMemo as r,useEffect as t,useCallback as l,useState as i}from"react";import a from"react-select/async";import{FixedSizeList as u}from"react-window";function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var o=0,r=Array(n);o<n;o++)r[o]=e[o];return r}function s(e,n,o){return n&&function(e,n){for(var o=0;o<n.length;o++){var r=n[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,v(r.key),r)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function d(e,n,o){return(n=v(n))in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,e}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var o=arguments[n];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},f.apply(null,arguments)}function m(e,n){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),o.push.apply(o,r)}return o}function p(e){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?m(Object(o),!0).forEach(function(n){d(e,n,o[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):m(Object(o)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))})}return e}function g(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var r,t,l,i,a=[],u=!0,c=!1;try{if(l=(o=o.call(e)).next,0===n){if(Object(o)!==o)return;u=!1}else for(;!(u=(r=l.call(o)).done)&&(a.push(r.value),a.length!==n);u=!0);}catch(e){c=!0,t=e}finally{try{if(!u&&null!=o.return&&(i=o.return(),Object(i)!==i))return}finally{if(c)throw t}}return a}}(e,n)||function(e,n){if(e){if("string"==typeof e)return c(e,n);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?c(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var r=o.call(e,n);if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}function b(e){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b(e)}var h="#ffffff",y="#000000",C="#f3f4f6",O="#6b7280",w="#d1d5db",x="#f3f4f6",S="#3b82f6",I="startsWith",M="includes",P=n(function(n){var i=n.options,a=n.children,c=n.maxHeight,s=n.getValue,d=n.focusedOption,f=n.selectProps,m=g(s(),1)[0],v=f.virtualizedItemHeight||35,b=m?i.indexOf(m)*v:0,h=o(null),y=Array.isArray(a)?a:[],C=f.menuBackgroundColor||"#ffffff",O=r(function(){return{display:"flex",alignItems:"center",padding:"8px 12px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",cursor:"pointer",backgroundColor:C,boxSizing:"border-box"}},[C]),w=r(function(){return{padding:"8px 12px",color:f.mutedForegroundColor||"#6b7280",textAlign:"center",cursor:"default",backgroundColor:C}},[C,f.mutedForegroundColor]);t(function(){if(d&&h.current){var e=i.findIndex(function(e){return e.value===d.value});e>=0&&h.current.scrollToItem(e,"smart")}},[d,i]);var x,S=l(function(n){var o=n.index,r=n.style;return e.createElement("div",{style:p(p({},r),O)},y[o])},[y,O]);return y.length?e.createElement(u,{ref:h,height:Math.min(c,y.length*v),itemCount:y.length,itemSize:v,initialScrollOffset:b,overscanCount:5,useIsScrolling:!0,style:{backgroundColor:C}},S):e.createElement("div",{style:w},(null===(x=f.noOptionsMessage)||void 0===x?void 0:x.call(f,{inputValue:f.inputValue}))||"No options available")});P.displayName="MenuList";var j=new(function(){return s(function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.instances=new Map},[{key:"addInstance",value:function(e,n,o){var r="large-component-selector-styles-".concat(e);if(!document.getElementById(r)){var t=document.createElement("style");t.id=r,t.textContent=this.generateStyles(e,n,o),document.head.appendChild(t),this.instances.set(e,{foregroundColor:n,accentColor:o})}}},{key:"removeInstance",value:function(e){var n="large-component-selector-styles-".concat(e),o=document.getElementById(n);o&&(o.remove(),this.instances.delete(e))}},{key:"generateStyles",value:function(e,n,o){return"\n .large-component-selector-".concat(e," {\n position: relative;\n isolation: isolate;\n }\n\n .large-component-selector-").concat(e," input {\n color: ").concat(n," !important;\n cursor: text !important;\n }\n\n .large-component-selector-").concat(e," input:focus {\n color: ").concat(n," !important;\n }\n\n .large-component-selector-").concat(e,' [class*="-control"] {\n cursor: pointer !important;\n position: relative;\n z-index: 1;\n }\n\n .large-component-selector-').concat(e,' [class*="-control"]:hover {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-indicatorContainer"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-ValueContainer"] {\n cursor: text !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-placeholder"] {\n cursor: text !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-singleValue"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-option"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-menu"] {\n cursor: default !important;\n isolation: isolate;\n }\n\n .large-component-selector-').concat(e,'.disabled [class*="-control"],\n .large-component-selector-').concat(e,'.disabled [class*="-control"]:hover {\n cursor: not-allowed !important;\n }\n\n .large-component-selector-').concat(e,".disabled input {\n cursor: not-allowed !important;\n }\n\n .large-component-selector-").concat(e,' [class*="-MenuList"] {\n isolation: isolate;\n }\n ')}}])}()),k=function(e,n){return r(function(){return o=e,r=n,function(){for(var e=arguments.length,n=new Array(e),l=0;l<e;l++)n[l]=arguments[l];clearTimeout(t),t=setTimeout(function(){clearTimeout(t),o.apply(void 0,n)},r)};var o,r,t},[e,n])},D=["items","value","defaultValue","onSelectItem","onChange","onInputChange","onMenuOpen","onMenuClose","onFocus","onBlur","placeholder","isDisabled","isClearable","isSearchable","isLoading","valueKey","labelKey","filterOption","customFilter","filterMatchMode","virtualizedItemHeight","itemsPerPage","maxMenuHeight","initialLoadSize","debounceDelay","className","styles","classNamePrefix","theme","backgroundColor","foregroundColor","mutedBackgroundColor","mutedForegroundColor","borderColor","accentColor","ringColor","menuBackgroundColor","menuBorderColor","zIndex","baseZIndex","components","noOptionsMessage","loadingMessage","menuPortalTarget","menuPosition","menuPlacement","closeMenuOnSelect","hideSelectedOptions","data-testid","id","name","inputId","instanceId"],F=0;function z(n){var u,c=n.items,s=n.value,d=void 0===s?null:s,m=n.defaultValue,v=void 0===m?null:m,z=n.onSelectItem,B=n.onChange,E=n.onInputChange,A=n.onMenuOpen,L=n.onMenuClose,N=n.onFocus,T=n.onBlur,V=n.placeholder,H=void 0===V?"component":V,K=n.isDisabled,W=void 0!==K&&K,R=n.isClearable,Z=void 0===R||R,U=n.isSearchable,$=void 0===U||U,q=n.isLoading,G=void 0!==q&&q,J=n.valueKey,Q=void 0===J?"value":J,X=n.labelKey,Y=void 0===X?"label":X,_=n.filterOption,ee=n.customFilter,ne=n.filterMatchMode,oe=void 0===ne?I:ne,re=n.virtualizedItemHeight,te=void 0===re?35:re,le=n.itemsPerPage,ie=void 0===le?100:le,ae=n.maxMenuHeight,ue=void 0===ae?300:ae,ce=n.initialLoadSize,se=void 0===ce?1e3:ce,de=n.debounceDelay,fe=void 0===de?150:de,me=n.className,pe=void 0===me?"":me,ge=n.styles,ve=void 0===ge?{}:ge,be=n.classNamePrefix,he=n.theme,ye=n.backgroundColor,Ce=void 0===ye?h:ye,Oe=n.foregroundColor,we=void 0===Oe?y:Oe,xe=n.mutedBackgroundColor,Se=void 0===xe?C:xe,Ie=n.mutedForegroundColor,Me=void 0===Ie?O:Ie,Pe=n.borderColor,je=void 0===Pe?w:Pe,ke=n.accentColor,De=void 0===ke?x:ke,Fe=n.ringColor,ze=void 0===Fe?S:Fe,Be=n.menuBackgroundColor,Ee=n.menuBorderColor,Ae=n.zIndex,Le=n.baseZIndex,Ne=n.components,Te=void 0===Ne?{}:Ne,Ve=n.noOptionsMessage,He=n.loadingMessage,Ke=n.menuPortalTarget,We=void 0===Ke?"undefined"!=typeof document?document.body:null:Ke,Re=n.menuPosition,Ze=void 0===Re?"absolute":Re,Ue=n.menuPlacement,$e=void 0===Ue?"auto":Ue,qe=n.closeMenuOnSelect,Ge=void 0===qe||qe,Je=n.hideSelectedOptions,Qe=void 0!==Je&&Je,Xe=n["data-testid"],Ye=n.id,_e=n.name,en=n.inputId,nn=n.instanceId,on=function(e,n){if(null==e)return{};var o,r,t=function(e,n){if(null==e)return{};var o={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==n.indexOf(r))continue;o[r]=e[r]}return o}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)o=l[r],-1===n.indexOf(o)&&{}.propertyIsEnumerable.call(e,o)&&(t[o]=e[o])}return t}(n,D),rn=g(i(v),2),tn=rn[0],ln=rn[1],an=g(i(""),2),un=an[0],cn=an[1],sn=g(i([]),2),dn=sn[0],fn=sn[1],mn=g(i(!1),2),pn=mn[0],gn=mn[1],vn=g(i(function(){return"lcs-".concat(++F)}),1)[0],bn=Be||Ce,hn=Ee||je,yn=null!==(u=null!=Ae?Ae:Le)&&void 0!==u?u:9999,Cn=null!=d,On=Cn?d:tn,wn=r(function(){if(!c||0===c.length)return{normalizedItems:[],isObjectMode:!1};try{return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"label";if(!Array.isArray(e))throw new Error('largeComponentSelector: "items" prop must be an array. Received: '+b(e));if(0===e.length)return{normalizedItems:[],isObjectMode:!1};var r=e[0];if("string"==typeof r){if(!e.every(function(e){return"string"==typeof e}))throw new Error("largeComponentSelector: All items must be of the same type. Mixed types detected in items array.");return{normalizedItems:e.map(function(e){return{value:e,label:e,originalValue:e}}),isObjectMode:!1}}if("object"===b(r)&&null!==r){var t=e.filter(function(e){return!e||"object"!==b(e)||!(n in e)||!(o in e)});if(t.length>0)throw new Error('largeComponentSelector: When using objects, all items must have "'.concat(n,'" and "').concat(o,'" properties. ')+"Found "+t.length+" invalid item(s).");return{normalizedItems:e.map(function(e){return{value:e[n],label:e[o],originalValue:e}}),isObjectMode:!0}}throw new Error("largeComponentSelector: Items must be either an array of strings or "+'an array of objects with "'.concat(n,'" and "').concat(o,'" properties. ')+"Received array of: "+b(r))}(c,Q,Y)}catch(e){throw console.error(e.message),e}},[c,Q,Y]),xn=wn.normalizedItems,Sn=wn.isObjectMode;t(function(){fn(xn),gn(Sn)},[xn,Sn]),function(e,n,o){t(function(){return j.addInstance(e,n,o),function(){j.removeInstance(e)}},[e,n,o])}(vn,we,De);var In=function(e,n){return l(function(o,r){if(!r)return o;if(e)return e(o,r);for(var t=r.toLowerCase(),l=[],i=0;i<o.length;i++){var a=o[i].label.toLowerCase();n===M?a.includes(t)&&l.push(o[i]):a.startsWith(t)&&l.push(o[i])}return l},[e,n])}(ee,oe),Mn=function(e){var n=e.items,o=e.options,r=e.getFilteredOptions,t=e.itemsPerPage,a=e.initialLoadSize,u=e.debounceDelay,c=g(i(1),2),s=c[0],d=c[1],f=l(function(e,l){if(n&&0!==n.length){var i=r(o,e),u=e?i.length:Math.min(i.length,a),c=i.slice(0,Math.min(u,s*t));c.length>0&&(c.loadMore=function(){return d(function(e){return e+1})}),l(c)}else l([])},[n,s,o,r,t,a]),m=k(f,u);return{loadOptions:l(function(e,n){e?m(e,n):f(e,n)},[f,m]),setPage:d,page:s}}({items:c,options:dn,getFilteredOptions:In,itemsPerPage:ie,initialLoadSize:se,debounceDelay:fe}),Pn=Mn.loadOptions,jn=Mn.setPage,kn=function(e,n,r,t,i,a){var u=o(""),c=o(!1);return{handleInputChange:l(function(o,l,s){var d=l.action;if(s){var f=s(o,l);if(void 0!==f)return t(f),f}switch(d){case"input-change":return t(o),e||r(null),null==i||i(null),u.current=o,c.current=!1,a(1),o;case"set-value":return t(""),e||r(null),null==i||i(null),u.current="",c.current=!0,"";case"menu-close":return n||c.current?"":(t(u.current),u.current);case"input-blur":return c.current||n?(t(""),""):(t(u.current),u.current);default:return o}},[e,n,r,t,i,a]),lastSearchTerm:u,justCleared:c}}(Cn,On,ln,cn,z,jn),Dn=kn.handleInputChange,Fn=kn.lastSearchTerm,zn=kn.justCleared,Bn=l(function(e){if(Cn||ln(e),e){var n=pn?{value:e.value,selection:e.originalValue}:{value:e.value,selection:null};null==z||z(n),null==B||B(n,e),Fn.current=e.label,zn.current=!1}else null==z||z(null),null==B||B(null,null),Fn.current="",zn.current=!0,cn("")},[Cn,pn,z,B,Fn,zn]),En=l(function(e,n){return Dn(e,n,E)},[Dn,E]),An=l(function(){if(zn.current)cn("");else{var e=On?On.label:Fn.current;cn(e)}null==A||A()},[On,A,zn,Fn]),Ln=l(function(){null==L||L()},[L]),Nn=r(function(){return{foregroundColor:we,accentColor:De,resolvedMenuBg:bn,mutedForegroundColor:Me,resolvedMenuBorder:hn,mutedBackgroundColor:Se,backgroundColor:Ce,ringColor:ze,borderColor:je}},[we,De,bn,Me,hn,Se,Ce,ze,je]),Tn=r(function(){return function(e,n){return{input:function(n){return p(p({},n),{},{color:e.foregroundColor,cursor:"text"})},option:function(n,o){return p(p({},n),{},{textAlign:"left",backgroundColor:o.isFocused?e.accentColor:e.resolvedMenuBg,color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,transition:"background-color 0.1s ease",cursor:o.isDisabled?"not-allowed":"pointer",":hover":{backgroundColor:e.accentColor,cursor:o.isDisabled?"not-allowed":"pointer"}})},menu:function(o){return p(p({},o),{},{backgroundColor:e.resolvedMenuBg,boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",border:"1px solid ".concat(e.resolvedMenuBorder),zIndex:n,margin:"4px 0",width:"100%",cursor:"default",isolation:"isolate"})},menuList:function(n){return p(p({},n),{},{backgroundColor:e.resolvedMenuBg,padding:0,cursor:"default",isolation:"isolate"})},menuPortal:function(e){return p(p({},e),{},{zIndex:n})},singleValue:function(n,o){return p(p({},n),{},{color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,cursor:"pointer"})},placeholder:function(n){return p(p({},n),{},{color:e.mutedForegroundColor,cursor:"text"})},control:function(n,o){return p(p({},n),{},{backgroundColor:o.isDisabled?e.mutedBackgroundColor:e.backgroundColor,color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,borderColor:o.isFocused?e.ringColor:e.borderColor,boxShadow:o.isFocused?"0 0 0 1px ".concat(e.ringColor):"none",opacity:o.isDisabled?.5:1,cursor:o.isDisabled?"not-allowed":"pointer",minHeight:"38px",position:"relative",zIndex:1,":hover":{cursor:o.isDisabled?"not-allowed":"pointer",borderColor:o.isFocused?e.ringColor:e.borderColor}})},valueContainer:function(e,n){return p(p({},e),{},{cursor:n.isDisabled?"not-allowed":"text"})},indicatorsContainer:function(e,n){return p(p({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer"})},indicatorSeparator:function(e,n){return p(p({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer"})},clearIndicator:function(e,n){return p(p({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer",":hover":{cursor:n.isDisabled?"not-allowed":"pointer"}})},dropdownIndicator:function(e,n){return p(p({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer",":hover":{cursor:n.isDisabled?"not-allowed":"pointer"}})}}}(Nn,yn)},[Nn,yn]),Vn=r(function(){return function(e,n){return Object.keys(e).reduce(function(o,r){return o[r]=function(o,t){var l=e[r](o,t),i=n[r]?n[r](o,t):{};return p(p({},l),i)},o},{})}(Tn,ve)},[Tn,ve]),Hn=r(function(){return c&&0!==c.length?"Select a ".concat(H):"No ".concat(H," available")},[c,H]),Kn=r(function(){return Ve||function(){return"No ".concat(H," found")}},[Ve,H]),Wn=r(function(){return He||function(){return"Loading items..."}},[He]);return e.createElement("div",{"data-testid":Xe,className:"large-component-selector-".concat(vn," ").concat(W?"disabled":""," ").concat(pe)},e.createElement(a,f({id:Ye,name:_e,inputId:en,instanceId:nn||vn,cacheOptions:!0,defaultOptions:dn,loadOptions:Pn,value:On,inputValue:un,isDisabled:W||!c||0===c.length,isClearable:Z,isSearchable:$,isLoading:G,onChange:Bn,onInputChange:En,onMenuOpen:An,onMenuClose:Ln,onFocus:N,onBlur:T,components:p({MenuList:P},Te),filterOption:_||null,menuPortalTarget:We,menuPosition:Ze,menuPlacement:$e,closeMenuOnSelect:Ge,hideSelectedOptions:Qe,maxMenuHeight:ue,placeholder:Hn,noOptionsMessage:Kn,loadingMessage:Wn,className:"text-left p-stle ".concat(be||""),classNamePrefix:be,styles:Vn,theme:he,virtualizedItemHeight:te,menuBackgroundColor:bn,mutedForegroundColor:Me},on)))}export{z as LargeComponentSelector,z as default};
|
|
1
|
+
import e,{memo as n,useRef as o,useMemo as r,useEffect as t,useCallback as l,useState as i}from"react";import a from"react-select/async";import{FixedSizeList as u}from"react-window";function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var o=0,r=Array(n);o<n;o++)r[o]=e[o];return r}function s(e,n,o){return n&&function(e,n){for(var o=0;o<n.length;o++){var r=n[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,b(r.key),r)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function d(e,n,o){return(n=b(n))in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,e}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var o=arguments[n];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},f.apply(null,arguments)}function p(e,n){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),o.push.apply(o,r)}return o}function m(e){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?p(Object(o),!0).forEach(function(n){d(e,n,o[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):p(Object(o)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))})}return e}function g(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var r,t,l,i,a=[],u=!0,c=!1;try{if(l=(o=o.call(e)).next,0===n){if(Object(o)!==o)return;u=!1}else for(;!(u=(r=l.call(o)).done)&&(a.push(r.value),a.length!==n);u=!0);}catch(e){c=!0,t=e}finally{try{if(!u&&null!=o.return&&(i=o.return(),Object(i)!==i))return}finally{if(c)throw t}}return a}}(e,n)||function(e,n){if(e){if("string"==typeof e)return c(e,n);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?c(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var r=o.call(e,n);if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}function v(e){return v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v(e)}var h="#ffffff",y="#000000",C="#f3f4f6",O="#6b7280",w="#d1d5db",x="#f3f4f6",S="#3b82f6",I="startsWith",M="includes",P=n(function(n){var i=n.options,a=n.children,c=n.maxHeight,s=n.getValue,d=n.focusedOption,f=n.selectProps,p=g(s(),1)[0],b=f.virtualizedItemHeight||35,v=p?i.indexOf(p)*b:0,h=o(null),y=Array.isArray(a)?a:[],C=f.menuBackgroundColor||"#ffffff",O=r(function(){return{display:"flex",alignItems:"center",padding:"8px 12px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",cursor:"pointer",backgroundColor:C,boxSizing:"border-box"}},[C]),w=r(function(){return{padding:"8px 12px",color:f.mutedForegroundColor||"#6b7280",textAlign:"center",cursor:"default",backgroundColor:C}},[C,f.mutedForegroundColor]);t(function(){if(d&&h.current){var e=i.findIndex(function(e){return e.value===d.value});e>=0&&h.current.scrollToItem(e,"smart")}},[d,i]);var x,S=l(function(n){var o=n.index,r=n.style;return e.createElement("div",{style:m(m({},r),O)},y[o])},[y,O]);return y.length?e.createElement(u,{ref:h,height:Math.min(c,y.length*b),itemCount:y.length,itemSize:b,initialScrollOffset:v,overscanCount:5,useIsScrolling:!0,style:{backgroundColor:C}},S):e.createElement("div",{style:w},(null===(x=f.noOptionsMessage)||void 0===x?void 0:x.call(f,{inputValue:f.inputValue}))||"No options available")});P.displayName="MenuList";var j=new(function(){return s(function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.instances=new Map},[{key:"addInstance",value:function(e,n,o){var r="large-component-selector-styles-".concat(e);if(!document.getElementById(r)){var t=document.createElement("style");t.id=r,t.textContent=this.generateStyles(e,n,o),document.head.appendChild(t),this.instances.set(e,{foregroundColor:n,accentColor:o})}}},{key:"removeInstance",value:function(e){var n="large-component-selector-styles-".concat(e),o=document.getElementById(n);o&&(o.remove(),this.instances.delete(e))}},{key:"generateStyles",value:function(e,n,o){return"\n .large-component-selector-".concat(e," {\n position: relative;\n isolation: isolate;\n }\n\n .large-component-selector-").concat(e," input {\n color: ").concat(n," !important;\n cursor: text !important;\n }\n\n .large-component-selector-").concat(e," input:focus {\n color: ").concat(n," !important;\n }\n\n .large-component-selector-").concat(e,' [class*="-control"] {\n cursor: pointer !important;\n position: relative;\n z-index: 1;\n }\n\n .large-component-selector-').concat(e,' [class*="-control"]:hover {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-indicatorContainer"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-ValueContainer"] {\n cursor: text !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-placeholder"] {\n cursor: text !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-singleValue"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-option"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-menu"] {\n cursor: default !important;\n isolation: isolate;\n }\n\n .large-component-selector-').concat(e,'.disabled [class*="-control"],\n .large-component-selector-').concat(e,'.disabled [class*="-control"]:hover {\n cursor: not-allowed !important;\n }\n\n .large-component-selector-').concat(e,".disabled input {\n cursor: not-allowed !important;\n }\n\n .large-component-selector-").concat(e,' [class*="-MenuList"] {\n isolation: isolate;\n }\n ')}}])}()),k=function(e){var n=e.items,r=e.options,t=e.getFilteredOptions,a=e.itemsPerPage,u=e.initialLoadSize,c=e.debounceDelay,s=g(i(1),2),d=s[0],f=s[1],p=o(d);p.current=d;var m,b,v,h,y=l(function(e,o){if(n&&0!==n.length){var l=t(r,e),i=e?l.length:Math.min(l.length,u),c=l.slice(0,Math.min(i,p.current*a));c.length>0&&(c.loadMore=function(){return f(function(e){return e+1})}),o(c)}else o([])},[n,r,t,a,u]),C=(m=y,b=c,v=o(null),(h=o(m)).current=m,l(function(){for(var e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];v.current&&clearTimeout(v.current),v.current=setTimeout(function(){h.current.apply(h,n)},b)},[b])),O=l(function(e,n){e?C(e,n):y(e,n)},[y,C]);return{loadOptions:O,setPage:f,page:d}},D=["items","value","defaultValue","onSelectItem","onChange","onInputChange","onMenuOpen","onMenuClose","onFocus","onBlur","placeholder","isDisabled","isClearable","isSearchable","isLoading","valueKey","labelKey","filterOption","customFilter","filterMatchMode","virtualizedItemHeight","itemsPerPage","maxMenuHeight","initialLoadSize","debounceDelay","className","styles","classNamePrefix","theme","backgroundColor","foregroundColor","mutedBackgroundColor","mutedForegroundColor","borderColor","accentColor","ringColor","menuBackgroundColor","menuBorderColor","zIndex","baseZIndex","components","noOptionsMessage","loadingMessage","menuPortalTarget","menuPosition","menuPlacement","closeMenuOnSelect","hideSelectedOptions","id","name","inputId","instanceId"],F=0;function z(n){var u,c=n.items,s=n.value,d=void 0===s?null:s,p=n.defaultValue,b=void 0===p?null:p,z=n.onSelectItem,B=n.onChange,E=n.onInputChange,A=n.onMenuOpen,L=n.onMenuClose,N=n.onFocus,V=n.onBlur,T=n.placeholder,H=void 0===T?"component":T,K=n.isDisabled,W=void 0!==K&&K,R=n.isClearable,Z=void 0===R||R,U=n.isSearchable,$=void 0===U||U,q=n.isLoading,G=void 0!==q&&q,J=n.valueKey,Q=void 0===J?"value":J,X=n.labelKey,Y=void 0===X?"label":X,_=n.filterOption,ee=n.customFilter,ne=n.filterMatchMode,oe=void 0===ne?I:ne,re=n.virtualizedItemHeight,te=void 0===re?35:re,le=n.itemsPerPage,ie=void 0===le?100:le,ae=n.maxMenuHeight,ue=void 0===ae?300:ae,ce=n.initialLoadSize,se=void 0===ce?1e3:ce,de=n.debounceDelay,fe=void 0===de?150:de,pe=n.className,me=void 0===pe?"":pe,ge=n.styles,be=void 0===ge?{}:ge,ve=n.classNamePrefix,he=n.theme,ye=n.backgroundColor,Ce=void 0===ye?h:ye,Oe=n.foregroundColor,we=void 0===Oe?y:Oe,xe=n.mutedBackgroundColor,Se=void 0===xe?C:xe,Ie=n.mutedForegroundColor,Me=void 0===Ie?O:Ie,Pe=n.borderColor,je=void 0===Pe?w:Pe,ke=n.accentColor,De=void 0===ke?x:ke,Fe=n.ringColor,ze=void 0===Fe?S:Fe,Be=n.menuBackgroundColor,Ee=n.menuBorderColor,Ae=n.zIndex,Le=n.baseZIndex,Ne=n.components,Ve=void 0===Ne?{}:Ne,Te=n.noOptionsMessage,He=n.loadingMessage,Ke=n.menuPortalTarget,We=void 0===Ke?"undefined"!=typeof document?document.body:null:Ke,Re=n.menuPosition,Ze=void 0===Re?"absolute":Re,Ue=n.menuPlacement,$e=void 0===Ue?"auto":Ue,qe=n.closeMenuOnSelect,Ge=void 0===qe||qe,Je=n.hideSelectedOptions,Qe=void 0!==Je&&Je,Xe=n.id,Ye=n.name,_e=n.inputId,en=n.instanceId,nn=function(e,n){if(null==e)return{};var o,r,t=function(e,n){if(null==e)return{};var o={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==n.indexOf(r))continue;o[r]=e[r]}return o}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)o=l[r],-1===n.indexOf(o)&&{}.propertyIsEnumerable.call(e,o)&&(t[o]=e[o])}return t}(n,D),on=g(i(b),2),rn=on[0],tn=on[1],ln=g(i(""),2),an=ln[0],un=ln[1],cn=g(i([]),2),sn=cn[0],dn=cn[1],fn=g(i(!1),2),pn=fn[0],mn=fn[1],gn=g(i(function(){return"lcs-".concat(++F)}),1)[0],bn=Be||Ce,vn=Ee||je,hn=null!==(u=null!=Ae?Ae:Le)&&void 0!==u?u:9999,yn=null!=d,Cn=yn?d:rn,On=r(function(){if(!c||0===c.length)return{normalizedItems:[],isObjectMode:!1};try{return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"label";if(!Array.isArray(e))throw new Error('largeComponentSelector: "items" prop must be an array. Received: '+v(e));if(0===e.length)return{normalizedItems:[],isObjectMode:!1};var r=e[0];if("string"==typeof r){if(!e.every(function(e){return"string"==typeof e}))throw new Error("largeComponentSelector: All items must be of the same type. Mixed types detected in items array.");return{normalizedItems:e.map(function(e){return{value:e,label:e,originalValue:e}}),isObjectMode:!1}}if("object"===v(r)&&null!==r){var t=e.filter(function(e){return!e||"object"!==v(e)||!(n in e)||!(o in e)});if(t.length>0)throw new Error('largeComponentSelector: When using objects, all items must have "'.concat(n,'" and "').concat(o,'" properties. ')+"Found "+t.length+" invalid item(s).");return{normalizedItems:e.map(function(e){return{value:e[n],label:e[o],originalValue:e}}),isObjectMode:!0}}throw new Error("largeComponentSelector: Items must be either an array of strings or "+'an array of objects with "'.concat(n,'" and "').concat(o,'" properties. ')+"Received array of: "+v(r))}(c,Q,Y)}catch(e){throw console.error(e.message),e}},[c,Q,Y]),wn=On.normalizedItems,xn=On.isObjectMode;t(function(){dn(wn),mn(xn)},[wn,xn]),function(e,n,o){t(function(){return j.addInstance(e,n,o),function(){j.removeInstance(e)}},[e,n,o])}(gn,we,De);var Sn=function(e,n){return l(function(o,r){if(!r)return o;if(e)return e(o,r);for(var t=r.toLowerCase(),l=[],i=0;i<o.length;i++){var a=o[i].label.toLowerCase();n===M?a.includes(t)&&l.push(o[i]):a.startsWith(t)&&l.push(o[i])}return l},[e,n])}(ee,oe),In=k({items:c,options:sn,getFilteredOptions:Sn,itemsPerPage:ie,initialLoadSize:se,debounceDelay:fe}),Mn=In.loadOptions,Pn=In.setPage,jn=function(e,n,r,t,i,a){var u=o(""),c=o(!1);return{handleInputChange:l(function(o,l,s){var d=l.action;if(s){var f=s(o,l);if(void 0!==f)return t(f),f}switch(d){case"input-change":return t(o),e||r(null),null==i||i(null),u.current=o,c.current=!1,a(1),o;case"set-value":return t(""),e||r(null),null==i||i(null),u.current="",c.current=!0,"";case"menu-close":return n||c.current?"":(t(u.current),u.current);case"input-blur":return c.current||n?(t(""),""):(t(u.current),u.current);default:return o}},[e,n,r,t,i,a]),lastSearchTerm:u,justCleared:c}}(yn,Cn,tn,un,z,Pn),kn=jn.handleInputChange,Dn=jn.lastSearchTerm,Fn=jn.justCleared,zn=l(function(e){if(yn||tn(e),e){var n=pn?{value:e.value,selection:e.originalValue}:{value:e.value,selection:null};null==z||z(n),null==B||B(n,e),Dn.current=e.label,Fn.current=!1}else null==z||z(null),null==B||B(null,null),Dn.current="",Fn.current=!0,un("")},[yn,pn,z,B,Dn,Fn]),Bn=l(function(e,n){return kn(e,n,E)},[kn,E]),En=l(function(){if(Fn.current)un("");else{var e=Cn?Cn.label:Dn.current;un(e)}null==A||A()},[Cn,A,Fn,Dn]),An=l(function(){null==L||L()},[L]),Ln=r(function(){return{foregroundColor:we,accentColor:De,resolvedMenuBg:bn,mutedForegroundColor:Me,resolvedMenuBorder:vn,mutedBackgroundColor:Se,backgroundColor:Ce,ringColor:ze,borderColor:je}},[we,De,bn,Me,vn,Se,Ce,ze,je]),Nn=r(function(){return function(e,n){return{input:function(n){return m(m({},n),{},{color:e.foregroundColor,cursor:"text"})},option:function(n,o){return m(m({},n),{},{textAlign:"left",backgroundColor:o.isFocused?e.accentColor:e.resolvedMenuBg,color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,transition:"background-color 0.1s ease",cursor:o.isDisabled?"not-allowed":"pointer",":hover":{backgroundColor:e.accentColor,cursor:o.isDisabled?"not-allowed":"pointer"}})},menu:function(o){return m(m({},o),{},{backgroundColor:e.resolvedMenuBg,boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",border:"1px solid ".concat(e.resolvedMenuBorder),zIndex:n,margin:"4px 0",width:"100%",cursor:"default",isolation:"isolate"})},menuList:function(n){return m(m({},n),{},{backgroundColor:e.resolvedMenuBg,padding:0,cursor:"default",isolation:"isolate"})},menuPortal:function(e){return m(m({},e),{},{zIndex:n})},singleValue:function(n,o){return m(m({},n),{},{color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,cursor:"pointer"})},placeholder:function(n){return m(m({},n),{},{color:e.mutedForegroundColor,cursor:"text"})},control:function(n,o){return m(m({},n),{},{backgroundColor:o.isDisabled?e.mutedBackgroundColor:e.backgroundColor,color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,borderColor:o.isFocused?e.ringColor:e.borderColor,boxShadow:o.isFocused?"0 0 0 1px ".concat(e.ringColor):"none",opacity:o.isDisabled?.5:1,cursor:o.isDisabled?"not-allowed":"pointer",minHeight:"38px",position:"relative",zIndex:1,":hover":{cursor:o.isDisabled?"not-allowed":"pointer",borderColor:o.isFocused?e.ringColor:e.borderColor}})},valueContainer:function(e,n){return m(m({},e),{},{cursor:n.isDisabled?"not-allowed":"text"})},indicatorsContainer:function(e,n){return m(m({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer"})},indicatorSeparator:function(e,n){return m(m({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer"})},clearIndicator:function(e,n){return m(m({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer",":hover":{cursor:n.isDisabled?"not-allowed":"pointer"}})},dropdownIndicator:function(e,n){return m(m({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer",":hover":{cursor:n.isDisabled?"not-allowed":"pointer"}})}}}(Ln,hn)},[Ln,hn]),Vn=r(function(){return function(e,n){return Object.keys(e).reduce(function(o,r){return o[r]=function(o,t){var l=e[r](o,t),i=n[r]?n[r](o,t):{};return m(m({},l),i)},o},{})}(Nn,be)},[Nn,be]),Tn=r(function(){return c&&0!==c.length?"Select a ".concat(H):"No ".concat(H," available")},[c,H]),Hn=r(function(){return Te||function(){return"No ".concat(H," found")}},[Te,H]),Kn=r(function(){return He||function(){return"Loading items..."}},[He]);return e.createElement("div",{className:"large-component-selector-".concat(gn," ").concat(W?"disabled":""," ").concat(me)},e.createElement(a,f({id:Xe,name:Ye,inputId:_e,instanceId:en||gn,cacheOptions:!0,defaultOptions:sn,loadOptions:Mn,value:Cn,inputValue:an,isDisabled:W||!c||0===c.length,isClearable:Z,isSearchable:$,isLoading:G,onChange:zn,onInputChange:Bn,onMenuOpen:En,onMenuClose:An,onFocus:N,onBlur:V,components:m({MenuList:P},Ve),filterOption:_||null,menuPortalTarget:We,menuPosition:Ze,menuPlacement:$e,closeMenuOnSelect:Ge,hideSelectedOptions:Qe,maxMenuHeight:ue,placeholder:Tn,noOptionsMessage:Hn,loadingMessage:Kn,className:"text-left p-stle ".concat(ve||""),classNamePrefix:ve,styles:Vn,theme:he,virtualizedItemHeight:te,menuBackgroundColor:bn,mutedForegroundColor:Me},nn)))}export{z as LargeComponentSelector,z as default};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/utils/constants.js","../src/components/MenuList.jsx","../src/utils/normalizeItems.js","../src/utils/styleManager.js","../src/hooks/useDebounce.js","../src/components/LargeComponentSelector.jsx","../src/hooks/useStyleManager.js","../src/hooks/useFilteredOptions.js","../src/hooks/useLoadOptions.js","../src/hooks/useInputHandler.js","../src/styles/defaultStyles.js"],"sourcesContent":["export const DEFAULT_HEIGHT = 35;\r\nexport const DEFAULT_ITEMS_PER_PAGE = 100;\r\nexport const DEFAULT_MAX_HEIGHT = 300;\r\nexport const DEFAULT_DEBOUNCE_DELAY = 150;\r\nexport const DEFAULT_INITIAL_LOAD_SIZE = 1000;\r\n\r\nexport const DEFAULT_COLORS = {\r\n backgroundColor: \"#ffffff\",\r\n foregroundColor: \"#000000\",\r\n mutedBackgroundColor: \"#f3f4f6\",\r\n mutedForegroundColor: \"#6b7280\",\r\n borderColor: \"#d1d5db\",\r\n accentColor: \"#f3f4f6\",\r\n ringColor: \"#3b82f6\",\r\n};\r\n\r\nexport const FILTER_MODES = {\r\n STARTS_WITH: 'startsWith',\r\n INCLUDES: 'includes',\r\n CUSTOM: 'custom'\r\n};\r\n","import React, { memo, useRef, useEffect, useMemo, useCallback } from 'react';\r\nimport { FixedSizeList as List } from 'react-window';\r\nimport { DEFAULT_HEIGHT } from '../utils/constants';\r\n\r\nconst MenuList = memo((props) => {\r\n const { \r\n options, \r\n children, \r\n maxHeight, \r\n getValue, \r\n focusedOption, \r\n selectProps \r\n } = props;\r\n \r\n const [value] = getValue();\r\n const itemHeight = selectProps.virtualizedItemHeight || DEFAULT_HEIGHT;\r\n const initialOffset = value ? options.indexOf(value) * itemHeight : 0;\r\n const listRef = useRef(null);\r\n const childArray = Array.isArray(children) ? children : [];\r\n\r\n const backgroundColor = selectProps.menuBackgroundColor || \"#ffffff\";\r\n\r\n const baseRowStyle = useMemo(() => ({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: \"8px 12px\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n cursor: \"pointer\",\r\n backgroundColor: backgroundColor,\r\n boxSizing: \"border-box\",\r\n }), [backgroundColor]);\r\n\r\n const noOptionsStyle = useMemo(() => ({\r\n padding: \"8px 12px\",\r\n color: selectProps.mutedForegroundColor || \"#6b7280\",\r\n textAlign: \"center\",\r\n cursor: \"default\",\r\n backgroundColor: backgroundColor,\r\n }), [backgroundColor, selectProps.mutedForegroundColor]);\r\n\r\n useEffect(() => {\r\n if (!focusedOption || !listRef.current) return;\r\n const focusedIndex = options.findIndex(\r\n (opt) => opt.value === focusedOption.value\r\n );\r\n if (focusedIndex >= 0) {\r\n listRef.current.scrollToItem(focusedIndex, \"smart\");\r\n }\r\n }, [focusedOption, options]);\r\n\r\n const Row = useCallback(\r\n ({ index, style }) => (\r\n <div style={{ ...style, ...baseRowStyle }}>\r\n {childArray[index]}\r\n </div>\r\n ),\r\n [childArray, baseRowStyle]\r\n );\r\n\r\n if (!childArray.length) {\r\n return (\r\n <div style={noOptionsStyle}>\r\n {selectProps.noOptionsMessage?.({ inputValue: selectProps.inputValue }) || \r\n \"No options available\"}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <List\r\n ref={listRef}\r\n height={Math.min(maxHeight, childArray.length * itemHeight)}\r\n itemCount={childArray.length}\r\n itemSize={itemHeight}\r\n initialScrollOffset={initialOffset}\r\n overscanCount={5}\r\n useIsScrolling\r\n style={{ backgroundColor: backgroundColor }}\r\n >\r\n {Row}\r\n </List>\r\n );\r\n});\r\n\r\nMenuList.displayName = \"MenuList\";\r\n\r\nexport default MenuList;\r\n","/**\r\n * Validates and normalizes items to the format expected by react-select\r\n */\r\nexport const normalizeItems = (items, valueKey = 'value', labelKey = 'label') => {\r\n if (!Array.isArray(items)) {\r\n throw new Error(\r\n 'largeComponentSelector: \"items\" prop must be an array. ' +\r\n 'Received: ' + typeof items\r\n );\r\n }\r\n\r\n if (items.length === 0) {\r\n return { normalizedItems: [], isObjectMode: false };\r\n }\r\n\r\n const firstItem = items[0];\r\n\r\n // Check if array of strings\r\n if (typeof firstItem === 'string') {\r\n const allStrings = items.every(item => typeof item === 'string');\r\n if (!allStrings) {\r\n throw new Error(\r\n 'largeComponentSelector: All items must be of the same type. ' +\r\n 'Mixed types detected in items array.'\r\n );\r\n }\r\n return {\r\n normalizedItems: items.map(item => ({\r\n value: item,\r\n label: item,\r\n originalValue: item,\r\n })),\r\n isObjectMode: false,\r\n };\r\n }\r\n\r\n // Check if array of objects\r\n if (typeof firstItem === 'object' && firstItem !== null) {\r\n const invalidItems = items.filter(\r\n item => !item || typeof item !== 'object' || !(valueKey in item) || !(labelKey in item)\r\n );\r\n\r\n if (invalidItems.length > 0) {\r\n throw new Error(\r\n `largeComponentSelector: When using objects, all items must have \"${valueKey}\" and \"${labelKey}\" properties. ` +\r\n 'Found ' + invalidItems.length + ' invalid item(s).'\r\n );\r\n }\r\n\r\n return {\r\n normalizedItems: items.map(item => ({\r\n value: item[valueKey],\r\n label: item[labelKey],\r\n originalValue: item,\r\n })),\r\n isObjectMode: true,\r\n };\r\n }\r\n\r\n throw new Error(\r\n 'largeComponentSelector: Items must be either an array of strings or ' +\r\n `an array of objects with \"${valueKey}\" and \"${labelKey}\" properties. ` +\r\n 'Received array of: ' + typeof firstItem\r\n );\r\n};\r\n","class StyleManager {\r\n constructor() {\r\n this.instances = new Map();\r\n }\r\n\r\n addInstance(instanceId, foregroundColor, accentColor) {\r\n const styleId = `large-component-selector-styles-${instanceId}`;\r\n if (document.getElementById(styleId)) return;\r\n \r\n const style = document.createElement(\"style\");\r\n style.id = styleId;\r\n style.textContent = this.generateStyles(instanceId, foregroundColor, accentColor);\r\n document.head.appendChild(style);\r\n this.instances.set(instanceId, { foregroundColor, accentColor });\r\n }\r\n\r\n removeInstance(instanceId) {\r\n const styleId = `large-component-selector-styles-${instanceId}`;\r\n const existingStyle = document.getElementById(styleId);\r\n if (existingStyle) {\r\n existingStyle.remove();\r\n this.instances.delete(instanceId);\r\n }\r\n }\r\n\r\n generateStyles(instanceId, foregroundColor, accentColor) {\r\n return `\r\n .large-component-selector-${instanceId} {\r\n position: relative;\r\n isolation: isolate;\r\n }\r\n\r\n .large-component-selector-${instanceId} input {\r\n color: ${foregroundColor} !important;\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} input:focus {\r\n color: ${foregroundColor} !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-control\"] {\r\n cursor: pointer !important;\r\n position: relative;\r\n z-index: 1;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-control\"]:hover {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-indicatorContainer\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-ValueContainer\"] {\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-placeholder\"] {\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-singleValue\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-option\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-menu\"] {\r\n cursor: default !important;\r\n isolation: isolate;\r\n }\r\n\r\n .large-component-selector-${instanceId}.disabled [class*=\"-control\"],\r\n .large-component-selector-${instanceId}.disabled [class*=\"-control\"]:hover {\r\n cursor: not-allowed !important;\r\n }\r\n\r\n .large-component-selector-${instanceId}.disabled input {\r\n cursor: not-allowed !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-MenuList\"] {\r\n isolation: isolate;\r\n }\r\n `;\r\n }\r\n}\r\n\r\nexport const styleManager = new StyleManager();\r\n","import { useMemo } from 'react';\r\n\r\nexport const debounce = (func, wait) => {\r\n let timeout;\r\n return function executedFunction(...args) {\r\n const later = () => {\r\n clearTimeout(timeout);\r\n func(...args);\r\n };\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n };\r\n};\r\n\r\nexport const useDebounce = (callback, delay) => {\r\n return useMemo(\r\n () => debounce(callback, delay),\r\n [callback, delay]\r\n );\r\n};\r\n","import React, { useState, useCallback, useEffect, useMemo } from 'react';\r\nimport AsyncSelect from 'react-select/async';\r\nimport MenuList from './MenuList';\r\nimport { normalizeItems } from '../utils/normalizeItems';\r\nimport { \r\n DEFAULT_HEIGHT, \r\n DEFAULT_ITEMS_PER_PAGE, \r\n DEFAULT_MAX_HEIGHT,\r\n DEFAULT_COLORS,\r\n DEFAULT_DEBOUNCE_DELAY,\r\n DEFAULT_INITIAL_LOAD_SIZE,\r\n FILTER_MODES\r\n} from '../utils/constants';\r\nimport { useStyleManager } from '../hooks/useStyleManager';\r\nimport { useFilteredOptions } from '../hooks/useFilteredOptions';\r\nimport { useInputHandler } from '../hooks/useInputHandler';\r\nimport { useLoadOptions } from '../hooks/useLoadOptions';\r\nimport { createDefaultStyles, mergeStyles } from '../styles/defaultStyles';\r\n\r\n// Generate unique instance counter\r\nlet instanceCounter = 0;\r\n\r\nexport function LargeComponentSelector({\r\n // Data props\r\n items,\r\n value = null,\r\n defaultValue = null,\r\n\r\n // Callback props\r\n onSelectItem,\r\n onChange,\r\n onInputChange,\r\n onMenuOpen,\r\n onMenuClose,\r\n onFocus,\r\n onBlur,\r\n\r\n // Customization props\r\n placeholder = \"component\",\r\n isDisabled = false,\r\n isClearable = true,\r\n isSearchable = true,\r\n isLoading = false,\r\n\r\n // Object mode props\r\n valueKey = 'value',\r\n labelKey = 'label',\r\n\r\n // Filtering props\r\n filterOption,\r\n customFilter,\r\n filterMatchMode = FILTER_MODES.STARTS_WITH,\r\n\r\n // Virtualization props\r\n virtualizedItemHeight = DEFAULT_HEIGHT,\r\n itemsPerPage = DEFAULT_ITEMS_PER_PAGE,\r\n maxMenuHeight = DEFAULT_MAX_HEIGHT,\r\n\r\n // Performance props\r\n initialLoadSize = DEFAULT_INITIAL_LOAD_SIZE,\r\n debounceDelay = DEFAULT_DEBOUNCE_DELAY,\r\n\r\n // Styling props\r\n className = '',\r\n styles = {},\r\n classNamePrefix,\r\n theme,\r\n\r\n // Color props\r\n backgroundColor = DEFAULT_COLORS.backgroundColor,\r\n foregroundColor = DEFAULT_COLORS.foregroundColor,\r\n mutedBackgroundColor = DEFAULT_COLORS.mutedBackgroundColor,\r\n mutedForegroundColor = DEFAULT_COLORS.mutedForegroundColor,\r\n borderColor = DEFAULT_COLORS.borderColor,\r\n accentColor = DEFAULT_COLORS.accentColor,\r\n ringColor = DEFAULT_COLORS.ringColor,\r\n menuBackgroundColor,\r\n menuBorderColor,\r\n\r\n // Z-index control\r\n zIndex,\r\n baseZIndex,\r\n\r\n // Component override props\r\n components = {},\r\n\r\n // Messages\r\n noOptionsMessage,\r\n loadingMessage,\r\n\r\n // Advanced props\r\n menuPortalTarget = typeof document !== 'undefined' ? document.body : null,\r\n menuPosition = \"absolute\",\r\n menuPlacement = \"auto\",\r\n closeMenuOnSelect = true,\r\n hideSelectedOptions = false,\r\n\r\n // Accessibility\r\n \"data-testid\": dataTestId,\r\n id,\r\n name,\r\n inputId,\r\n instanceId,\r\n\r\n // Additional react-select props\r\n ...additionalProps\r\n}) {\r\n const [selectedItem, setSelectedItem] = useState(defaultValue);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [options, setOptions] = useState([]);\r\n const [isObjectMode, setIsObjectMode] = useState(false);\r\n const [currentInstanceId] = useState(() => `lcs-${++instanceCounter}`);\r\n\r\n // Resolve colors\r\n const resolvedMenuBg = menuBackgroundColor || backgroundColor;\r\n const resolvedMenuBorder = menuBorderColor || borderColor;\r\n const resolvedZIndex = zIndex ?? baseZIndex ?? 9999;\r\n\r\n // Determine if component is controlled\r\n const isControlled = value !== null && value !== undefined;\r\n const currentValue = isControlled ? value : selectedItem;\r\n\r\n // Memoize normalized items\r\n const { normalizedItems, isObjectMode: objectMode } = useMemo(() => {\r\n if (!items || items.length === 0) {\r\n return { normalizedItems: [], isObjectMode: false };\r\n }\r\n try {\r\n return normalizeItems(items, valueKey, labelKey);\r\n } catch (error) {\r\n console.error(error.message);\r\n throw error;\r\n }\r\n }, [items, valueKey, labelKey]);\r\n\r\n // Update options when normalized items change\r\n useEffect(() => {\r\n setOptions(normalizedItems);\r\n setIsObjectMode(objectMode);\r\n }, [normalizedItems, objectMode]);\r\n\r\n // Use style manager hook\r\n useStyleManager(currentInstanceId, foregroundColor, accentColor);\r\n\r\n // Use filtered options hook\r\n const getFilteredOptions = useFilteredOptions(customFilter, filterMatchMode);\r\n\r\n // Use load options hook\r\n const { loadOptions, setPage } = useLoadOptions({\r\n items,\r\n options,\r\n getFilteredOptions,\r\n itemsPerPage,\r\n initialLoadSize,\r\n debounceDelay\r\n });\r\n\r\n // Use input handler hook\r\n const { handleInputChange: handleInput, lastSearchTerm, justCleared } = useInputHandler(\r\n isControlled,\r\n currentValue,\r\n setSelectedItem,\r\n setInputValue,\r\n onSelectItem,\r\n setPage\r\n );\r\n\r\n const handleChange = useCallback((selectedOption) => {\r\n if (!isControlled) {\r\n setSelectedItem(selectedOption);\r\n }\r\n\r\n if (selectedOption) {\r\n const result = isObjectMode\r\n ? { value: selectedOption.value, selection: selectedOption.originalValue }\r\n : { value: selectedOption.value, selection: null };\r\n\r\n onSelectItem?.(result);\r\n onChange?.(result, selectedOption);\r\n\r\n lastSearchTerm.current = selectedOption.label;\r\n justCleared.current = false;\r\n } else {\r\n onSelectItem?.(null);\r\n onChange?.(null, null);\r\n lastSearchTerm.current = \"\";\r\n justCleared.current = true;\r\n setInputValue(\"\");\r\n }\r\n }, [isControlled, isObjectMode, onSelectItem, onChange, lastSearchTerm, justCleared]);\r\n\r\n const handleInputChange = useCallback((newValue, actionMeta) => {\r\n return handleInput(newValue, actionMeta, onInputChange);\r\n }, [handleInput, onInputChange]);\r\n\r\n const handleMenuOpen = useCallback(() => {\r\n if (justCleared.current) {\r\n setInputValue(\"\");\r\n } else {\r\n const valueToShow = currentValue ? currentValue.label : lastSearchTerm.current;\r\n setInputValue(valueToShow);\r\n }\r\n onMenuOpen?.();\r\n }, [currentValue, onMenuOpen, justCleared, lastSearchTerm]);\r\n\r\n const handleMenuClose = useCallback(() => {\r\n onMenuClose?.();\r\n }, [onMenuClose]);\r\n\r\n // Prepare colors object for styles\r\n const colors = useMemo(() => ({\r\n foregroundColor,\r\n accentColor,\r\n resolvedMenuBg,\r\n mutedForegroundColor,\r\n resolvedMenuBorder,\r\n mutedBackgroundColor,\r\n backgroundColor,\r\n ringColor,\r\n borderColor\r\n }), [\r\n foregroundColor,\r\n accentColor,\r\n resolvedMenuBg,\r\n mutedForegroundColor,\r\n resolvedMenuBorder,\r\n mutedBackgroundColor,\r\n backgroundColor,\r\n ringColor,\r\n borderColor\r\n ]);\r\n\r\n // Create and merge styles\r\n const defaultStyles = useMemo(\r\n () => createDefaultStyles(colors, resolvedZIndex),\r\n [colors, resolvedZIndex]\r\n );\r\n\r\n const mergedStyles = useMemo(\r\n () => mergeStyles(defaultStyles, styles),\r\n [defaultStyles, styles]\r\n );\r\n\r\n // Memoize placeholder text\r\n const placeholderText = useMemo(() => {\r\n return !items || items.length === 0\r\n ? `No ${placeholder} available`\r\n : `Select a ${placeholder}`;\r\n }, [items, placeholder]);\r\n\r\n // Memoize message functions\r\n const noOptionsMessageFunc = useMemo(() => {\r\n return noOptionsMessage || (() => `No ${placeholder} found`);\r\n }, [noOptionsMessage, placeholder]);\r\n\r\n const loadingMessageFunc = useMemo(() => {\r\n return loadingMessage || (() => \"Loading items...\");\r\n }, [loadingMessage]);\r\n\r\n return (\r\n <div\r\n data-testid={dataTestId}\r\n className={`large-component-selector-${currentInstanceId} ${isDisabled ? 'disabled' : ''} ${className}`}\r\n >\r\n <AsyncSelect\r\n // Core props\r\n id={id}\r\n name={name}\r\n inputId={inputId}\r\n instanceId={instanceId || currentInstanceId}\r\n\r\n // Data props\r\n cacheOptions\r\n defaultOptions={options}\r\n loadOptions={loadOptions}\r\n value={currentValue}\r\n inputValue={inputValue}\r\n\r\n // State props\r\n isDisabled={isDisabled || !items || items.length === 0}\r\n isClearable={isClearable}\r\n isSearchable={isSearchable}\r\n isLoading={isLoading}\r\n\r\n // Event handlers\r\n onChange={handleChange}\r\n onInputChange={handleInputChange}\r\n onMenuOpen={handleMenuOpen}\r\n onMenuClose={handleMenuClose}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n\r\n // Components\r\n components={{ MenuList, ...components }}\r\n\r\n // Filtering\r\n filterOption={filterOption || null}\r\n\r\n // Menu props\r\n menuPortalTarget={menuPortalTarget}\r\n menuPosition={menuPosition}\r\n menuPlacement={menuPlacement}\r\n closeMenuOnSelect={closeMenuOnSelect}\r\n hideSelectedOptions={hideSelectedOptions}\r\n maxMenuHeight={maxMenuHeight}\r\n\r\n // Messages\r\n placeholder={placeholderText}\r\n noOptionsMessage={noOptionsMessageFunc}\r\n loadingMessage={loadingMessageFunc}\r\n\r\n // Styling\r\n className={`text-left p-stle ${classNamePrefix || ''}`}\r\n classNamePrefix={classNamePrefix}\r\n styles={mergedStyles}\r\n theme={theme}\r\n\r\n // Custom props for MenuList\r\n virtualizedItemHeight={virtualizedItemHeight}\r\n menuBackgroundColor={resolvedMenuBg}\r\n mutedForegroundColor={mutedForegroundColor}\r\n\r\n // Additional props\r\n {...additionalProps}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LargeComponentSelector;\r\n","import { useEffect } from 'react';\r\nimport { styleManager } from '../utils/styleManager';\r\n\r\nexport const useStyleManager = (instanceId, foregroundColor, accentColor) => {\r\n useEffect(() => {\r\n styleManager.addInstance(instanceId, foregroundColor, accentColor);\r\n return () => {\r\n styleManager.removeInstance(instanceId);\r\n };\r\n }, [instanceId, foregroundColor, accentColor]);\r\n};\r\n","import { useCallback } from 'react';\r\nimport { FILTER_MODES } from '../utils/constants';\r\n\r\nexport const useFilteredOptions = (customFilter, filterMatchMode) => {\r\n return useCallback((options, inputValue) => {\r\n if (!inputValue) return options;\r\n\r\n if (customFilter) {\r\n return customFilter(options, inputValue);\r\n }\r\n\r\n const searchTerm = inputValue.toLowerCase();\r\n const results = [];\r\n \r\n for (let i = 0; i < options.length; i++) {\r\n const optionLabel = options[i].label.toLowerCase();\r\n \r\n if (filterMatchMode === FILTER_MODES.INCLUDES) {\r\n if (optionLabel.includes(searchTerm)) {\r\n results.push(options[i]);\r\n }\r\n } else if (optionLabel.startsWith(searchTerm)) {\r\n results.push(options[i]);\r\n }\r\n }\r\n \r\n return results;\r\n }, [customFilter, filterMatchMode]);\r\n};\r\n","import { useCallback, useState } from 'react';\r\nimport { useDebounce } from './useDebounce';\r\n\r\nexport const useLoadOptions = ({\r\n items,\r\n options,\r\n getFilteredOptions,\r\n itemsPerPage,\r\n initialLoadSize,\r\n debounceDelay\r\n}) => {\r\n const [page, setPage] = useState(1);\r\n\r\n const loadOptionsCore = useCallback(\r\n (inputValue, callback) => {\r\n if (!items || items.length === 0) {\r\n callback([]);\r\n return;\r\n }\r\n\r\n const filteredOptions = getFilteredOptions(options, inputValue);\r\n \r\n // Limit initial load for performance\r\n const maxItems = inputValue \r\n ? filteredOptions.length \r\n : Math.min(filteredOptions.length, initialLoadSize);\r\n \r\n const paginatedOptions = filteredOptions.slice(\r\n 0, \r\n Math.min(maxItems, page * itemsPerPage)\r\n );\r\n\r\n if (paginatedOptions.length > 0) {\r\n paginatedOptions.loadMore = () => setPage((prevPage) => prevPage + 1);\r\n }\r\n \r\n callback(paginatedOptions);\r\n },\r\n [items, page, options, getFilteredOptions, itemsPerPage, initialLoadSize]\r\n );\r\n\r\n const debouncedLoadOptions = useDebounce(loadOptionsCore, debounceDelay);\r\n\r\n const loadOptions = useCallback(\r\n (inputValue, callback) => {\r\n // For empty input or initial load, don't debounce\r\n if (!inputValue) {\r\n loadOptionsCore(inputValue, callback);\r\n } else {\r\n debouncedLoadOptions(inputValue, callback);\r\n }\r\n },\r\n [loadOptionsCore, debouncedLoadOptions]\r\n );\r\n\r\n return { loadOptions, setPage, page };\r\n};\r\n","import { useCallback, useRef } from 'react';\r\n\r\nexport const useInputHandler = (\r\n isControlled,\r\n currentValue,\r\n setSelectedItem,\r\n setInputValue,\r\n onSelectItem,\r\n setPage\r\n) => {\r\n const lastSearchTerm = useRef(\"\");\r\n const justCleared = useRef(false);\r\n\r\n const handleInputChange = useCallback((newValue, actionMeta, onInputChange) => {\r\n const action = actionMeta.action;\r\n\r\n if (onInputChange) {\r\n const result = onInputChange(newValue, actionMeta);\r\n if (result !== undefined) {\r\n setInputValue(result);\r\n return result;\r\n }\r\n }\r\n\r\n switch (action) {\r\n case 'input-change':\r\n setInputValue(newValue);\r\n if (!isControlled) {\r\n setSelectedItem(null);\r\n }\r\n onSelectItem?.(null);\r\n lastSearchTerm.current = newValue;\r\n justCleared.current = false;\r\n setPage(1);\r\n return newValue;\r\n\r\n case 'set-value':\r\n setInputValue(\"\");\r\n if (!isControlled) {\r\n setSelectedItem(null);\r\n }\r\n onSelectItem?.(null);\r\n lastSearchTerm.current = \"\";\r\n justCleared.current = true;\r\n return \"\";\r\n\r\n case 'menu-close':\r\n if (!currentValue && !justCleared.current) {\r\n setInputValue(lastSearchTerm.current);\r\n return lastSearchTerm.current;\r\n }\r\n return \"\";\r\n\r\n case 'input-blur':\r\n if (justCleared.current) {\r\n setInputValue(\"\");\r\n return \"\";\r\n }\r\n if (currentValue) {\r\n setInputValue(\"\");\r\n return \"\";\r\n }\r\n setInputValue(lastSearchTerm.current);\r\n return lastSearchTerm.current;\r\n\r\n default:\r\n return newValue;\r\n }\r\n }, [isControlled, currentValue, setSelectedItem, setInputValue, onSelectItem, setPage]);\r\n\r\n return {\r\n handleInputChange,\r\n lastSearchTerm,\r\n justCleared\r\n };\r\n};\r\n","export const createDefaultStyles = (colors, resolvedZIndex) => ({\r\n input: (provided) => ({\r\n ...provided,\r\n color: colors.foregroundColor,\r\n cursor: \"text\",\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n textAlign: \"left\",\r\n backgroundColor: state.isFocused\r\n ? colors.accentColor\r\n : colors.resolvedMenuBg,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n transition: \"background-color 0.1s ease\",\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n backgroundColor: colors.accentColor,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n menu: (provided) => ({\r\n ...provided,\r\n backgroundColor: colors.resolvedMenuBg,\r\n boxShadow: \"0 4px 6px rgba(0, 0, 0, 0.1)\",\r\n border: `1px solid ${colors.resolvedMenuBorder}`,\r\n zIndex: resolvedZIndex,\r\n margin: \"4px 0\",\r\n width: \"100%\",\r\n cursor: \"default\",\r\n isolation: \"isolate\",\r\n }),\r\n menuList: (provided) => ({\r\n ...provided,\r\n backgroundColor: colors.resolvedMenuBg,\r\n padding: 0,\r\n cursor: \"default\",\r\n isolation: \"isolate\",\r\n }),\r\n menuPortal: (provided) => ({\r\n ...provided,\r\n zIndex: resolvedZIndex,\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n cursor: \"pointer\",\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: colors.mutedForegroundColor,\r\n cursor: \"text\",\r\n }),\r\n control: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isDisabled\r\n ? colors.mutedBackgroundColor\r\n : colors.backgroundColor,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n borderColor: state.isFocused ? colors.ringColor : colors.borderColor,\r\n boxShadow: state.isFocused ? `0 0 0 1px ${colors.ringColor}` : \"none\",\r\n opacity: state.isDisabled ? 0.5 : 1,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n minHeight: \"38px\",\r\n position: \"relative\",\r\n zIndex: 1,\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n borderColor: state.isFocused ? colors.ringColor : colors.borderColor,\r\n },\r\n }),\r\n valueContainer: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"text\",\r\n }),\r\n indicatorsContainer: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n }),\r\n indicatorSeparator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n }),\r\n clearIndicator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n dropdownIndicator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n});\r\n\r\nexport const mergeStyles = (defaultStyles, customStyles) => {\r\n return Object.keys(defaultStyles).reduce((acc, key) => {\r\n acc[key] = (provided, state) => {\r\n const defaultStyle = defaultStyles[key](provided, state);\r\n const customStyle = customStyles[key] ? customStyles[key](provided, state) : {};\r\n return { ...defaultStyle, ...customStyle };\r\n };\r\n return acc;\r\n }, {});\r\n};\r\n"],"names":["DEFAULT_COLORS","FILTER_MODES","MenuList","memo","props","options","children","maxHeight","getValue","focusedOption","selectProps","value","_slicedToArray","itemHeight","virtualizedItemHeight","initialOffset","indexOf","listRef","useRef","childArray","Array","isArray","backgroundColor","menuBackgroundColor","baseRowStyle","useMemo","display","alignItems","padding","whiteSpace","overflow","textOverflow","cursor","boxSizing","noOptionsStyle","color","mutedForegroundColor","textAlign","useEffect","current","focusedIndex","findIndex","opt","scrollToItem","_selectProps$noOption","Row","useCallback","_ref","index","style","React","createElement","_objectSpread","length","List","ref","height","Math","min","itemCount","itemSize","initialScrollOffset","overscanCount","useIsScrolling","noOptionsMessage","call","inputValue","displayName","styleManager","_createClass","StyleManager","_classCallCheck","this","instances","Map","key","instanceId","foregroundColor","accentColor","styleId","concat","document","getElementById","id","textContent","generateStyles","head","appendChild","set","existingStyle","remove","useDebounce","callback","delay","func","wait","_len","arguments","args","_key","clearTimeout","timeout","setTimeout","apply","instanceCounter","LargeComponentSelector","_ref2","items","_ref$value","_ref$defaultValue","defaultValue","onSelectItem","onChange","onInputChange","onMenuOpen","onMenuClose","onFocus","onBlur","_ref$placeholder","placeholder","_ref$isDisabled","isDisabled","_ref$isClearable","isClearable","_ref$isSearchable","isSearchable","_ref$isLoading","isLoading","_ref$valueKey","valueKey","_ref$labelKey","labelKey","filterOption","customFilter","_ref$filterMatchMode","filterMatchMode","_ref$virtualizedItemH","_ref$itemsPerPage","itemsPerPage","_ref$maxMenuHeight","maxMenuHeight","_ref$initialLoadSize","initialLoadSize","_ref$debounceDelay","debounceDelay","_ref$className","className","_ref$styles","styles","classNamePrefix","theme","_ref$backgroundColor","_ref$foregroundColor","_ref$mutedBackgroundC","mutedBackgroundColor","_ref$mutedForegroundC","_ref$borderColor","borderColor","_ref$accentColor","_ref$ringColor","ringColor","menuBorderColor","zIndex","baseZIndex","_ref$components","components","loadingMessage","_ref$menuPortalTarget","menuPortalTarget","body","_ref$menuPosition","menuPosition","_ref$menuPlacement","menuPlacement","_ref$closeMenuOnSelec","closeMenuOnSelect","_ref$hideSelectedOpti","hideSelectedOptions","dataTestId","name","inputId","additionalProps","_objectWithoutProperties","_excluded","_useState2","useState","selectedItem","setSelectedItem","_useState4","setInputValue","_useState6","setOptions","_useState8","isObjectMode","setIsObjectMode","currentInstanceId","resolvedMenuBg","resolvedMenuBorder","resolvedZIndex","isControlled","currentValue","_useMemo","normalizedItems","undefined","Error","_typeof","firstItem","every","item","map","label","originalValue","invalidItems","filter","normalizeItems","error","console","message","objectMode","addInstance","removeInstance","useStyleManager","getFilteredOptions","searchTerm","toLowerCase","results","i","optionLabel","includes","push","startsWith","useFilteredOptions","_useLoadOptions","page","setPage","loadOptionsCore","filteredOptions","maxItems","paginatedOptions","slice","loadMore","prevPage","debouncedLoadOptions","loadOptions","useLoadOptions","_useInputHandler","lastSearchTerm","justCleared","handleInputChange","newValue","actionMeta","action","result","useInputHandler","handleInput","handleChange","selectedOption","selection","handleMenuOpen","valueToShow","handleMenuClose","colors","defaultStyles","input","provided","option","state","isFocused","transition","menu","boxShadow","border","margin","width","isolation","menuList","menuPortal","singleValue","control","opacity","minHeight","position","valueContainer","indicatorsContainer","indicatorSeparator","clearIndicator","dropdownIndicator","createDefaultStyles","mergedStyles","customStyles","Object","keys","reduce","acc","defaultStyle","customStyle","mergeStyles","placeholderText","noOptionsMessageFunc","loadingMessageFunc","AsyncSelect","_extends","cacheOptions","defaultOptions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/utils/constants.js","../src/components/MenuList.jsx","../src/utils/normalizeItems.js","../src/utils/styleManager.js","../src/hooks/useLoadOptions.js","../src/hooks/useDebounce.js","../src/components/LargeComponentSelector.jsx","../src/hooks/useStyleManager.js","../src/hooks/useFilteredOptions.js","../src/hooks/useInputHandler.js","../src/styles/defaultStyles.js"],"sourcesContent":["export const DEFAULT_HEIGHT = 35;\r\nexport const DEFAULT_ITEMS_PER_PAGE = 100;\r\nexport const DEFAULT_MAX_HEIGHT = 300;\r\nexport const DEFAULT_DEBOUNCE_DELAY = 150;\r\nexport const DEFAULT_INITIAL_LOAD_SIZE = 1000;\r\n\r\nexport const DEFAULT_COLORS = {\r\n backgroundColor: \"#ffffff\",\r\n foregroundColor: \"#000000\",\r\n mutedBackgroundColor: \"#f3f4f6\",\r\n mutedForegroundColor: \"#6b7280\",\r\n borderColor: \"#d1d5db\",\r\n accentColor: \"#f3f4f6\",\r\n ringColor: \"#3b82f6\",\r\n};\r\n\r\nexport const FILTER_MODES = {\r\n STARTS_WITH: 'startsWith',\r\n INCLUDES: 'includes',\r\n CUSTOM: 'custom'\r\n};\r\n","import React, { memo, useRef, useEffect, useMemo, useCallback } from 'react';\r\nimport { FixedSizeList as List } from 'react-window';\r\nimport { DEFAULT_HEIGHT } from '../utils/constants';\r\n\r\nconst MenuList = memo((props) => {\r\n const { \r\n options, \r\n children, \r\n maxHeight, \r\n getValue, \r\n focusedOption, \r\n selectProps \r\n } = props;\r\n \r\n const [value] = getValue();\r\n const itemHeight = selectProps.virtualizedItemHeight || DEFAULT_HEIGHT;\r\n const initialOffset = value ? options.indexOf(value) * itemHeight : 0;\r\n const listRef = useRef(null);\r\n const childArray = Array.isArray(children) ? children : [];\r\n\r\n const backgroundColor = selectProps.menuBackgroundColor || \"#ffffff\";\r\n\r\n const baseRowStyle = useMemo(() => ({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: \"8px 12px\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n cursor: \"pointer\",\r\n backgroundColor: backgroundColor,\r\n boxSizing: \"border-box\",\r\n }), [backgroundColor]);\r\n\r\n const noOptionsStyle = useMemo(() => ({\r\n padding: \"8px 12px\",\r\n color: selectProps.mutedForegroundColor || \"#6b7280\",\r\n textAlign: \"center\",\r\n cursor: \"default\",\r\n backgroundColor: backgroundColor,\r\n }), [backgroundColor, selectProps.mutedForegroundColor]);\r\n\r\n useEffect(() => {\r\n if (!focusedOption || !listRef.current) return;\r\n const focusedIndex = options.findIndex(\r\n (opt) => opt.value === focusedOption.value\r\n );\r\n if (focusedIndex >= 0) {\r\n listRef.current.scrollToItem(focusedIndex, \"smart\");\r\n }\r\n }, [focusedOption, options]);\r\n\r\n const Row = useCallback(\r\n ({ index, style }) => (\r\n <div style={{ ...style, ...baseRowStyle }}>\r\n {childArray[index]}\r\n </div>\r\n ),\r\n [childArray, baseRowStyle]\r\n );\r\n\r\n if (!childArray.length) {\r\n return (\r\n <div style={noOptionsStyle}>\r\n {selectProps.noOptionsMessage?.({ inputValue: selectProps.inputValue }) || \r\n \"No options available\"}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <List\r\n ref={listRef}\r\n height={Math.min(maxHeight, childArray.length * itemHeight)}\r\n itemCount={childArray.length}\r\n itemSize={itemHeight}\r\n initialScrollOffset={initialOffset}\r\n overscanCount={5}\r\n useIsScrolling\r\n style={{ backgroundColor: backgroundColor }}\r\n >\r\n {Row}\r\n </List>\r\n );\r\n});\r\n\r\nMenuList.displayName = \"MenuList\";\r\n\r\nexport default MenuList;\r\n","/**\r\n * Validates and normalizes items to the format expected by react-select\r\n */\r\nexport const normalizeItems = (items, valueKey = 'value', labelKey = 'label') => {\r\n if (!Array.isArray(items)) {\r\n throw new Error(\r\n 'largeComponentSelector: \"items\" prop must be an array. ' +\r\n 'Received: ' + typeof items\r\n );\r\n }\r\n\r\n if (items.length === 0) {\r\n return { normalizedItems: [], isObjectMode: false };\r\n }\r\n\r\n const firstItem = items[0];\r\n\r\n // Check if array of strings\r\n if (typeof firstItem === 'string') {\r\n const allStrings = items.every(item => typeof item === 'string');\r\n if (!allStrings) {\r\n throw new Error(\r\n 'largeComponentSelector: All items must be of the same type. ' +\r\n 'Mixed types detected in items array.'\r\n );\r\n }\r\n return {\r\n normalizedItems: items.map(item => ({\r\n value: item,\r\n label: item,\r\n originalValue: item,\r\n })),\r\n isObjectMode: false,\r\n };\r\n }\r\n\r\n // Check if array of objects\r\n if (typeof firstItem === 'object' && firstItem !== null) {\r\n const invalidItems = items.filter(\r\n item => !item || typeof item !== 'object' || !(valueKey in item) || !(labelKey in item)\r\n );\r\n\r\n if (invalidItems.length > 0) {\r\n throw new Error(\r\n `largeComponentSelector: When using objects, all items must have \"${valueKey}\" and \"${labelKey}\" properties. ` +\r\n 'Found ' + invalidItems.length + ' invalid item(s).'\r\n );\r\n }\r\n\r\n return {\r\n normalizedItems: items.map(item => ({\r\n value: item[valueKey],\r\n label: item[labelKey],\r\n originalValue: item,\r\n })),\r\n isObjectMode: true,\r\n };\r\n }\r\n\r\n throw new Error(\r\n 'largeComponentSelector: Items must be either an array of strings or ' +\r\n `an array of objects with \"${valueKey}\" and \"${labelKey}\" properties. ` +\r\n 'Received array of: ' + typeof firstItem\r\n );\r\n};\r\n","class StyleManager {\r\n constructor() {\r\n this.instances = new Map();\r\n }\r\n\r\n addInstance(instanceId, foregroundColor, accentColor) {\r\n const styleId = `large-component-selector-styles-${instanceId}`;\r\n if (document.getElementById(styleId)) return;\r\n \r\n const style = document.createElement(\"style\");\r\n style.id = styleId;\r\n style.textContent = this.generateStyles(instanceId, foregroundColor, accentColor);\r\n document.head.appendChild(style);\r\n this.instances.set(instanceId, { foregroundColor, accentColor });\r\n }\r\n\r\n removeInstance(instanceId) {\r\n const styleId = `large-component-selector-styles-${instanceId}`;\r\n const existingStyle = document.getElementById(styleId);\r\n if (existingStyle) {\r\n existingStyle.remove();\r\n this.instances.delete(instanceId);\r\n }\r\n }\r\n\r\n generateStyles(instanceId, foregroundColor, accentColor) {\r\n return `\r\n .large-component-selector-${instanceId} {\r\n position: relative;\r\n isolation: isolate;\r\n }\r\n\r\n .large-component-selector-${instanceId} input {\r\n color: ${foregroundColor} !important;\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} input:focus {\r\n color: ${foregroundColor} !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-control\"] {\r\n cursor: pointer !important;\r\n position: relative;\r\n z-index: 1;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-control\"]:hover {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-indicatorContainer\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-ValueContainer\"] {\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-placeholder\"] {\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-singleValue\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-option\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-menu\"] {\r\n cursor: default !important;\r\n isolation: isolate;\r\n }\r\n\r\n .large-component-selector-${instanceId}.disabled [class*=\"-control\"],\r\n .large-component-selector-${instanceId}.disabled [class*=\"-control\"]:hover {\r\n cursor: not-allowed !important;\r\n }\r\n\r\n .large-component-selector-${instanceId}.disabled input {\r\n cursor: not-allowed !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-MenuList\"] {\r\n isolation: isolate;\r\n }\r\n `;\r\n }\r\n}\r\n\r\nexport const styleManager = new StyleManager();\r\n","import { useCallback, useState, useRef } from 'react';\r\nimport { useDebounce } from './useDebounce';\r\n\r\nexport const useLoadOptions = ({\r\n items, options, getFilteredOptions, itemsPerPage, initialLoadSize, debounceDelay\r\n}) => {\r\n const [page, setPage] = useState(1);\r\n const pageRef = useRef(page);\r\n pageRef.current = page;\r\n\r\n const loadOptionsCore = useCallback(\r\n (inputValue, callback) => {\r\n if (!items || items.length === 0) {\r\n callback([]);\r\n return;\r\n }\r\n\r\n const filteredOptions = getFilteredOptions(options, inputValue);\r\n const maxItems = inputValue\r\n ? filteredOptions.length\r\n : Math.min(filteredOptions.length, initialLoadSize);\r\n\r\n const paginatedOptions = filteredOptions.slice(\r\n 0,\r\n Math.min(maxItems, pageRef.current * itemsPerPage) // Use ref, not state\r\n );\r\n\r\n if (paginatedOptions.length > 0) {\r\n paginatedOptions.loadMore = () => setPage((p) => p + 1);\r\n }\r\n\r\n callback(paginatedOptions);\r\n },\r\n [items, options, getFilteredOptions, itemsPerPage, initialLoadSize] // page removed!\r\n );\r\n\r\n const debouncedLoadOptions = useDebounce(loadOptionsCore, debounceDelay);\r\n\r\n const loadOptions = useCallback(\r\n (inputValue, callback) => {\r\n if (!inputValue) {\r\n loadOptionsCore(inputValue, callback);\r\n } else {\r\n debouncedLoadOptions(inputValue, callback);\r\n }\r\n },\r\n [loadOptionsCore, debouncedLoadOptions]\r\n );\r\n\r\n return { loadOptions, setPage, page };\r\n};\r\n","import { useRef, useCallback } from 'react';\r\n\r\nexport const useDebounce = (callback, delay) => {\r\n const timeoutRef = useRef(null);\r\n const callbackRef = useRef(callback);\r\n\r\n // Always keep latest callback without recreating debounce\r\n callbackRef.current = callback;\r\n\r\n return useCallback((...args) => {\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n }\r\n timeoutRef.current = setTimeout(() => {\r\n callbackRef.current(...args);\r\n }, delay);\r\n }, [delay]); // Only delay changes recreate the debounce\r\n};\r\n","import React, { useState, useCallback, useEffect, useMemo } from 'react';\r\nimport AsyncSelect from 'react-select/async';\r\nimport MenuList from './MenuList';\r\nimport { normalizeItems } from '../utils/normalizeItems';\r\nimport { \r\n DEFAULT_HEIGHT, \r\n DEFAULT_ITEMS_PER_PAGE, \r\n DEFAULT_MAX_HEIGHT,\r\n DEFAULT_COLORS,\r\n DEFAULT_DEBOUNCE_DELAY,\r\n DEFAULT_INITIAL_LOAD_SIZE,\r\n FILTER_MODES\r\n} from '../utils/constants';\r\nimport { useStyleManager } from '../hooks/useStyleManager';\r\nimport { useFilteredOptions } from '../hooks/useFilteredOptions';\r\nimport { useInputHandler } from '../hooks/useInputHandler';\r\nimport { useLoadOptions } from '../hooks/useLoadOptions';\r\nimport { createDefaultStyles, mergeStyles } from '../styles/defaultStyles';\r\n\r\n// Generate unique instance counter\r\nlet instanceCounter = 0;\r\n\r\nexport function LargeComponentSelector({\r\n // Data props\r\n items,\r\n value = null,\r\n defaultValue = null,\r\n\r\n // Callback props\r\n onSelectItem,\r\n onChange,\r\n onInputChange,\r\n onMenuOpen,\r\n onMenuClose,\r\n onFocus,\r\n onBlur,\r\n\r\n // Customization props\r\n placeholder = \"component\",\r\n isDisabled = false,\r\n isClearable = true,\r\n isSearchable = true,\r\n isLoading = false,\r\n\r\n // Object mode props\r\n valueKey = 'value',\r\n labelKey = 'label',\r\n\r\n // Filtering props\r\n filterOption,\r\n customFilter,\r\n filterMatchMode = FILTER_MODES.STARTS_WITH,\r\n\r\n // Virtualization props\r\n virtualizedItemHeight = DEFAULT_HEIGHT,\r\n itemsPerPage = DEFAULT_ITEMS_PER_PAGE,\r\n maxMenuHeight = DEFAULT_MAX_HEIGHT,\r\n\r\n // Performance props\r\n initialLoadSize = DEFAULT_INITIAL_LOAD_SIZE,\r\n debounceDelay = DEFAULT_DEBOUNCE_DELAY,\r\n\r\n // Styling props\r\n className = '',\r\n styles = {},\r\n classNamePrefix,\r\n theme,\r\n\r\n // Color props\r\n backgroundColor = DEFAULT_COLORS.backgroundColor,\r\n foregroundColor = DEFAULT_COLORS.foregroundColor,\r\n mutedBackgroundColor = DEFAULT_COLORS.mutedBackgroundColor,\r\n mutedForegroundColor = DEFAULT_COLORS.mutedForegroundColor,\r\n borderColor = DEFAULT_COLORS.borderColor,\r\n accentColor = DEFAULT_COLORS.accentColor,\r\n ringColor = DEFAULT_COLORS.ringColor,\r\n menuBackgroundColor,\r\n menuBorderColor,\r\n\r\n // Z-index control\r\n zIndex,\r\n baseZIndex,\r\n\r\n // Component override props\r\n components = {},\r\n\r\n // Messages\r\n noOptionsMessage,\r\n loadingMessage,\r\n\r\n // Advanced props\r\n menuPortalTarget = typeof document !== 'undefined' ? document.body : null,\r\n menuPosition = \"absolute\",\r\n menuPlacement = \"auto\",\r\n closeMenuOnSelect = true,\r\n hideSelectedOptions = false,\r\n\r\n // Accessibility\r\n id,\r\n name,\r\n inputId,\r\n instanceId,\r\n\r\n // Additional react-select props\r\n ...additionalProps\r\n}) {\r\n const [selectedItem, setSelectedItem] = useState(defaultValue);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [options, setOptions] = useState([]);\r\n const [isObjectMode, setIsObjectMode] = useState(false);\r\n const [currentInstanceId] = useState(() => `lcs-${++instanceCounter}`);\r\n\r\n // Resolve colors\r\n const resolvedMenuBg = menuBackgroundColor || backgroundColor;\r\n const resolvedMenuBorder = menuBorderColor || borderColor;\r\n const resolvedZIndex = zIndex ?? baseZIndex ?? 9999;\r\n\r\n // Determine if component is controlled\r\n const isControlled = value !== null && value !== undefined;\r\n const currentValue = isControlled ? value : selectedItem;\r\n\r\n // Memoize normalized items\r\n const { normalizedItems, isObjectMode: objectMode } = useMemo(() => {\r\n if (!items || items.length === 0) {\r\n return { normalizedItems: [], isObjectMode: false };\r\n }\r\n try {\r\n return normalizeItems(items, valueKey, labelKey);\r\n } catch (error) {\r\n console.error(error.message);\r\n throw error;\r\n }\r\n }, [items, valueKey, labelKey]);\r\n\r\n // Update options when normalized items change\r\n useEffect(() => {\r\n setOptions(normalizedItems);\r\n setIsObjectMode(objectMode);\r\n }, [normalizedItems, objectMode]);\r\n\r\n // Use style manager hook\r\n useStyleManager(currentInstanceId, foregroundColor, accentColor);\r\n\r\n // Use filtered options hook\r\n const getFilteredOptions = useFilteredOptions(customFilter, filterMatchMode);\r\n\r\n // Use load options hook\r\n const { loadOptions, setPage } = useLoadOptions({\r\n items,\r\n options,\r\n getFilteredOptions,\r\n itemsPerPage,\r\n initialLoadSize,\r\n debounceDelay\r\n });\r\n\r\n // Use input handler hook\r\n const { handleInputChange: handleInput, lastSearchTerm, justCleared } = useInputHandler(\r\n isControlled,\r\n currentValue,\r\n setSelectedItem,\r\n setInputValue,\r\n onSelectItem,\r\n setPage\r\n );\r\n\r\n const handleChange = useCallback((selectedOption) => {\r\n if (!isControlled) {\r\n setSelectedItem(selectedOption);\r\n }\r\n\r\n if (selectedOption) {\r\n const result = isObjectMode\r\n ? { value: selectedOption.value, selection: selectedOption.originalValue }\r\n : { value: selectedOption.value, selection: null };\r\n\r\n onSelectItem?.(result);\r\n onChange?.(result, selectedOption);\r\n\r\n lastSearchTerm.current = selectedOption.label;\r\n justCleared.current = false;\r\n } else {\r\n onSelectItem?.(null);\r\n onChange?.(null, null);\r\n lastSearchTerm.current = \"\";\r\n justCleared.current = true;\r\n setInputValue(\"\");\r\n }\r\n }, [isControlled, isObjectMode, onSelectItem, onChange, lastSearchTerm, justCleared]);\r\n\r\n const handleInputChange = useCallback((newValue, actionMeta) => {\r\n return handleInput(newValue, actionMeta, onInputChange);\r\n }, [handleInput, onInputChange]);\r\n\r\n const handleMenuOpen = useCallback(() => {\r\n if (justCleared.current) {\r\n setInputValue(\"\");\r\n } else {\r\n const valueToShow = currentValue ? currentValue.label : lastSearchTerm.current;\r\n setInputValue(valueToShow);\r\n }\r\n onMenuOpen?.();\r\n }, [currentValue, onMenuOpen, justCleared, lastSearchTerm]);\r\n\r\n const handleMenuClose = useCallback(() => {\r\n onMenuClose?.();\r\n }, [onMenuClose]);\r\n\r\n // Prepare colors object for styles\r\n const colors = useMemo(() => ({\r\n foregroundColor,\r\n accentColor,\r\n resolvedMenuBg,\r\n mutedForegroundColor,\r\n resolvedMenuBorder,\r\n mutedBackgroundColor,\r\n backgroundColor,\r\n ringColor,\r\n borderColor\r\n }), [\r\n foregroundColor,\r\n accentColor,\r\n resolvedMenuBg,\r\n mutedForegroundColor,\r\n resolvedMenuBorder,\r\n mutedBackgroundColor,\r\n backgroundColor,\r\n ringColor,\r\n borderColor\r\n ]);\r\n\r\n // Create and merge styles\r\n const defaultStyles = useMemo(\r\n () => createDefaultStyles(colors, resolvedZIndex),\r\n [colors, resolvedZIndex]\r\n );\r\n\r\n const mergedStyles = useMemo(\r\n () => mergeStyles(defaultStyles, styles),\r\n [defaultStyles, styles]\r\n );\r\n\r\n // Memoize placeholder text\r\n const placeholderText = useMemo(() => {\r\n return !items || items.length === 0\r\n ? `No ${placeholder} available`\r\n : `Select a ${placeholder}`;\r\n }, [items, placeholder]);\r\n\r\n // Memoize message functions\r\n const noOptionsMessageFunc = useMemo(() => {\r\n return noOptionsMessage || (() => `No ${placeholder} found`);\r\n }, [noOptionsMessage, placeholder]);\r\n\r\n const loadingMessageFunc = useMemo(() => {\r\n return loadingMessage || (() => \"Loading items...\");\r\n }, [loadingMessage]);\r\n\r\n return (\r\n <div\r\n className={`large-component-selector-${currentInstanceId} ${isDisabled ? 'disabled' : ''} ${className}`}\r\n >\r\n <AsyncSelect\r\n // Core props\r\n id={id}\r\n name={name}\r\n inputId={inputId}\r\n instanceId={instanceId || currentInstanceId}\r\n\r\n // Data props\r\n cacheOptions\r\n defaultOptions={options}\r\n loadOptions={loadOptions}\r\n value={currentValue}\r\n inputValue={inputValue}\r\n\r\n // State props\r\n isDisabled={isDisabled || !items || items.length === 0}\r\n isClearable={isClearable}\r\n isSearchable={isSearchable}\r\n isLoading={isLoading}\r\n\r\n // Event handlers\r\n onChange={handleChange}\r\n onInputChange={handleInputChange}\r\n onMenuOpen={handleMenuOpen}\r\n onMenuClose={handleMenuClose}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n\r\n // Components\r\n components={{ MenuList, ...components }}\r\n\r\n // Filtering\r\n filterOption={filterOption || null}\r\n\r\n // Menu props\r\n menuPortalTarget={menuPortalTarget}\r\n menuPosition={menuPosition}\r\n menuPlacement={menuPlacement}\r\n closeMenuOnSelect={closeMenuOnSelect}\r\n hideSelectedOptions={hideSelectedOptions}\r\n maxMenuHeight={maxMenuHeight}\r\n\r\n // Messages\r\n placeholder={placeholderText}\r\n noOptionsMessage={noOptionsMessageFunc}\r\n loadingMessage={loadingMessageFunc}\r\n\r\n // Styling\r\n className={`text-left p-stle ${classNamePrefix || ''}`}\r\n classNamePrefix={classNamePrefix}\r\n styles={mergedStyles}\r\n theme={theme}\r\n\r\n // Custom props for MenuList\r\n virtualizedItemHeight={virtualizedItemHeight}\r\n menuBackgroundColor={resolvedMenuBg}\r\n mutedForegroundColor={mutedForegroundColor}\r\n\r\n // Additional props\r\n {...additionalProps}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LargeComponentSelector;\r\n","import { useEffect } from 'react';\r\nimport { styleManager } from '../utils/styleManager';\r\n\r\nexport const useStyleManager = (instanceId, foregroundColor, accentColor) => {\r\n useEffect(() => {\r\n styleManager.addInstance(instanceId, foregroundColor, accentColor);\r\n return () => {\r\n styleManager.removeInstance(instanceId);\r\n };\r\n }, [instanceId, foregroundColor, accentColor]);\r\n};\r\n","import { useCallback } from 'react';\r\nimport { FILTER_MODES } from '../utils/constants';\r\n\r\nexport const useFilteredOptions = (customFilter, filterMatchMode) => {\r\n return useCallback((options, inputValue) => {\r\n if (!inputValue) return options;\r\n\r\n if (customFilter) {\r\n return customFilter(options, inputValue);\r\n }\r\n\r\n const searchTerm = inputValue.toLowerCase();\r\n const results = [];\r\n \r\n for (let i = 0; i < options.length; i++) {\r\n const optionLabel = options[i].label.toLowerCase();\r\n \r\n if (filterMatchMode === FILTER_MODES.INCLUDES) {\r\n if (optionLabel.includes(searchTerm)) {\r\n results.push(options[i]);\r\n }\r\n } else if (optionLabel.startsWith(searchTerm)) {\r\n results.push(options[i]);\r\n }\r\n }\r\n \r\n return results;\r\n }, [customFilter, filterMatchMode]);\r\n};\r\n","import { useCallback, useRef } from 'react';\r\n\r\nexport const useInputHandler = (\r\n isControlled,\r\n currentValue,\r\n setSelectedItem,\r\n setInputValue,\r\n onSelectItem,\r\n setPage\r\n) => {\r\n const lastSearchTerm = useRef(\"\");\r\n const justCleared = useRef(false);\r\n\r\n const handleInputChange = useCallback((newValue, actionMeta, onInputChange) => {\r\n const action = actionMeta.action;\r\n\r\n if (onInputChange) {\r\n const result = onInputChange(newValue, actionMeta);\r\n if (result !== undefined) {\r\n setInputValue(result);\r\n return result;\r\n }\r\n }\r\n\r\n switch (action) {\r\n case 'input-change':\r\n setInputValue(newValue);\r\n if (!isControlled) {\r\n setSelectedItem(null);\r\n }\r\n onSelectItem?.(null);\r\n lastSearchTerm.current = newValue;\r\n justCleared.current = false;\r\n setPage(1);\r\n return newValue;\r\n\r\n case 'set-value':\r\n setInputValue(\"\");\r\n if (!isControlled) {\r\n setSelectedItem(null);\r\n }\r\n onSelectItem?.(null);\r\n lastSearchTerm.current = \"\";\r\n justCleared.current = true;\r\n return \"\";\r\n\r\n case 'menu-close':\r\n if (!currentValue && !justCleared.current) {\r\n setInputValue(lastSearchTerm.current);\r\n return lastSearchTerm.current;\r\n }\r\n return \"\";\r\n\r\n case 'input-blur':\r\n if (justCleared.current) {\r\n setInputValue(\"\");\r\n return \"\";\r\n }\r\n if (currentValue) {\r\n setInputValue(\"\");\r\n return \"\";\r\n }\r\n setInputValue(lastSearchTerm.current);\r\n return lastSearchTerm.current;\r\n\r\n default:\r\n return newValue;\r\n }\r\n }, [isControlled, currentValue, setSelectedItem, setInputValue, onSelectItem, setPage]);\r\n\r\n return {\r\n handleInputChange,\r\n lastSearchTerm,\r\n justCleared\r\n };\r\n};\r\n","export const createDefaultStyles = (colors, resolvedZIndex) => ({\r\n input: (provided) => ({\r\n ...provided,\r\n color: colors.foregroundColor,\r\n cursor: \"text\",\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n textAlign: \"left\",\r\n backgroundColor: state.isFocused\r\n ? colors.accentColor\r\n : colors.resolvedMenuBg,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n transition: \"background-color 0.1s ease\",\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n backgroundColor: colors.accentColor,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n menu: (provided) => ({\r\n ...provided,\r\n backgroundColor: colors.resolvedMenuBg,\r\n boxShadow: \"0 4px 6px rgba(0, 0, 0, 0.1)\",\r\n border: `1px solid ${colors.resolvedMenuBorder}`,\r\n zIndex: resolvedZIndex,\r\n margin: \"4px 0\",\r\n width: \"100%\",\r\n cursor: \"default\",\r\n isolation: \"isolate\",\r\n }),\r\n menuList: (provided) => ({\r\n ...provided,\r\n backgroundColor: colors.resolvedMenuBg,\r\n padding: 0,\r\n cursor: \"default\",\r\n isolation: \"isolate\",\r\n }),\r\n menuPortal: (provided) => ({\r\n ...provided,\r\n zIndex: resolvedZIndex,\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n cursor: \"pointer\",\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: colors.mutedForegroundColor,\r\n cursor: \"text\",\r\n }),\r\n control: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isDisabled\r\n ? colors.mutedBackgroundColor\r\n : colors.backgroundColor,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n borderColor: state.isFocused ? colors.ringColor : colors.borderColor,\r\n boxShadow: state.isFocused ? `0 0 0 1px ${colors.ringColor}` : \"none\",\r\n opacity: state.isDisabled ? 0.5 : 1,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n minHeight: \"38px\",\r\n position: \"relative\",\r\n zIndex: 1,\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n borderColor: state.isFocused ? colors.ringColor : colors.borderColor,\r\n },\r\n }),\r\n valueContainer: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"text\",\r\n }),\r\n indicatorsContainer: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n }),\r\n indicatorSeparator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n }),\r\n clearIndicator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n dropdownIndicator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n});\r\n\r\nexport const mergeStyles = (defaultStyles, customStyles) => {\r\n return Object.keys(defaultStyles).reduce((acc, key) => {\r\n acc[key] = (provided, state) => {\r\n const defaultStyle = defaultStyles[key](provided, state);\r\n const customStyle = customStyles[key] ? customStyles[key](provided, state) : {};\r\n return { ...defaultStyle, ...customStyle };\r\n };\r\n return acc;\r\n }, {});\r\n};\r\n"],"names":["DEFAULT_COLORS","FILTER_MODES","MenuList","memo","props","options","children","maxHeight","getValue","focusedOption","selectProps","value","_slicedToArray","itemHeight","virtualizedItemHeight","initialOffset","indexOf","listRef","useRef","childArray","Array","isArray","backgroundColor","menuBackgroundColor","baseRowStyle","useMemo","display","alignItems","padding","whiteSpace","overflow","textOverflow","cursor","boxSizing","noOptionsStyle","color","mutedForegroundColor","textAlign","useEffect","current","focusedIndex","findIndex","opt","scrollToItem","_selectProps$noOption","Row","useCallback","_ref","index","style","React","createElement","_objectSpread","length","List","ref","height","Math","min","itemCount","itemSize","initialScrollOffset","overscanCount","useIsScrolling","noOptionsMessage","call","inputValue","displayName","styleManager","_createClass","StyleManager","_classCallCheck","this","instances","Map","key","instanceId","foregroundColor","accentColor","styleId","concat","document","getElementById","id","textContent","generateStyles","head","appendChild","set","existingStyle","remove","useLoadOptions","items","getFilteredOptions","itemsPerPage","initialLoadSize","debounceDelay","_useState2","useState","page","setPage","pageRef","callback","delay","timeoutRef","callbackRef","loadOptionsCore","filteredOptions","maxItems","paginatedOptions","slice","loadMore","p","debouncedLoadOptions","_len","arguments","args","_key","clearTimeout","setTimeout","apply","loadOptions","instanceCounter","LargeComponentSelector","_ref2","_ref$value","_ref$defaultValue","defaultValue","onSelectItem","onChange","onInputChange","onMenuOpen","onMenuClose","onFocus","onBlur","_ref$placeholder","placeholder","_ref$isDisabled","isDisabled","_ref$isClearable","isClearable","_ref$isSearchable","isSearchable","_ref$isLoading","isLoading","_ref$valueKey","valueKey","_ref$labelKey","labelKey","filterOption","customFilter","_ref$filterMatchMode","filterMatchMode","_ref$virtualizedItemH","_ref$itemsPerPage","_ref$maxMenuHeight","maxMenuHeight","_ref$initialLoadSize","_ref$debounceDelay","_ref$className","className","_ref$styles","styles","classNamePrefix","theme","_ref$backgroundColor","_ref$foregroundColor","_ref$mutedBackgroundC","mutedBackgroundColor","_ref$mutedForegroundC","_ref$borderColor","borderColor","_ref$accentColor","_ref$ringColor","ringColor","menuBorderColor","zIndex","baseZIndex","_ref$components","components","loadingMessage","_ref$menuPortalTarget","menuPortalTarget","body","_ref$menuPosition","menuPosition","_ref$menuPlacement","menuPlacement","_ref$closeMenuOnSelec","closeMenuOnSelect","_ref$hideSelectedOpti","hideSelectedOptions","name","inputId","additionalProps","_objectWithoutProperties","_excluded","selectedItem","setSelectedItem","_useState4","setInputValue","_useState6","setOptions","_useState8","isObjectMode","setIsObjectMode","currentInstanceId","resolvedMenuBg","resolvedMenuBorder","resolvedZIndex","isControlled","currentValue","_useMemo","normalizedItems","undefined","Error","_typeof","firstItem","every","item","map","label","originalValue","invalidItems","filter","normalizeItems","error","console","message","objectMode","addInstance","removeInstance","useStyleManager","searchTerm","toLowerCase","results","i","optionLabel","includes","push","startsWith","useFilteredOptions","_useLoadOptions","_useInputHandler","lastSearchTerm","justCleared","handleInputChange","newValue","actionMeta","action","result","useInputHandler","handleInput","handleChange","selectedOption","selection","handleMenuOpen","valueToShow","handleMenuClose","colors","defaultStyles","input","provided","option","state","isFocused","transition","menu","boxShadow","border","margin","width","isolation","menuList","menuPortal","singleValue","control","opacity","minHeight","position","valueContainer","indicatorsContainer","indicatorSeparator","clearIndicator","dropdownIndicator","createDefaultStyles","mergedStyles","customStyles","Object","keys","reduce","acc","defaultStyle","customStyle","mergeStyles","placeholderText","noOptionsMessageFunc","loadingMessageFunc","AsyncSelect","_extends","cacheOptions","defaultOptions"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("react-select/async"),o=require("react-window");function t(e,n){(null==n||n>e.length)&&(n=e.length);for(var o=0,t=Array(n);o<n;o++)t[o]=e[o];return t}function r(e,n,o){return n&&function(e,n){for(var o=0;o<n.length;o++){var t=n[o];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,s(t.key),t)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function l(e,n,o){return(n=s(n))in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,e}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var o=arguments[n];for(var t in o)({}).hasOwnProperty.call(o,t)&&(e[t]=o[t])}return e},i.apply(null,arguments)}function a(e,n){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),o.push.apply(o,t)}return o}function u(e){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?a(Object(o),!0).forEach(function(n){l(e,n,o[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):a(Object(o)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))})}return e}function c(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var t,r,l,i,a=[],u=!0,c=!1;try{if(l=(o=o.call(e)).next,0===n){if(Object(o)!==o)return;u=!1}else for(;!(u=(t=l.call(o)).done)&&(a.push(t.value),a.length!==n);u=!0);}catch(e){c=!0,r=e}finally{try{if(!u&&null!=o.return&&(i=o.return(),Object(i)!==i))return}finally{if(c)throw r}}return a}}(e,n)||function(e,n){if(e){if("string"==typeof e)return t(e,n);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?t(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var t=o.call(e,n);if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}var f="#ffffff",m="#000000",p="#f3f4f6",g="#6b7280",b="#d1d5db",v="#f3f4f6",h="#3b82f6",y="startsWith",C="includes",O=e.memo(function(n){var t=n.options,r=n.children,l=n.maxHeight,i=n.getValue,a=n.focusedOption,s=n.selectProps,d=c(i(),1)[0],f=s.virtualizedItemHeight||35,m=d?t.indexOf(d)*f:0,p=e.useRef(null),g=Array.isArray(r)?r:[],b=s.menuBackgroundColor||"#ffffff",v=e.useMemo(function(){return{display:"flex",alignItems:"center",padding:"8px 12px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",cursor:"pointer",backgroundColor:b,boxSizing:"border-box"}},[b]),h=e.useMemo(function(){return{padding:"8px 12px",color:s.mutedForegroundColor||"#6b7280",textAlign:"center",cursor:"default",backgroundColor:b}},[b,s.mutedForegroundColor]);e.useEffect(function(){if(a&&p.current){var e=t.findIndex(function(e){return e.value===a.value});e>=0&&p.current.scrollToItem(e,"smart")}},[a,t]);var y,C=e.useCallback(function(n){var o=n.index,t=n.style;return e.createElement("div",{style:u(u({},t),v)},g[o])},[g,v]);return g.length?e.createElement(o.FixedSizeList,{ref:p,height:Math.min(l,g.length*f),itemCount:g.length,itemSize:f,initialScrollOffset:m,overscanCount:5,useIsScrolling:!0,style:{backgroundColor:b}},C):e.createElement("div",{style:h},(null===(y=s.noOptionsMessage)||void 0===y?void 0:y.call(s,{inputValue:s.inputValue}))||"No options available")});O.displayName="MenuList";var w=new(function(){return r(function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.instances=new Map},[{key:"addInstance",value:function(e,n,o){var t="large-component-selector-styles-".concat(e);if(!document.getElementById(t)){var r=document.createElement("style");r.id=t,r.textContent=this.generateStyles(e,n,o),document.head.appendChild(r),this.instances.set(e,{foregroundColor:n,accentColor:o})}}},{key:"removeInstance",value:function(e){var n="large-component-selector-styles-".concat(e),o=document.getElementById(n);o&&(o.remove(),this.instances.delete(e))}},{key:"generateStyles",value:function(e,n,o){return"\n .large-component-selector-".concat(e," {\n position: relative;\n isolation: isolate;\n }\n\n .large-component-selector-").concat(e," input {\n color: ").concat(n," !important;\n cursor: text !important;\n }\n\n .large-component-selector-").concat(e," input:focus {\n color: ").concat(n," !important;\n }\n\n .large-component-selector-").concat(e,' [class*="-control"] {\n cursor: pointer !important;\n position: relative;\n z-index: 1;\n }\n\n .large-component-selector-').concat(e,' [class*="-control"]:hover {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-indicatorContainer"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-ValueContainer"] {\n cursor: text !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-placeholder"] {\n cursor: text !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-singleValue"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-option"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-menu"] {\n cursor: default !important;\n isolation: isolate;\n }\n\n .large-component-selector-').concat(e,'.disabled [class*="-control"],\n .large-component-selector-').concat(e,'.disabled [class*="-control"]:hover {\n cursor: not-allowed !important;\n }\n\n .large-component-selector-').concat(e,".disabled input {\n cursor: not-allowed !important;\n }\n\n .large-component-selector-").concat(e,' [class*="-MenuList"] {\n isolation: isolate;\n }\n ')}}])}()),S=function(n,o){return e.useMemo(function(){return e=n,t=o,function(){for(var n=arguments.length,o=new Array(n),l=0;l<n;l++)o[l]=arguments[l];clearTimeout(r),r=setTimeout(function(){clearTimeout(r),e.apply(void 0,o)},t)};var e,t,r},[n,o])},M=["items","value","defaultValue","onSelectItem","onChange","onInputChange","onMenuOpen","onMenuClose","onFocus","onBlur","placeholder","isDisabled","isClearable","isSearchable","isLoading","valueKey","labelKey","filterOption","customFilter","filterMatchMode","virtualizedItemHeight","itemsPerPage","maxMenuHeight","initialLoadSize","debounceDelay","className","styles","classNamePrefix","theme","backgroundColor","foregroundColor","mutedBackgroundColor","mutedForegroundColor","borderColor","accentColor","ringColor","menuBackgroundColor","menuBorderColor","zIndex","baseZIndex","components","noOptionsMessage","loadingMessage","menuPortalTarget","menuPosition","menuPlacement","closeMenuOnSelect","hideSelectedOptions","data-testid","id","name","inputId","instanceId"],x=0;function I(o){var t,r=o.items,l=o.value,a=void 0===l?null:l,s=o.defaultValue,I=void 0===s?null:s,P=o.onSelectItem,j=o.onChange,k=o.onInputChange,D=o.onMenuOpen,F=o.onMenuClose,z=o.onFocus,B=o.onBlur,E=o.placeholder,L=void 0===E?"component":E,A=o.isDisabled,N=void 0!==A&&A,T=o.isClearable,V=void 0===T||T,H=o.isSearchable,R=void 0===H||H,K=o.isLoading,q=void 0!==K&&K,W=o.valueKey,Z=void 0===W?"value":W,_=o.labelKey,U=void 0===_?"label":_,$=o.filterOption,G=o.customFilter,J=o.filterMatchMode,Q=void 0===J?y:J,X=o.virtualizedItemHeight,Y=void 0===X?35:X,ee=o.itemsPerPage,ne=void 0===ee?100:ee,oe=o.maxMenuHeight,te=void 0===oe?300:oe,re=o.initialLoadSize,le=void 0===re?1e3:re,ie=o.debounceDelay,ae=void 0===ie?150:ie,ue=o.className,ce=void 0===ue?"":ue,se=o.styles,de=void 0===se?{}:se,fe=o.classNamePrefix,me=o.theme,pe=o.backgroundColor,ge=void 0===pe?f:pe,be=o.foregroundColor,ve=void 0===be?m:be,he=o.mutedBackgroundColor,ye=void 0===he?p:he,Ce=o.mutedForegroundColor,Oe=void 0===Ce?g:Ce,we=o.borderColor,Se=void 0===we?b:we,Me=o.accentColor,xe=void 0===Me?v:Me,Ie=o.ringColor,Pe=void 0===Ie?h:Ie,je=o.menuBackgroundColor,ke=o.menuBorderColor,De=o.zIndex,Fe=o.baseZIndex,ze=o.components,Be=void 0===ze?{}:ze,Ee=o.noOptionsMessage,Le=o.loadingMessage,Ae=o.menuPortalTarget,Ne=void 0===Ae?"undefined"!=typeof document?document.body:null:Ae,Te=o.menuPosition,Ve=void 0===Te?"absolute":Te,He=o.menuPlacement,Re=void 0===He?"auto":He,Ke=o.closeMenuOnSelect,qe=void 0===Ke||Ke,We=o.hideSelectedOptions,Ze=void 0!==We&&We,_e=o["data-testid"],Ue=o.id,$e=o.name,Ge=o.inputId,Je=o.instanceId,Qe=function(e,n){if(null==e)return{};var o,t,r=function(e,n){if(null==e)return{};var o={};for(var t in e)if({}.hasOwnProperty.call(e,t)){if(-1!==n.indexOf(t))continue;o[t]=e[t]}return o}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t<l.length;t++)o=l[t],-1===n.indexOf(o)&&{}.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}(o,M),Xe=c(e.useState(I),2),Ye=Xe[0],en=Xe[1],nn=c(e.useState(""),2),on=nn[0],tn=nn[1],rn=c(e.useState([]),2),ln=rn[0],an=rn[1],un=c(e.useState(!1),2),cn=un[0],sn=un[1],dn=c(e.useState(function(){return"lcs-".concat(++x)}),1)[0],fn=je||ge,mn=ke||Se,pn=null!==(t=null!=De?De:Fe)&&void 0!==t?t:9999,gn=null!=a,bn=gn?a:Ye,vn=e.useMemo(function(){if(!r||0===r.length)return{normalizedItems:[],isObjectMode:!1};try{return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"label";if(!Array.isArray(e))throw new Error('largeComponentSelector: "items" prop must be an array. Received: '+d(e));if(0===e.length)return{normalizedItems:[],isObjectMode:!1};var t=e[0];if("string"==typeof t){if(!e.every(function(e){return"string"==typeof e}))throw new Error("largeComponentSelector: All items must be of the same type. Mixed types detected in items array.");return{normalizedItems:e.map(function(e){return{value:e,label:e,originalValue:e}}),isObjectMode:!1}}if("object"===d(t)&&null!==t){var r=e.filter(function(e){return!e||"object"!==d(e)||!(n in e)||!(o in e)});if(r.length>0)throw new Error('largeComponentSelector: When using objects, all items must have "'.concat(n,'" and "').concat(o,'" properties. ')+"Found "+r.length+" invalid item(s).");return{normalizedItems:e.map(function(e){return{value:e[n],label:e[o],originalValue:e}}),isObjectMode:!0}}throw new Error("largeComponentSelector: Items must be either an array of strings or "+'an array of objects with "'.concat(n,'" and "').concat(o,'" properties. ')+"Received array of: "+d(t))}(r,Z,U)}catch(e){throw console.error(e.message),e}},[r,Z,U]),hn=vn.normalizedItems,yn=vn.isObjectMode;e.useEffect(function(){an(hn),sn(yn)},[hn,yn]),function(n,o,t){e.useEffect(function(){return w.addInstance(n,o,t),function(){w.removeInstance(n)}},[n,o,t])}(dn,ve,xe);var Cn=function(n,o){return e.useCallback(function(e,t){if(!t)return e;if(n)return n(e,t);for(var r=t.toLowerCase(),l=[],i=0;i<e.length;i++){var a=e[i].label.toLowerCase();o===C?a.includes(r)&&l.push(e[i]):a.startsWith(r)&&l.push(e[i])}return l},[n,o])}(G,Q),On=function(n){var o=n.items,t=n.options,r=n.getFilteredOptions,l=n.itemsPerPage,i=n.initialLoadSize,a=n.debounceDelay,u=c(e.useState(1),2),s=u[0],d=u[1],f=e.useCallback(function(e,n){if(o&&0!==o.length){var a=r(t,e),u=e?a.length:Math.min(a.length,i),c=a.slice(0,Math.min(u,s*l));c.length>0&&(c.loadMore=function(){return d(function(e){return e+1})}),n(c)}else n([])},[o,s,t,r,l,i]),m=S(f,a);return{loadOptions:e.useCallback(function(e,n){e?m(e,n):f(e,n)},[f,m]),setPage:d,page:s}}({items:r,options:ln,getFilteredOptions:Cn,itemsPerPage:ne,initialLoadSize:le,debounceDelay:ae}),wn=On.loadOptions,Sn=On.setPage,Mn=function(n,o,t,r,l,i){var a=e.useRef(""),u=e.useRef(!1);return{handleInputChange:e.useCallback(function(e,c,s){var d=c.action;if(s){var f=s(e,c);if(void 0!==f)return r(f),f}switch(d){case"input-change":return r(e),n||t(null),null==l||l(null),a.current=e,u.current=!1,i(1),e;case"set-value":return r(""),n||t(null),null==l||l(null),a.current="",u.current=!0,"";case"menu-close":return o||u.current?"":(r(a.current),a.current);case"input-blur":return u.current||o?(r(""),""):(r(a.current),a.current);default:return e}},[n,o,t,r,l,i]),lastSearchTerm:a,justCleared:u}}(gn,bn,en,tn,P,Sn),xn=Mn.handleInputChange,In=Mn.lastSearchTerm,Pn=Mn.justCleared,jn=e.useCallback(function(e){if(gn||en(e),e){var n=cn?{value:e.value,selection:e.originalValue}:{value:e.value,selection:null};null==P||P(n),null==j||j(n,e),In.current=e.label,Pn.current=!1}else null==P||P(null),null==j||j(null,null),In.current="",Pn.current=!0,tn("")},[gn,cn,P,j,In,Pn]),kn=e.useCallback(function(e,n){return xn(e,n,k)},[xn,k]),Dn=e.useCallback(function(){if(Pn.current)tn("");else{var e=bn?bn.label:In.current;tn(e)}null==D||D()},[bn,D,Pn,In]),Fn=e.useCallback(function(){null==F||F()},[F]),zn=e.useMemo(function(){return{foregroundColor:ve,accentColor:xe,resolvedMenuBg:fn,mutedForegroundColor:Oe,resolvedMenuBorder:mn,mutedBackgroundColor:ye,backgroundColor:ge,ringColor:Pe,borderColor:Se}},[ve,xe,fn,Oe,mn,ye,ge,Pe,Se]),Bn=e.useMemo(function(){return function(e,n){return{input:function(n){return u(u({},n),{},{color:e.foregroundColor,cursor:"text"})},option:function(n,o){return u(u({},n),{},{textAlign:"left",backgroundColor:o.isFocused?e.accentColor:e.resolvedMenuBg,color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,transition:"background-color 0.1s ease",cursor:o.isDisabled?"not-allowed":"pointer",":hover":{backgroundColor:e.accentColor,cursor:o.isDisabled?"not-allowed":"pointer"}})},menu:function(o){return u(u({},o),{},{backgroundColor:e.resolvedMenuBg,boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",border:"1px solid ".concat(e.resolvedMenuBorder),zIndex:n,margin:"4px 0",width:"100%",cursor:"default",isolation:"isolate"})},menuList:function(n){return u(u({},n),{},{backgroundColor:e.resolvedMenuBg,padding:0,cursor:"default",isolation:"isolate"})},menuPortal:function(e){return u(u({},e),{},{zIndex:n})},singleValue:function(n,o){return u(u({},n),{},{color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,cursor:"pointer"})},placeholder:function(n){return u(u({},n),{},{color:e.mutedForegroundColor,cursor:"text"})},control:function(n,o){return u(u({},n),{},{backgroundColor:o.isDisabled?e.mutedBackgroundColor:e.backgroundColor,color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,borderColor:o.isFocused?e.ringColor:e.borderColor,boxShadow:o.isFocused?"0 0 0 1px ".concat(e.ringColor):"none",opacity:o.isDisabled?.5:1,cursor:o.isDisabled?"not-allowed":"pointer",minHeight:"38px",position:"relative",zIndex:1,":hover":{cursor:o.isDisabled?"not-allowed":"pointer",borderColor:o.isFocused?e.ringColor:e.borderColor}})},valueContainer:function(e,n){return u(u({},e),{},{cursor:n.isDisabled?"not-allowed":"text"})},indicatorsContainer:function(e,n){return u(u({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer"})},indicatorSeparator:function(e,n){return u(u({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer"})},clearIndicator:function(e,n){return u(u({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer",":hover":{cursor:n.isDisabled?"not-allowed":"pointer"}})},dropdownIndicator:function(e,n){return u(u({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer",":hover":{cursor:n.isDisabled?"not-allowed":"pointer"}})}}}(zn,pn)},[zn,pn]),En=e.useMemo(function(){return function(e,n){return Object.keys(e).reduce(function(o,t){return o[t]=function(o,r){var l=e[t](o,r),i=n[t]?n[t](o,r):{};return u(u({},l),i)},o},{})}(Bn,de)},[Bn,de]),Ln=e.useMemo(function(){return r&&0!==r.length?"Select a ".concat(L):"No ".concat(L," available")},[r,L]),An=e.useMemo(function(){return Ee||function(){return"No ".concat(L," found")}},[Ee,L]),Nn=e.useMemo(function(){return Le||function(){return"Loading items..."}},[Le]);return e.createElement("div",{"data-testid":_e,className:"large-component-selector-".concat(dn," ").concat(N?"disabled":""," ").concat(ce)},e.createElement(n,i({id:Ue,name:$e,inputId:Ge,instanceId:Je||dn,cacheOptions:!0,defaultOptions:ln,loadOptions:wn,value:bn,inputValue:on,isDisabled:N||!r||0===r.length,isClearable:V,isSearchable:R,isLoading:q,onChange:jn,onInputChange:kn,onMenuOpen:Dn,onMenuClose:Fn,onFocus:z,onBlur:B,components:u({MenuList:O},Be),filterOption:$||null,menuPortalTarget:Ne,menuPosition:Ve,menuPlacement:Re,closeMenuOnSelect:qe,hideSelectedOptions:Ze,maxMenuHeight:te,placeholder:Ln,noOptionsMessage:An,loadingMessage:Nn,className:"text-left p-stle ".concat(fe||""),classNamePrefix:fe,styles:En,theme:me,virtualizedItemHeight:Y,menuBackgroundColor:fn,mutedForegroundColor:Oe},Qe)))}exports.LargeComponentSelector=I,exports.default=I;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("react-select/async"),o=require("react-window");function r(e,n){(null==n||n>e.length)&&(n=e.length);for(var o=0,r=Array(n);o<n;o++)r[o]=e[o];return r}function t(e,n,o){return n&&function(e,n){for(var o=0;o<n.length;o++){var r=n[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,s(r.key),r)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function l(e,n,o){return(n=s(n))in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,e}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var o=arguments[n];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},i.apply(null,arguments)}function a(e,n){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),o.push.apply(o,r)}return o}function u(e){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?a(Object(o),!0).forEach(function(n){l(e,n,o[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):a(Object(o)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))})}return e}function c(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var r,t,l,i,a=[],u=!0,c=!1;try{if(l=(o=o.call(e)).next,0===n){if(Object(o)!==o)return;u=!1}else for(;!(u=(r=l.call(o)).done)&&(a.push(r.value),a.length!==n);u=!0);}catch(e){c=!0,t=e}finally{try{if(!u&&null!=o.return&&(i=o.return(),Object(i)!==i))return}finally{if(c)throw t}}return a}}(e,n)||function(e,n){if(e){if("string"==typeof e)return r(e,n);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?r(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var r=o.call(e,n);if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}var f="#ffffff",m="#000000",p="#f3f4f6",g="#6b7280",b="#d1d5db",v="#f3f4f6",h="#3b82f6",y="startsWith",C="includes",O=e.memo(function(n){var r=n.options,t=n.children,l=n.maxHeight,i=n.getValue,a=n.focusedOption,s=n.selectProps,d=c(i(),1)[0],f=s.virtualizedItemHeight||35,m=d?r.indexOf(d)*f:0,p=e.useRef(null),g=Array.isArray(t)?t:[],b=s.menuBackgroundColor||"#ffffff",v=e.useMemo(function(){return{display:"flex",alignItems:"center",padding:"8px 12px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",cursor:"pointer",backgroundColor:b,boxSizing:"border-box"}},[b]),h=e.useMemo(function(){return{padding:"8px 12px",color:s.mutedForegroundColor||"#6b7280",textAlign:"center",cursor:"default",backgroundColor:b}},[b,s.mutedForegroundColor]);e.useEffect(function(){if(a&&p.current){var e=r.findIndex(function(e){return e.value===a.value});e>=0&&p.current.scrollToItem(e,"smart")}},[a,r]);var y,C=e.useCallback(function(n){var o=n.index,r=n.style;return e.createElement("div",{style:u(u({},r),v)},g[o])},[g,v]);return g.length?e.createElement(o.FixedSizeList,{ref:p,height:Math.min(l,g.length*f),itemCount:g.length,itemSize:f,initialScrollOffset:m,overscanCount:5,useIsScrolling:!0,style:{backgroundColor:b}},C):e.createElement("div",{style:h},(null===(y=s.noOptionsMessage)||void 0===y?void 0:y.call(s,{inputValue:s.inputValue}))||"No options available")});O.displayName="MenuList";var w=new(function(){return t(function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.instances=new Map},[{key:"addInstance",value:function(e,n,o){var r="large-component-selector-styles-".concat(e);if(!document.getElementById(r)){var t=document.createElement("style");t.id=r,t.textContent=this.generateStyles(e,n,o),document.head.appendChild(t),this.instances.set(e,{foregroundColor:n,accentColor:o})}}},{key:"removeInstance",value:function(e){var n="large-component-selector-styles-".concat(e),o=document.getElementById(n);o&&(o.remove(),this.instances.delete(e))}},{key:"generateStyles",value:function(e,n,o){return"\n .large-component-selector-".concat(e," {\n position: relative;\n isolation: isolate;\n }\n\n .large-component-selector-").concat(e," input {\n color: ").concat(n," !important;\n cursor: text !important;\n }\n\n .large-component-selector-").concat(e," input:focus {\n color: ").concat(n," !important;\n }\n\n .large-component-selector-").concat(e,' [class*="-control"] {\n cursor: pointer !important;\n position: relative;\n z-index: 1;\n }\n\n .large-component-selector-').concat(e,' [class*="-control"]:hover {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-indicatorContainer"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-ValueContainer"] {\n cursor: text !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-placeholder"] {\n cursor: text !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-singleValue"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-option"] {\n cursor: pointer !important;\n }\n\n .large-component-selector-').concat(e,' [class*="-menu"] {\n cursor: default !important;\n isolation: isolate;\n }\n\n .large-component-selector-').concat(e,'.disabled [class*="-control"],\n .large-component-selector-').concat(e,'.disabled [class*="-control"]:hover {\n cursor: not-allowed !important;\n }\n\n .large-component-selector-').concat(e,".disabled input {\n cursor: not-allowed !important;\n }\n\n .large-component-selector-").concat(e,' [class*="-MenuList"] {\n isolation: isolate;\n }\n ')}}])}()),S=function(n){var o=n.items,r=n.options,t=n.getFilteredOptions,l=n.itemsPerPage,i=n.initialLoadSize,a=n.debounceDelay,u=c(e.useState(1),2),s=u[0],d=u[1],f=e.useRef(s);f.current=s;var m,p,g,b,v=e.useCallback(function(e,n){if(o&&0!==o.length){var a=t(r,e),u=e?a.length:Math.min(a.length,i),c=a.slice(0,Math.min(u,f.current*l));c.length>0&&(c.loadMore=function(){return d(function(e){return e+1})}),n(c)}else n([])},[o,r,t,l,i]),h=(m=v,p=a,g=e.useRef(null),(b=e.useRef(m)).current=m,e.useCallback(function(){for(var e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];g.current&&clearTimeout(g.current),g.current=setTimeout(function(){b.current.apply(b,n)},p)},[p])),y=e.useCallback(function(e,n){e?h(e,n):v(e,n)},[v,h]);return{loadOptions:y,setPage:d,page:s}},M=["items","value","defaultValue","onSelectItem","onChange","onInputChange","onMenuOpen","onMenuClose","onFocus","onBlur","placeholder","isDisabled","isClearable","isSearchable","isLoading","valueKey","labelKey","filterOption","customFilter","filterMatchMode","virtualizedItemHeight","itemsPerPage","maxMenuHeight","initialLoadSize","debounceDelay","className","styles","classNamePrefix","theme","backgroundColor","foregroundColor","mutedBackgroundColor","mutedForegroundColor","borderColor","accentColor","ringColor","menuBackgroundColor","menuBorderColor","zIndex","baseZIndex","components","noOptionsMessage","loadingMessage","menuPortalTarget","menuPosition","menuPlacement","closeMenuOnSelect","hideSelectedOptions","id","name","inputId","instanceId"],x=0;function I(o){var r,t=o.items,l=o.value,a=void 0===l?null:l,s=o.defaultValue,I=void 0===s?null:s,P=o.onSelectItem,j=o.onChange,k=o.onInputChange,D=o.onMenuOpen,F=o.onMenuClose,z=o.onFocus,B=o.onBlur,E=o.placeholder,L=void 0===E?"component":E,A=o.isDisabled,N=void 0!==A&&A,V=o.isClearable,T=void 0===V||V,H=o.isSearchable,R=void 0===H||H,K=o.isLoading,q=void 0!==K&&K,W=o.valueKey,Z=void 0===W?"value":W,_=o.labelKey,U=void 0===_?"label":_,$=o.filterOption,G=o.customFilter,J=o.filterMatchMode,Q=void 0===J?y:J,X=o.virtualizedItemHeight,Y=void 0===X?35:X,ee=o.itemsPerPage,ne=void 0===ee?100:ee,oe=o.maxMenuHeight,re=void 0===oe?300:oe,te=o.initialLoadSize,le=void 0===te?1e3:te,ie=o.debounceDelay,ae=void 0===ie?150:ie,ue=o.className,ce=void 0===ue?"":ue,se=o.styles,de=void 0===se?{}:se,fe=o.classNamePrefix,me=o.theme,pe=o.backgroundColor,ge=void 0===pe?f:pe,be=o.foregroundColor,ve=void 0===be?m:be,he=o.mutedBackgroundColor,ye=void 0===he?p:he,Ce=o.mutedForegroundColor,Oe=void 0===Ce?g:Ce,we=o.borderColor,Se=void 0===we?b:we,Me=o.accentColor,xe=void 0===Me?v:Me,Ie=o.ringColor,Pe=void 0===Ie?h:Ie,je=o.menuBackgroundColor,ke=o.menuBorderColor,De=o.zIndex,Fe=o.baseZIndex,ze=o.components,Be=void 0===ze?{}:ze,Ee=o.noOptionsMessage,Le=o.loadingMessage,Ae=o.menuPortalTarget,Ne=void 0===Ae?"undefined"!=typeof document?document.body:null:Ae,Ve=o.menuPosition,Te=void 0===Ve?"absolute":Ve,He=o.menuPlacement,Re=void 0===He?"auto":He,Ke=o.closeMenuOnSelect,qe=void 0===Ke||Ke,We=o.hideSelectedOptions,Ze=void 0!==We&&We,_e=o.id,Ue=o.name,$e=o.inputId,Ge=o.instanceId,Je=function(e,n){if(null==e)return{};var o,r,t=function(e,n){if(null==e)return{};var o={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==n.indexOf(r))continue;o[r]=e[r]}return o}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)o=l[r],-1===n.indexOf(o)&&{}.propertyIsEnumerable.call(e,o)&&(t[o]=e[o])}return t}(o,M),Qe=c(e.useState(I),2),Xe=Qe[0],Ye=Qe[1],en=c(e.useState(""),2),nn=en[0],on=en[1],rn=c(e.useState([]),2),tn=rn[0],ln=rn[1],an=c(e.useState(!1),2),un=an[0],cn=an[1],sn=c(e.useState(function(){return"lcs-".concat(++x)}),1)[0],dn=je||ge,fn=ke||Se,mn=null!==(r=null!=De?De:Fe)&&void 0!==r?r:9999,pn=null!=a,gn=pn?a:Xe,bn=e.useMemo(function(){if(!t||0===t.length)return{normalizedItems:[],isObjectMode:!1};try{return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"label";if(!Array.isArray(e))throw new Error('largeComponentSelector: "items" prop must be an array. Received: '+d(e));if(0===e.length)return{normalizedItems:[],isObjectMode:!1};var r=e[0];if("string"==typeof r){if(!e.every(function(e){return"string"==typeof e}))throw new Error("largeComponentSelector: All items must be of the same type. Mixed types detected in items array.");return{normalizedItems:e.map(function(e){return{value:e,label:e,originalValue:e}}),isObjectMode:!1}}if("object"===d(r)&&null!==r){var t=e.filter(function(e){return!e||"object"!==d(e)||!(n in e)||!(o in e)});if(t.length>0)throw new Error('largeComponentSelector: When using objects, all items must have "'.concat(n,'" and "').concat(o,'" properties. ')+"Found "+t.length+" invalid item(s).");return{normalizedItems:e.map(function(e){return{value:e[n],label:e[o],originalValue:e}}),isObjectMode:!0}}throw new Error("largeComponentSelector: Items must be either an array of strings or "+'an array of objects with "'.concat(n,'" and "').concat(o,'" properties. ')+"Received array of: "+d(r))}(t,Z,U)}catch(e){throw console.error(e.message),e}},[t,Z,U]),vn=bn.normalizedItems,hn=bn.isObjectMode;e.useEffect(function(){ln(vn),cn(hn)},[vn,hn]),function(n,o,r){e.useEffect(function(){return w.addInstance(n,o,r),function(){w.removeInstance(n)}},[n,o,r])}(sn,ve,xe);var yn=function(n,o){return e.useCallback(function(e,r){if(!r)return e;if(n)return n(e,r);for(var t=r.toLowerCase(),l=[],i=0;i<e.length;i++){var a=e[i].label.toLowerCase();o===C?a.includes(t)&&l.push(e[i]):a.startsWith(t)&&l.push(e[i])}return l},[n,o])}(G,Q),Cn=S({items:t,options:tn,getFilteredOptions:yn,itemsPerPage:ne,initialLoadSize:le,debounceDelay:ae}),On=Cn.loadOptions,wn=Cn.setPage,Sn=function(n,o,r,t,l,i){var a=e.useRef(""),u=e.useRef(!1);return{handleInputChange:e.useCallback(function(e,c,s){var d=c.action;if(s){var f=s(e,c);if(void 0!==f)return t(f),f}switch(d){case"input-change":return t(e),n||r(null),null==l||l(null),a.current=e,u.current=!1,i(1),e;case"set-value":return t(""),n||r(null),null==l||l(null),a.current="",u.current=!0,"";case"menu-close":return o||u.current?"":(t(a.current),a.current);case"input-blur":return u.current||o?(t(""),""):(t(a.current),a.current);default:return e}},[n,o,r,t,l,i]),lastSearchTerm:a,justCleared:u}}(pn,gn,Ye,on,P,wn),Mn=Sn.handleInputChange,xn=Sn.lastSearchTerm,In=Sn.justCleared,Pn=e.useCallback(function(e){if(pn||Ye(e),e){var n=un?{value:e.value,selection:e.originalValue}:{value:e.value,selection:null};null==P||P(n),null==j||j(n,e),xn.current=e.label,In.current=!1}else null==P||P(null),null==j||j(null,null),xn.current="",In.current=!0,on("")},[pn,un,P,j,xn,In]),jn=e.useCallback(function(e,n){return Mn(e,n,k)},[Mn,k]),kn=e.useCallback(function(){if(In.current)on("");else{var e=gn?gn.label:xn.current;on(e)}null==D||D()},[gn,D,In,xn]),Dn=e.useCallback(function(){null==F||F()},[F]),Fn=e.useMemo(function(){return{foregroundColor:ve,accentColor:xe,resolvedMenuBg:dn,mutedForegroundColor:Oe,resolvedMenuBorder:fn,mutedBackgroundColor:ye,backgroundColor:ge,ringColor:Pe,borderColor:Se}},[ve,xe,dn,Oe,fn,ye,ge,Pe,Se]),zn=e.useMemo(function(){return function(e,n){return{input:function(n){return u(u({},n),{},{color:e.foregroundColor,cursor:"text"})},option:function(n,o){return u(u({},n),{},{textAlign:"left",backgroundColor:o.isFocused?e.accentColor:e.resolvedMenuBg,color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,transition:"background-color 0.1s ease",cursor:o.isDisabled?"not-allowed":"pointer",":hover":{backgroundColor:e.accentColor,cursor:o.isDisabled?"not-allowed":"pointer"}})},menu:function(o){return u(u({},o),{},{backgroundColor:e.resolvedMenuBg,boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",border:"1px solid ".concat(e.resolvedMenuBorder),zIndex:n,margin:"4px 0",width:"100%",cursor:"default",isolation:"isolate"})},menuList:function(n){return u(u({},n),{},{backgroundColor:e.resolvedMenuBg,padding:0,cursor:"default",isolation:"isolate"})},menuPortal:function(e){return u(u({},e),{},{zIndex:n})},singleValue:function(n,o){return u(u({},n),{},{color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,cursor:"pointer"})},placeholder:function(n){return u(u({},n),{},{color:e.mutedForegroundColor,cursor:"text"})},control:function(n,o){return u(u({},n),{},{backgroundColor:o.isDisabled?e.mutedBackgroundColor:e.backgroundColor,color:o.isDisabled?e.mutedForegroundColor:e.foregroundColor,borderColor:o.isFocused?e.ringColor:e.borderColor,boxShadow:o.isFocused?"0 0 0 1px ".concat(e.ringColor):"none",opacity:o.isDisabled?.5:1,cursor:o.isDisabled?"not-allowed":"pointer",minHeight:"38px",position:"relative",zIndex:1,":hover":{cursor:o.isDisabled?"not-allowed":"pointer",borderColor:o.isFocused?e.ringColor:e.borderColor}})},valueContainer:function(e,n){return u(u({},e),{},{cursor:n.isDisabled?"not-allowed":"text"})},indicatorsContainer:function(e,n){return u(u({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer"})},indicatorSeparator:function(e,n){return u(u({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer"})},clearIndicator:function(e,n){return u(u({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer",":hover":{cursor:n.isDisabled?"not-allowed":"pointer"}})},dropdownIndicator:function(e,n){return u(u({},e),{},{cursor:n.isDisabled?"not-allowed":"pointer",":hover":{cursor:n.isDisabled?"not-allowed":"pointer"}})}}}(Fn,mn)},[Fn,mn]),Bn=e.useMemo(function(){return function(e,n){return Object.keys(e).reduce(function(o,r){return o[r]=function(o,t){var l=e[r](o,t),i=n[r]?n[r](o,t):{};return u(u({},l),i)},o},{})}(zn,de)},[zn,de]),En=e.useMemo(function(){return t&&0!==t.length?"Select a ".concat(L):"No ".concat(L," available")},[t,L]),Ln=e.useMemo(function(){return Ee||function(){return"No ".concat(L," found")}},[Ee,L]),An=e.useMemo(function(){return Le||function(){return"Loading items..."}},[Le]);return e.createElement("div",{className:"large-component-selector-".concat(sn," ").concat(N?"disabled":""," ").concat(ce)},e.createElement(n,i({id:_e,name:Ue,inputId:$e,instanceId:Ge||sn,cacheOptions:!0,defaultOptions:tn,loadOptions:On,value:gn,inputValue:nn,isDisabled:N||!t||0===t.length,isClearable:T,isSearchable:R,isLoading:q,onChange:Pn,onInputChange:jn,onMenuOpen:kn,onMenuClose:Dn,onFocus:z,onBlur:B,components:u({MenuList:O},Be),filterOption:$||null,menuPortalTarget:Ne,menuPosition:Te,menuPlacement:Re,closeMenuOnSelect:qe,hideSelectedOptions:Ze,maxMenuHeight:re,placeholder:En,noOptionsMessage:Ln,loadingMessage:An,className:"text-left p-stle ".concat(fe||""),classNamePrefix:fe,styles:Bn,theme:me,virtualizedItemHeight:Y,menuBackgroundColor:dn,mutedForegroundColor:Oe},Je)))}exports.LargeComponentSelector=I,exports.default=I;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils/constants.js","../src/components/MenuList.jsx","../src/utils/normalizeItems.js","../src/utils/styleManager.js","../src/hooks/useDebounce.js","../src/components/LargeComponentSelector.jsx","../src/hooks/useStyleManager.js","../src/hooks/useFilteredOptions.js","../src/hooks/useLoadOptions.js","../src/hooks/useInputHandler.js","../src/styles/defaultStyles.js"],"sourcesContent":["export const DEFAULT_HEIGHT = 35;\r\nexport const DEFAULT_ITEMS_PER_PAGE = 100;\r\nexport const DEFAULT_MAX_HEIGHT = 300;\r\nexport const DEFAULT_DEBOUNCE_DELAY = 150;\r\nexport const DEFAULT_INITIAL_LOAD_SIZE = 1000;\r\n\r\nexport const DEFAULT_COLORS = {\r\n backgroundColor: \"#ffffff\",\r\n foregroundColor: \"#000000\",\r\n mutedBackgroundColor: \"#f3f4f6\",\r\n mutedForegroundColor: \"#6b7280\",\r\n borderColor: \"#d1d5db\",\r\n accentColor: \"#f3f4f6\",\r\n ringColor: \"#3b82f6\",\r\n};\r\n\r\nexport const FILTER_MODES = {\r\n STARTS_WITH: 'startsWith',\r\n INCLUDES: 'includes',\r\n CUSTOM: 'custom'\r\n};\r\n","import React, { memo, useRef, useEffect, useMemo, useCallback } from 'react';\r\nimport { FixedSizeList as List } from 'react-window';\r\nimport { DEFAULT_HEIGHT } from '../utils/constants';\r\n\r\nconst MenuList = memo((props) => {\r\n const { \r\n options, \r\n children, \r\n maxHeight, \r\n getValue, \r\n focusedOption, \r\n selectProps \r\n } = props;\r\n \r\n const [value] = getValue();\r\n const itemHeight = selectProps.virtualizedItemHeight || DEFAULT_HEIGHT;\r\n const initialOffset = value ? options.indexOf(value) * itemHeight : 0;\r\n const listRef = useRef(null);\r\n const childArray = Array.isArray(children) ? children : [];\r\n\r\n const backgroundColor = selectProps.menuBackgroundColor || \"#ffffff\";\r\n\r\n const baseRowStyle = useMemo(() => ({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: \"8px 12px\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n cursor: \"pointer\",\r\n backgroundColor: backgroundColor,\r\n boxSizing: \"border-box\",\r\n }), [backgroundColor]);\r\n\r\n const noOptionsStyle = useMemo(() => ({\r\n padding: \"8px 12px\",\r\n color: selectProps.mutedForegroundColor || \"#6b7280\",\r\n textAlign: \"center\",\r\n cursor: \"default\",\r\n backgroundColor: backgroundColor,\r\n }), [backgroundColor, selectProps.mutedForegroundColor]);\r\n\r\n useEffect(() => {\r\n if (!focusedOption || !listRef.current) return;\r\n const focusedIndex = options.findIndex(\r\n (opt) => opt.value === focusedOption.value\r\n );\r\n if (focusedIndex >= 0) {\r\n listRef.current.scrollToItem(focusedIndex, \"smart\");\r\n }\r\n }, [focusedOption, options]);\r\n\r\n const Row = useCallback(\r\n ({ index, style }) => (\r\n <div style={{ ...style, ...baseRowStyle }}>\r\n {childArray[index]}\r\n </div>\r\n ),\r\n [childArray, baseRowStyle]\r\n );\r\n\r\n if (!childArray.length) {\r\n return (\r\n <div style={noOptionsStyle}>\r\n {selectProps.noOptionsMessage?.({ inputValue: selectProps.inputValue }) || \r\n \"No options available\"}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <List\r\n ref={listRef}\r\n height={Math.min(maxHeight, childArray.length * itemHeight)}\r\n itemCount={childArray.length}\r\n itemSize={itemHeight}\r\n initialScrollOffset={initialOffset}\r\n overscanCount={5}\r\n useIsScrolling\r\n style={{ backgroundColor: backgroundColor }}\r\n >\r\n {Row}\r\n </List>\r\n );\r\n});\r\n\r\nMenuList.displayName = \"MenuList\";\r\n\r\nexport default MenuList;\r\n","/**\r\n * Validates and normalizes items to the format expected by react-select\r\n */\r\nexport const normalizeItems = (items, valueKey = 'value', labelKey = 'label') => {\r\n if (!Array.isArray(items)) {\r\n throw new Error(\r\n 'largeComponentSelector: \"items\" prop must be an array. ' +\r\n 'Received: ' + typeof items\r\n );\r\n }\r\n\r\n if (items.length === 0) {\r\n return { normalizedItems: [], isObjectMode: false };\r\n }\r\n\r\n const firstItem = items[0];\r\n\r\n // Check if array of strings\r\n if (typeof firstItem === 'string') {\r\n const allStrings = items.every(item => typeof item === 'string');\r\n if (!allStrings) {\r\n throw new Error(\r\n 'largeComponentSelector: All items must be of the same type. ' +\r\n 'Mixed types detected in items array.'\r\n );\r\n }\r\n return {\r\n normalizedItems: items.map(item => ({\r\n value: item,\r\n label: item,\r\n originalValue: item,\r\n })),\r\n isObjectMode: false,\r\n };\r\n }\r\n\r\n // Check if array of objects\r\n if (typeof firstItem === 'object' && firstItem !== null) {\r\n const invalidItems = items.filter(\r\n item => !item || typeof item !== 'object' || !(valueKey in item) || !(labelKey in item)\r\n );\r\n\r\n if (invalidItems.length > 0) {\r\n throw new Error(\r\n `largeComponentSelector: When using objects, all items must have \"${valueKey}\" and \"${labelKey}\" properties. ` +\r\n 'Found ' + invalidItems.length + ' invalid item(s).'\r\n );\r\n }\r\n\r\n return {\r\n normalizedItems: items.map(item => ({\r\n value: item[valueKey],\r\n label: item[labelKey],\r\n originalValue: item,\r\n })),\r\n isObjectMode: true,\r\n };\r\n }\r\n\r\n throw new Error(\r\n 'largeComponentSelector: Items must be either an array of strings or ' +\r\n `an array of objects with \"${valueKey}\" and \"${labelKey}\" properties. ` +\r\n 'Received array of: ' + typeof firstItem\r\n );\r\n};\r\n","class StyleManager {\r\n constructor() {\r\n this.instances = new Map();\r\n }\r\n\r\n addInstance(instanceId, foregroundColor, accentColor) {\r\n const styleId = `large-component-selector-styles-${instanceId}`;\r\n if (document.getElementById(styleId)) return;\r\n \r\n const style = document.createElement(\"style\");\r\n style.id = styleId;\r\n style.textContent = this.generateStyles(instanceId, foregroundColor, accentColor);\r\n document.head.appendChild(style);\r\n this.instances.set(instanceId, { foregroundColor, accentColor });\r\n }\r\n\r\n removeInstance(instanceId) {\r\n const styleId = `large-component-selector-styles-${instanceId}`;\r\n const existingStyle = document.getElementById(styleId);\r\n if (existingStyle) {\r\n existingStyle.remove();\r\n this.instances.delete(instanceId);\r\n }\r\n }\r\n\r\n generateStyles(instanceId, foregroundColor, accentColor) {\r\n return `\r\n .large-component-selector-${instanceId} {\r\n position: relative;\r\n isolation: isolate;\r\n }\r\n\r\n .large-component-selector-${instanceId} input {\r\n color: ${foregroundColor} !important;\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} input:focus {\r\n color: ${foregroundColor} !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-control\"] {\r\n cursor: pointer !important;\r\n position: relative;\r\n z-index: 1;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-control\"]:hover {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-indicatorContainer\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-ValueContainer\"] {\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-placeholder\"] {\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-singleValue\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-option\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-menu\"] {\r\n cursor: default !important;\r\n isolation: isolate;\r\n }\r\n\r\n .large-component-selector-${instanceId}.disabled [class*=\"-control\"],\r\n .large-component-selector-${instanceId}.disabled [class*=\"-control\"]:hover {\r\n cursor: not-allowed !important;\r\n }\r\n\r\n .large-component-selector-${instanceId}.disabled input {\r\n cursor: not-allowed !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-MenuList\"] {\r\n isolation: isolate;\r\n }\r\n `;\r\n }\r\n}\r\n\r\nexport const styleManager = new StyleManager();\r\n","import { useMemo } from 'react';\r\n\r\nexport const debounce = (func, wait) => {\r\n let timeout;\r\n return function executedFunction(...args) {\r\n const later = () => {\r\n clearTimeout(timeout);\r\n func(...args);\r\n };\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n };\r\n};\r\n\r\nexport const useDebounce = (callback, delay) => {\r\n return useMemo(\r\n () => debounce(callback, delay),\r\n [callback, delay]\r\n );\r\n};\r\n","import React, { useState, useCallback, useEffect, useMemo } from 'react';\r\nimport AsyncSelect from 'react-select/async';\r\nimport MenuList from './MenuList';\r\nimport { normalizeItems } from '../utils/normalizeItems';\r\nimport { \r\n DEFAULT_HEIGHT, \r\n DEFAULT_ITEMS_PER_PAGE, \r\n DEFAULT_MAX_HEIGHT,\r\n DEFAULT_COLORS,\r\n DEFAULT_DEBOUNCE_DELAY,\r\n DEFAULT_INITIAL_LOAD_SIZE,\r\n FILTER_MODES\r\n} from '../utils/constants';\r\nimport { useStyleManager } from '../hooks/useStyleManager';\r\nimport { useFilteredOptions } from '../hooks/useFilteredOptions';\r\nimport { useInputHandler } from '../hooks/useInputHandler';\r\nimport { useLoadOptions } from '../hooks/useLoadOptions';\r\nimport { createDefaultStyles, mergeStyles } from '../styles/defaultStyles';\r\n\r\n// Generate unique instance counter\r\nlet instanceCounter = 0;\r\n\r\nexport function LargeComponentSelector({\r\n // Data props\r\n items,\r\n value = null,\r\n defaultValue = null,\r\n\r\n // Callback props\r\n onSelectItem,\r\n onChange,\r\n onInputChange,\r\n onMenuOpen,\r\n onMenuClose,\r\n onFocus,\r\n onBlur,\r\n\r\n // Customization props\r\n placeholder = \"component\",\r\n isDisabled = false,\r\n isClearable = true,\r\n isSearchable = true,\r\n isLoading = false,\r\n\r\n // Object mode props\r\n valueKey = 'value',\r\n labelKey = 'label',\r\n\r\n // Filtering props\r\n filterOption,\r\n customFilter,\r\n filterMatchMode = FILTER_MODES.STARTS_WITH,\r\n\r\n // Virtualization props\r\n virtualizedItemHeight = DEFAULT_HEIGHT,\r\n itemsPerPage = DEFAULT_ITEMS_PER_PAGE,\r\n maxMenuHeight = DEFAULT_MAX_HEIGHT,\r\n\r\n // Performance props\r\n initialLoadSize = DEFAULT_INITIAL_LOAD_SIZE,\r\n debounceDelay = DEFAULT_DEBOUNCE_DELAY,\r\n\r\n // Styling props\r\n className = '',\r\n styles = {},\r\n classNamePrefix,\r\n theme,\r\n\r\n // Color props\r\n backgroundColor = DEFAULT_COLORS.backgroundColor,\r\n foregroundColor = DEFAULT_COLORS.foregroundColor,\r\n mutedBackgroundColor = DEFAULT_COLORS.mutedBackgroundColor,\r\n mutedForegroundColor = DEFAULT_COLORS.mutedForegroundColor,\r\n borderColor = DEFAULT_COLORS.borderColor,\r\n accentColor = DEFAULT_COLORS.accentColor,\r\n ringColor = DEFAULT_COLORS.ringColor,\r\n menuBackgroundColor,\r\n menuBorderColor,\r\n\r\n // Z-index control\r\n zIndex,\r\n baseZIndex,\r\n\r\n // Component override props\r\n components = {},\r\n\r\n // Messages\r\n noOptionsMessage,\r\n loadingMessage,\r\n\r\n // Advanced props\r\n menuPortalTarget = typeof document !== 'undefined' ? document.body : null,\r\n menuPosition = \"absolute\",\r\n menuPlacement = \"auto\",\r\n closeMenuOnSelect = true,\r\n hideSelectedOptions = false,\r\n\r\n // Accessibility\r\n \"data-testid\": dataTestId,\r\n id,\r\n name,\r\n inputId,\r\n instanceId,\r\n\r\n // Additional react-select props\r\n ...additionalProps\r\n}) {\r\n const [selectedItem, setSelectedItem] = useState(defaultValue);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [options, setOptions] = useState([]);\r\n const [isObjectMode, setIsObjectMode] = useState(false);\r\n const [currentInstanceId] = useState(() => `lcs-${++instanceCounter}`);\r\n\r\n // Resolve colors\r\n const resolvedMenuBg = menuBackgroundColor || backgroundColor;\r\n const resolvedMenuBorder = menuBorderColor || borderColor;\r\n const resolvedZIndex = zIndex ?? baseZIndex ?? 9999;\r\n\r\n // Determine if component is controlled\r\n const isControlled = value !== null && value !== undefined;\r\n const currentValue = isControlled ? value : selectedItem;\r\n\r\n // Memoize normalized items\r\n const { normalizedItems, isObjectMode: objectMode } = useMemo(() => {\r\n if (!items || items.length === 0) {\r\n return { normalizedItems: [], isObjectMode: false };\r\n }\r\n try {\r\n return normalizeItems(items, valueKey, labelKey);\r\n } catch (error) {\r\n console.error(error.message);\r\n throw error;\r\n }\r\n }, [items, valueKey, labelKey]);\r\n\r\n // Update options when normalized items change\r\n useEffect(() => {\r\n setOptions(normalizedItems);\r\n setIsObjectMode(objectMode);\r\n }, [normalizedItems, objectMode]);\r\n\r\n // Use style manager hook\r\n useStyleManager(currentInstanceId, foregroundColor, accentColor);\r\n\r\n // Use filtered options hook\r\n const getFilteredOptions = useFilteredOptions(customFilter, filterMatchMode);\r\n\r\n // Use load options hook\r\n const { loadOptions, setPage } = useLoadOptions({\r\n items,\r\n options,\r\n getFilteredOptions,\r\n itemsPerPage,\r\n initialLoadSize,\r\n debounceDelay\r\n });\r\n\r\n // Use input handler hook\r\n const { handleInputChange: handleInput, lastSearchTerm, justCleared } = useInputHandler(\r\n isControlled,\r\n currentValue,\r\n setSelectedItem,\r\n setInputValue,\r\n onSelectItem,\r\n setPage\r\n );\r\n\r\n const handleChange = useCallback((selectedOption) => {\r\n if (!isControlled) {\r\n setSelectedItem(selectedOption);\r\n }\r\n\r\n if (selectedOption) {\r\n const result = isObjectMode\r\n ? { value: selectedOption.value, selection: selectedOption.originalValue }\r\n : { value: selectedOption.value, selection: null };\r\n\r\n onSelectItem?.(result);\r\n onChange?.(result, selectedOption);\r\n\r\n lastSearchTerm.current = selectedOption.label;\r\n justCleared.current = false;\r\n } else {\r\n onSelectItem?.(null);\r\n onChange?.(null, null);\r\n lastSearchTerm.current = \"\";\r\n justCleared.current = true;\r\n setInputValue(\"\");\r\n }\r\n }, [isControlled, isObjectMode, onSelectItem, onChange, lastSearchTerm, justCleared]);\r\n\r\n const handleInputChange = useCallback((newValue, actionMeta) => {\r\n return handleInput(newValue, actionMeta, onInputChange);\r\n }, [handleInput, onInputChange]);\r\n\r\n const handleMenuOpen = useCallback(() => {\r\n if (justCleared.current) {\r\n setInputValue(\"\");\r\n } else {\r\n const valueToShow = currentValue ? currentValue.label : lastSearchTerm.current;\r\n setInputValue(valueToShow);\r\n }\r\n onMenuOpen?.();\r\n }, [currentValue, onMenuOpen, justCleared, lastSearchTerm]);\r\n\r\n const handleMenuClose = useCallback(() => {\r\n onMenuClose?.();\r\n }, [onMenuClose]);\r\n\r\n // Prepare colors object for styles\r\n const colors = useMemo(() => ({\r\n foregroundColor,\r\n accentColor,\r\n resolvedMenuBg,\r\n mutedForegroundColor,\r\n resolvedMenuBorder,\r\n mutedBackgroundColor,\r\n backgroundColor,\r\n ringColor,\r\n borderColor\r\n }), [\r\n foregroundColor,\r\n accentColor,\r\n resolvedMenuBg,\r\n mutedForegroundColor,\r\n resolvedMenuBorder,\r\n mutedBackgroundColor,\r\n backgroundColor,\r\n ringColor,\r\n borderColor\r\n ]);\r\n\r\n // Create and merge styles\r\n const defaultStyles = useMemo(\r\n () => createDefaultStyles(colors, resolvedZIndex),\r\n [colors, resolvedZIndex]\r\n );\r\n\r\n const mergedStyles = useMemo(\r\n () => mergeStyles(defaultStyles, styles),\r\n [defaultStyles, styles]\r\n );\r\n\r\n // Memoize placeholder text\r\n const placeholderText = useMemo(() => {\r\n return !items || items.length === 0\r\n ? `No ${placeholder} available`\r\n : `Select a ${placeholder}`;\r\n }, [items, placeholder]);\r\n\r\n // Memoize message functions\r\n const noOptionsMessageFunc = useMemo(() => {\r\n return noOptionsMessage || (() => `No ${placeholder} found`);\r\n }, [noOptionsMessage, placeholder]);\r\n\r\n const loadingMessageFunc = useMemo(() => {\r\n return loadingMessage || (() => \"Loading items...\");\r\n }, [loadingMessage]);\r\n\r\n return (\r\n <div\r\n data-testid={dataTestId}\r\n className={`large-component-selector-${currentInstanceId} ${isDisabled ? 'disabled' : ''} ${className}`}\r\n >\r\n <AsyncSelect\r\n // Core props\r\n id={id}\r\n name={name}\r\n inputId={inputId}\r\n instanceId={instanceId || currentInstanceId}\r\n\r\n // Data props\r\n cacheOptions\r\n defaultOptions={options}\r\n loadOptions={loadOptions}\r\n value={currentValue}\r\n inputValue={inputValue}\r\n\r\n // State props\r\n isDisabled={isDisabled || !items || items.length === 0}\r\n isClearable={isClearable}\r\n isSearchable={isSearchable}\r\n isLoading={isLoading}\r\n\r\n // Event handlers\r\n onChange={handleChange}\r\n onInputChange={handleInputChange}\r\n onMenuOpen={handleMenuOpen}\r\n onMenuClose={handleMenuClose}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n\r\n // Components\r\n components={{ MenuList, ...components }}\r\n\r\n // Filtering\r\n filterOption={filterOption || null}\r\n\r\n // Menu props\r\n menuPortalTarget={menuPortalTarget}\r\n menuPosition={menuPosition}\r\n menuPlacement={menuPlacement}\r\n closeMenuOnSelect={closeMenuOnSelect}\r\n hideSelectedOptions={hideSelectedOptions}\r\n maxMenuHeight={maxMenuHeight}\r\n\r\n // Messages\r\n placeholder={placeholderText}\r\n noOptionsMessage={noOptionsMessageFunc}\r\n loadingMessage={loadingMessageFunc}\r\n\r\n // Styling\r\n className={`text-left p-stle ${classNamePrefix || ''}`}\r\n classNamePrefix={classNamePrefix}\r\n styles={mergedStyles}\r\n theme={theme}\r\n\r\n // Custom props for MenuList\r\n virtualizedItemHeight={virtualizedItemHeight}\r\n menuBackgroundColor={resolvedMenuBg}\r\n mutedForegroundColor={mutedForegroundColor}\r\n\r\n // Additional props\r\n {...additionalProps}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LargeComponentSelector;\r\n","import { useEffect } from 'react';\r\nimport { styleManager } from '../utils/styleManager';\r\n\r\nexport const useStyleManager = (instanceId, foregroundColor, accentColor) => {\r\n useEffect(() => {\r\n styleManager.addInstance(instanceId, foregroundColor, accentColor);\r\n return () => {\r\n styleManager.removeInstance(instanceId);\r\n };\r\n }, [instanceId, foregroundColor, accentColor]);\r\n};\r\n","import { useCallback } from 'react';\r\nimport { FILTER_MODES } from '../utils/constants';\r\n\r\nexport const useFilteredOptions = (customFilter, filterMatchMode) => {\r\n return useCallback((options, inputValue) => {\r\n if (!inputValue) return options;\r\n\r\n if (customFilter) {\r\n return customFilter(options, inputValue);\r\n }\r\n\r\n const searchTerm = inputValue.toLowerCase();\r\n const results = [];\r\n \r\n for (let i = 0; i < options.length; i++) {\r\n const optionLabel = options[i].label.toLowerCase();\r\n \r\n if (filterMatchMode === FILTER_MODES.INCLUDES) {\r\n if (optionLabel.includes(searchTerm)) {\r\n results.push(options[i]);\r\n }\r\n } else if (optionLabel.startsWith(searchTerm)) {\r\n results.push(options[i]);\r\n }\r\n }\r\n \r\n return results;\r\n }, [customFilter, filterMatchMode]);\r\n};\r\n","import { useCallback, useState } from 'react';\r\nimport { useDebounce } from './useDebounce';\r\n\r\nexport const useLoadOptions = ({\r\n items,\r\n options,\r\n getFilteredOptions,\r\n itemsPerPage,\r\n initialLoadSize,\r\n debounceDelay\r\n}) => {\r\n const [page, setPage] = useState(1);\r\n\r\n const loadOptionsCore = useCallback(\r\n (inputValue, callback) => {\r\n if (!items || items.length === 0) {\r\n callback([]);\r\n return;\r\n }\r\n\r\n const filteredOptions = getFilteredOptions(options, inputValue);\r\n \r\n // Limit initial load for performance\r\n const maxItems = inputValue \r\n ? filteredOptions.length \r\n : Math.min(filteredOptions.length, initialLoadSize);\r\n \r\n const paginatedOptions = filteredOptions.slice(\r\n 0, \r\n Math.min(maxItems, page * itemsPerPage)\r\n );\r\n\r\n if (paginatedOptions.length > 0) {\r\n paginatedOptions.loadMore = () => setPage((prevPage) => prevPage + 1);\r\n }\r\n \r\n callback(paginatedOptions);\r\n },\r\n [items, page, options, getFilteredOptions, itemsPerPage, initialLoadSize]\r\n );\r\n\r\n const debouncedLoadOptions = useDebounce(loadOptionsCore, debounceDelay);\r\n\r\n const loadOptions = useCallback(\r\n (inputValue, callback) => {\r\n // For empty input or initial load, don't debounce\r\n if (!inputValue) {\r\n loadOptionsCore(inputValue, callback);\r\n } else {\r\n debouncedLoadOptions(inputValue, callback);\r\n }\r\n },\r\n [loadOptionsCore, debouncedLoadOptions]\r\n );\r\n\r\n return { loadOptions, setPage, page };\r\n};\r\n","import { useCallback, useRef } from 'react';\r\n\r\nexport const useInputHandler = (\r\n isControlled,\r\n currentValue,\r\n setSelectedItem,\r\n setInputValue,\r\n onSelectItem,\r\n setPage\r\n) => {\r\n const lastSearchTerm = useRef(\"\");\r\n const justCleared = useRef(false);\r\n\r\n const handleInputChange = useCallback((newValue, actionMeta, onInputChange) => {\r\n const action = actionMeta.action;\r\n\r\n if (onInputChange) {\r\n const result = onInputChange(newValue, actionMeta);\r\n if (result !== undefined) {\r\n setInputValue(result);\r\n return result;\r\n }\r\n }\r\n\r\n switch (action) {\r\n case 'input-change':\r\n setInputValue(newValue);\r\n if (!isControlled) {\r\n setSelectedItem(null);\r\n }\r\n onSelectItem?.(null);\r\n lastSearchTerm.current = newValue;\r\n justCleared.current = false;\r\n setPage(1);\r\n return newValue;\r\n\r\n case 'set-value':\r\n setInputValue(\"\");\r\n if (!isControlled) {\r\n setSelectedItem(null);\r\n }\r\n onSelectItem?.(null);\r\n lastSearchTerm.current = \"\";\r\n justCleared.current = true;\r\n return \"\";\r\n\r\n case 'menu-close':\r\n if (!currentValue && !justCleared.current) {\r\n setInputValue(lastSearchTerm.current);\r\n return lastSearchTerm.current;\r\n }\r\n return \"\";\r\n\r\n case 'input-blur':\r\n if (justCleared.current) {\r\n setInputValue(\"\");\r\n return \"\";\r\n }\r\n if (currentValue) {\r\n setInputValue(\"\");\r\n return \"\";\r\n }\r\n setInputValue(lastSearchTerm.current);\r\n return lastSearchTerm.current;\r\n\r\n default:\r\n return newValue;\r\n }\r\n }, [isControlled, currentValue, setSelectedItem, setInputValue, onSelectItem, setPage]);\r\n\r\n return {\r\n handleInputChange,\r\n lastSearchTerm,\r\n justCleared\r\n };\r\n};\r\n","export const createDefaultStyles = (colors, resolvedZIndex) => ({\r\n input: (provided) => ({\r\n ...provided,\r\n color: colors.foregroundColor,\r\n cursor: \"text\",\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n textAlign: \"left\",\r\n backgroundColor: state.isFocused\r\n ? colors.accentColor\r\n : colors.resolvedMenuBg,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n transition: \"background-color 0.1s ease\",\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n backgroundColor: colors.accentColor,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n menu: (provided) => ({\r\n ...provided,\r\n backgroundColor: colors.resolvedMenuBg,\r\n boxShadow: \"0 4px 6px rgba(0, 0, 0, 0.1)\",\r\n border: `1px solid ${colors.resolvedMenuBorder}`,\r\n zIndex: resolvedZIndex,\r\n margin: \"4px 0\",\r\n width: \"100%\",\r\n cursor: \"default\",\r\n isolation: \"isolate\",\r\n }),\r\n menuList: (provided) => ({\r\n ...provided,\r\n backgroundColor: colors.resolvedMenuBg,\r\n padding: 0,\r\n cursor: \"default\",\r\n isolation: \"isolate\",\r\n }),\r\n menuPortal: (provided) => ({\r\n ...provided,\r\n zIndex: resolvedZIndex,\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n cursor: \"pointer\",\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: colors.mutedForegroundColor,\r\n cursor: \"text\",\r\n }),\r\n control: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isDisabled\r\n ? colors.mutedBackgroundColor\r\n : colors.backgroundColor,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n borderColor: state.isFocused ? colors.ringColor : colors.borderColor,\r\n boxShadow: state.isFocused ? `0 0 0 1px ${colors.ringColor}` : \"none\",\r\n opacity: state.isDisabled ? 0.5 : 1,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n minHeight: \"38px\",\r\n position: \"relative\",\r\n zIndex: 1,\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n borderColor: state.isFocused ? colors.ringColor : colors.borderColor,\r\n },\r\n }),\r\n valueContainer: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"text\",\r\n }),\r\n indicatorsContainer: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n }),\r\n indicatorSeparator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n }),\r\n clearIndicator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n dropdownIndicator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n});\r\n\r\nexport const mergeStyles = (defaultStyles, customStyles) => {\r\n return Object.keys(defaultStyles).reduce((acc, key) => {\r\n acc[key] = (provided, state) => {\r\n const defaultStyle = defaultStyles[key](provided, state);\r\n const customStyle = customStyles[key] ? customStyles[key](provided, state) : {};\r\n return { ...defaultStyle, ...customStyle };\r\n };\r\n return acc;\r\n }, {});\r\n};\r\n"],"names":["DEFAULT_COLORS","FILTER_MODES","MenuList","memo","props","options","children","maxHeight","getValue","focusedOption","selectProps","value","_slicedToArray","itemHeight","virtualizedItemHeight","initialOffset","indexOf","listRef","useRef","childArray","Array","isArray","backgroundColor","menuBackgroundColor","baseRowStyle","useMemo","display","alignItems","padding","whiteSpace","overflow","textOverflow","cursor","boxSizing","noOptionsStyle","color","mutedForegroundColor","textAlign","useEffect","current","focusedIndex","findIndex","opt","scrollToItem","_selectProps$noOption","Row","useCallback","_ref","index","style","React","createElement","_objectSpread","length","List","ref","height","Math","min","itemCount","itemSize","initialScrollOffset","overscanCount","useIsScrolling","noOptionsMessage","call","inputValue","displayName","styleManager","_createClass","StyleManager","_classCallCheck","this","instances","Map","key","instanceId","foregroundColor","accentColor","styleId","concat","document","getElementById","id","textContent","generateStyles","head","appendChild","set","existingStyle","remove","useDebounce","callback","delay","func","wait","_len","arguments","args","_key","clearTimeout","timeout","setTimeout","apply","instanceCounter","LargeComponentSelector","_ref2","items","_ref$value","_ref$defaultValue","defaultValue","onSelectItem","onChange","onInputChange","onMenuOpen","onMenuClose","onFocus","onBlur","_ref$placeholder","placeholder","_ref$isDisabled","isDisabled","_ref$isClearable","isClearable","_ref$isSearchable","isSearchable","_ref$isLoading","isLoading","_ref$valueKey","valueKey","_ref$labelKey","labelKey","filterOption","customFilter","_ref$filterMatchMode","filterMatchMode","_ref$virtualizedItemH","_ref$itemsPerPage","itemsPerPage","_ref$maxMenuHeight","maxMenuHeight","_ref$initialLoadSize","initialLoadSize","_ref$debounceDelay","debounceDelay","_ref$className","className","_ref$styles","styles","classNamePrefix","theme","_ref$backgroundColor","_ref$foregroundColor","_ref$mutedBackgroundC","mutedBackgroundColor","_ref$mutedForegroundC","_ref$borderColor","borderColor","_ref$accentColor","_ref$ringColor","ringColor","menuBorderColor","zIndex","baseZIndex","_ref$components","components","loadingMessage","_ref$menuPortalTarget","menuPortalTarget","body","_ref$menuPosition","menuPosition","_ref$menuPlacement","menuPlacement","_ref$closeMenuOnSelec","closeMenuOnSelect","_ref$hideSelectedOpti","hideSelectedOptions","dataTestId","name","inputId","additionalProps","_objectWithoutProperties","_excluded","_useState2","useState","selectedItem","setSelectedItem","_useState4","setInputValue","_useState6","setOptions","_useState8","isObjectMode","setIsObjectMode","currentInstanceId","resolvedMenuBg","resolvedMenuBorder","resolvedZIndex","isControlled","currentValue","_useMemo","normalizedItems","undefined","Error","_typeof","firstItem","every","item","map","label","originalValue","invalidItems","filter","normalizeItems","error","console","message","objectMode","addInstance","removeInstance","useStyleManager","getFilteredOptions","searchTerm","toLowerCase","results","i","optionLabel","includes","push","startsWith","useFilteredOptions","_useLoadOptions","page","setPage","loadOptionsCore","filteredOptions","maxItems","paginatedOptions","slice","loadMore","prevPage","debouncedLoadOptions","loadOptions","useLoadOptions","_useInputHandler","lastSearchTerm","justCleared","handleInputChange","newValue","actionMeta","action","result","useInputHandler","handleInput","handleChange","selectedOption","selection","handleMenuOpen","valueToShow","handleMenuClose","colors","defaultStyles","input","provided","option","state","isFocused","transition","menu","boxShadow","border","margin","width","isolation","menuList","menuPortal","singleValue","control","opacity","minHeight","position","valueContainer","indicatorsContainer","indicatorSeparator","clearIndicator","dropdownIndicator","createDefaultStyles","mergedStyles","customStyles","Object","keys","reduce","acc","defaultStyle","customStyle","mergeStyles","placeholderText","noOptionsMessageFunc","loadingMessageFunc","AsyncSelect","_extends","cacheOptions","defaultOptions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/utils/constants.js","../src/components/MenuList.jsx","../src/utils/normalizeItems.js","../src/utils/styleManager.js","../src/hooks/useLoadOptions.js","../src/hooks/useDebounce.js","../src/components/LargeComponentSelector.jsx","../src/hooks/useStyleManager.js","../src/hooks/useFilteredOptions.js","../src/hooks/useInputHandler.js","../src/styles/defaultStyles.js"],"sourcesContent":["export const DEFAULT_HEIGHT = 35;\r\nexport const DEFAULT_ITEMS_PER_PAGE = 100;\r\nexport const DEFAULT_MAX_HEIGHT = 300;\r\nexport const DEFAULT_DEBOUNCE_DELAY = 150;\r\nexport const DEFAULT_INITIAL_LOAD_SIZE = 1000;\r\n\r\nexport const DEFAULT_COLORS = {\r\n backgroundColor: \"#ffffff\",\r\n foregroundColor: \"#000000\",\r\n mutedBackgroundColor: \"#f3f4f6\",\r\n mutedForegroundColor: \"#6b7280\",\r\n borderColor: \"#d1d5db\",\r\n accentColor: \"#f3f4f6\",\r\n ringColor: \"#3b82f6\",\r\n};\r\n\r\nexport const FILTER_MODES = {\r\n STARTS_WITH: 'startsWith',\r\n INCLUDES: 'includes',\r\n CUSTOM: 'custom'\r\n};\r\n","import React, { memo, useRef, useEffect, useMemo, useCallback } from 'react';\r\nimport { FixedSizeList as List } from 'react-window';\r\nimport { DEFAULT_HEIGHT } from '../utils/constants';\r\n\r\nconst MenuList = memo((props) => {\r\n const { \r\n options, \r\n children, \r\n maxHeight, \r\n getValue, \r\n focusedOption, \r\n selectProps \r\n } = props;\r\n \r\n const [value] = getValue();\r\n const itemHeight = selectProps.virtualizedItemHeight || DEFAULT_HEIGHT;\r\n const initialOffset = value ? options.indexOf(value) * itemHeight : 0;\r\n const listRef = useRef(null);\r\n const childArray = Array.isArray(children) ? children : [];\r\n\r\n const backgroundColor = selectProps.menuBackgroundColor || \"#ffffff\";\r\n\r\n const baseRowStyle = useMemo(() => ({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: \"8px 12px\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n cursor: \"pointer\",\r\n backgroundColor: backgroundColor,\r\n boxSizing: \"border-box\",\r\n }), [backgroundColor]);\r\n\r\n const noOptionsStyle = useMemo(() => ({\r\n padding: \"8px 12px\",\r\n color: selectProps.mutedForegroundColor || \"#6b7280\",\r\n textAlign: \"center\",\r\n cursor: \"default\",\r\n backgroundColor: backgroundColor,\r\n }), [backgroundColor, selectProps.mutedForegroundColor]);\r\n\r\n useEffect(() => {\r\n if (!focusedOption || !listRef.current) return;\r\n const focusedIndex = options.findIndex(\r\n (opt) => opt.value === focusedOption.value\r\n );\r\n if (focusedIndex >= 0) {\r\n listRef.current.scrollToItem(focusedIndex, \"smart\");\r\n }\r\n }, [focusedOption, options]);\r\n\r\n const Row = useCallback(\r\n ({ index, style }) => (\r\n <div style={{ ...style, ...baseRowStyle }}>\r\n {childArray[index]}\r\n </div>\r\n ),\r\n [childArray, baseRowStyle]\r\n );\r\n\r\n if (!childArray.length) {\r\n return (\r\n <div style={noOptionsStyle}>\r\n {selectProps.noOptionsMessage?.({ inputValue: selectProps.inputValue }) || \r\n \"No options available\"}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <List\r\n ref={listRef}\r\n height={Math.min(maxHeight, childArray.length * itemHeight)}\r\n itemCount={childArray.length}\r\n itemSize={itemHeight}\r\n initialScrollOffset={initialOffset}\r\n overscanCount={5}\r\n useIsScrolling\r\n style={{ backgroundColor: backgroundColor }}\r\n >\r\n {Row}\r\n </List>\r\n );\r\n});\r\n\r\nMenuList.displayName = \"MenuList\";\r\n\r\nexport default MenuList;\r\n","/**\r\n * Validates and normalizes items to the format expected by react-select\r\n */\r\nexport const normalizeItems = (items, valueKey = 'value', labelKey = 'label') => {\r\n if (!Array.isArray(items)) {\r\n throw new Error(\r\n 'largeComponentSelector: \"items\" prop must be an array. ' +\r\n 'Received: ' + typeof items\r\n );\r\n }\r\n\r\n if (items.length === 0) {\r\n return { normalizedItems: [], isObjectMode: false };\r\n }\r\n\r\n const firstItem = items[0];\r\n\r\n // Check if array of strings\r\n if (typeof firstItem === 'string') {\r\n const allStrings = items.every(item => typeof item === 'string');\r\n if (!allStrings) {\r\n throw new Error(\r\n 'largeComponentSelector: All items must be of the same type. ' +\r\n 'Mixed types detected in items array.'\r\n );\r\n }\r\n return {\r\n normalizedItems: items.map(item => ({\r\n value: item,\r\n label: item,\r\n originalValue: item,\r\n })),\r\n isObjectMode: false,\r\n };\r\n }\r\n\r\n // Check if array of objects\r\n if (typeof firstItem === 'object' && firstItem !== null) {\r\n const invalidItems = items.filter(\r\n item => !item || typeof item !== 'object' || !(valueKey in item) || !(labelKey in item)\r\n );\r\n\r\n if (invalidItems.length > 0) {\r\n throw new Error(\r\n `largeComponentSelector: When using objects, all items must have \"${valueKey}\" and \"${labelKey}\" properties. ` +\r\n 'Found ' + invalidItems.length + ' invalid item(s).'\r\n );\r\n }\r\n\r\n return {\r\n normalizedItems: items.map(item => ({\r\n value: item[valueKey],\r\n label: item[labelKey],\r\n originalValue: item,\r\n })),\r\n isObjectMode: true,\r\n };\r\n }\r\n\r\n throw new Error(\r\n 'largeComponentSelector: Items must be either an array of strings or ' +\r\n `an array of objects with \"${valueKey}\" and \"${labelKey}\" properties. ` +\r\n 'Received array of: ' + typeof firstItem\r\n );\r\n};\r\n","class StyleManager {\r\n constructor() {\r\n this.instances = new Map();\r\n }\r\n\r\n addInstance(instanceId, foregroundColor, accentColor) {\r\n const styleId = `large-component-selector-styles-${instanceId}`;\r\n if (document.getElementById(styleId)) return;\r\n \r\n const style = document.createElement(\"style\");\r\n style.id = styleId;\r\n style.textContent = this.generateStyles(instanceId, foregroundColor, accentColor);\r\n document.head.appendChild(style);\r\n this.instances.set(instanceId, { foregroundColor, accentColor });\r\n }\r\n\r\n removeInstance(instanceId) {\r\n const styleId = `large-component-selector-styles-${instanceId}`;\r\n const existingStyle = document.getElementById(styleId);\r\n if (existingStyle) {\r\n existingStyle.remove();\r\n this.instances.delete(instanceId);\r\n }\r\n }\r\n\r\n generateStyles(instanceId, foregroundColor, accentColor) {\r\n return `\r\n .large-component-selector-${instanceId} {\r\n position: relative;\r\n isolation: isolate;\r\n }\r\n\r\n .large-component-selector-${instanceId} input {\r\n color: ${foregroundColor} !important;\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} input:focus {\r\n color: ${foregroundColor} !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-control\"] {\r\n cursor: pointer !important;\r\n position: relative;\r\n z-index: 1;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-control\"]:hover {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-indicatorContainer\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-ValueContainer\"] {\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-placeholder\"] {\r\n cursor: text !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-singleValue\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-option\"] {\r\n cursor: pointer !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-menu\"] {\r\n cursor: default !important;\r\n isolation: isolate;\r\n }\r\n\r\n .large-component-selector-${instanceId}.disabled [class*=\"-control\"],\r\n .large-component-selector-${instanceId}.disabled [class*=\"-control\"]:hover {\r\n cursor: not-allowed !important;\r\n }\r\n\r\n .large-component-selector-${instanceId}.disabled input {\r\n cursor: not-allowed !important;\r\n }\r\n\r\n .large-component-selector-${instanceId} [class*=\"-MenuList\"] {\r\n isolation: isolate;\r\n }\r\n `;\r\n }\r\n}\r\n\r\nexport const styleManager = new StyleManager();\r\n","import { useCallback, useState, useRef } from 'react';\r\nimport { useDebounce } from './useDebounce';\r\n\r\nexport const useLoadOptions = ({\r\n items, options, getFilteredOptions, itemsPerPage, initialLoadSize, debounceDelay\r\n}) => {\r\n const [page, setPage] = useState(1);\r\n const pageRef = useRef(page);\r\n pageRef.current = page;\r\n\r\n const loadOptionsCore = useCallback(\r\n (inputValue, callback) => {\r\n if (!items || items.length === 0) {\r\n callback([]);\r\n return;\r\n }\r\n\r\n const filteredOptions = getFilteredOptions(options, inputValue);\r\n const maxItems = inputValue\r\n ? filteredOptions.length\r\n : Math.min(filteredOptions.length, initialLoadSize);\r\n\r\n const paginatedOptions = filteredOptions.slice(\r\n 0,\r\n Math.min(maxItems, pageRef.current * itemsPerPage) // Use ref, not state\r\n );\r\n\r\n if (paginatedOptions.length > 0) {\r\n paginatedOptions.loadMore = () => setPage((p) => p + 1);\r\n }\r\n\r\n callback(paginatedOptions);\r\n },\r\n [items, options, getFilteredOptions, itemsPerPage, initialLoadSize] // page removed!\r\n );\r\n\r\n const debouncedLoadOptions = useDebounce(loadOptionsCore, debounceDelay);\r\n\r\n const loadOptions = useCallback(\r\n (inputValue, callback) => {\r\n if (!inputValue) {\r\n loadOptionsCore(inputValue, callback);\r\n } else {\r\n debouncedLoadOptions(inputValue, callback);\r\n }\r\n },\r\n [loadOptionsCore, debouncedLoadOptions]\r\n );\r\n\r\n return { loadOptions, setPage, page };\r\n};\r\n","import { useRef, useCallback } from 'react';\r\n\r\nexport const useDebounce = (callback, delay) => {\r\n const timeoutRef = useRef(null);\r\n const callbackRef = useRef(callback);\r\n\r\n // Always keep latest callback without recreating debounce\r\n callbackRef.current = callback;\r\n\r\n return useCallback((...args) => {\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n }\r\n timeoutRef.current = setTimeout(() => {\r\n callbackRef.current(...args);\r\n }, delay);\r\n }, [delay]); // Only delay changes recreate the debounce\r\n};\r\n","import React, { useState, useCallback, useEffect, useMemo } from 'react';\r\nimport AsyncSelect from 'react-select/async';\r\nimport MenuList from './MenuList';\r\nimport { normalizeItems } from '../utils/normalizeItems';\r\nimport { \r\n DEFAULT_HEIGHT, \r\n DEFAULT_ITEMS_PER_PAGE, \r\n DEFAULT_MAX_HEIGHT,\r\n DEFAULT_COLORS,\r\n DEFAULT_DEBOUNCE_DELAY,\r\n DEFAULT_INITIAL_LOAD_SIZE,\r\n FILTER_MODES\r\n} from '../utils/constants';\r\nimport { useStyleManager } from '../hooks/useStyleManager';\r\nimport { useFilteredOptions } from '../hooks/useFilteredOptions';\r\nimport { useInputHandler } from '../hooks/useInputHandler';\r\nimport { useLoadOptions } from '../hooks/useLoadOptions';\r\nimport { createDefaultStyles, mergeStyles } from '../styles/defaultStyles';\r\n\r\n// Generate unique instance counter\r\nlet instanceCounter = 0;\r\n\r\nexport function LargeComponentSelector({\r\n // Data props\r\n items,\r\n value = null,\r\n defaultValue = null,\r\n\r\n // Callback props\r\n onSelectItem,\r\n onChange,\r\n onInputChange,\r\n onMenuOpen,\r\n onMenuClose,\r\n onFocus,\r\n onBlur,\r\n\r\n // Customization props\r\n placeholder = \"component\",\r\n isDisabled = false,\r\n isClearable = true,\r\n isSearchable = true,\r\n isLoading = false,\r\n\r\n // Object mode props\r\n valueKey = 'value',\r\n labelKey = 'label',\r\n\r\n // Filtering props\r\n filterOption,\r\n customFilter,\r\n filterMatchMode = FILTER_MODES.STARTS_WITH,\r\n\r\n // Virtualization props\r\n virtualizedItemHeight = DEFAULT_HEIGHT,\r\n itemsPerPage = DEFAULT_ITEMS_PER_PAGE,\r\n maxMenuHeight = DEFAULT_MAX_HEIGHT,\r\n\r\n // Performance props\r\n initialLoadSize = DEFAULT_INITIAL_LOAD_SIZE,\r\n debounceDelay = DEFAULT_DEBOUNCE_DELAY,\r\n\r\n // Styling props\r\n className = '',\r\n styles = {},\r\n classNamePrefix,\r\n theme,\r\n\r\n // Color props\r\n backgroundColor = DEFAULT_COLORS.backgroundColor,\r\n foregroundColor = DEFAULT_COLORS.foregroundColor,\r\n mutedBackgroundColor = DEFAULT_COLORS.mutedBackgroundColor,\r\n mutedForegroundColor = DEFAULT_COLORS.mutedForegroundColor,\r\n borderColor = DEFAULT_COLORS.borderColor,\r\n accentColor = DEFAULT_COLORS.accentColor,\r\n ringColor = DEFAULT_COLORS.ringColor,\r\n menuBackgroundColor,\r\n menuBorderColor,\r\n\r\n // Z-index control\r\n zIndex,\r\n baseZIndex,\r\n\r\n // Component override props\r\n components = {},\r\n\r\n // Messages\r\n noOptionsMessage,\r\n loadingMessage,\r\n\r\n // Advanced props\r\n menuPortalTarget = typeof document !== 'undefined' ? document.body : null,\r\n menuPosition = \"absolute\",\r\n menuPlacement = \"auto\",\r\n closeMenuOnSelect = true,\r\n hideSelectedOptions = false,\r\n\r\n // Accessibility\r\n id,\r\n name,\r\n inputId,\r\n instanceId,\r\n\r\n // Additional react-select props\r\n ...additionalProps\r\n}) {\r\n const [selectedItem, setSelectedItem] = useState(defaultValue);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [options, setOptions] = useState([]);\r\n const [isObjectMode, setIsObjectMode] = useState(false);\r\n const [currentInstanceId] = useState(() => `lcs-${++instanceCounter}`);\r\n\r\n // Resolve colors\r\n const resolvedMenuBg = menuBackgroundColor || backgroundColor;\r\n const resolvedMenuBorder = menuBorderColor || borderColor;\r\n const resolvedZIndex = zIndex ?? baseZIndex ?? 9999;\r\n\r\n // Determine if component is controlled\r\n const isControlled = value !== null && value !== undefined;\r\n const currentValue = isControlled ? value : selectedItem;\r\n\r\n // Memoize normalized items\r\n const { normalizedItems, isObjectMode: objectMode } = useMemo(() => {\r\n if (!items || items.length === 0) {\r\n return { normalizedItems: [], isObjectMode: false };\r\n }\r\n try {\r\n return normalizeItems(items, valueKey, labelKey);\r\n } catch (error) {\r\n console.error(error.message);\r\n throw error;\r\n }\r\n }, [items, valueKey, labelKey]);\r\n\r\n // Update options when normalized items change\r\n useEffect(() => {\r\n setOptions(normalizedItems);\r\n setIsObjectMode(objectMode);\r\n }, [normalizedItems, objectMode]);\r\n\r\n // Use style manager hook\r\n useStyleManager(currentInstanceId, foregroundColor, accentColor);\r\n\r\n // Use filtered options hook\r\n const getFilteredOptions = useFilteredOptions(customFilter, filterMatchMode);\r\n\r\n // Use load options hook\r\n const { loadOptions, setPage } = useLoadOptions({\r\n items,\r\n options,\r\n getFilteredOptions,\r\n itemsPerPage,\r\n initialLoadSize,\r\n debounceDelay\r\n });\r\n\r\n // Use input handler hook\r\n const { handleInputChange: handleInput, lastSearchTerm, justCleared } = useInputHandler(\r\n isControlled,\r\n currentValue,\r\n setSelectedItem,\r\n setInputValue,\r\n onSelectItem,\r\n setPage\r\n );\r\n\r\n const handleChange = useCallback((selectedOption) => {\r\n if (!isControlled) {\r\n setSelectedItem(selectedOption);\r\n }\r\n\r\n if (selectedOption) {\r\n const result = isObjectMode\r\n ? { value: selectedOption.value, selection: selectedOption.originalValue }\r\n : { value: selectedOption.value, selection: null };\r\n\r\n onSelectItem?.(result);\r\n onChange?.(result, selectedOption);\r\n\r\n lastSearchTerm.current = selectedOption.label;\r\n justCleared.current = false;\r\n } else {\r\n onSelectItem?.(null);\r\n onChange?.(null, null);\r\n lastSearchTerm.current = \"\";\r\n justCleared.current = true;\r\n setInputValue(\"\");\r\n }\r\n }, [isControlled, isObjectMode, onSelectItem, onChange, lastSearchTerm, justCleared]);\r\n\r\n const handleInputChange = useCallback((newValue, actionMeta) => {\r\n return handleInput(newValue, actionMeta, onInputChange);\r\n }, [handleInput, onInputChange]);\r\n\r\n const handleMenuOpen = useCallback(() => {\r\n if (justCleared.current) {\r\n setInputValue(\"\");\r\n } else {\r\n const valueToShow = currentValue ? currentValue.label : lastSearchTerm.current;\r\n setInputValue(valueToShow);\r\n }\r\n onMenuOpen?.();\r\n }, [currentValue, onMenuOpen, justCleared, lastSearchTerm]);\r\n\r\n const handleMenuClose = useCallback(() => {\r\n onMenuClose?.();\r\n }, [onMenuClose]);\r\n\r\n // Prepare colors object for styles\r\n const colors = useMemo(() => ({\r\n foregroundColor,\r\n accentColor,\r\n resolvedMenuBg,\r\n mutedForegroundColor,\r\n resolvedMenuBorder,\r\n mutedBackgroundColor,\r\n backgroundColor,\r\n ringColor,\r\n borderColor\r\n }), [\r\n foregroundColor,\r\n accentColor,\r\n resolvedMenuBg,\r\n mutedForegroundColor,\r\n resolvedMenuBorder,\r\n mutedBackgroundColor,\r\n backgroundColor,\r\n ringColor,\r\n borderColor\r\n ]);\r\n\r\n // Create and merge styles\r\n const defaultStyles = useMemo(\r\n () => createDefaultStyles(colors, resolvedZIndex),\r\n [colors, resolvedZIndex]\r\n );\r\n\r\n const mergedStyles = useMemo(\r\n () => mergeStyles(defaultStyles, styles),\r\n [defaultStyles, styles]\r\n );\r\n\r\n // Memoize placeholder text\r\n const placeholderText = useMemo(() => {\r\n return !items || items.length === 0\r\n ? `No ${placeholder} available`\r\n : `Select a ${placeholder}`;\r\n }, [items, placeholder]);\r\n\r\n // Memoize message functions\r\n const noOptionsMessageFunc = useMemo(() => {\r\n return noOptionsMessage || (() => `No ${placeholder} found`);\r\n }, [noOptionsMessage, placeholder]);\r\n\r\n const loadingMessageFunc = useMemo(() => {\r\n return loadingMessage || (() => \"Loading items...\");\r\n }, [loadingMessage]);\r\n\r\n return (\r\n <div\r\n className={`large-component-selector-${currentInstanceId} ${isDisabled ? 'disabled' : ''} ${className}`}\r\n >\r\n <AsyncSelect\r\n // Core props\r\n id={id}\r\n name={name}\r\n inputId={inputId}\r\n instanceId={instanceId || currentInstanceId}\r\n\r\n // Data props\r\n cacheOptions\r\n defaultOptions={options}\r\n loadOptions={loadOptions}\r\n value={currentValue}\r\n inputValue={inputValue}\r\n\r\n // State props\r\n isDisabled={isDisabled || !items || items.length === 0}\r\n isClearable={isClearable}\r\n isSearchable={isSearchable}\r\n isLoading={isLoading}\r\n\r\n // Event handlers\r\n onChange={handleChange}\r\n onInputChange={handleInputChange}\r\n onMenuOpen={handleMenuOpen}\r\n onMenuClose={handleMenuClose}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n\r\n // Components\r\n components={{ MenuList, ...components }}\r\n\r\n // Filtering\r\n filterOption={filterOption || null}\r\n\r\n // Menu props\r\n menuPortalTarget={menuPortalTarget}\r\n menuPosition={menuPosition}\r\n menuPlacement={menuPlacement}\r\n closeMenuOnSelect={closeMenuOnSelect}\r\n hideSelectedOptions={hideSelectedOptions}\r\n maxMenuHeight={maxMenuHeight}\r\n\r\n // Messages\r\n placeholder={placeholderText}\r\n noOptionsMessage={noOptionsMessageFunc}\r\n loadingMessage={loadingMessageFunc}\r\n\r\n // Styling\r\n className={`text-left p-stle ${classNamePrefix || ''}`}\r\n classNamePrefix={classNamePrefix}\r\n styles={mergedStyles}\r\n theme={theme}\r\n\r\n // Custom props for MenuList\r\n virtualizedItemHeight={virtualizedItemHeight}\r\n menuBackgroundColor={resolvedMenuBg}\r\n mutedForegroundColor={mutedForegroundColor}\r\n\r\n // Additional props\r\n {...additionalProps}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LargeComponentSelector;\r\n","import { useEffect } from 'react';\r\nimport { styleManager } from '../utils/styleManager';\r\n\r\nexport const useStyleManager = (instanceId, foregroundColor, accentColor) => {\r\n useEffect(() => {\r\n styleManager.addInstance(instanceId, foregroundColor, accentColor);\r\n return () => {\r\n styleManager.removeInstance(instanceId);\r\n };\r\n }, [instanceId, foregroundColor, accentColor]);\r\n};\r\n","import { useCallback } from 'react';\r\nimport { FILTER_MODES } from '../utils/constants';\r\n\r\nexport const useFilteredOptions = (customFilter, filterMatchMode) => {\r\n return useCallback((options, inputValue) => {\r\n if (!inputValue) return options;\r\n\r\n if (customFilter) {\r\n return customFilter(options, inputValue);\r\n }\r\n\r\n const searchTerm = inputValue.toLowerCase();\r\n const results = [];\r\n \r\n for (let i = 0; i < options.length; i++) {\r\n const optionLabel = options[i].label.toLowerCase();\r\n \r\n if (filterMatchMode === FILTER_MODES.INCLUDES) {\r\n if (optionLabel.includes(searchTerm)) {\r\n results.push(options[i]);\r\n }\r\n } else if (optionLabel.startsWith(searchTerm)) {\r\n results.push(options[i]);\r\n }\r\n }\r\n \r\n return results;\r\n }, [customFilter, filterMatchMode]);\r\n};\r\n","import { useCallback, useRef } from 'react';\r\n\r\nexport const useInputHandler = (\r\n isControlled,\r\n currentValue,\r\n setSelectedItem,\r\n setInputValue,\r\n onSelectItem,\r\n setPage\r\n) => {\r\n const lastSearchTerm = useRef(\"\");\r\n const justCleared = useRef(false);\r\n\r\n const handleInputChange = useCallback((newValue, actionMeta, onInputChange) => {\r\n const action = actionMeta.action;\r\n\r\n if (onInputChange) {\r\n const result = onInputChange(newValue, actionMeta);\r\n if (result !== undefined) {\r\n setInputValue(result);\r\n return result;\r\n }\r\n }\r\n\r\n switch (action) {\r\n case 'input-change':\r\n setInputValue(newValue);\r\n if (!isControlled) {\r\n setSelectedItem(null);\r\n }\r\n onSelectItem?.(null);\r\n lastSearchTerm.current = newValue;\r\n justCleared.current = false;\r\n setPage(1);\r\n return newValue;\r\n\r\n case 'set-value':\r\n setInputValue(\"\");\r\n if (!isControlled) {\r\n setSelectedItem(null);\r\n }\r\n onSelectItem?.(null);\r\n lastSearchTerm.current = \"\";\r\n justCleared.current = true;\r\n return \"\";\r\n\r\n case 'menu-close':\r\n if (!currentValue && !justCleared.current) {\r\n setInputValue(lastSearchTerm.current);\r\n return lastSearchTerm.current;\r\n }\r\n return \"\";\r\n\r\n case 'input-blur':\r\n if (justCleared.current) {\r\n setInputValue(\"\");\r\n return \"\";\r\n }\r\n if (currentValue) {\r\n setInputValue(\"\");\r\n return \"\";\r\n }\r\n setInputValue(lastSearchTerm.current);\r\n return lastSearchTerm.current;\r\n\r\n default:\r\n return newValue;\r\n }\r\n }, [isControlled, currentValue, setSelectedItem, setInputValue, onSelectItem, setPage]);\r\n\r\n return {\r\n handleInputChange,\r\n lastSearchTerm,\r\n justCleared\r\n };\r\n};\r\n","export const createDefaultStyles = (colors, resolvedZIndex) => ({\r\n input: (provided) => ({\r\n ...provided,\r\n color: colors.foregroundColor,\r\n cursor: \"text\",\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n textAlign: \"left\",\r\n backgroundColor: state.isFocused\r\n ? colors.accentColor\r\n : colors.resolvedMenuBg,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n transition: \"background-color 0.1s ease\",\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n backgroundColor: colors.accentColor,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n menu: (provided) => ({\r\n ...provided,\r\n backgroundColor: colors.resolvedMenuBg,\r\n boxShadow: \"0 4px 6px rgba(0, 0, 0, 0.1)\",\r\n border: `1px solid ${colors.resolvedMenuBorder}`,\r\n zIndex: resolvedZIndex,\r\n margin: \"4px 0\",\r\n width: \"100%\",\r\n cursor: \"default\",\r\n isolation: \"isolate\",\r\n }),\r\n menuList: (provided) => ({\r\n ...provided,\r\n backgroundColor: colors.resolvedMenuBg,\r\n padding: 0,\r\n cursor: \"default\",\r\n isolation: \"isolate\",\r\n }),\r\n menuPortal: (provided) => ({\r\n ...provided,\r\n zIndex: resolvedZIndex,\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n cursor: \"pointer\",\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: colors.mutedForegroundColor,\r\n cursor: \"text\",\r\n }),\r\n control: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isDisabled\r\n ? colors.mutedBackgroundColor\r\n : colors.backgroundColor,\r\n color: state.isDisabled\r\n ? colors.mutedForegroundColor\r\n : colors.foregroundColor,\r\n borderColor: state.isFocused ? colors.ringColor : colors.borderColor,\r\n boxShadow: state.isFocused ? `0 0 0 1px ${colors.ringColor}` : \"none\",\r\n opacity: state.isDisabled ? 0.5 : 1,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n minHeight: \"38px\",\r\n position: \"relative\",\r\n zIndex: 1,\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n borderColor: state.isFocused ? colors.ringColor : colors.borderColor,\r\n },\r\n }),\r\n valueContainer: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"text\",\r\n }),\r\n indicatorsContainer: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n }),\r\n indicatorSeparator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n }),\r\n clearIndicator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n dropdownIndicator: (provided, state) => ({\r\n ...provided,\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n \":hover\": {\r\n cursor: state.isDisabled ? \"not-allowed\" : \"pointer\",\r\n },\r\n }),\r\n});\r\n\r\nexport const mergeStyles = (defaultStyles, customStyles) => {\r\n return Object.keys(defaultStyles).reduce((acc, key) => {\r\n acc[key] = (provided, state) => {\r\n const defaultStyle = defaultStyles[key](provided, state);\r\n const customStyle = customStyles[key] ? customStyles[key](provided, state) : {};\r\n return { ...defaultStyle, ...customStyle };\r\n };\r\n return acc;\r\n }, {});\r\n};\r\n"],"names":["DEFAULT_COLORS","FILTER_MODES","MenuList","memo","props","options","children","maxHeight","getValue","focusedOption","selectProps","value","_slicedToArray","itemHeight","virtualizedItemHeight","initialOffset","indexOf","listRef","useRef","childArray","Array","isArray","backgroundColor","menuBackgroundColor","baseRowStyle","useMemo","display","alignItems","padding","whiteSpace","overflow","textOverflow","cursor","boxSizing","noOptionsStyle","color","mutedForegroundColor","textAlign","useEffect","current","focusedIndex","findIndex","opt","scrollToItem","_selectProps$noOption","Row","useCallback","_ref","index","style","React","createElement","_objectSpread","length","List","ref","height","Math","min","itemCount","itemSize","initialScrollOffset","overscanCount","useIsScrolling","noOptionsMessage","call","inputValue","displayName","styleManager","_createClass","StyleManager","_classCallCheck","this","instances","Map","key","instanceId","foregroundColor","accentColor","styleId","concat","document","getElementById","id","textContent","generateStyles","head","appendChild","set","existingStyle","remove","useLoadOptions","items","getFilteredOptions","itemsPerPage","initialLoadSize","debounceDelay","_useState2","useState","page","setPage","pageRef","callback","delay","timeoutRef","callbackRef","loadOptionsCore","filteredOptions","maxItems","paginatedOptions","slice","loadMore","p","debouncedLoadOptions","_len","arguments","args","_key","clearTimeout","setTimeout","apply","loadOptions","instanceCounter","LargeComponentSelector","_ref2","_ref$value","_ref$defaultValue","defaultValue","onSelectItem","onChange","onInputChange","onMenuOpen","onMenuClose","onFocus","onBlur","_ref$placeholder","placeholder","_ref$isDisabled","isDisabled","_ref$isClearable","isClearable","_ref$isSearchable","isSearchable","_ref$isLoading","isLoading","_ref$valueKey","valueKey","_ref$labelKey","labelKey","filterOption","customFilter","_ref$filterMatchMode","filterMatchMode","_ref$virtualizedItemH","_ref$itemsPerPage","_ref$maxMenuHeight","maxMenuHeight","_ref$initialLoadSize","_ref$debounceDelay","_ref$className","className","_ref$styles","styles","classNamePrefix","theme","_ref$backgroundColor","_ref$foregroundColor","_ref$mutedBackgroundC","mutedBackgroundColor","_ref$mutedForegroundC","_ref$borderColor","borderColor","_ref$accentColor","_ref$ringColor","ringColor","menuBorderColor","zIndex","baseZIndex","_ref$components","components","loadingMessage","_ref$menuPortalTarget","menuPortalTarget","body","_ref$menuPosition","menuPosition","_ref$menuPlacement","menuPlacement","_ref$closeMenuOnSelec","closeMenuOnSelect","_ref$hideSelectedOpti","hideSelectedOptions","name","inputId","additionalProps","_objectWithoutProperties","_excluded","selectedItem","setSelectedItem","_useState4","setInputValue","_useState6","setOptions","_useState8","isObjectMode","setIsObjectMode","currentInstanceId","resolvedMenuBg","resolvedMenuBorder","resolvedZIndex","isControlled","currentValue","_useMemo","normalizedItems","undefined","Error","_typeof","firstItem","every","item","map","label","originalValue","invalidItems","filter","normalizeItems","error","console","message","objectMode","addInstance","removeInstance","useStyleManager","searchTerm","toLowerCase","results","i","optionLabel","includes","push","startsWith","useFilteredOptions","_useLoadOptions","_useInputHandler","lastSearchTerm","justCleared","handleInputChange","newValue","actionMeta","action","result","useInputHandler","handleInput","handleChange","selectedOption","selection","handleMenuOpen","valueToShow","handleMenuClose","colors","defaultStyles","input","provided","option","state","isFocused","transition","menu","boxShadow","border","margin","width","isolation","menuList","menuPortal","singleValue","control","opacity","minHeight","position","valueContainer","indicatorsContainer","indicatorSeparator","clearIndicator","dropdownIndicator","createDefaultStyles","mergedStyles","customStyles","Object","keys","reduce","acc","defaultStyle","customStyle","mergeStyles","placeholderText","noOptionsMessageFunc","loadingMessageFunc","AsyncSelect","_extends","cacheOptions","defaultOptions"],"mappings":"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"}
|
package/package.json
CHANGED