@activecollab/components 1.0.46 → 1.0.47

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.
@@ -361,11 +361,8 @@ var Autocomplete = function Autocomplete(_ref) {
361
361
  handleChange(hover === null || hover === void 0 ? void 0 : hover.item);
362
362
  }
363
363
 
364
- setTimeout(function () {
365
- return inputEl === null || inputEl === void 0 ? void 0 : inputEl.focus();
366
- }, 0);
367
364
  setFilter("");
368
- }, [handleChange, handleDefaultOptionChange, hover, inputEl]);
365
+ }, [handleChange, handleDefaultOptionChange, hover]);
369
366
  (0, _react.useEffect)(function () {
370
367
  if (inputEl) {
371
368
  inputEl.onkeydown = handleOnKeyDown;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":["Autocomplete","type","options","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","itemRef","listRef","selectedOptions","Array","handleSort","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","item","undefined","by","hover","setHover","filter","setFilter","handleEmpty","e","button","focus","onAddNewMouseEnter","isGroup","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleMouseEnter","handleHoverCallback","handleRenderOption","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","current","offsetTop","handleOnKeyDown","preventDefault","handleClick","setTimeout","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"mappings":";;;;;;;;;AAAA;;AAUA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDO,IAAMA,YAAoC,GAAG,SAAvCA,YAAuC,OAmB9C;AAAA,MAlBJC,IAkBI,QAlBJA,IAkBI;AAAA,0BAjBJC,OAiBI;AAAA,MAjBJA,OAiBI,6BAjBM,EAiBN;AAAA,MAhBJC,OAgBI,QAhBJA,OAgBI;AAAA,2BAfJC,QAeI;AAAA,MAfJA,QAeI,8BAfO,EAeP;AAAA,MAdJC,UAcI,QAdJA,UAcI;AAAA,MAbJC,YAaI,QAbJA,YAaI;AAAA,+BAZJC,YAYI;AAAA,MAZJA,YAYI,kCAZW,UAACC,MAAD;AAAA,WAAYA,MAAZ,aAAYA,MAAZ,uBAAYA,MAAM,CAAEC,IAApB;AAAA,GAYX;AAAA,MAXJC,YAWI,QAXJA,YAWI;AAAA,gCAVJC,aAUI;AAAA,MAVJA,aAUI,mCAVY,KAUZ;AAAA,MATJC,YASI,QATJA,YASI;AAAA,MARJC,eAQI,QARJA,eAQI;AAAA,MAPJC,iBAOI,QAPJA,iBAOI;AAAA,MANJC,oBAMI,QANJA,oBAMI;AAAA,MALJC,qBAKI,QALJA,qBAKI;AAAA,MAJJC,yBAII,QAJJA,yBAII;AAAA,MAHJC,qBAGI,QAHJA,qBAGI;AAAA,mCAFJC,oBAEI;AAAA,MAFJA,oBAEI,sCAFmB,KAEnB;AAAA,gCADJC,aACI;AAAA,MADJA,aACI,mCADY,GACZ;AACJ,MAAMC,OAAO,GAAG,mBAAyB,IAAzB,CAAhB;AACA,MAAMC,OAAO,GAAG,mBAAmB,IAAnB,CAAhB;AAEA,MAAMC,eAAe,GAAG,oBACtB;AAAA,WAAOnB,QAAQ,YAAYoB,KAApB,GAA4BpB,QAA5B,GAAuC,CAACA,QAAD,CAA9C;AAAA,GADsB,EAEtB,CAACA,QAAD,CAFsB,CAAxB;AAKA,MAAMqB,UAAU,GAAG,wBAAY,UAACC,IAAD,EAAU;AACvC,QAAIP,oBAAJ,EAA0B;AACxB,aAAOO,IAAP;AACD;;AACD,WAAOA,IAAI,CAACC,IAAL,CAAU,UAACC,CAAD,EAAsBC,CAAtB,EAA8C;AAC7D,UAAIN,eAAe,CAACO,QAAhB,CAAyBD,CAAC,CAACE,EAA3B,KAAkC,CAACR,eAAe,CAACO,QAAhB,CAAyBF,CAAC,CAACG,EAA3B,CAAvC,EAAuE;AACrE,eAAO,CAAP;AACD;;AACD,UAAIR,eAAe,CAACO,QAAhB,CAAyBF,CAAC,CAACG,EAA3B,KAAkC,CAACR,eAAe,CAACO,QAAhB,CAAyBD,CAAC,CAACE,EAA3B,CAAvC,EAAuE;AACrE,eAAO,CAAC,CAAR;AACD;;AACD,aAAO,CAAP;AACD,KARM,CAAP,CAJuC,CAavC;AACD,GAdkB,EAchB,EAdgB,CAAnB;AAgBA,MAAMC,QAAQ,GAAG,wBACf,UAAC9B,OAAD,EAAa;AACX,QAAIa,oBAAJ,EAA0B;AACxB,aAAOU,UAAU,oBAAKvB,OAAL,EAAjB;AACD;;AACD,WAAOuB,UAAU,CACf,mBAAIvB,OAAJ,EAAayB,IAAb,CAAkB,UAACC,CAAD,EAAsBC,CAAtB;AAAA,aAChBlB,aAAa,KAAK,KAAlB,GACIiB,CAAC,CAACnB,IAAF,CAAOwB,aAAP,CAAqBJ,CAAC,CAACpB,IAAvB,CADJ,GAEIoB,CAAC,CAACpB,IAAF,CAAOwB,aAAP,CAAqBL,CAAC,CAACnB,IAAvB,CAHY;AAAA,KAAlB,CADe,CAAjB;AAOD,GAZc,EAaf,CAACE,aAAD,EAAgBI,oBAAhB,EAAsCU,UAAtC,CAbe,CAAjB;AAgBA,MAAMS,UAAU,GAAG,oBAAQ;AAAA,WAAMF,QAAQ,CAAC9B,OAAD,CAAd;AAAA,GAAR,EAAiC,CAACA,OAAD,EAAU8B,QAAV,CAAjC,CAAnB;;AAEA,kBAA0B,qBAAiB;AACzCG,IAAAA,IAAI,EAAEC,SADmC;AAEzCC,IAAAA,EAAE,EAAED;AAFqC,GAAjB,CAA1B;AAAA;AAAA,MAAOE,KAAP;AAAA,MAAcC,QAAd;;AAIA,mBAA4B,qBAAS,EAAT,CAA5B;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,SAAf;;AAEA,MAAMC,WAAW,GAAG,wBAClB,UAACC,CAAD,EAAO;AACL,QAAIA,CAAC,IAAIA,CAAC,CAACC,MAAF,KAAa,CAAtB,EAAyB;AACvB;AACD;;AACD,QAAI9B,iBAAJ,EAAuB;AACrBX,MAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE0C,KAAT;AACAJ,MAAAA,SAAS,CAAC,EAAD,CAAT;AACA3B,MAAAA,iBAAiB,CAAC0B,MAAD,CAAjB;AACD;AACF,GAViB,EAWlB,CAACA,MAAD,EAAS1B,iBAAT,EAA4BX,OAA5B,CAXkB,CAApB;AAcA,MAAM2C,kBAAkB,GAAG,wBACzB;AAAA,WAAMP,QAAQ,CAAC;AAAEJ,MAAAA,IAAI,EAAE,QAAR;AAAkBE,MAAAA,EAAE,EAAE;AAAtB,KAAD,CAAd;AAAA,GADyB,EAEzB,EAFyB,CAA3B;;AAKA,WAASU,OAAT,CACEZ,IADF,EAE6B;AAC3B,WAAQA,IAAD,CAA4BjC,OAA5B,KAAwCkC,SAA/C;AACD;;AAED,MAAMY,UAAU,GAAG,oBAAQ,YAAM;AAC/B,WAAO,CAAC,EACN3C,UAAU,IACVmC,MAAM,CAACS,IAAP,EADA,IAEA/C,OAAO,CAACgD,KAAR,CAAc,UAAC1C,MAAD,EAAY;AACxB,UAAIuC,OAAO,CAACvC,MAAD,CAAX,EAAqB;AACnB,eAAOA,MAAM,CAACN,OAAP,CAAegD,KAAf,CACL,UAACC,CAAD;AAAA,iBAAOA,CAAC,CAAC1C,IAAF,CAAO2C,WAAP,OAAyBZ,MAAM,CAACS,IAAP,GAAcG,WAAd,EAAhC;AAAA,SADK,CAAP;AAGD;;AACD,aAAO5C,MAAM,CAACC,IAAP,CAAY2C,WAAZ,OAA8BZ,MAAM,CAACS,IAAP,GAAcG,WAAd,EAArC;AACD,KAPD,CAHM,CAAR;AAYD,GAbkB,EAahB,CAAC/C,UAAD,EAAamC,MAAb,EAAqBtC,OAArB,CAbgB,CAAnB;AAeA,MAAMmD,YAAY,GAAG,oBAAQ,YAAM;AACjC,wBACE,6BAAC,iCAAD;AACE,MAAA,GAAG,EAAEf,KAAK,CAACH,IAAN,KAAe,QAAf,GAA0Bd,OAA1B,GAAoC,IAD3C;AAEE,MAAA,GAAG,EAAC,YAFN;AAGE,MAAA,KAAK,EAAEiB,KAAK,CAACH,IAAN,KAAe,QAHxB;AAIE,MAAA,WAAW,EAAEO,WAJf;AAKE,MAAA,YAAY,EAAEI;AALhB,OAOGzC,UAPH,CADF;AAWD,GAZoB,EAYlB,CAACA,UAAD,EAAaqC,WAAb,EAA0BJ,KAA1B,EAAiCQ,kBAAjC,CAZkB,CAArB;AAcA,MAAMQ,aAAa,GAAG,wBACpB,UAACpD,OAAD,EAAUsC,MAAV,EAAqB;AACnB,QAAMe,aAAa,GAAGf,MAAM,CAACS,IAAP,EAAtB;AACA,QAAMO,SAAS,GAAGtD,OAAO,CAAC,CAAD,CAAP,IAAc6C,OAAO,CAAC7C,OAAO,CAAC,CAAD,CAAR,CAAvC;;AACA,QAAIsD,SAAJ,EAAe;AACb,UAAIC,OAAO,GAAG,KAAd;AACA,aAAOvD,OAAO,CAACwD,MAAR,CAAe,UAACC,GAAD,EAAMC,aAAN,EAAwB;AAC5C,YAAMC,eAAe,GAAGD,aAAa,CAAC1D,OAAd,CAAsBsC,MAAtB,CAA6B,UAACW,CAAD;AAAA,iBACnDA,CAAC,CAAC1C,IAAF,CAAO2C,WAAP,GAAqBtB,QAArB,CAA8ByB,aAAa,CAACH,WAAd,EAA9B,CADmD;AAAA,SAA7B,CAAxB;;AAGA,YAAIS,eAAe,CAACC,MAAhB,GAAyB,CAA7B,EAAgC;AAC9B,cAAI,CAACL,OAAD,IAAYjB,MAAhB,EAAwB;AACtBD,YAAAA,QAAQ,CAAC;AAAEJ,cAAAA,IAAI,EAAE0B,eAAe,CAAC,CAAD,CAAf,CAAmB9B,EAA3B;AAA+BM,cAAAA,EAAE,EAAE;AAAnC,aAAD,CAAR;AACD;;AACDoB,UAAAA,OAAO,GAAG,IAAV;AACA,8CAAWE,GAAX,oCAAqBC,aAArB;AAAoC1D,YAAAA,OAAO,EAAE2D;AAA7C;AACD;;AACD,kCAAWF,GAAX;AACD,OAZM,EAYJ,EAZI,CAAP;AAaD,KAfD,MAeO;AACL,UAAME,eAAe,GAAG3D,OAAO,CAACsC,MAAR,CAAe,UAACW,CAAD;AAAA,eACrCA,CAAC,CAAC1C,IAAF,CAAO2C,WAAP,GAAqBtB,QAArB,CAA8ByB,aAAa,CAACH,WAAd,EAA9B,CADqC;AAAA,OAAf,CAAxB;;AAGA,UAAIZ,MAAM,IAAIqB,eAAe,CAACC,MAAhB,GAAyB,CAAvC,EAA0C;AACxCvB,QAAAA,QAAQ,CAAC;AAAEJ,UAAAA,IAAI,EAAE0B,eAAe,CAAC,CAAD,CAAf,CAAmB9B,EAA3B;AAA+BM,UAAAA,EAAE,EAAE;AAAnC,SAAD,CAAR;AACD;;AACD,UAAIwB,eAAe,CAACC,MAAhB,KAA2B,CAA3B,IAAgCzD,UAApC,EAAgD;AAC9CkC,QAAAA,QAAQ,CAAC;AAAEJ,UAAAA,IAAI,EAAE,QAAR;AAAkBE,UAAAA,EAAE,EAAE;AAAtB,SAAD,CAAR;AACD;;AACD,aAAOwB,eAAP;AACD;AACF,GA/BmB,EAgCpB,CAACxD,UAAD,CAhCoB,CAAtB;AAmCA,MAAM0D,IAAI,GAAG,oBACX;AAAA,WAAMT,aAAa,CAACpB,UAAD,EAAaM,MAAb,CAAnB;AAAA,GADW,EAEX,CAACA,MAAD,EAASc,aAAT,EAAwBpB,UAAxB,CAFW,CAAb;AAKA,MAAM8B,iBAAiB,GAAG,oBACxB;AAAA,WAAM,CAAC,CAACtD,YAAF,IAAkB,CAAC8B,MAAzB;AAAA,GADwB,EAExB,CAAC9B,YAAD,EAAe8B,MAAf,CAFwB,CAA1B;AAKA,MAAMyB,WAAW,GAAG,oBAAQ,YAAM;AAChC,QAAM/D,OAAO,GAAG6D,IAAI,CAACL,MAAL,CACd,UACEC,GADF,EAEEnD,MAFF,EAGK;AACH,UAAI,CAACuC,OAAO,CAACvC,MAAD,CAAZ,EAAsB;AACpB,4CAAWmD,GAAX,IAAgBnD,MAAhB;AACD;;AACD,0CAAWmD,GAAX,sBAAmBnD,MAAM,CAACN,OAA1B;AACD,KATa,EAUd,EAVc,CAAhB;AAYA,WAAOoD,aAAa,CAACpD,OAAD,EAAUsC,MAAV,CAApB;AACD,GAdmB,EAcjB,CAACA,MAAD,EAASc,aAAT,EAAwBS,IAAxB,CAdiB,CAApB;AAgBA,MAAMG,iBAAiB,GAAG,wBAAY,UAACvB,CAAD,EAAO;AAC3C,QACEA,CAAC,CAACwB,MAAF,IACA,EAAExB,CAAC,CAACyB,GAAF,KAAU,WAAZ,CADA,IAEA,EAAEzB,CAAC,CAACyB,GAAF,KAAU,SAAZ,CAFA,IAGA,EAAEzB,CAAC,CAACyB,GAAF,KAAU,OAAZ,CAJF,EAKE;AACA3B,MAAAA,SAAS,CAACE,CAAC,CAACwB,MAAF,CAASE,KAAV,CAAT;AACD;AACF,GATyB,EASvB,EATuB,CAA1B;AAWA,MAAMC,gBAAgB,GAAG,wBAAY,UAAC3B,CAAD,EAAO;AAC1C,QAAIA,CAAC,KAAKP,SAAN,IAAmBO,CAAC,KAAK,IAA7B,EAAmC;AACjC,aAAOJ,QAAQ,CAAC;AAAEJ,QAAAA,IAAI,EAAE,IAAR;AAAcE,QAAAA,EAAE,EAAE;AAAlB,OAAD,CAAf;AACD;;AACDE,IAAAA,QAAQ,CAAC;AAAEJ,MAAAA,IAAI,EAAEQ,CAAR;AAAWN,MAAAA,EAAE,EAAE;AAAf,KAAD,CAAR;AACD,GALwB,EAKtB,EALsB,CAAzB;AAOA,MAAMkC,mBAAmB,GAAG,wBAC1B,UAAC5B,CAAD,EAA0C;AACxCJ,IAAAA,QAAQ,CAAC;AAAEJ,MAAAA,IAAI,EAAEQ,CAAR;AAAWN,MAAAA,EAAE,EAAE;AAAf,KAAD,CAAR;AACD,GAHyB,EAI1B,EAJ0B,CAA5B;AAOA,MAAMmC,kBAAkB,GAAG,wBACzB,UAACrC,IAAD,EAAgD;AAC9C,QAAIY,OAAO,CAACZ,IAAD,CAAX,EAAmB;AACjB,0BACE,6BAAC,wBAAD;AACE,QAAA,OAAO,EAAEZ,eADX;AAEE,QAAA,IAAI,EAAEY,IAAI,CAAC1B,IAFb;AAGE,QAAA,GAAG,EAAE0B,IAAI,CAACJ,EAHZ;AAIE,QAAA,QAAQ,EAAEwC,mBAJZ;AAKE,QAAA,EAAE,EAAEpC,IAAI,CAACJ,EALX;AAME,QAAA,KAAK,EAAEO,KAAK,CAACH,IANf;AAOE,QAAA,OAAO,EAAEA,IAAI,CAACjC,OAPhB;AAQE,QAAA,aAAa,EAAEsE,kBARjB;AASE,QAAA,IAAI,EAAEvE,IATR;AAUE,QAAA,QAAQ,EAAEW,YAVZ;AAWE,QAAA,MAAM,EAAE4B;AAXV,QADF;AAeD;;AACD,wBACE,6BAAC,cAAD;AACE,MAAA,IAAI,EAAEL,IAAI,CAAC1B,IADb;AAEE,MAAA,GAAG,EAAEY,OAFP;AAGE,MAAA,GAAG,EAAEc,IAAI,CAACJ,EAHZ;AAIE,MAAA,YAAY,EAAEuC,gBAJhB;AAKE,MAAA,EAAE,EAAEnC,IAAI,CAACJ,EALX;AAME,MAAA,KAAK,EAAEI,IAAI,CAACJ,EAAL,KAAYO,KAAK,CAACH,IAN3B;AAOE,MAAA,SAAS,EAAEtB,eAPb;AAQE,MAAA,YAAY,EAAEN,YAAY,iCACnB4B,IADmB;AACb1B,QAAAA,IAAI,EAAE,+BAAc0B,IAAI,CAAC1B,IAAnB,EAAyB+B,MAAzB;AADO,UAExB;AACET,QAAAA,EAAE,mBAAYI,IAAI,CAACJ,EAAjB,CADJ;AAEE0C,QAAAA,OAAO,EAAElD,eAAe,IAAIA,eAAe,CAACO,QAAhB,CAAyBK,IAAI,CAACJ,EAA9B,CAF9B;AAGEO,QAAAA,KAAK,EAAEA,KAAK,CAACH,IAAN,KAAeA,IAAI,CAACJ,EAH7B;AAIE2C,QAAAA,QAAQ,EAAE;AAAA,iBAAM,IAAN;AAAA;AAJZ,OAFwB;AAR5B,MADF;AAoBD,GAvCwB,EAwCzB,CACEJ,gBADF,EAEEhC,KAAK,CAACH,IAFR,EAGEtB,eAHF,EAIEN,YAJF,EAKEiC,MALF,EAMEjB,eANF,EAOEgD,mBAPF,EAQEtE,IARF,EASEW,YATF,CAxCyB,CAA3B;AAqDA,MAAM+D,kBAAkB,GAAG,wBAAY,YAAM;AAC3CpC,IAAAA,QAAQ,CAAC;AAAEJ,MAAAA,IAAI,EAAEC,SAAR;AAAmBC,MAAAA,EAAE,EAAE;AAAvB,KAAD,CAAR;AACD,GAF0B,EAExB,EAFwB,CAA3B;AAIA,MAAMuC,YAAY,GAAG,wBAAY,UAACb,IAAD,EAAmBc,UAAnB,EAA0C;AACzE,QAAId,IAAI,CAACe,eAAL,KAAyBf,IAAI,CAACgB,YAAL,EAAzB,GAA+CF,UAAU,GAAG,EAAhE,EAAoE;AAClE,aAAOd,IAAI,CAACiB,SAAL,CAAeH,UAAU,GAAGd,IAAI,CAACe,eAAL,EAAb,GAAsC,EAArD,CAAP;AACD;;AACD,QAAIf,IAAI,CAACgB,YAAL,KAAsBF,UAA1B,EAAsC;AACpC,aAAOd,IAAI,CAACiB,SAAL,CAAeH,UAAf,CAAP;AACD;AACF,GAPoB,EAOlB,EAPkB,CAArB;AASA,wBAAU,YAAM;AACd,QAAIvC,KAAK,CAACD,EAAN,KAAa,UAAb,IAA2BC,KAAK,CAACH,IAAN,KAAeC,SAA9C,EAAyD;AACvD,UAAMD,IAA6B,GAAGd,OAAO,CAAC4D,OAA9C;AACA,UAAMlB,KAAI,GAAGzC,OAAO,CAAC2D,OAArB;;AACA,UAAI5D,OAAO,IAAIc,IAAX,IAAmB4B,KAAvB,EAA6B;AAC3Ba,QAAAA,YAAY,CAACb,KAAD,EAAO5B,IAAI,CAAC+C,SAAZ,CAAZ;AACD;AACF;AACF,GARD,EAQG,CAACN,YAAD,EAAetC,KAAf,CARH;AAUA,MAAM6C,eAAe,GAAG,wBACtB,UAACxC,CAAD,EAAO;AACL,QAAIA,CAAC,CAACyB,GAAF,KAAU,OAAd,EAAuB;AACrBzB,MAAAA,CAAC,CAACyC,cAAF;;AACA,UAAI9C,KAAK,CAACH,IAAN,KAAeC,SAAf,IAA4BI,MAAM,KAAK,EAA3C,EAA+C;AAC7C;AACD;;AACD,UAAIF,KAAK,CAACH,IAAN,KAAe,QAAnB,EAA6B;AAC3BO,QAAAA,WAAW,CAAC,IAAD,CAAX;AACA;AACD;;AACD,UAAIJ,KAAK,CAACH,IAAN,KAAe,IAAf,IAAuBlB,yBAA3B,EAAsD;AACpDA,QAAAA,yBAAyB;AACzB;AACD;;AACD,UAAIL,YAAJ,EAAkB;AAChBA,QAAAA,YAAY,CAAC0B,KAAK,CAACH,IAAP,CAAZ;AACAM,QAAAA,SAAS,CAAC,EAAD,CAAT;AACD;;AACD;AACD;;AACDF,IAAAA,QAAQ,CAAC;AACPJ,MAAAA,IAAI,EAAE,4CACJQ,CADI,EAEJL,KAAK,CAACH,IAFF,EAGJ8B,WAHI,EAIJjB,UAJI,EAKJgB,iBALI,CADC;AAQP3B,MAAAA,EAAE,EAAE;AARG,KAAD,CAAR;AAUD,GA/BqB,EAgCtB,CACEG,MADF,EAEEyB,WAFF,EAGErD,YAHF,EAIEK,yBAJF,EAKEyB,WALF,EAMEJ,KANF,EAOEU,UAPF,EAQEgB,iBARF,CAhCsB,CAAxB;AA4CA,MAAMqB,WAAW,GAAG,wBAAY,YAAM;AACpC,QAAI/C,KAAK,CAACH,IAAN,KAAe,IAAf,IAAuBlB,yBAA3B,EAAsD;AACpDA,MAAAA,yBAAyB;AAC1B;;AACD,QAAIL,YAAJ,EAAkB;AAChBA,MAAAA,YAAY,CAAC0B,KAAD,aAACA,KAAD,uBAACA,KAAK,CAAEH,IAAR,CAAZ;AACD;;AACDmD,IAAAA,UAAU,CAAC;AAAA,aAAMnF,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAE0C,KAAT,EAAN;AAAA,KAAD,EAAyB,CAAzB,CAAV;AACAJ,IAAAA,SAAS,CAAC,EAAD,CAAT;AACD,GATmB,EASjB,CAAC7B,YAAD,EAAeK,yBAAf,EAA0CqB,KAA1C,EAAiDnC,OAAjD,CATiB,CAApB;AAWA,wBAAU,YAAM;AACd,QAAIA,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAACoF,SAAR,GAAoBJ,eAApB;AACAhF,MAAAA,OAAO,CAACqF,OAAR,GAAkBtB,iBAAlB;AACD;AACF,GALD,EAKG,CAACA,iBAAD,EAAoBiB,eAApB,EAAqChF,OAArC,CALH;AAOA,MAAMsF,uBAAuB,GAAG,wBAAY,YAAM;AAChD,QAAIvE,qBAAJ,EAA2B;AACzB,aAAOK,eAAe,CAACuC,MAAhB,GAAyB,CAAzB,IAA8BvC,eAAe,CAAC,CAAD,CAAf,KAAuB,EAA5D;AACD,KAFD,MAEO;AACL,aACEA,eAAe,CAAC,CAAD,CAAf,KAAuB,IAAvB,IACAA,eAAe,CAACuC,MAAhB,KAA2BG,WAAW,CAACH,MAFzC;AAID;AACF,GAT+B,EAS7B,CAACG,WAAW,CAACH,MAAb,EAAqB5C,qBAArB,EAA4CK,eAA5C,CAT6B,CAAhC;AAWA,MAAMmE,YAAY,GAAG,oBACnB;AAAA,WAAMpF,YAAY,IAAI,CAAC0C,UAAjB,IAA+Be,IAAI,CAACD,MAAL,GAAc,CAAnD;AAAA,GADmB,EAEnB,CAACC,IAAI,CAACD,MAAN,EAAcxD,YAAd,EAA4B0C,UAA5B,CAFmB,CAArB;AAKA,MAAM2C,cAAc,GAAG,oBACrB;AAAA,wBACE,6BAAC,kCAAD,QAA6BrF,YAA7B,CADF;AAAA,GADqB,EAIrB,CAACA,YAAD,CAJqB,CAAvB;AAOA,sBACE,6BAAC,sCAAD;AACE,IAAA,SAAS,EAAEU,qBADb;AAEE,IAAA,SAAS,EACP,CAACN,YAAD,IAAiB,CAACL,UAAlB,IAAgC,CAACC,YAAjC,IAAiDyD,IAAI,CAACD,MAAL,GAAc;AAHnE,KAMG;AAAA,QAAG8B,QAAH,SAAGA,QAAH;AAAA,wBACC,6BAAC,8BAAD;AACE,MAAA,GAAG,EAAC,MADN;AAEE,MAAA,QAAQ,EAAEP,WAFZ;AAGE,MAAA,YAAY,EAAEV;AAHhB,oBAKE,6BAAC,iCAAD;AACE,MAAA,GAAG,EAAErD,OADP;AAEE,MAAA,GAAG,EAAC,WAFN;AAGE,MAAA,UAAU,MAHZ;AAIE,MAAA,aAAa,EAAEF,aAJjB;AAKE,MAAA,QAAQ,EAAEwE;AALZ,OAOGlF,YAAY,IAAI,CAAC8B,MAAjB,iBACC,6BAAC,cAAD;AACE,MAAA,IAAI,EAAE9B,YADR;AAEE,MAAA,GAAG,EAAEW,OAFP;AAGE,MAAA,KAAK,EAAEiB,KAAK,CAACH,IAAN,KAAe,IAHxB;AAIE,MAAA,YAAY,EAAEmC,gBAJhB;AAKE,MAAA,YAAY,EAAE/D,YAAY,CACxB;AAAEE,QAAAA,IAAI,EAAEC,YAAR;AAAsBqB,QAAAA,EAAE,EAAE;AAA1B,OADwB,EAExB;AACE0C,QAAAA,OAAO,EAAEgB,uBAAuB,EADlC;AAEEnD,QAAAA,KAAK,EAAEA,KAAK,CAACH,IAAN,KAAe,IAFxB;AAGEuC,QAAAA,QAAQ,EAAE;AAAA,iBAAM,IAAN;AAAA;AAHZ,OAFwB;AAL5B,MARJ,EAuBGX,IAAI,CAAC8B,GAAL,CAAS,UAAC1D,IAAD;AAAA,aAA4BqC,kBAAkB,CAACrC,IAAD,CAA9C;AAAA,KAAT,CAvBH,EAwBGuD,YAAY,IAAIC,cAxBnB,EAyBG3C,UAAU,IAAIK,YAzBjB,CALF,CADD;AAAA,GANH,CADF;AA4CD,CA7ZM;;;AA+ZPrD,YAAY,CAAC8F,WAAb,GAA2B,cAA3B","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n ReactNode,\n ReactElement,\n} from \"react\";\nimport { Scrollbars } from \"react-custom-scrollbars\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport { IOptionItemProps, Option } from \"../Select/Option\";\nimport { IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteNoResult,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Input Element. */\n inputEl?: HTMLInputElement | null;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n}) => {\n const itemRef = useRef<HTMLLabelElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const handleSort = useCallback((opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n return opts.sort((a: IOptionItemProps, b: IOptionItemProps) => {\n if (selectedOptions.includes(b.id) && !selectedOptions.includes(a.id)) {\n return 1;\n }\n if (selectedOptions.includes(a.id) && !selectedOptions.includes(b.id)) {\n return -1;\n }\n return 0;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n return handleSort(\n [...options].sort((a: IOptionItemProps, b: IOptionItemProps) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n )\n );\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const sortedList = useMemo(() => sortList(options), [options, sortList]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const renderAddNew = useMemo(() => {\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n }, [emptyValue, handleEmpty, hover, onAddNewMouseEnter]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isGroup(options[0]);\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps) => {\n if (isGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={itemRef}\n key={item.id}\n onMouseEnter={handleMouseEnter}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n const handleScroll = useCallback((list: Scrollbars, itemOffset: number) => {\n if (list.getClientHeight() + list.getScrollTop() < itemOffset + 40) {\n return list.scrollTop(itemOffset - list.getClientHeight() + 30);\n }\n if (list.getScrollTop() > itemOffset) {\n return list.scrollTop(itemOffset);\n }\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const item: HTMLLabelElement | null = itemRef.current;\n const list = listRef.current;\n if (itemRef && item && list) {\n handleScroll(list, item.offsetTop);\n }\n }\n }, [handleScroll, hover]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n if (handleChange) {\n handleChange(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n handleChange,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n const handleClick = useCallback(() => {\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n }\n if (handleChange) {\n handleChange(hover?.item);\n }\n setTimeout(() => inputEl?.focus(), 0);\n setFilter(\"\");\n }, [handleChange, handleDefaultOptionChange, hover, inputEl]);\n\n useEffect(() => {\n if (inputEl) {\n inputEl.onkeydown = handleOnKeyDown;\n inputEl.onkeyup = handleInputChange;\n }\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const showNoResult = useMemo(\n () => noResultText && !showAddNew && list.length < 1,\n [list.length, noResultText, showAddNew]\n );\n\n const renderNoResult = useMemo(\n () => (\n <StyledAutocompleteNoResult>{noResultText}</StyledAutocompleteNoResult>\n ),\n [noResultText]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }): JSX.Element => (\n <StyledAutocompleteBody\n key=\"body\"\n onChange={handleClick}\n onMouseLeave={handleOnMouseLeave}\n >\n <Scrollbars\n ref={listRef}\n key=\"scrollBar\"\n autoHeight\n autoHeightMax={autoHeightMax}\n onScroll={onScroll}\n >\n {defaultValue && !filter && (\n <Option\n name={defaultValue}\n ref={itemRef}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n )}\n {list.map((item: IOptionItemProps) => handleRenderOption(item))}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"file":"Autocomplete.js"}
1
+ {"version":3,"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":["Autocomplete","type","options","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","itemRef","listRef","selectedOptions","Array","handleSort","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","item","undefined","by","hover","setHover","filter","setFilter","handleEmpty","e","button","focus","onAddNewMouseEnter","isGroup","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleMouseEnter","handleHoverCallback","handleRenderOption","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","current","offsetTop","handleOnKeyDown","preventDefault","handleClick","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n ReactNode,\n ReactElement,\n} from \"react\";\nimport { Scrollbars } from \"react-custom-scrollbars\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport { IOptionItemProps, Option } from \"../Select/Option\";\nimport { IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteNoResult,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Input Element. */\n inputEl?: HTMLInputElement | null;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n}) => {\n const itemRef = useRef<HTMLLabelElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const handleSort = useCallback((opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n return opts.sort((a: IOptionItemProps, b: IOptionItemProps) => {\n if (selectedOptions.includes(b.id) && !selectedOptions.includes(a.id)) {\n return 1;\n }\n if (selectedOptions.includes(a.id) && !selectedOptions.includes(b.id)) {\n return -1;\n }\n return 0;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n return handleSort(\n [...options].sort((a: IOptionItemProps, b: IOptionItemProps) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n )\n );\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const sortedList = useMemo(() => sortList(options), [options, sortList]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const renderAddNew = useMemo(() => {\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n }, [emptyValue, handleEmpty, hover, onAddNewMouseEnter]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isGroup(options[0]);\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps) => {\n if (isGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={itemRef}\n key={item.id}\n onMouseEnter={handleMouseEnter}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n const handleScroll = useCallback((list: Scrollbars, itemOffset: number) => {\n if (list.getClientHeight() + list.getScrollTop() < itemOffset + 40) {\n return list.scrollTop(itemOffset - list.getClientHeight() + 30);\n }\n if (list.getScrollTop() > itemOffset) {\n return list.scrollTop(itemOffset);\n }\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const item: HTMLLabelElement | null = itemRef.current;\n const list = listRef.current;\n if (itemRef && item && list) {\n handleScroll(list, item.offsetTop);\n }\n }\n }, [handleScroll, hover]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n if (handleChange) {\n handleChange(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n handleChange,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n const handleClick = useCallback(() => {\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n }\n if (handleChange) {\n handleChange(hover?.item);\n }\n setFilter(\"\");\n }, [handleChange, handleDefaultOptionChange, hover]);\n\n useEffect(() => {\n if (inputEl) {\n inputEl.onkeydown = handleOnKeyDown;\n inputEl.onkeyup = handleInputChange;\n }\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const showNoResult = useMemo(\n () => noResultText && !showAddNew && list.length < 1,\n [list.length, noResultText, showAddNew]\n );\n\n const renderNoResult = useMemo(\n () => (\n <StyledAutocompleteNoResult>{noResultText}</StyledAutocompleteNoResult>\n ),\n [noResultText]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }): JSX.Element => (\n <StyledAutocompleteBody\n key=\"body\"\n onChange={handleClick}\n onMouseLeave={handleOnMouseLeave}\n >\n <Scrollbars\n ref={listRef}\n key=\"scrollBar\"\n autoHeight\n autoHeightMax={autoHeightMax}\n onScroll={onScroll}\n >\n {defaultValue && !filter && (\n <Option\n name={defaultValue}\n ref={itemRef}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n )}\n {list.map((item: IOptionItemProps) => handleRenderOption(item))}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"file":"Autocomplete.js"}
@@ -24,14 +24,14 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
24
24
  var StyledComboBox = _styledComponents.default.div.withConfig({
25
25
  displayName: "Styles__StyledComboBox",
26
26
  componentId: "sc-5qvkpb-0"
27
- })(["height:32px;border:1px solid var(--border-primary);border-radius:10px;color:var(--color-theme-900);font-size:14px;background-color:var(--input-background-color);cursor:text;", " ", " ", " ", " ", " ", ""], _FontStyle.FontStyle, _BoxSizingStyle.BoxSizingStyle, function (props) {
27
+ })(["height:34px;border:1px solid var(--border-primary);border-radius:10px;color:var(--color-theme-900);font-size:14px;background-color:var(--input-background-color);cursor:text;", " ", " ", " ", " ", " ", ""], _FontStyle.FontStyle, _BoxSizingStyle.BoxSizingStyle, function (props) {
28
28
  return props.$open && (0, _styledComponents.css)(["border-color:var(--color-primary);"]);
29
29
  }, function (props) {
30
30
  return props.$loading && (0, _styledComponents.css)(["cursor:progress;"]);
31
31
  }, function (props) {
32
- return props.$size == "small" && (0, _styledComponents.css)(["height:24px;"]);
32
+ return props.$size == "small" && (0, _styledComponents.css)(["height:26px;"]);
33
33
  }, function (props) {
34
- return props.$size == "big" && (0, _styledComponents.css)(["height:40px;"]);
34
+ return props.$size == "big" && (0, _styledComponents.css)(["height:42px;"]);
35
35
  });
36
36
 
37
37
  exports.StyledComboBox = StyledComboBox;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ComboBox/Styles.ts"],"names":["StyledComboBox","styled","div","FontStyle","BoxSizingStyle","props","$open","css","$loading","$size","displayName","StyledComboBoxWrapper","StyledIconDefaults","StyledComboBoxCloseSmallIcon","CloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","CollapseExpandSingleIcon","StyledComboBoxInput","Input","StyledComboBoxList","$width"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAQO,IAAMA,cAAc,GAAGC,0BAAOC,GAAV;AAAA;AAAA;AAAA,mNAQvBC,oBARuB,EASvBC,8BATuB,EAWvB,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,QACAC,qBADA,yCADA;AAAA,CAXuB,EAiBvB,UAACF,KAAD;AAAA,SACAA,KAAK,CAACG,QAAN,QACAD,qBADA,uBADA;AAAA,CAjBuB,EAuBvB,UAACF,KAAD;AAAA,SACAA,KAAK,CAACI,KAAN,IAAe,OAAf,QACAF,qBADA,mBADA;AAAA,CAvBuB,EA6BvB,UAACF,KAAD;AAAA,SACAA,KAAK,CAACI,KAAN,IAAe,KAAf,QACAF,qBADA,mBADA;AAAA,CA7BuB,CAApB;;;AAoCPP,cAAc,CAACU,WAAf,GAA6B,gBAA7B;;AAEO,IAAMC,qBAAqB,GAAGV,0BAAOC,GAAV;AAAA;AAAA;AAAA,oEAM9B,UAACG,KAAD;AAAA,SACAA,KAAK,CAACG,QAAN,QACAD,qBADA,2BADA;AAAA,CAN8B,CAA3B;;;AAaPI,qBAAqB,CAACD,WAAtB,GAAoC,uBAApC;AAEA,IAAME,kBAAkB,OAAGL,qBAAH,oCAAxB;AAKO,IAAMM,4BAA4B,GAAG,+BAAOC,0BAAP,CAAH;AAAA;AAAA;AAAA,2IACrCF,kBADqC,EAOrCD,qBAPqC,CAAlC;;AAaPE,4BAA4B,CAACH,WAA7B,GAA2C,8BAA3C;AAEO,IAAMK,sCAAsC,GAAG,+BACpDC,oCADoD,CAAH;AAAA;AAAA;AAAA,yFAG/CJ,kBAH+C,EAQ/C,UAACP,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,QACAC,qBADA,8BADA;AAAA,CAR+C,CAA5C;;AAePQ,sCAAsC,CAACL,WAAvC,GACE,wCADF;AAGO,IAAMO,mBAAmB,GAAG,+BAAOC,YAAP,CAAH;AAAA;AAAA;AAAA,mGAAzB;;AAQPD,mBAAmB,CAACP,WAApB,GAAkC,qBAAlC;;AAEO,IAAMS,kBAAkB,GAAGlB,0BAAOC,GAAV;AAAA;AAAA;AAAA,oLAOpB,UAACG,KAAD;AAAA,mBAAcA,KAAK,CAACe,MAApB;AAAA,CAPoB,CAAxB;;;AAUPD,kBAAkB,CAACT,WAAnB,GAAiC,oBAAjC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { CollapseExpandSingleIcon, CloseSmallIcon } from \"../Icons/collection\";\nimport { Input } from \"../Input/Input\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\n\ninterface StyledComboBoxProps {\n $open?: boolean;\n $loading?: boolean;\n $size?: string;\n}\n\nexport const StyledComboBox = styled.div<StyledComboBoxProps>`\n height: 32px;\n border: 1px solid var(--border-primary);\n border-radius: 10px;\n color: var(--color-theme-900);\n font-size: 14px;\n background-color: var(--input-background-color);\n cursor: text;\n ${FontStyle}\n ${BoxSizingStyle}\n\n ${(props) =>\n props.$open &&\n css`\n border-color: var(--color-primary);\n `}\n\n ${(props) =>\n props.$loading &&\n css`\n cursor: progress;\n `}\n\n ${(props) =>\n props.$size == \"small\" &&\n css`\n height: 24px;\n `}\n\n ${(props) =>\n props.$size == \"big\" &&\n css`\n height: 40px;\n `}\n`;\n\nStyledComboBox.displayName = \"StyledComboBox\";\n\nexport const StyledComboBoxWrapper = styled.div<{ $loading?: boolean }>`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n\n ${(props) =>\n props.$loading &&\n css`\n pointer-events: none;\n `}\n`;\n\nStyledComboBoxWrapper.displayName = \"StyledComboBoxWrapper\";\n\nconst StyledIconDefaults = css`\n flex-shrink: 0;\n cursor: pointer;\n`;\n\nexport const StyledComboBoxCloseSmallIcon = styled(CloseSmallIcon)`\n ${StyledIconDefaults}\n opacity: 0;\n transition-property: all;\n transition-duration: 0.2s;\n transition-delay: 0.5s;\n\n ${StyledComboBoxWrapper}:hover & {\n opacity: 1;\n transition-delay: 0s;\n }\n`;\n\nStyledComboBoxCloseSmallIcon.displayName = \"StyledComboBoxCloseSmallIcon\";\n\nexport const StyledComboBoxCollapseExpandSingleIcon = styled(\n CollapseExpandSingleIcon\n)<{ $open?: boolean }>`\n ${StyledIconDefaults}\n margin: 0 4px 0 0;\n color: var(--color-theme-600);\n transform: rotate(180deg);\n\n ${(props) =>\n props.$open &&\n css`\n transform: rotate(0deg);\n `}\n`;\n\nStyledComboBoxCollapseExpandSingleIcon.displayName =\n \"StyledComboBoxCollapseExpandSingleIcon\";\n\nexport const StyledComboBoxInput = styled(Input)`\n overflow: hidden;\n text-overflow: ellipsis;\n background-color: transparent;\n border: none;\n width: 100%;\n`;\n\nStyledComboBoxInput.displayName = \"StyledComboBoxInput\";\n\nexport const StyledComboBoxList = styled.div<{ $width?: number }>`\n min-width: 260px;\n background-color: var(--page-paper-main);\n border-radius: 8px;\n border: 1px solid var(--border-primary);\n box-shadow: var(--shadow-tertiary);\n margin: 8px 0;\n width: ${(props) => `${props.$width}px`};\n`;\n\nStyledComboBoxList.displayName = \"StyledComboBoxList\";\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../src/components/ComboBox/Styles.ts"],"names":["StyledComboBox","styled","div","FontStyle","BoxSizingStyle","props","$open","css","$loading","$size","displayName","StyledComboBoxWrapper","StyledIconDefaults","StyledComboBoxCloseSmallIcon","CloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","CollapseExpandSingleIcon","StyledComboBoxInput","Input","StyledComboBoxList","$width"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAQO,IAAMA,cAAc,GAAGC,0BAAOC,GAAV;AAAA;AAAA;AAAA,mNAQvBC,oBARuB,EASvBC,8BATuB,EAWvB,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,QACAC,qBADA,yCADA;AAAA,CAXuB,EAiBvB,UAACF,KAAD;AAAA,SACAA,KAAK,CAACG,QAAN,QACAD,qBADA,uBADA;AAAA,CAjBuB,EAuBvB,UAACF,KAAD;AAAA,SACAA,KAAK,CAACI,KAAN,IAAe,OAAf,QACAF,qBADA,mBADA;AAAA,CAvBuB,EA6BvB,UAACF,KAAD;AAAA,SACAA,KAAK,CAACI,KAAN,IAAe,KAAf,QACAF,qBADA,mBADA;AAAA,CA7BuB,CAApB;;;AAoCPP,cAAc,CAACU,WAAf,GAA6B,gBAA7B;;AAEO,IAAMC,qBAAqB,GAAGV,0BAAOC,GAAV;AAAA;AAAA;AAAA,oEAM9B,UAACG,KAAD;AAAA,SACAA,KAAK,CAACG,QAAN,QACAD,qBADA,2BADA;AAAA,CAN8B,CAA3B;;;AAaPI,qBAAqB,CAACD,WAAtB,GAAoC,uBAApC;AAEA,IAAME,kBAAkB,OAAGL,qBAAH,oCAAxB;AAKO,IAAMM,4BAA4B,GAAG,+BAAOC,0BAAP,CAAH;AAAA;AAAA;AAAA,2IACrCF,kBADqC,EAOrCD,qBAPqC,CAAlC;;AAaPE,4BAA4B,CAACH,WAA7B,GAA2C,8BAA3C;AAEO,IAAMK,sCAAsC,GAAG,+BACpDC,oCADoD,CAAH;AAAA;AAAA;AAAA,yFAG/CJ,kBAH+C,EAQ/C,UAACP,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,QACAC,qBADA,8BADA;AAAA,CAR+C,CAA5C;;AAePQ,sCAAsC,CAACL,WAAvC,GACE,wCADF;AAGO,IAAMO,mBAAmB,GAAG,+BAAOC,YAAP,CAAH;AAAA;AAAA;AAAA,mGAAzB;;AAQPD,mBAAmB,CAACP,WAApB,GAAkC,qBAAlC;;AAEO,IAAMS,kBAAkB,GAAGlB,0BAAOC,GAAV;AAAA;AAAA;AAAA,oLAOpB,UAACG,KAAD;AAAA,mBAAcA,KAAK,CAACe,MAApB;AAAA,CAPoB,CAAxB;;;AAUPD,kBAAkB,CAACT,WAAnB,GAAiC,oBAAjC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { CollapseExpandSingleIcon, CloseSmallIcon } from \"../Icons/collection\";\nimport { Input } from \"../Input/Input\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\n\ninterface StyledComboBoxProps {\n $open?: boolean;\n $loading?: boolean;\n $size?: string;\n}\n\nexport const StyledComboBox = styled.div<StyledComboBoxProps>`\n height: 34px;\n border: 1px solid var(--border-primary);\n border-radius: 10px;\n color: var(--color-theme-900);\n font-size: 14px;\n background-color: var(--input-background-color);\n cursor: text;\n ${FontStyle}\n ${BoxSizingStyle}\n\n ${(props) =>\n props.$open &&\n css`\n border-color: var(--color-primary);\n `}\n\n ${(props) =>\n props.$loading &&\n css`\n cursor: progress;\n `}\n\n ${(props) =>\n props.$size == \"small\" &&\n css`\n height: 26px;\n `}\n\n ${(props) =>\n props.$size == \"big\" &&\n css`\n height: 42px;\n `}\n`;\n\nStyledComboBox.displayName = \"StyledComboBox\";\n\nexport const StyledComboBoxWrapper = styled.div<{ $loading?: boolean }>`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n\n ${(props) =>\n props.$loading &&\n css`\n pointer-events: none;\n `}\n`;\n\nStyledComboBoxWrapper.displayName = \"StyledComboBoxWrapper\";\n\nconst StyledIconDefaults = css`\n flex-shrink: 0;\n cursor: pointer;\n`;\n\nexport const StyledComboBoxCloseSmallIcon = styled(CloseSmallIcon)`\n ${StyledIconDefaults}\n opacity: 0;\n transition-property: all;\n transition-duration: 0.2s;\n transition-delay: 0.5s;\n\n ${StyledComboBoxWrapper}:hover & {\n opacity: 1;\n transition-delay: 0s;\n }\n`;\n\nStyledComboBoxCloseSmallIcon.displayName = \"StyledComboBoxCloseSmallIcon\";\n\nexport const StyledComboBoxCollapseExpandSingleIcon = styled(\n CollapseExpandSingleIcon\n)<{ $open?: boolean }>`\n ${StyledIconDefaults}\n margin: 0 4px 0 0;\n color: var(--color-theme-600);\n transform: rotate(180deg);\n\n ${(props) =>\n props.$open &&\n css`\n transform: rotate(0deg);\n `}\n`;\n\nStyledComboBoxCollapseExpandSingleIcon.displayName =\n \"StyledComboBoxCollapseExpandSingleIcon\";\n\nexport const StyledComboBoxInput = styled(Input)`\n overflow: hidden;\n text-overflow: ellipsis;\n background-color: transparent;\n border: none;\n width: 100%;\n`;\n\nStyledComboBoxInput.displayName = \"StyledComboBoxInput\";\n\nexport const StyledComboBoxList = styled.div<{ $width?: number }>`\n min-width: 260px;\n background-color: var(--page-paper-main);\n border-radius: 8px;\n border: 1px solid var(--border-primary);\n box-shadow: var(--shadow-tertiary);\n margin: 8px 0;\n width: ${(props) => `${props.$width}px`};\n`;\n\nStyledComboBoxList.displayName = \"StyledComboBoxList\";\n"],"file":"Styles.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAMF,SAAS,EACT,YAAY,EACb,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,gBAAgB,EAAU,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAe,MAAM,uBAAuB,CAAC;AAQvE,MAAM,WAAW,kBAAkB;IAEjC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE7B,OAAO,CAAC,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;IAEnD,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;IAEjD,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAElC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,MAAM,GAAG,YAAY,CAAC;IAE3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAE/B,YAAY,CAAC,EAAE,CACb,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IAEV,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAEjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAOD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,kBAAkB,CA6Z/C,CAAC"}
1
+ {"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAMF,SAAS,EACT,YAAY,EACb,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,gBAAgB,EAAU,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAe,MAAM,uBAAuB,CAAC;AAQvE,MAAM,WAAW,kBAAkB;IAEjC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE7B,OAAO,CAAC,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;IAEnD,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;IAEjD,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAElC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,MAAM,GAAG,YAAY,CAAC;IAE3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAE/B,YAAY,CAAC,EAAE,CACb,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IAEV,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAEjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAOD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,kBAAkB,CA4Z/C,CAAC"}
@@ -312,11 +312,8 @@ export var Autocomplete = function Autocomplete(_ref) {
312
312
  handleChange(hover == null ? void 0 : hover.item);
313
313
  }
314
314
 
315
- setTimeout(function () {
316
- return inputEl == null ? void 0 : inputEl.focus();
317
- }, 0);
318
315
  setFilter("");
319
- }, [handleChange, handleDefaultOptionChange, hover, inputEl]);
316
+ }, [handleChange, handleDefaultOptionChange, hover]);
320
317
  useEffect(function () {
321
318
  if (inputEl) {
322
319
  inputEl.onkeydown = handleOnKeyDown;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","Scrollbars","highlightText","handleKeyboardMovement","Option","OptionGroup","StyledAutocompleteBody","StyledAutocompleteNewItem","StyledAutocompleteNoResult","StyledAutocompleteScrollShadow","Autocomplete","type","options","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","itemRef","listRef","selectedOptions","Array","handleSort","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","item","undefined","by","hover","setHover","filter","setFilter","handleEmpty","e","button","focus","onAddNewMouseEnter","isGroup","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleMouseEnter","handleHoverCallback","handleRenderOption","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","current","offsetTop","handleOnKeyDown","preventDefault","handleClick","setTimeout","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n ReactNode,\n ReactElement,\n} from \"react\";\nimport { Scrollbars } from \"react-custom-scrollbars\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport { IOptionItemProps, Option } from \"../Select/Option\";\nimport { IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteNoResult,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Input Element. */\n inputEl?: HTMLInputElement | null;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n}) => {\n const itemRef = useRef<HTMLLabelElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const handleSort = useCallback((opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n return opts.sort((a: IOptionItemProps, b: IOptionItemProps) => {\n if (selectedOptions.includes(b.id) && !selectedOptions.includes(a.id)) {\n return 1;\n }\n if (selectedOptions.includes(a.id) && !selectedOptions.includes(b.id)) {\n return -1;\n }\n return 0;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n return handleSort(\n [...options].sort((a: IOptionItemProps, b: IOptionItemProps) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n )\n );\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const sortedList = useMemo(() => sortList(options), [options, sortList]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const renderAddNew = useMemo(() => {\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n }, [emptyValue, handleEmpty, hover, onAddNewMouseEnter]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isGroup(options[0]);\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps) => {\n if (isGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={itemRef}\n key={item.id}\n onMouseEnter={handleMouseEnter}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n const handleScroll = useCallback((list: Scrollbars, itemOffset: number) => {\n if (list.getClientHeight() + list.getScrollTop() < itemOffset + 40) {\n return list.scrollTop(itemOffset - list.getClientHeight() + 30);\n }\n if (list.getScrollTop() > itemOffset) {\n return list.scrollTop(itemOffset);\n }\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const item: HTMLLabelElement | null = itemRef.current;\n const list = listRef.current;\n if (itemRef && item && list) {\n handleScroll(list, item.offsetTop);\n }\n }\n }, [handleScroll, hover]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n if (handleChange) {\n handleChange(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n handleChange,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n const handleClick = useCallback(() => {\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n }\n if (handleChange) {\n handleChange(hover?.item);\n }\n setTimeout(() => inputEl?.focus(), 0);\n setFilter(\"\");\n }, [handleChange, handleDefaultOptionChange, hover, inputEl]);\n\n useEffect(() => {\n if (inputEl) {\n inputEl.onkeydown = handleOnKeyDown;\n inputEl.onkeyup = handleInputChange;\n }\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const showNoResult = useMemo(\n () => noResultText && !showAddNew && list.length < 1,\n [list.length, noResultText, showAddNew]\n );\n\n const renderNoResult = useMemo(\n () => (\n <StyledAutocompleteNoResult>{noResultText}</StyledAutocompleteNoResult>\n ),\n [noResultText]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }): JSX.Element => (\n <StyledAutocompleteBody\n key=\"body\"\n onChange={handleClick}\n onMouseLeave={handleOnMouseLeave}\n >\n <Scrollbars\n ref={listRef}\n key=\"scrollBar\"\n autoHeight\n autoHeightMax={autoHeightMax}\n onScroll={onScroll}\n >\n {defaultValue && !filter && (\n <Option\n name={defaultValue}\n ref={itemRef}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n )}\n {list.map((item: IOptionItemProps) => handleRenderOption(item))}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"file":"Autocomplete.js"}
1
+ {"version":3,"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","Scrollbars","highlightText","handleKeyboardMovement","Option","OptionGroup","StyledAutocompleteBody","StyledAutocompleteNewItem","StyledAutocompleteNoResult","StyledAutocompleteScrollShadow","Autocomplete","type","options","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","itemRef","listRef","selectedOptions","Array","handleSort","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","item","undefined","by","hover","setHover","filter","setFilter","handleEmpty","e","button","focus","onAddNewMouseEnter","isGroup","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleMouseEnter","handleHoverCallback","handleRenderOption","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","current","offsetTop","handleOnKeyDown","preventDefault","handleClick","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n ReactNode,\n ReactElement,\n} from \"react\";\nimport { Scrollbars } from \"react-custom-scrollbars\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport { IOptionItemProps, Option } from \"../Select/Option\";\nimport { IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteNoResult,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Input Element. */\n inputEl?: HTMLInputElement | null;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n}) => {\n const itemRef = useRef<HTMLLabelElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const handleSort = useCallback((opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n return opts.sort((a: IOptionItemProps, b: IOptionItemProps) => {\n if (selectedOptions.includes(b.id) && !selectedOptions.includes(a.id)) {\n return 1;\n }\n if (selectedOptions.includes(a.id) && !selectedOptions.includes(b.id)) {\n return -1;\n }\n return 0;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n return handleSort(\n [...options].sort((a: IOptionItemProps, b: IOptionItemProps) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n )\n );\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const sortedList = useMemo(() => sortList(options), [options, sortList]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const renderAddNew = useMemo(() => {\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n }, [emptyValue, handleEmpty, hover, onAddNewMouseEnter]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isGroup(options[0]);\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps) => {\n if (isGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={itemRef}\n key={item.id}\n onMouseEnter={handleMouseEnter}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n const handleScroll = useCallback((list: Scrollbars, itemOffset: number) => {\n if (list.getClientHeight() + list.getScrollTop() < itemOffset + 40) {\n return list.scrollTop(itemOffset - list.getClientHeight() + 30);\n }\n if (list.getScrollTop() > itemOffset) {\n return list.scrollTop(itemOffset);\n }\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const item: HTMLLabelElement | null = itemRef.current;\n const list = listRef.current;\n if (itemRef && item && list) {\n handleScroll(list, item.offsetTop);\n }\n }\n }, [handleScroll, hover]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n if (handleChange) {\n handleChange(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n handleChange,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n const handleClick = useCallback(() => {\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n }\n if (handleChange) {\n handleChange(hover?.item);\n }\n setFilter(\"\");\n }, [handleChange, handleDefaultOptionChange, hover]);\n\n useEffect(() => {\n if (inputEl) {\n inputEl.onkeydown = handleOnKeyDown;\n inputEl.onkeyup = handleInputChange;\n }\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const showNoResult = useMemo(\n () => noResultText && !showAddNew && list.length < 1,\n [list.length, noResultText, showAddNew]\n );\n\n const renderNoResult = useMemo(\n () => (\n <StyledAutocompleteNoResult>{noResultText}</StyledAutocompleteNoResult>\n ),\n [noResultText]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }): JSX.Element => (\n <StyledAutocompleteBody\n key=\"body\"\n onChange={handleClick}\n onMouseLeave={handleOnMouseLeave}\n >\n <Scrollbars\n ref={listRef}\n key=\"scrollBar\"\n autoHeight\n autoHeightMax={autoHeightMax}\n onScroll={onScroll}\n >\n {defaultValue && !filter && (\n <Option\n name={defaultValue}\n ref={itemRef}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n )}\n {list.map((item: IOptionItemProps) => handleRenderOption(item))}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"file":"Autocomplete.js"}
@@ -6,14 +6,14 @@ import { FontStyle } from "../FontStyle";
6
6
  export var StyledComboBox = styled.div.withConfig({
7
7
  displayName: "Styles__StyledComboBox",
8
8
  componentId: "sc-5qvkpb-0"
9
- })(["height:32px;border:1px solid var(--border-primary);border-radius:10px;color:var(--color-theme-900);font-size:14px;background-color:var(--input-background-color);cursor:text;", " ", " ", " ", " ", " ", ""], FontStyle, BoxSizingStyle, function (props) {
9
+ })(["height:34px;border:1px solid var(--border-primary);border-radius:10px;color:var(--color-theme-900);font-size:14px;background-color:var(--input-background-color);cursor:text;", " ", " ", " ", " ", " ", ""], FontStyle, BoxSizingStyle, function (props) {
10
10
  return props.$open && css(["border-color:var(--color-primary);"]);
11
11
  }, function (props) {
12
12
  return props.$loading && css(["cursor:progress;"]);
13
13
  }, function (props) {
14
- return props.$size == "small" && css(["height:24px;"]);
14
+ return props.$size == "small" && css(["height:26px;"]);
15
15
  }, function (props) {
16
- return props.$size == "big" && css(["height:40px;"]);
16
+ return props.$size == "big" && css(["height:42px;"]);
17
17
  });
18
18
  StyledComboBox.displayName = "StyledComboBox";
19
19
  export var StyledComboBoxWrapper = styled.div.withConfig({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ComboBox/Styles.ts"],"names":["styled","css","CollapseExpandSingleIcon","CloseSmallIcon","Input","BoxSizingStyle","FontStyle","StyledComboBox","div","props","$open","$loading","$size","displayName","StyledComboBoxWrapper","StyledIconDefaults","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","$width"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AACA,SAASC,wBAAT,EAAmCC,cAAnC,QAAyD,qBAAzD;AACA,SAASC,KAAT,QAAsB,gBAAtB;AACA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,SAAT,QAA0B,cAA1B;AAQA,OAAO,IAAMC,cAAc,GAAGP,MAAM,CAACQ,GAAV;AAAA;AAAA;AAAA,mNAQvBF,SARuB,EASvBD,cATuB,EAWvB,UAACI,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,IACAT,GADA,wCADA;AAAA,CAXuB,EAiBvB,UAACQ,KAAD;AAAA,SACAA,KAAK,CAACE,QAAN,IACAV,GADA,sBADA;AAAA,CAjBuB,EAuBvB,UAACQ,KAAD;AAAA,SACAA,KAAK,CAACG,KAAN,IAAe,OAAf,IACAX,GADA,kBADA;AAAA,CAvBuB,EA6BvB,UAACQ,KAAD;AAAA,SACAA,KAAK,CAACG,KAAN,IAAe,KAAf,IACAX,GADA,kBADA;AAAA,CA7BuB,CAApB;AAoCPM,cAAc,CAACM,WAAf,GAA6B,gBAA7B;AAEA,OAAO,IAAMC,qBAAqB,GAAGd,MAAM,CAACQ,GAAV;AAAA;AAAA;AAAA,oEAM9B,UAACC,KAAD;AAAA,SACAA,KAAK,CAACE,QAAN,IACAV,GADA,0BADA;AAAA,CAN8B,CAA3B;AAaPa,qBAAqB,CAACD,WAAtB,GAAoC,uBAApC;AAEA,IAAME,kBAAkB,GAAGd,GAAH,mCAAxB;AAKA,OAAO,IAAMe,4BAA4B,GAAGhB,MAAM,CAACG,cAAD,CAAT;AAAA;AAAA;AAAA,2IACrCY,kBADqC,EAOrCD,qBAPqC,CAAlC;AAaPE,4BAA4B,CAACH,WAA7B,GAA2C,8BAA3C;AAEA,OAAO,IAAMI,sCAAsC,GAAGjB,MAAM,CAC1DE,wBAD0D,CAAT;AAAA;AAAA;AAAA,yFAG/Ca,kBAH+C,EAQ/C,UAACN,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,IACAT,GADA,6BADA;AAAA,CAR+C,CAA5C;AAePgB,sCAAsC,CAACJ,WAAvC,GACE,wCADF;AAGA,OAAO,IAAMK,mBAAmB,GAAGlB,MAAM,CAACI,KAAD,CAAT;AAAA;AAAA;AAAA,mGAAzB;AAQPc,mBAAmB,CAACL,WAApB,GAAkC,qBAAlC;AAEA,OAAO,IAAMM,kBAAkB,GAAGnB,MAAM,CAACQ,GAAV;AAAA;AAAA;AAAA,oLAOpB,UAACC,KAAD;AAAA,SAAcA,KAAK,CAACW,MAApB;AAAA,CAPoB,CAAxB;AAUPD,kBAAkB,CAACN,WAAnB,GAAiC,oBAAjC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { CollapseExpandSingleIcon, CloseSmallIcon } from \"../Icons/collection\";\nimport { Input } from \"../Input/Input\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\n\ninterface StyledComboBoxProps {\n $open?: boolean;\n $loading?: boolean;\n $size?: string;\n}\n\nexport const StyledComboBox = styled.div<StyledComboBoxProps>`\n height: 32px;\n border: 1px solid var(--border-primary);\n border-radius: 10px;\n color: var(--color-theme-900);\n font-size: 14px;\n background-color: var(--input-background-color);\n cursor: text;\n ${FontStyle}\n ${BoxSizingStyle}\n\n ${(props) =>\n props.$open &&\n css`\n border-color: var(--color-primary);\n `}\n\n ${(props) =>\n props.$loading &&\n css`\n cursor: progress;\n `}\n\n ${(props) =>\n props.$size == \"small\" &&\n css`\n height: 24px;\n `}\n\n ${(props) =>\n props.$size == \"big\" &&\n css`\n height: 40px;\n `}\n`;\n\nStyledComboBox.displayName = \"StyledComboBox\";\n\nexport const StyledComboBoxWrapper = styled.div<{ $loading?: boolean }>`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n\n ${(props) =>\n props.$loading &&\n css`\n pointer-events: none;\n `}\n`;\n\nStyledComboBoxWrapper.displayName = \"StyledComboBoxWrapper\";\n\nconst StyledIconDefaults = css`\n flex-shrink: 0;\n cursor: pointer;\n`;\n\nexport const StyledComboBoxCloseSmallIcon = styled(CloseSmallIcon)`\n ${StyledIconDefaults}\n opacity: 0;\n transition-property: all;\n transition-duration: 0.2s;\n transition-delay: 0.5s;\n\n ${StyledComboBoxWrapper}:hover & {\n opacity: 1;\n transition-delay: 0s;\n }\n`;\n\nStyledComboBoxCloseSmallIcon.displayName = \"StyledComboBoxCloseSmallIcon\";\n\nexport const StyledComboBoxCollapseExpandSingleIcon = styled(\n CollapseExpandSingleIcon\n)<{ $open?: boolean }>`\n ${StyledIconDefaults}\n margin: 0 4px 0 0;\n color: var(--color-theme-600);\n transform: rotate(180deg);\n\n ${(props) =>\n props.$open &&\n css`\n transform: rotate(0deg);\n `}\n`;\n\nStyledComboBoxCollapseExpandSingleIcon.displayName =\n \"StyledComboBoxCollapseExpandSingleIcon\";\n\nexport const StyledComboBoxInput = styled(Input)`\n overflow: hidden;\n text-overflow: ellipsis;\n background-color: transparent;\n border: none;\n width: 100%;\n`;\n\nStyledComboBoxInput.displayName = \"StyledComboBoxInput\";\n\nexport const StyledComboBoxList = styled.div<{ $width?: number }>`\n min-width: 260px;\n background-color: var(--page-paper-main);\n border-radius: 8px;\n border: 1px solid var(--border-primary);\n box-shadow: var(--shadow-tertiary);\n margin: 8px 0;\n width: ${(props) => `${props.$width}px`};\n`;\n\nStyledComboBoxList.displayName = \"StyledComboBoxList\";\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../src/components/ComboBox/Styles.ts"],"names":["styled","css","CollapseExpandSingleIcon","CloseSmallIcon","Input","BoxSizingStyle","FontStyle","StyledComboBox","div","props","$open","$loading","$size","displayName","StyledComboBoxWrapper","StyledIconDefaults","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","$width"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AACA,SAASC,wBAAT,EAAmCC,cAAnC,QAAyD,qBAAzD;AACA,SAASC,KAAT,QAAsB,gBAAtB;AACA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,SAAT,QAA0B,cAA1B;AAQA,OAAO,IAAMC,cAAc,GAAGP,MAAM,CAACQ,GAAV;AAAA;AAAA;AAAA,mNAQvBF,SARuB,EASvBD,cATuB,EAWvB,UAACI,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,IACAT,GADA,wCADA;AAAA,CAXuB,EAiBvB,UAACQ,KAAD;AAAA,SACAA,KAAK,CAACE,QAAN,IACAV,GADA,sBADA;AAAA,CAjBuB,EAuBvB,UAACQ,KAAD;AAAA,SACAA,KAAK,CAACG,KAAN,IAAe,OAAf,IACAX,GADA,kBADA;AAAA,CAvBuB,EA6BvB,UAACQ,KAAD;AAAA,SACAA,KAAK,CAACG,KAAN,IAAe,KAAf,IACAX,GADA,kBADA;AAAA,CA7BuB,CAApB;AAoCPM,cAAc,CAACM,WAAf,GAA6B,gBAA7B;AAEA,OAAO,IAAMC,qBAAqB,GAAGd,MAAM,CAACQ,GAAV;AAAA;AAAA;AAAA,oEAM9B,UAACC,KAAD;AAAA,SACAA,KAAK,CAACE,QAAN,IACAV,GADA,0BADA;AAAA,CAN8B,CAA3B;AAaPa,qBAAqB,CAACD,WAAtB,GAAoC,uBAApC;AAEA,IAAME,kBAAkB,GAAGd,GAAH,mCAAxB;AAKA,OAAO,IAAMe,4BAA4B,GAAGhB,MAAM,CAACG,cAAD,CAAT;AAAA;AAAA;AAAA,2IACrCY,kBADqC,EAOrCD,qBAPqC,CAAlC;AAaPE,4BAA4B,CAACH,WAA7B,GAA2C,8BAA3C;AAEA,OAAO,IAAMI,sCAAsC,GAAGjB,MAAM,CAC1DE,wBAD0D,CAAT;AAAA;AAAA;AAAA,yFAG/Ca,kBAH+C,EAQ/C,UAACN,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,IACAT,GADA,6BADA;AAAA,CAR+C,CAA5C;AAePgB,sCAAsC,CAACJ,WAAvC,GACE,wCADF;AAGA,OAAO,IAAMK,mBAAmB,GAAGlB,MAAM,CAACI,KAAD,CAAT;AAAA;AAAA;AAAA,mGAAzB;AAQPc,mBAAmB,CAACL,WAApB,GAAkC,qBAAlC;AAEA,OAAO,IAAMM,kBAAkB,GAAGnB,MAAM,CAACQ,GAAV;AAAA;AAAA;AAAA,oLAOpB,UAACC,KAAD;AAAA,SAAcA,KAAK,CAACW,MAApB;AAAA,CAPoB,CAAxB;AAUPD,kBAAkB,CAACN,WAAnB,GAAiC,oBAAjC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { CollapseExpandSingleIcon, CloseSmallIcon } from \"../Icons/collection\";\nimport { Input } from \"../Input/Input\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\n\ninterface StyledComboBoxProps {\n $open?: boolean;\n $loading?: boolean;\n $size?: string;\n}\n\nexport const StyledComboBox = styled.div<StyledComboBoxProps>`\n height: 34px;\n border: 1px solid var(--border-primary);\n border-radius: 10px;\n color: var(--color-theme-900);\n font-size: 14px;\n background-color: var(--input-background-color);\n cursor: text;\n ${FontStyle}\n ${BoxSizingStyle}\n\n ${(props) =>\n props.$open &&\n css`\n border-color: var(--color-primary);\n `}\n\n ${(props) =>\n props.$loading &&\n css`\n cursor: progress;\n `}\n\n ${(props) =>\n props.$size == \"small\" &&\n css`\n height: 26px;\n `}\n\n ${(props) =>\n props.$size == \"big\" &&\n css`\n height: 42px;\n `}\n`;\n\nStyledComboBox.displayName = \"StyledComboBox\";\n\nexport const StyledComboBoxWrapper = styled.div<{ $loading?: boolean }>`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n\n ${(props) =>\n props.$loading &&\n css`\n pointer-events: none;\n `}\n`;\n\nStyledComboBoxWrapper.displayName = \"StyledComboBoxWrapper\";\n\nconst StyledIconDefaults = css`\n flex-shrink: 0;\n cursor: pointer;\n`;\n\nexport const StyledComboBoxCloseSmallIcon = styled(CloseSmallIcon)`\n ${StyledIconDefaults}\n opacity: 0;\n transition-property: all;\n transition-duration: 0.2s;\n transition-delay: 0.5s;\n\n ${StyledComboBoxWrapper}:hover & {\n opacity: 1;\n transition-delay: 0s;\n }\n`;\n\nStyledComboBoxCloseSmallIcon.displayName = \"StyledComboBoxCloseSmallIcon\";\n\nexport const StyledComboBoxCollapseExpandSingleIcon = styled(\n CollapseExpandSingleIcon\n)<{ $open?: boolean }>`\n ${StyledIconDefaults}\n margin: 0 4px 0 0;\n color: var(--color-theme-600);\n transform: rotate(180deg);\n\n ${(props) =>\n props.$open &&\n css`\n transform: rotate(0deg);\n `}\n`;\n\nStyledComboBoxCollapseExpandSingleIcon.displayName =\n \"StyledComboBoxCollapseExpandSingleIcon\";\n\nexport const StyledComboBoxInput = styled(Input)`\n overflow: hidden;\n text-overflow: ellipsis;\n background-color: transparent;\n border: none;\n width: 100%;\n`;\n\nStyledComboBoxInput.displayName = \"StyledComboBoxInput\";\n\nexport const StyledComboBoxList = styled.div<{ $width?: number }>`\n min-width: 260px;\n background-color: var(--page-paper-main);\n border-radius: 8px;\n border: 1px solid var(--border-primary);\n box-shadow: var(--shadow-tertiary);\n margin: 8px 0;\n width: ${(props) => `${props.$width}px`};\n`;\n\nStyledComboBoxList.displayName = \"StyledComboBoxList\";\n"],"file":"Styles.js"}
package/dist/index.js CHANGED
@@ -4510,11 +4510,8 @@
4510
4510
  handleChange(hover === null || hover === void 0 ? void 0 : hover.item);
4511
4511
  }
4512
4512
 
4513
- setTimeout(function () {
4514
- return inputEl === null || inputEl === void 0 ? void 0 : inputEl.focus();
4515
- }, 0);
4516
4513
  setFilter("");
4517
- }, [handleChange, handleDefaultOptionChange, hover, inputEl]);
4514
+ }, [handleChange, handleDefaultOptionChange, hover]);
4518
4515
  React.useEffect(function () {
4519
4516
  if (inputEl) {
4520
4517
  inputEl.onkeydown = handleOnKeyDown;
@@ -9546,14 +9543,14 @@
9546
9543
  var StyledComboBox = styled__default["default"].div.withConfig({
9547
9544
  displayName: "Styles__StyledComboBox",
9548
9545
  componentId: "sc-5qvkpb-0"
9549
- })(["height:32px;border:1px solid var(--border-primary);border-radius:10px;color:var(--color-theme-900);font-size:14px;background-color:var(--input-background-color);cursor:text;", " ", " ", " ", " ", " ", ""], FontStyle, BoxSizingStyle, function (props) {
9546
+ })(["height:34px;border:1px solid var(--border-primary);border-radius:10px;color:var(--color-theme-900);font-size:14px;background-color:var(--input-background-color);cursor:text;", " ", " ", " ", " ", " ", ""], FontStyle, BoxSizingStyle, function (props) {
9550
9547
  return props.$open && styled.css(["border-color:var(--color-primary);"]);
9551
9548
  }, function (props) {
9552
9549
  return props.$loading && styled.css(["cursor:progress;"]);
9553
9550
  }, function (props) {
9554
- return props.$size == "small" && styled.css(["height:24px;"]);
9551
+ return props.$size == "small" && styled.css(["height:26px;"]);
9555
9552
  }, function (props) {
9556
- return props.$size == "big" && styled.css(["height:40px;"]);
9553
+ return props.$size == "big" && styled.css(["height:42px;"]);
9557
9554
  });
9558
9555
  StyledComboBox.displayName = "StyledComboBox";
9559
9556
  var StyledComboBoxWrapper = styled__default["default"].div.withConfig({