@consta/uikit 4.24.0 → 4.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/ComboboxCanary/index.d.ts +1 -0
  2. package/ComboboxCanary/index.js +1 -0
  3. package/SelectCanary/index.d.ts +1 -0
  4. package/SelectCanary/index.js +1 -0
  5. package/UserSelectCanary/index.d.ts +1 -0
  6. package/UserSelectCanary/index.js +1 -0
  7. package/__internal__/src/components/AutoCompleteCanary/AutoCompleteCanary.js +1 -1
  8. package/__internal__/src/components/AutoCompleteCanary/AutoCompleteCanary.js.map +1 -1
  9. package/__internal__/src/components/AutoCompleteCanary/helpers.d.ts +8 -2
  10. package/__internal__/src/components/AutoCompleteCanary/types.d.ts +13 -2
  11. package/__internal__/src/components/AutoCompleteCanary/types.js.map +1 -1
  12. package/__internal__/src/components/AutoCompleteCanary/useAutoComplete.d.ts +6 -0
  13. package/__internal__/src/components/AutoCompleteCanary/useAutoComplete.js +1 -1
  14. package/__internal__/src/components/AutoCompleteCanary/useAutoComplete.js.map +1 -1
  15. package/__internal__/src/components/Button/Button.css +1 -1
  16. package/__internal__/src/components/CollapseGroup/helpers.d.ts +3 -3
  17. package/__internal__/src/components/Combobox/helpers.d.ts +2 -2
  18. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.d.ts +4 -0
  19. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js +2 -0
  20. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js.map +1 -0
  21. package/__internal__/src/components/ComboboxCanary/helpers.d.ts +186 -0
  22. package/__internal__/src/components/ComboboxCanary/helpers.js +2 -0
  23. package/__internal__/src/components/ComboboxCanary/helpers.js.map +1 -0
  24. package/__internal__/src/components/ComboboxCanary/index.d.ts +2 -0
  25. package/__internal__/src/components/ComboboxCanary/index.js +2 -0
  26. package/__internal__/src/components/ComboboxCanary/index.js.map +1 -0
  27. package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.d.ts +1 -1
  28. package/__internal__/src/components/ContextMenu/helpers.d.ts +2 -2
  29. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.d.ts +3 -3
  30. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.d.ts +4 -4
  31. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.d.ts +3 -3
  32. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.d.ts +4 -4
  33. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.d.ts +3 -3
  34. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.d.ts +4 -4
  35. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.d.ts +3 -3
  36. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.d.ts +3 -3
  37. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.d.ts +4 -4
  38. package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js.map +1 -1
  39. package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js.map +1 -1
  40. package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js.map +1 -1
  41. package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js.map +1 -1
  42. package/__internal__/src/components/EventInterceptor/propsHandlers/useTextFieldEventsHandler.d.ts +4 -4
  43. package/__internal__/src/components/Select/helpers.d.ts +1 -1
  44. package/__internal__/src/components/SelectCanary/SelectCanary.d.ts +4 -0
  45. package/__internal__/src/components/SelectCanary/SelectCanary.js +2 -0
  46. package/__internal__/src/components/SelectCanary/SelectCanary.js.map +1 -0
  47. package/__internal__/src/components/SelectCanary/helpers.d.ts +159 -0
  48. package/__internal__/src/components/SelectCanary/helpers.js +2 -0
  49. package/__internal__/src/components/SelectCanary/helpers.js.map +1 -0
  50. package/__internal__/src/components/SelectCanary/index.d.ts +1 -0
  51. package/__internal__/src/components/SelectCanary/index.js +2 -0
  52. package/__internal__/src/components/SelectCanary/index.js.map +1 -0
  53. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js +1 -1
  54. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js.map +1 -1
  55. package/__internal__/src/components/SelectComponentsCanary/Select.css +1 -0
  56. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/SelectContainer.d.ts +20 -0
  57. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/SelectContainer.js +2 -0
  58. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/SelectContainer.js.map +1 -0
  59. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/index.d.ts +1 -0
  60. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/index.js +2 -0
  61. package/__internal__/src/components/SelectComponentsCanary/SelectContainer/index.js.map +1 -0
  62. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/SelectCreateButton.css +1 -0
  63. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/SelectCreateButton.d.ts +15 -0
  64. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/SelectCreateButton.js +2 -0
  65. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/SelectCreateButton.js.map +1 -0
  66. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/index.d.ts +1 -0
  67. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/index.js +2 -0
  68. package/__internal__/src/components/SelectComponentsCanary/SelectCreateButton/index.js.map +1 -0
  69. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/SelectDropdown.css +1 -0
  70. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/SelectDropdown.d.ts +41 -0
  71. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/SelectDropdown.js +2 -0
  72. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/SelectDropdown.js.map +1 -0
  73. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/index.d.ts +1 -0
  74. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/index.js +2 -0
  75. package/__internal__/src/components/SelectComponentsCanary/SelectDropdown/index.js.map +1 -0
  76. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/SelectGroupLabel.d.ts +10 -0
  77. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/SelectGroupLabel.js +2 -0
  78. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/SelectGroupLabel.js.map +1 -0
  79. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/index.d.ts +1 -0
  80. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/index.js +2 -0
  81. package/__internal__/src/components/SelectComponentsCanary/SelectGroupLabel/index.js.map +1 -0
  82. package/__internal__/src/components/SelectComponentsCanary/SelectItem/SelectItem.css +1 -0
  83. package/__internal__/src/components/SelectComponentsCanary/SelectItem/SelectItem.d.ts +17 -0
  84. package/__internal__/src/components/SelectComponentsCanary/SelectItem/SelectItem.js +2 -0
  85. package/__internal__/src/components/SelectComponentsCanary/SelectItem/SelectItem.js.map +1 -0
  86. package/__internal__/src/components/SelectComponentsCanary/SelectItem/index.d.ts +1 -0
  87. package/__internal__/src/components/SelectComponentsCanary/SelectItem/index.js +2 -0
  88. package/__internal__/src/components/SelectComponentsCanary/SelectItem/index.js.map +1 -0
  89. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/SelectItemAll.css +1 -0
  90. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/SelectSelectAll.d.ts +14 -0
  91. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/SelectSelectAll.js +2 -0
  92. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/SelectSelectAll.js.map +1 -0
  93. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/index.d.ts +1 -0
  94. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/index.js +2 -0
  95. package/__internal__/src/components/SelectComponentsCanary/SelectItemAll/index.js.map +1 -0
  96. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/SelectLoader.css +1 -0
  97. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/SelectLoader.d.ts +3 -0
  98. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/SelectLoader.js +2 -0
  99. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/SelectLoader.js.map +1 -0
  100. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/index.d.ts +1 -0
  101. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/index.js +2 -0
  102. package/__internal__/src/components/SelectComponentsCanary/SelectLoader/index.js.map +1 -0
  103. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/SelectValueTag.css +1 -0
  104. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/SelectValueTag.d.ts +12 -0
  105. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/SelectValueTag.js +2 -0
  106. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/SelectValueTag.js.map +1 -0
  107. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/index.d.ts +1 -0
  108. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/index.js +2 -0
  109. package/__internal__/src/components/SelectComponentsCanary/SelectValueTag/index.js.map +1 -0
  110. package/__internal__/src/components/SelectComponentsCanary/cnSelect.d.ts +3 -0
  111. package/__internal__/src/components/SelectComponentsCanary/cnSelect.js +2 -0
  112. package/__internal__/src/components/SelectComponentsCanary/cnSelect.js.map +1 -0
  113. package/__internal__/src/components/SelectComponentsCanary/helpers.d.ts +4 -0
  114. package/__internal__/src/components/SelectComponentsCanary/helpers.js +2 -0
  115. package/__internal__/src/components/SelectComponentsCanary/helpers.js.map +1 -0
  116. package/__internal__/src/components/SelectComponentsCanary/types.d.ts +34 -0
  117. package/__internal__/src/components/SelectComponentsCanary/types.js +2 -0
  118. package/__internal__/src/components/SelectComponentsCanary/types.js.map +1 -0
  119. package/__internal__/src/components/SelectComponentsCanary/useSelect/helpers.d.ts +14 -0
  120. package/__internal__/src/components/SelectComponentsCanary/useSelect/helpers.js +2 -0
  121. package/__internal__/src/components/SelectComponentsCanary/useSelect/helpers.js.map +1 -0
  122. package/__internal__/src/components/SelectComponentsCanary/useSelect/index.d.ts +1 -0
  123. package/__internal__/src/components/SelectComponentsCanary/useSelect/index.js +2 -0
  124. package/__internal__/src/components/SelectComponentsCanary/useSelect/index.js.map +1 -0
  125. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.d.ts +84 -0
  126. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.js +2 -0
  127. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.js.map +1 -0
  128. package/__internal__/src/components/Slider/helper.d.ts +1 -1
  129. package/__internal__/src/components/SnackBar/helper.d.ts +1 -1
  130. package/__internal__/src/components/SpoilerCanary/SpoilerButton/SpoilerButton.js +1 -1
  131. package/__internal__/src/components/SpoilerCanary/SpoilerButton/SpoilerButton.js.map +1 -1
  132. package/__internal__/src/components/TagBase/TagBase.d.ts +1 -1
  133. package/__internal__/src/components/TextField/TextField.css +1 -1
  134. package/__internal__/src/components/TextField/TextField.js +1 -1
  135. package/__internal__/src/components/TextField/TextField.js.map +1 -1
  136. package/__internal__/src/components/UserSelect/helpers.d.ts +2 -2
  137. package/__internal__/src/components/UserSelectCanary/UserSelectCanary.d.ts +5 -0
  138. package/__internal__/src/components/UserSelectCanary/UserSelectCanary.js +2 -0
  139. package/__internal__/src/components/UserSelectCanary/UserSelectCanary.js.map +1 -0
  140. package/__internal__/src/components/UserSelectCanary/UserSelectItem/UserSelectItem.css +1 -0
  141. package/__internal__/src/components/UserSelectCanary/UserSelectItem/UserSelectItem.d.ts +14 -0
  142. package/__internal__/src/components/UserSelectCanary/UserSelectItem/UserSelectItem.js +2 -0
  143. package/__internal__/src/components/UserSelectCanary/UserSelectItem/UserSelectItem.js.map +1 -0
  144. package/__internal__/src/components/UserSelectCanary/UserSelectValue/UserSelectValue.css +1 -0
  145. package/__internal__/src/components/UserSelectCanary/UserSelectValue/UserSelectValue.d.ts +15 -0
  146. package/__internal__/src/components/UserSelectCanary/UserSelectValue/UserSelectValue.js +2 -0
  147. package/__internal__/src/components/UserSelectCanary/UserSelectValue/UserSelectValue.js.map +1 -0
  148. package/__internal__/src/components/UserSelectCanary/helpers.d.ts +191 -0
  149. package/__internal__/src/components/UserSelectCanary/helpers.js +2 -0
  150. package/__internal__/src/components/UserSelectCanary/helpers.js.map +1 -0
  151. package/__internal__/src/components/UserSelectCanary/index.d.ts +1 -0
  152. package/__internal__/src/components/UserSelectCanary/index.js +2 -0
  153. package/__internal__/src/components/UserSelectCanary/index.js.map +1 -0
  154. package/__internal__/src/hooks/useFlag/useFlag.d.ts +1 -0
  155. package/__internal__/src/hooks/useFlag/useFlag.js +1 -1
  156. package/__internal__/src/hooks/useFlag/useFlag.js.map +1 -1
  157. package/__internal__/src/hooks/useForkRef/useForkRef.d.ts +2 -1
  158. package/__internal__/src/hooks/useForkRef/useForkRef.js +1 -1
  159. package/__internal__/src/hooks/useForkRef/useForkRef.js.map +1 -1
  160. package/__internal__/src/icons/IconAdd/IconAdd.d.ts +1 -2
  161. package/__internal__/src/icons/IconAddToComparison/IconAddToComparison.d.ts +1 -2
  162. package/__internal__/src/icons/IconAlert/IconAlert.d.ts +1 -2
  163. package/__internal__/src/icons/IconAlignBlocksLeft/IconAlignBlocksLeft.d.ts +1 -2
  164. package/__internal__/src/icons/IconAlignBlocksRight/IconAlignBlocksRight.d.ts +1 -2
  165. package/__internal__/src/icons/IconAlignCenter/IconAlignCenter.d.ts +1 -2
  166. package/__internal__/src/icons/IconAlignJustify/IconAlignJustify.d.ts +1 -2
  167. package/__internal__/src/icons/IconAlignLeft/IconAlignLeft.d.ts +1 -2
  168. package/__internal__/src/icons/IconAlignRight/IconAlignRight.d.ts +1 -2
  169. package/__internal__/src/icons/IconAllDone/IconAllDone.d.ts +1 -2
  170. package/__internal__/src/icons/IconArrowDown/IconArrowDown.d.ts +1 -2
  171. package/__internal__/src/icons/IconArrowLeft/IconArrowLeft.d.ts +1 -2
  172. package/__internal__/src/icons/IconArrowRight/IconArrowRight.d.ts +1 -2
  173. package/__internal__/src/icons/IconArrowUp/IconArrowUp.d.ts +1 -2
  174. package/__internal__/src/icons/IconArtBrush/IconArtBrush.d.ts +1 -2
  175. package/__internal__/src/icons/IconAttach/IconAttach.d.ts +1 -2
  176. package/__internal__/src/icons/IconAxesRotate/IconAxesRotate.d.ts +1 -2
  177. package/__internal__/src/icons/IconBackward/IconBackward.d.ts +1 -2
  178. package/__internal__/src/icons/IconBag/IconBag.d.ts +1 -2
  179. package/__internal__/src/icons/IconBarrier/IconBarrier.d.ts +1 -2
  180. package/__internal__/src/icons/IconBento/IconBento.d.ts +1 -2
  181. package/__internal__/src/icons/IconBit/IconBit.d.ts +1 -2
  182. package/__internal__/src/icons/IconBold/IconBold.d.ts +1 -2
  183. package/__internal__/src/icons/IconBook/IconBook.d.ts +1 -2
  184. package/__internal__/src/icons/IconBookmarkFilled/IconBookmarkFilled.d.ts +1 -2
  185. package/__internal__/src/icons/IconBookmarkStroked/IconBookmarkStroked.d.ts +1 -2
  186. package/__internal__/src/icons/IconCalculator/IconCalculator.d.ts +1 -2
  187. package/__internal__/src/icons/IconCalendar/IconCalendar.d.ts +1 -2
  188. package/__internal__/src/icons/IconCamera/IconCamera.d.ts +1 -2
  189. package/__internal__/src/icons/IconCancel/IconCancel.d.ts +1 -2
  190. package/__internal__/src/icons/IconCards/IconCards.d.ts +1 -2
  191. package/__internal__/src/icons/IconChatFilled/IconChatFilled.d.ts +1 -2
  192. package/__internal__/src/icons/IconChatStroked/IconChatStroked.d.ts +1 -2
  193. package/__internal__/src/icons/IconCheck/IconCheck.d.ts +1 -2
  194. package/__internal__/src/icons/IconClose/IconClose.d.ts +1 -2
  195. package/__internal__/src/icons/IconCollapse/IconCollapse.d.ts +1 -2
  196. package/__internal__/src/icons/IconColorFill/IconColorFill.d.ts +1 -2
  197. package/__internal__/src/icons/IconColorText/IconColorText.d.ts +1 -2
  198. package/__internal__/src/icons/IconColumns/IconColumns.d.ts +1 -2
  199. package/__internal__/src/icons/IconCommentFilled/IconCommentFilled.d.ts +1 -2
  200. package/__internal__/src/icons/IconCommentStroked/IconCommentStroked.d.ts +1 -2
  201. package/__internal__/src/icons/IconConnection/IconConnection.d.ts +1 -2
  202. package/__internal__/src/icons/IconCopy/IconCopy.d.ts +1 -2
  203. package/__internal__/src/icons/IconCrown/IconCrown.d.ts +1 -2
  204. package/__internal__/src/icons/IconCursorMouse/IconCursorMouse.d.ts +1 -2
  205. package/__internal__/src/icons/IconDataNull/IconDataNull.d.ts +1 -2
  206. package/__internal__/src/icons/IconDiamond/IconDiamond.d.ts +1 -2
  207. package/__internal__/src/icons/IconDinosaur/IconDinosaur.d.ts +1 -2
  208. package/__internal__/src/icons/IconDisconnection/IconDisconnection.d.ts +1 -2
  209. package/__internal__/src/icons/IconDocAdd/IconDocAdd.d.ts +1 -2
  210. package/__internal__/src/icons/IconDocBlank/IconDocBlank.d.ts +1 -2
  211. package/__internal__/src/icons/IconDocDelete/IconDocDelete.d.ts +1 -2
  212. package/__internal__/src/icons/IconDocExport/IconDocExport.d.ts +1 -2
  213. package/__internal__/src/icons/IconDocFilled/IconDocFilled.d.ts +1 -2
  214. package/__internal__/src/icons/IconDown/IconDown.d.ts +1 -2
  215. package/__internal__/src/icons/IconDownload/IconDownload.d.ts +1 -2
  216. package/__internal__/src/icons/IconDrag/IconDrag.d.ts +1 -2
  217. package/__internal__/src/icons/IconDraggable/IconDraggable.d.ts +1 -2
  218. package/__internal__/src/icons/IconDrillingPartLeftFilled/IconDrillingPartLeftFilled.d.ts +1 -2
  219. package/__internal__/src/icons/IconDrillingPartLeftStroked/IconDrillingPartLeftStroked.d.ts +1 -2
  220. package/__internal__/src/icons/IconDrillingPartRightFilled/IconDrillingPartRightFilled.d.ts +1 -2
  221. package/__internal__/src/icons/IconDrillingPartRightStroked/IconDrillingPartRightStroked.d.ts +1 -2
  222. package/__internal__/src/icons/IconDrillingRig/IconDrillingRig.d.ts +1 -2
  223. package/__internal__/src/icons/IconDrop/IconDrop.d.ts +1 -2
  224. package/__internal__/src/icons/IconEdit/IconEdit.d.ts +1 -2
  225. package/__internal__/src/icons/IconExit/IconExit.d.ts +1 -2
  226. package/__internal__/src/icons/IconExpand/IconExpand.d.ts +1 -2
  227. package/__internal__/src/icons/IconEye/IconEye.d.ts +1 -2
  228. package/__internal__/src/icons/IconEyeClose/IconEyeClose.d.ts +1 -2
  229. package/__internal__/src/icons/IconFavorite/IconFavorite.d.ts +1 -2
  230. package/__internal__/src/icons/IconFilter/IconFilter.d.ts +1 -2
  231. package/__internal__/src/icons/IconFishboneFilled/IconFishboneFilled.d.ts +1 -2
  232. package/__internal__/src/icons/IconFishboneStroked/IconFishboneStroked.d.ts +1 -2
  233. package/__internal__/src/icons/IconFitToDefault/IconFitToDefault.d.ts +1 -2
  234. package/__internal__/src/icons/IconFlagFilled/IconFlagFilled.d.ts +1 -2
  235. package/__internal__/src/icons/IconFlagStroked/IconFlagStroked.d.ts +1 -2
  236. package/__internal__/src/icons/IconFolders/IconFolders.d.ts +1 -2
  237. package/__internal__/src/icons/IconForward/IconForward.d.ts +1 -2
  238. package/__internal__/src/icons/IconFunnel/IconFunnel.d.ts +1 -2
  239. package/__internal__/src/icons/IconGas/IconGas.d.ts +1 -2
  240. package/__internal__/src/icons/IconGeo/IconGeo.d.ts +1 -2
  241. package/__internal__/src/icons/IconGradients/IconGradients.d.ts +1 -2
  242. package/__internal__/src/icons/IconGrouping/IconGrouping.d.ts +1 -2
  243. package/__internal__/src/icons/IconHamburger/IconHamburger.d.ts +1 -2
  244. package/__internal__/src/icons/IconHand/IconHand.d.ts +1 -2
  245. package/__internal__/src/icons/IconHealth/IconHealth.d.ts +1 -2
  246. package/__internal__/src/icons/IconHome/IconHome.d.ts +1 -2
  247. package/__internal__/src/icons/IconInComparison/IconInComparison.d.ts +1 -2
  248. package/__internal__/src/icons/IconIncident/IconIncident.d.ts +1 -2
  249. package/__internal__/src/icons/IconInfo/IconInfo.d.ts +1 -2
  250. package/__internal__/src/icons/IconIntroduction/IconIntroduction.d.ts +1 -2
  251. package/__internal__/src/icons/IconIpad/IconIpad.d.ts +1 -2
  252. package/__internal__/src/icons/IconItalic/IconItalic.d.ts +1 -2
  253. package/__internal__/src/icons/IconKebab/IconKebab.d.ts +1 -2
  254. package/__internal__/src/icons/IconKernFilled/IconKernFilled.d.ts +1 -2
  255. package/__internal__/src/icons/IconKernStroked/IconKernStroked.d.ts +1 -2
  256. package/__internal__/src/icons/IconLaptop/IconLaptop.d.ts +1 -2
  257. package/__internal__/src/icons/IconLayers/IconLayers.d.ts +1 -2
  258. package/__internal__/src/icons/IconLeaf/IconLeaf.d.ts +1 -2
  259. package/__internal__/src/icons/IconLightningBolt/IconLightningBolt.d.ts +1 -2
  260. package/__internal__/src/icons/IconLineAndBarChart/IconLineAndBarChart.d.ts +1 -2
  261. package/__internal__/src/icons/IconLink/IconLink.d.ts +1 -2
  262. package/__internal__/src/icons/IconList/IconList.d.ts +1 -2
  263. package/__internal__/src/icons/IconListNumbered/IconListNumbered.d.ts +1 -2
  264. package/__internal__/src/icons/IconLithologyFilled/IconLithologyFilled.d.ts +1 -2
  265. package/__internal__/src/icons/IconLithologyStroked/IconLithologyStroked.d.ts +1 -2
  266. package/__internal__/src/icons/IconLock/IconLock.d.ts +1 -2
  267. package/__internal__/src/icons/IconLogicalElement/IconLogicalElement.d.ts +1 -2
  268. package/__internal__/src/icons/IconMBU/IconMBU.d.ts +1 -2
  269. package/__internal__/src/icons/IconMGRP/IconMGRP.d.ts +1 -2
  270. package/__internal__/src/icons/IconMLSP/IconMLSP.d.ts +1 -2
  271. package/__internal__/src/icons/IconMMP/IconMMP.d.ts +1 -2
  272. package/__internal__/src/icons/IconMail/IconMail.d.ts +1 -2
  273. package/__internal__/src/icons/IconMap/IconMap.d.ts +1 -2
  274. package/__internal__/src/icons/IconMaxHeight/IconMaxHeight.d.ts +1 -2
  275. package/__internal__/src/icons/IconMaxWidth/IconMaxWidth.d.ts +1 -2
  276. package/__internal__/src/icons/IconMeatball/IconMeatball.d.ts +1 -2
  277. package/__internal__/src/icons/IconMic/IconMic.d.ts +1 -2
  278. package/__internal__/src/icons/IconMolecules/IconMolecules.d.ts +1 -2
  279. package/__internal__/src/icons/IconMoon/IconMoon.d.ts +1 -2
  280. package/__internal__/src/icons/IconNodeEnd/IconNodeEnd.d.ts +1 -2
  281. package/__internal__/src/icons/IconNodeStart/IconNodeStart.d.ts +1 -2
  282. package/__internal__/src/icons/IconNodeStep/IconNodeStep.d.ts +1 -2
  283. package/__internal__/src/icons/IconNodes/IconNodes.d.ts +1 -2
  284. package/__internal__/src/icons/IconOilBarrel/IconOilBarrel.d.ts +1 -2
  285. package/__internal__/src/icons/IconOpenInNew/IconOpenInNew.d.ts +1 -2
  286. package/__internal__/src/icons/IconOperators/IconOperators.d.ts +1 -2
  287. package/__internal__/src/icons/IconPanelBottom/IconPanelBottom.d.ts +1 -2
  288. package/__internal__/src/icons/IconPanelLeft/IconPanelLeft.d.ts +1 -2
  289. package/__internal__/src/icons/IconPanelRight/IconPanelRight.d.ts +1 -2
  290. package/__internal__/src/icons/IconPanelTop/IconPanelTop.d.ts +1 -2
  291. package/__internal__/src/icons/IconPaste/IconPaste.d.ts +1 -2
  292. package/__internal__/src/icons/IconPause/IconPause.d.ts +1 -2
  293. package/__internal__/src/icons/IconPhone/IconPhone.d.ts +1 -2
  294. package/__internal__/src/icons/IconPhoto/IconPhoto.d.ts +1 -2
  295. package/__internal__/src/icons/IconPicture/IconPicture.d.ts +1 -2
  296. package/__internal__/src/icons/IconPlay/IconPlay.d.ts +1 -2
  297. package/__internal__/src/icons/IconPressureFilled/IconPressureFilled.d.ts +1 -2
  298. package/__internal__/src/icons/IconPressureStroked/IconPressureStroked.d.ts +1 -2
  299. package/__internal__/src/icons/IconPriceLabel/IconPriceLabel.d.ts +1 -2
  300. package/__internal__/src/icons/IconProcessing/IconProcessing.d.ts +1 -2
  301. package/__internal__/src/icons/IconQuestion/IconQuestion.d.ts +1 -2
  302. package/__internal__/src/icons/IconQuote/IconQuote.d.ts +1 -2
  303. package/__internal__/src/icons/IconRUO/IconRUO.d.ts +1 -2
  304. package/__internal__/src/icons/IconRUS/IconRUS.d.ts +1 -2
  305. package/__internal__/src/icons/IconRecord/IconRecord.d.ts +1 -2
  306. package/__internal__/src/icons/IconRemove/IconRemove.d.ts +1 -2
  307. package/__internal__/src/icons/IconRemoveFromComparison/IconRemoveFromComparison.d.ts +1 -2
  308. package/__internal__/src/icons/IconReply/IconReply.d.ts +1 -2
  309. package/__internal__/src/icons/IconResize/IconResize.d.ts +1 -2
  310. package/__internal__/src/icons/IconRestart/IconRestart.d.ts +1 -2
  311. package/__internal__/src/icons/IconRevert/IconRevert.d.ts +1 -2
  312. package/__internal__/src/icons/IconRing/IconRing.d.ts +1 -2
  313. package/__internal__/src/icons/IconRouble/IconRouble.d.ts +1 -2
  314. package/__internal__/src/icons/IconRuler/IconRuler.d.ts +1 -2
  315. package/__internal__/src/icons/IconSave/IconSave.d.ts +1 -2
  316. package/__internal__/src/icons/IconScreen/IconScreen.d.ts +1 -2
  317. package/__internal__/src/icons/IconSearch/IconSearch.d.ts +1 -2
  318. package/__internal__/src/icons/IconSelect/IconSelect.d.ts +1 -2
  319. package/__internal__/src/icons/IconSelectOpen/IconSelectOpen.d.ts +1 -2
  320. package/__internal__/src/icons/IconSendMessage/IconSendMessage.d.ts +1 -2
  321. package/__internal__/src/icons/IconSettings/IconSettings.d.ts +1 -2
  322. package/__internal__/src/icons/IconShape/IconShape.d.ts +1 -2
  323. package/__internal__/src/icons/IconShuffle/IconShuffle.d.ts +1 -2
  324. package/__internal__/src/icons/IconSmile/IconSmile.d.ts +1 -2
  325. package/__internal__/src/icons/IconSnowflake/IconSnowflake.d.ts +1 -2
  326. package/__internal__/src/icons/IconSortDown/IconSortDown.d.ts +1 -2
  327. package/__internal__/src/icons/IconSortDownCenter/IconSortDownCenter.d.ts +1 -2
  328. package/__internal__/src/icons/IconSortUp/IconSortUp.d.ts +1 -2
  329. package/__internal__/src/icons/IconSortUpCenter/IconSortUpCenter.d.ts +1 -2
  330. package/__internal__/src/icons/IconSpeed/IconSpeed.d.ts +1 -2
  331. package/__internal__/src/icons/IconStop/IconStop.d.ts +1 -2
  332. package/__internal__/src/icons/IconStorage/IconStorage.d.ts +1 -2
  333. package/__internal__/src/icons/IconStrikethrough/IconStrikethrough.d.ts +1 -2
  334. package/__internal__/src/icons/IconString/IconString.d.ts +1 -2
  335. package/__internal__/src/icons/IconSun/IconSun.d.ts +1 -2
  336. package/__internal__/src/icons/IconTable/IconTable.d.ts +1 -2
  337. package/__internal__/src/icons/IconTable2/IconTable2.d.ts +1 -2
  338. package/__internal__/src/icons/IconTarget/IconTarget.d.ts +1 -2
  339. package/__internal__/src/icons/IconTeam/IconTeam.d.ts +1 -2
  340. package/__internal__/src/icons/IconTechResponse/IconTechResponse.d.ts +1 -2
  341. package/__internal__/src/icons/IconTest/IconTest.d.ts +1 -2
  342. package/__internal__/src/icons/IconThumbUp/IconThumbUp.d.ts +1 -2
  343. package/__internal__/src/icons/IconTie/IconTie.d.ts +1 -2
  344. package/__internal__/src/icons/IconTop/IconTop.d.ts +1 -2
  345. package/__internal__/src/icons/IconTrajectory/IconTrajectory.d.ts +1 -2
  346. package/__internal__/src/icons/IconTrash/IconTrash.d.ts +1 -2
  347. package/__internal__/src/icons/IconType/IconType.d.ts +1 -2
  348. package/__internal__/src/icons/IconUnderline/IconUnderline.d.ts +1 -2
  349. package/__internal__/src/icons/IconUnlock/IconUnlock.d.ts +1 -2
  350. package/__internal__/src/icons/IconUnsort/IconUnsort.d.ts +1 -2
  351. package/__internal__/src/icons/IconUnsortCenter/IconUnsortCenter.d.ts +1 -2
  352. package/__internal__/src/icons/IconUpload/IconUpload.d.ts +1 -2
  353. package/__internal__/src/icons/IconUser/IconUser.d.ts +1 -2
  354. package/__internal__/src/icons/IconVZD/IconVZD.d.ts +1 -2
  355. package/__internal__/src/icons/IconVideo/IconVideo.d.ts +1 -2
  356. package/__internal__/src/icons/IconWarning/IconWarning.d.ts +1 -2
  357. package/__internal__/src/icons/IconWatch/IconWatch.d.ts +1 -2
  358. package/__internal__/src/icons/IconWellOpen/IconWellOpen.d.ts +1 -2
  359. package/__internal__/src/icons/IconWellPipe/IconWellPipe.d.ts +1 -2
  360. package/__internal__/src/icons/IconWideScreen/IconWideScreen.d.ts +1 -2
  361. package/__internal__/src/icons/IconWorldFilled/IconWorldFilled.d.ts +1 -2
  362. package/__internal__/src/icons/IconWorldStroked/IconWorldStroked.d.ts +1 -2
  363. package/__internal__/src/icons/IconWrench/IconWrench.d.ts +1 -2
  364. package/__internal__/src/icons/IconYandexDzen/IconYandexDzen.d.ts +1 -2
  365. package/__internal__/src/icons/IconYoutube/IconYoutube.d.ts +1 -2
  366. package/__internal__/src/icons/createIcon/createIcon.d.ts +1 -2
  367. package/__internal__/src/icons/createIcon/createIcon.js +1 -1
  368. package/__internal__/src/icons/createIcon/createIcon.js.map +1 -1
  369. package/__internal__/src/utils/fabricIndex.js +1 -1
  370. package/__internal__/src/utils/fabricIndex.js.map +1 -1
  371. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/ComboboxCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/ComboboxCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/SelectCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/SelectCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/UserSelectCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/UserSelectCanary";
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["items","groups","disabled","getItemLabel","getItemKey","isLoading","getItemGroupKey","getGroupKey","getGroupLabel","onBlur","inputRef","onFocus","dropdownRef","dropdownClassName","dropdownForm","value","form","view","size","onChange","inputContainerRef","style","renderItem","searchFunction","id","name","className"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React,{useRef}from"react";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem/SelectItem";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{TextField}from"../TextField/TextField";import{useForkRef}from"../../hooks/useForkRef";import{cnCanary}from"../../utils/bem";import{withDefaultGetters}from"./helpers";import{useAutoComplete}from"./useAutoComplete";var cnAutoComplete=cnCanary("AutoComplete"),AutoCompleteRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=withDefaultGetters(a),g=f.items,h=f.groups,i=void 0===h?[]:h,j=f.disabled,k=f.getItemLabel,l=f.getItemKey,m=f.isLoading,n=f.getItemGroupKey,o=f.getGroupKey,p=f.getGroupLabel,q=f.onBlur,r=f.inputRef,s=f.onFocus,t=f.dropdownRef,u=void 0===t?c:t,v=f.dropdownClassName,w=f.dropdownForm,x=void 0===w?"default":w,y=f.value,z=f.form,A=void 0===z?defaultPropForm:z,B=f.view,C=void 0===B?defaultPropView:B,D=f.size,E=void 0===D?defaultPropSize:D,F=f.onChange,G=f.inputContainerRef,H=f.style,I=f.renderItem,J=f.searchFunction,K=f.id,L=f.name,M=f.className,N=_objectWithoutProperties(f,_excluded),O=function(a){var b=a.e,c=a.value,d=_objectSpread({},b),e=c?k(c):c;null===F||void 0===F?void 0:F({e:d,value:e,id:K,name:L})},P=useAutoComplete({items:g,groups:i,onChange:function(a){var b=a.e,c=a.value;return O({e:b,value:Array.isArray(c)?c[0]:c})},dropdownRef:u,controlRef:d,disabled:j,searchValue:null!==y&&void 0!==y?y:"",getItemLabel:k,getItemKey:l,getItemGroupKey:n,getGroupKey:o,onBlur:q,onFocus:s,searchFunction:J}),Q=P.getOptionProps,R=P.isOpen,S=P.getKeyProps,T=P.visibleItems,U=P.handleInputFocus,V=P.handleInputBlur,W=P.inputRef;return React.createElement(React.Fragment,null,React.createElement(TextField,Object.assign({},S(),{form:A,view:C,id:K,className:cnAutoComplete(null,[M]),name:L,disabled:j,ref:useForkRef([d,b]),inputRef:useForkRef([r,W]),onBlur:V,inputContainerRef:useForkRef([e,G]),onFocus:U,onChange:F,value:y,style:H,size:E},N)),React.createElement(SelectDropdown,{isOpen:R,size:E,controlRef:e,getOptionProps:Q,dropdownRef:u,form:x,className:cnAutoComplete("List",[v]),renderItem:I||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter;return React.createElement(SelectItem,{label:k(b),active:c,hovered:d,multiple:!1,disabled:j,size:E,indent:"round"===x?"increased":"normal",onClick:e,onMouseEnter:f})},getGroupLabel:p,visibleItems:T,isLoading:m,hasItems:0!==g.length,style:"number"==typeof(null===H||void 0===H?void 0:H.zIndex)?{zIndex:H.zIndex+1}:void 0}))};export var AutoComplete=React.forwardRef(AutoCompleteRender);export*from"./types";
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["items","groups","disabled","getItemLabel","getItemKey","isLoading","getItemGroupKey","getGroupKey","getGroupLabel","onBlur","inputRef","onFocus","dropdownRef","dropdownClassName","dropdownForm","value","form","view","size","onChange","inputContainerRef","style","renderItem","searchFunction","id","name","className","virtualScroll","onScrollToBottom","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React,{useCallback,useRef}from"react";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{SelectDropdown}from"../SelectComponentsCanary/SelectDropdown";import{SelectItem}from"../SelectComponentsCanary/SelectItem";import{TextField}from"../TextField/TextField";import{useForkRef}from"../../hooks/useForkRef";import{useMutableRef}from"../../hooks/useMutableRef";import{cnCanary}from"../../utils/bem";import{withDefaultGetters}from"./helpers";import{useAutoComplete}from"./useAutoComplete";var cnAutoComplete=cnCanary("AutoComplete"),AutoCompleteRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=withDefaultGetters(a),g=f.items,h=f.groups,i=void 0===h?[]:h,j=f.disabled,k=f.getItemLabel,l=f.getItemKey,m=f.isLoading,n=f.getItemGroupKey,o=f.getGroupKey,p=f.getGroupLabel,q=f.onBlur,r=f.inputRef,s=f.onFocus,t=f.dropdownRef,u=void 0===t?c:t,v=f.dropdownClassName,w=f.dropdownForm,x=void 0===w?"default":w,y=f.value,z=f.form,A=void 0===z?defaultPropForm:z,B=f.view,C=void 0===B?defaultPropView:B,D=f.size,E=void 0===D?defaultPropSize:D,F=f.onChange,G=f.inputContainerRef,H=f.style,I=f.renderItem,J=f.searchFunction,K=f.id,L=f.name,M=f.className,N=f.virtualScroll,O=f.onScrollToBottom,P=f.onDropdownOpen,Q=f.dropdownOpen,R=f.ignoreOutsideClicksRefs,S=_objectWithoutProperties(f,_excluded),T=useMutableRef(F),U=useCallback(function(a){var b,c=a.e,d=a.value,e=_objectSpread({},c),f=d?k(d):d;null===(b=T.current)||void 0===b?void 0:b.call(T,f,{e:e,id:null===K||void 0===K?void 0:K.toString(),name:L})},[K,L]),V=useCallback(function(a){var b,c=a.value,d=a.id,f=a.name,g=a.e;null===(b=T.current)||void 0===b?void 0:b.call(T,c,{id:null===d||void 0===d?void 0:d.toString(),name:f,e:g})},[]),W=useAutoComplete({items:g,groups:i,onChange:U,dropdownRef:u,controlRef:d,disabled:j,searchValue:null!==y&&void 0!==y?y:"",getItemLabel:k,getItemKey:l,getItemGroupKey:n,getGroupKey:o,onBlur:q,onFocus:s,searchFunction:J,isLoading:m,onDropdownOpen:P,dropdownOpen:Q,ignoreOutsideClicksRefs:R}),X=W.getOptionProps,Y=W.isOpen,Z=W.getKeyProps,$=W.visibleItems,_=W.handleInputFocus,aa=W.handleInputBlur,ba=W.inputRef,ca=W.optionsRefs;return React.createElement(React.Fragment,null,React.createElement(TextField,Object.assign({},Z(),{form:A,view:C,id:K,className:cnAutoComplete(null,[M]),name:L,disabled:j,ref:useForkRef([d,b]),inputRef:useForkRef([r,ba]),onBlur:aa,inputContainerRef:useForkRef([e,G]),onClick:_,onChange:V,value:y,style:H,size:E,width:"full"},S)),React.createElement(SelectDropdown,{isOpen:Y,size:E,controlRef:e,getOptionProps:X,dropdownRef:u,form:x,className:cnAutoComplete("List",[v]),renderItem:I||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter,g=a.ref;return React.createElement(SelectItem,{label:k(b),active:c,hovered:d,multiple:!1,disabled:j,size:E,indent:"round"===x?"increased":"normal",onClick:e,onMouseEnter:f,ref:g})},getGroupLabel:p,visibleItems:$,isLoading:m,hasItems:0!==g.length,itemsRefs:ca,virtualScroll:!0,style:"number"==typeof(null===H||void 0===H?void 0:H.zIndex)?{zIndex:H.zIndex+1}:void 0,onScrollToBottom:O}))};export var AutoComplete=React.forwardRef(AutoCompleteRender);export*from"./types";
2
2
  //# sourceMappingURL=AutoCompleteCanary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCompleteCanary.js","names":["React","useRef","SelectDropdown","SelectItem","defaultPropForm","defaultPropSize","defaultPropView","TextField","useForkRef","cnCanary","withDefaultGetters","useAutoComplete","cnAutoComplete","AutoCompleteRender","props","ref","defaultDropdownRef","controlRef","containerRef","items","groups","disabled","getItemLabel","getItemKey","isLoading","getItemGroupKey","getGroupKey","getGroupLabel","onBlur","inputRef","onFocus","dropdownRef","dropdownClassName","dropdownForm","value","form","view","size","onChange","inputContainerRef","style","renderItem","searchFunction","id","name","className","otherProps","handleSelectChange","e","copyEvent","newValue","Array","isArray","searchValue","getOptionProps","isOpen","getKeyProps","visibleItems","handleInputFocus","handleInputBlur","inputControlRef","renderItemDefault","item","active","hovered","onClick","onMouseEnter","length","zIndex","AutoComplete","forwardRef"],"sources":["../../../../../src/components/AutoCompleteCanary/AutoCompleteCanary.tsx"],"sourcesContent":["import React, { useRef } from 'react';\n\nimport { PropRenderItem } from '##/components/Select';\nimport { SelectDropdown } from '##/components/SelectComponents/SelectDropdown/SelectDropdown';\nimport { SelectItem } from '##/components/SelectComponents/SelectItem/SelectItem';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponents/types';\nimport { TextField } from '##/components/TextField/TextField';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnCanary } from '##/utils/bem';\n\nimport { withDefaultGetters } from './helpers';\nimport {\n AutoCompleteComponent,\n AutoCompleteGroupDefault,\n AutoCompleteItemDefault,\n AutoCompleteProps,\n} from './types';\nimport { useAutoComplete } from './useAutoComplete';\n\nconst cnAutoComplete = cnCanary('AutoComplete');\n\nconst AutoCompleteRender = <\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n>(\n props: AutoCompleteProps<TYPE, ITEM, GROUP>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const {\n items,\n groups = [],\n disabled,\n getItemLabel,\n getItemKey,\n isLoading,\n getItemGroupKey,\n getGroupKey,\n getGroupLabel,\n onBlur,\n inputRef,\n onFocus,\n dropdownRef = defaultDropdownRef,\n dropdownClassName,\n dropdownForm = 'default',\n value,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n onChange,\n inputContainerRef,\n style,\n renderItem,\n searchFunction,\n id,\n name,\n className,\n ...otherProps\n } = withDefaultGetters(props);\n\n const handleSelectChange = ({\n e,\n value,\n }: {\n value: ITEM | null;\n e: React.SyntheticEvent;\n }) => {\n const copyEvent = { ...e } as React.KeyboardEvent;\n const newValue = (value ? getItemLabel(value) : value) as string;\n onChange?.({ e: copyEvent, value: newValue, id, name });\n };\n\n const {\n getOptionProps,\n isOpen,\n getKeyProps,\n visibleItems,\n handleInputFocus,\n handleInputBlur,\n inputRef: inputControlRef,\n } = useAutoComplete({\n items,\n groups,\n onChange: ({ e, value }) =>\n handleSelectChange({ e, value: Array.isArray(value) ? value[0] : value }),\n dropdownRef,\n controlRef,\n disabled,\n searchValue: value ?? '',\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getGroupKey,\n onBlur,\n onFocus,\n searchFunction,\n });\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={false}\n disabled={disabled}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n />\n );\n };\n\n return (\n <>\n <TextField\n {...getKeyProps()}\n form={form}\n view={view}\n id={id}\n className={cnAutoComplete(null, [className])}\n name={name}\n disabled={disabled}\n ref={useForkRef([controlRef, ref])}\n inputRef={useForkRef([inputRef, inputControlRef])}\n onBlur={handleInputBlur}\n inputContainerRef={useForkRef([containerRef, inputContainerRef])}\n onFocus={handleInputFocus}\n onChange={onChange}\n value={value}\n style={style}\n size={size}\n {...otherProps}\n />\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={containerRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n className={cnAutoComplete('List', [dropdownClassName])}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n isLoading={isLoading}\n hasItems={items.length !== 0}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const AutoComplete = React.forwardRef(\n AutoCompleteRender,\n) as AutoCompleteComponent;\n\nexport * from './types';\n"],"mappings":"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"}
1
+ {"version":3,"file":"AutoCompleteCanary.js","names":["React","useCallback","useRef","defaultPropForm","defaultPropSize","defaultPropView","SelectDropdown","SelectItem","TextField","useForkRef","useMutableRef","cnCanary","withDefaultGetters","useAutoComplete","cnAutoComplete","AutoCompleteRender","props","ref","defaultDropdownRef","controlRef","containerRef","items","groups","disabled","getItemLabel","getItemKey","isLoading","getItemGroupKey","getGroupKey","getGroupLabel","onBlur","inputRef","onFocus","dropdownRef","dropdownClassName","dropdownForm","value","form","view","size","onChange","inputContainerRef","style","renderItem","searchFunction","id","name","className","virtualScroll","onScrollToBottom","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs","otherProps","onChangeRef","handleSelectChange","e","copyEvent","newValue","current","toString","handleInputChange","searchValue","getOptionProps","isOpen","getKeyProps","visibleItems","handleInputFocus","handleInputBlur","inputControlRef","optionsRefs","renderItemDefault","item","active","hovered","onClick","onMouseEnter","length","zIndex","AutoComplete","forwardRef"],"sources":["../../../../../src/components/AutoCompleteCanary/AutoCompleteCanary.tsx"],"sourcesContent":["import React, { useCallback, useRef } from 'react';\n\nimport { PropRenderItem } from '##/components/SelectCanary';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponents/types';\nimport { SelectDropdown } from '##/components/SelectComponentsCanary/SelectDropdown';\nimport { SelectItem } from '##/components/SelectComponentsCanary/SelectItem';\nimport {\n TextField,\n TextFieldPropOnChange,\n} from '##/components/TextField/TextField';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { cnCanary } from '##/utils/bem';\n\nimport { withDefaultGetters } from './helpers';\nimport {\n AutoCompleteComponent,\n AutoCompleteGroupDefault,\n AutoCompleteItemDefault,\n AutoCompleteProps,\n} from './types';\nimport { useAutoComplete } from './useAutoComplete';\n\nconst cnAutoComplete = cnCanary('AutoComplete');\n\nconst AutoCompleteRender = <\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n>(\n props: AutoCompleteProps<TYPE, ITEM, GROUP>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const {\n items,\n groups = [],\n disabled,\n getItemLabel,\n getItemKey,\n isLoading,\n getItemGroupKey,\n getGroupKey,\n getGroupLabel,\n onBlur,\n inputRef,\n onFocus,\n dropdownRef = defaultDropdownRef,\n dropdownClassName,\n dropdownForm = 'default',\n value,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n onChange,\n inputContainerRef,\n style,\n renderItem,\n searchFunction,\n id,\n name,\n className,\n virtualScroll,\n onScrollToBottom,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...otherProps\n } = withDefaultGetters(props);\n\n const onChangeRef = useMutableRef(onChange);\n\n const handleSelectChange = useCallback(\n ({ e, value }: { value: ITEM | null; e: React.SyntheticEvent }) => {\n const copyEvent = { ...e } as React.KeyboardEvent;\n const newValue = (value ? getItemLabel(value) : value) as string;\n onChangeRef.current?.(newValue, {\n e: copyEvent,\n id: id?.toString(),\n name,\n });\n },\n [id, name],\n );\n\n const handleInputChange: TextFieldPropOnChange = useCallback(\n ({ value, id, name, e }) => {\n onChangeRef.current?.(value, { id: id?.toString(), name, e });\n },\n [],\n );\n\n const {\n getOptionProps,\n isOpen,\n getKeyProps,\n visibleItems,\n handleInputFocus,\n handleInputBlur,\n inputRef: inputControlRef,\n optionsRefs,\n } = useAutoComplete({\n items,\n groups,\n onChange: handleSelectChange,\n dropdownRef,\n controlRef,\n disabled,\n searchValue: value ?? '',\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getGroupKey,\n onBlur,\n onFocus,\n searchFunction,\n isLoading,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={false}\n disabled={disabled}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n ref={ref}\n />\n );\n };\n\n return (\n <>\n <TextField\n {...getKeyProps()}\n form={form}\n view={view}\n id={id}\n className={cnAutoComplete(null, [className])}\n name={name}\n disabled={disabled}\n ref={useForkRef([controlRef, ref])}\n inputRef={useForkRef([inputRef, inputControlRef])}\n onBlur={handleInputBlur}\n inputContainerRef={useForkRef([containerRef, inputContainerRef])}\n onClick={handleInputFocus}\n onChange={handleInputChange}\n value={value}\n style={style}\n size={size}\n width=\"full\"\n {...otherProps}\n />\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={containerRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n className={cnAutoComplete('List', [dropdownClassName])}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n isLoading={isLoading}\n hasItems={items.length !== 0}\n itemsRefs={optionsRefs}\n virtualScroll\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n onScrollToBottom={onScrollToBottom}\n />\n </>\n );\n};\n\nexport const AutoComplete = React.forwardRef(\n AutoCompleteRender,\n) as AutoCompleteComponent;\n\nexport * from './types';\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare const defaultGetGroupLabel: AutoCompletePropGetGroupLabel<AutoCom
8
8
  export declare function withDefaultGetters<TYPE extends string, ITEM = AutoCompleteItemDefault, GROUP = AutoCompleteGroupDefault>(props: AutoCompleteProps<TYPE, ITEM, GROUP>): {
9
9
  items: ITEM[];
10
10
  groups?: GROUP[] | undefined;
11
- renderItem?: import("../Select").PropRenderItem<ITEM> | undefined;
11
+ renderItem?: import("../SelectCanary").PropRenderItem<ITEM> | undefined;
12
12
  dropdownClassName?: string | undefined;
13
13
  dropdownForm?: import("./types").AutoCompletePropDropdownForm | undefined;
14
14
  isLoading?: boolean | undefined;
@@ -19,7 +19,13 @@ export declare function withDefaultGetters<TYPE extends string, ITEM = AutoCompl
19
19
  getItemGroupKey?: AutoCompletePropGetItemGroupId<ITEM> | undefined;
20
20
  getGroupLabel?: AutoCompletePropGetGroupLabel<GROUP> | undefined;
21
21
  getGroupKey?: AutoCompletePropGetGroupId<GROUP> | undefined;
22
- } & Omit<import("../TextField").TextFieldProps<TYPE>, "step" | "max" | "min" | "incrementButtons"> & (ITEM extends {
22
+ onChange?: import("./types").AutoCompletePropOnChange | undefined;
23
+ virtualScroll?: boolean | undefined;
24
+ onScrollToBottom?: (() => void) | undefined;
25
+ onDropdownOpen?: ((isOpen: boolean) => void) | undefined;
26
+ dropdownOpen?: boolean | undefined;
27
+ ignoreOutsideClicksRefs?: readonly import("react").RefObject<HTMLElement>[] | undefined;
28
+ } & Omit<import("../TextField").TextFieldProps<TYPE>, "onChange" | "step" | "max" | "min" | "width" | "incrementButtons"> & (ITEM extends {
23
29
  label: string;
24
30
  } ? {} : {
25
31
  getItemLabel: AutoCompletePropGetItemLabel<ITEM>;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { PropRenderItem } from "../Select";
2
+ import { PropRenderItem } from "../SelectCanary";
3
3
  import { TextFieldProps } from "../TextField";
4
4
  export declare type AutoCompleteItemDefault = {
5
5
  id: string | number;
@@ -17,6 +17,11 @@ export declare type AutoCompletePropGetItemGroupId<ITEM> = (item: ITEM) => numbe
17
17
  export declare type AutoCompletePropGetGroupLabel<GROUP> = (group: GROUP) => string;
18
18
  export declare type AutoCompletePropGetGroupId<GROUP> = (group: GROUP) => number | string;
19
19
  export declare type AutoCompletePropSearchFunction<ITEM> = (item: ITEM, searchValue: string) => boolean;
20
+ export declare type AutoCompletePropOnChange = (value: string | null, props: {
21
+ e: React.ChangeEvent | React.MouseEvent | React.KeyboardEvent;
22
+ id?: string;
23
+ name?: string;
24
+ }) => void;
20
25
  export declare type AutoCompleteProps<TYPE extends string, ITEM = AutoCompleteItemDefault, GROUP = AutoCompleteGroupDefault> = {
21
26
  items: ITEM[];
22
27
  groups?: GROUP[];
@@ -31,7 +36,13 @@ export declare type AutoCompleteProps<TYPE extends string, ITEM = AutoCompleteIt
31
36
  getItemGroupKey?: AutoCompletePropGetItemGroupId<ITEM>;
32
37
  getGroupLabel?: AutoCompletePropGetGroupLabel<GROUP>;
33
38
  getGroupKey?: AutoCompletePropGetGroupId<GROUP>;
34
- } & Omit<TextFieldProps<TYPE>, 'max' | 'min' | 'step' | 'incrementButtons'> & (ITEM extends {
39
+ onChange?: AutoCompletePropOnChange;
40
+ virtualScroll?: boolean;
41
+ onScrollToBottom?: () => void;
42
+ onDropdownOpen?: (isOpen: boolean) => void;
43
+ dropdownOpen?: boolean;
44
+ ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;
45
+ } & Omit<TextFieldProps<TYPE>, 'max' | 'min' | 'step' | 'incrementButtons' | 'onChange' | 'width'> & (ITEM extends {
35
46
  label: AutoCompleteItemDefault['label'];
36
47
  } ? {} : {
37
48
  getItemLabel: AutoCompletePropGetItemLabel<ITEM>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/components/AutoCompleteCanary/types.ts"],"sourcesContent":["import React from 'react';\n\nimport { PropRenderItem } from '##/components/Select';\nimport { TextFieldProps } from '##/components/TextField';\n\nexport type AutoCompleteItemDefault = {\n id: string | number;\n label: string;\n groupId?: number;\n};\n\nexport type AutoCompleteGroupDefault = {\n label: string;\n id: number | string;\n};\n\nexport type AutoCompletePropDropdownForm = 'default' | 'brick' | 'round';\n\nexport type AutoCompletePropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type AutoCompletePropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type AutoCompletePropGetItemGroupId<ITEM> = (\n item: ITEM,\n) => number | undefined;\nexport type AutoCompletePropGetGroupLabel<GROUP> = (group: GROUP) => string;\nexport type AutoCompletePropGetGroupId<GROUP> = (\n group: GROUP,\n) => number | string;\n\nexport type AutoCompletePropSearchFunction<ITEM> = (\n item: ITEM,\n searchValue: string,\n) => boolean;\n\nexport type AutoCompleteProps<\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n> = {\n items: ITEM[];\n groups?: GROUP[];\n renderItem?: PropRenderItem<ITEM>;\n dropdownClassName?: string;\n dropdownForm?: AutoCompletePropDropdownForm;\n isLoading?: boolean;\n searchFunction?: AutoCompletePropSearchFunction<ITEM>;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n getItemLabel?: AutoCompletePropGetItemLabel<ITEM>;\n getItemKey?: AutoCompletePropGetItemKey<ITEM>;\n getItemGroupKey?: AutoCompletePropGetItemGroupId<ITEM>;\n getGroupLabel?: AutoCompletePropGetGroupLabel<GROUP>;\n getGroupKey?: AutoCompletePropGetGroupId<GROUP>;\n} & Omit<TextFieldProps<TYPE>, 'max' | 'min' | 'step' | 'incrementButtons'> &\n (ITEM extends { label: AutoCompleteItemDefault['label'] }\n ? {}\n : {\n getItemLabel: AutoCompletePropGetItemLabel<ITEM>;\n }) &\n (ITEM extends { id: AutoCompleteItemDefault['id'] }\n ? {}\n : { getItemKey: AutoCompletePropGetItemKey<ITEM> }) &\n (GROUP extends { label: AutoCompleteGroupDefault['label'] }\n ? {}\n : { getGroupLabel: AutoCompletePropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: AutoCompleteGroupDefault['id'] }\n ? {}\n : { getGroupKey: AutoCompletePropGetGroupId<GROUP> });\n\nexport type AutoCompleteComponent = <\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n>(\n props: AutoCompleteProps<TYPE, ITEM, GROUP>,\n) => React.ReactElement | null;\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/components/AutoCompleteCanary/types.ts"],"sourcesContent":["import React from 'react';\n\nimport { PropRenderItem } from '##/components/SelectCanary';\nimport { TextFieldProps } from '##/components/TextField';\n\nexport type AutoCompleteItemDefault = {\n id: string | number;\n label: string;\n groupId?: number;\n};\n\nexport type AutoCompleteGroupDefault = {\n label: string;\n id: number | string;\n};\n\nexport type AutoCompletePropDropdownForm = 'default' | 'brick' | 'round';\n\nexport type AutoCompletePropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type AutoCompletePropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type AutoCompletePropGetItemGroupId<ITEM> = (\n item: ITEM,\n) => number | undefined;\nexport type AutoCompletePropGetGroupLabel<GROUP> = (group: GROUP) => string;\nexport type AutoCompletePropGetGroupId<GROUP> = (\n group: GROUP,\n) => number | string;\n\nexport type AutoCompletePropSearchFunction<ITEM> = (\n item: ITEM,\n searchValue: string,\n) => boolean;\n\nexport type AutoCompletePropOnChange = (\n value: string | null,\n props: {\n e: React.ChangeEvent | React.MouseEvent | React.KeyboardEvent;\n id?: string;\n name?: string;\n },\n) => void;\n\nexport type AutoCompleteProps<\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n> = {\n items: ITEM[];\n groups?: GROUP[];\n renderItem?: PropRenderItem<ITEM>;\n dropdownClassName?: string;\n dropdownForm?: AutoCompletePropDropdownForm;\n isLoading?: boolean;\n searchFunction?: AutoCompletePropSearchFunction<ITEM>;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n getItemLabel?: AutoCompletePropGetItemLabel<ITEM>;\n getItemKey?: AutoCompletePropGetItemKey<ITEM>;\n getItemGroupKey?: AutoCompletePropGetItemGroupId<ITEM>;\n getGroupLabel?: AutoCompletePropGetGroupLabel<GROUP>;\n getGroupKey?: AutoCompletePropGetGroupId<GROUP>;\n onChange?: AutoCompletePropOnChange;\n virtualScroll?: boolean;\n onScrollToBottom?: () => void;\n onDropdownOpen?: (isOpen: boolean) => void;\n dropdownOpen?: boolean;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n} & Omit<\n TextFieldProps<TYPE>,\n 'max' | 'min' | 'step' | 'incrementButtons' | 'onChange' | 'width'\n> &\n (ITEM extends { label: AutoCompleteItemDefault['label'] }\n ? {}\n : {\n getItemLabel: AutoCompletePropGetItemLabel<ITEM>;\n }) &\n (ITEM extends { id: AutoCompleteItemDefault['id'] }\n ? {}\n : { getItemKey: AutoCompletePropGetItemKey<ITEM> }) &\n (GROUP extends { label: AutoCompleteGroupDefault['label'] }\n ? {}\n : { getGroupLabel: AutoCompletePropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: AutoCompleteGroupDefault['id'] }\n ? {}\n : { getGroupKey: AutoCompletePropGetGroupId<GROUP> });\n\nexport type AutoCompleteComponent = <\n TYPE extends string,\n ITEM = AutoCompleteItemDefault,\n GROUP = AutoCompleteGroupDefault,\n>(\n props: AutoCompleteProps<TYPE, ITEM, GROUP>,\n) => React.ReactElement | null;\n"],"mappings":""}
@@ -20,10 +20,15 @@ declare type UseAutoCompleteProps<ITEM, GROUP> = {
20
20
  onBlur?: React.FocusEventHandler<HTMLInputElement>;
21
21
  searchValue?: string;
22
22
  onChange: OnChangeProp<ITEM>;
23
+ isLoading?: boolean;
24
+ dropdownOpen?: boolean;
25
+ onDropdownOpen?: (isOpen: boolean) => void;
26
+ ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;
23
27
  };
24
28
  declare type OptionProps<ITEM> = {
25
29
  index: number;
26
30
  item: ITEM;
31
+ keyPrefix: number;
27
32
  };
28
33
  declare type GetOptionPropsResult = {
29
34
  onClick: (e: React.SyntheticEvent) => void;
@@ -41,5 +46,6 @@ export declare function useAutoComplete<ITEM, GROUP>(params: UseAutoCompleteProp
41
46
  inputRef: React.RefObject<HTMLInputElement>;
42
47
  getKeyProps: (rest?: import("../../hooks/useKeys").KeyProps | undefined) => import("../../hooks/useKeys").KeyProps;
43
48
  hasItems: boolean;
49
+ optionsRefs: React.RefObject<HTMLDivElement>[];
44
50
  };
45
51
  export {};
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){throw a}),f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){h=!0,f=a}),f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{useClickOutside}from"../../hooks/useClickOutside";import{useFlag}from"../../hooks/useFlag";import{useKeys}from"../../hooks/useKeys";import{getGroups}from"../../utils/getGroups";export function useAutoComplete(a){var b=a.items,c=a.dropdownRef,d=a.controlRef,e=a.disabled,f=void 0!==e&&e,g=a.getItemLabel,h=a.getItemKey,i=a.searchFunction,j=a.getItemGroupKey,k=a.groups,l=a.getGroupKey,m=a.onFocus,n=a.onBlur,o=a.searchValue,p=useRef(null),q=useFlag(),r=_slicedToArray(q,2),s=r[0],t=r[1],u=useState(0),v=_slicedToArray(u,2),w=v[0],x=v[1],y=function(a,b){return!!b&&-1!==g(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},z=useMemo(function(){return b.filter(function(a){return i?i(a,o||""):y(a,o||"")})},[o,b]),A=useMemo(function(){var a=getGroups(z,null!==k&&void 0!==k&&k.length?j:void 0,k,l,void 0);return a},[z,k,j,l]),B=useMemo(function(){return!!A.find(function(a){return 0<a.items.length})},[A]),C=useCallback(function(a){x(Math.min(Math.max(0,"function"==typeof a?a(w):a),z.length-1))},[z,w]),D=function(b,c){f||a.onChange({value:c,e:b})},E=function(a,b){b.preventDefault(),C(function(a){return a-1})},F=function(a,b){b.preventDefault(),C(function(a){return a+1})},G=useKeys({ArrowUp:E,ArrowDown:F,PageUp:E,PageDown:F,Home:E,End:F,Enter:function Enter(a,b){if(s){(o||z[w])&&b.preventDefault();var c=function(a){var b,c=0,d=_createForOfIteratorHelper(A);try{for(d.s();!(b=d.n()).done;){var e=b.value;if(e.items.length+c>a)return e.items[a-c];c+=e.items.length}}catch(a){d.e(a)}finally{d.f()}},d=c(w);d&&D(b,d)}},Escape:function Escape(){t.off()},Tab:function Tab(){t.off()}});useClickOutside({isActive:s,ignoreClicksInsideRefs:[c,d],handler:t.off}),useEffect(function(){if(f){var a;t.off(),null===(a=p.current)||void 0===a?void 0:a.blur()}},[f]);return{isOpen:!!(s&&B),visibleItems:A,getOptionProps:function getOptionProps(a){var b=a.index,c=a.item,d=h(c);return{onClick:function onClick(a){D(a,c)},onMouseEnter:function onMouseEnter(){C(b)},active:!1,hovered:b===w,key:d}},handleInputFocus:function handleInputFocus(a){f||(!s&&t.on(),"function"==typeof m&&m(a))},handleInputBlur:function handleInputBlur(a){if(s){var b;return void(null===(b=p.current)||void 0===b?void 0:b.focus())}"function"==typeof n&&n(a)},inputRef:p,getKeyProps:G,hasItems:B}}
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){throw a}),f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){h=!0,f=a}),f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{scrollToIndex}from"../SelectComponentsCanary/useSelect/helpers";import{useClickOutside}from"../../hooks/useClickOutside";import{useFlag}from"../../hooks/useFlag";import{useKeys}from"../../hooks/useKeys";import{useRefs}from"../../hooks/useRefs";import{getGroups}from"../../utils/getGroups";export function useAutoComplete(a){var b=a.items,c=a.dropdownRef,d=a.controlRef,e=a.disabled,f=void 0!==e&&e,g=a.getItemLabel,h=a.getItemKey,i=a.searchFunction,j=a.getItemGroupKey,k=a.groups,l=a.getGroupKey,m=a.onFocus,n=a.onBlur,o=a.searchValue,p=a.isLoading,q=a.dropdownOpen,r=a.onDropdownOpen,s=a.ignoreOutsideClicksRefs,t=useRef(null),u=useFlag(),v=_slicedToArray(u,2),w=v[0],x=v[1],y=useState(0),z=_slicedToArray(y,2),A=z[0],B=z[1],C=function(a,b){return!!b&&-1!==g(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},D=useMemo(function(){return b.filter(function(a){return i?i(a,o||""):C(a,o||"")})},[o,b]),E=useMemo(function(){var a=getGroups(D,null!==k&&void 0!==k&&k.length?j:void 0,k,l,void 0);return a},[D,k,j,l]),F=useMemo(function(){return!!E.find(function(a){return 0<a.items.length})},[E]),G=useCallback(function(a){B(Math.min(Math.max(0,"function"==typeof a?a(A):a),D.length-1))},[D,A]),H=function(b,c){f||a.onChange({value:c,e:b})},I=function(a,b){f||(b.preventDefault(),x.on(),G(function(a){return a-1}))},J=function(a,b){f||(b.preventDefault(),x.on(),G(function(a){return a+1}))},K=useKeys({ArrowUp:I,ArrowDown:J,PageUp:I,PageDown:J,Home:I,End:J,Enter:function Enter(a,b){if(w){(o||D[A])&&b.preventDefault();var c=function(a){var b,c=0,d=_createForOfIteratorHelper(E);try{for(d.s();!(b=d.n()).done;){var e=b.value;if(e.items.length+c>a)return e.items[a-c];c+=e.items.length}}catch(a){d.e(a)}finally{d.f()}},d=c(A);d&&H(b,d)}else x.on()},Escape:function Escape(){x.off()},Tab:function Tab(a,b){w&&(b.preventDefault(),x.off())}}),L=useRefs(D.length,[w]);return useClickOutside({isActive:w,ignoreClicksInsideRefs:[c,d].concat(_toConsumableArray(s||[])),handler:x.off}),useEffect(function(){if(f){var a;x.off(),null===(a=t.current)||void 0===a?void 0:a.blur()}},[f]),useEffect(function(){0<D.length&&scrollToIndex(A,c,L,function(){return G(0)}),x.on()},[A]),useEffect(function(){null===r||void 0===r?void 0:r(w)},[w]),useEffect(function(){x.set(q||!1)},[q]),useEffect(function(){o&&x.on()},[o]),{isOpen:!!(w&&(!!p||F)),visibleItems:E,getOptionProps:function getOptionProps(a){var b=a.index,c=a.item,d=h(c);return{onClick:function onClick(a){H(a,c)},onMouseEnter:function onMouseEnter(){G(b)},active:!1,hovered:b===A,key:d}},handleInputFocus:function handleInputFocus(a){f||(x.toggle(),"function"==typeof m&&m(a))},handleInputBlur:function handleInputBlur(a){if(w){var b;return void(null===(b=t.current)||void 0===b?void 0:b.focus())}"function"==typeof n&&n(a)},inputRef:t,getKeyProps:K,hasItems:F,optionsRefs:L}}
2
2
  //# sourceMappingURL=useAutoComplete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAutoComplete.js","names":["useCallback","useEffect","useMemo","useRef","useState","useClickOutside","useFlag","useKeys","getGroups","useAutoComplete","params","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","getGroupKey","onFocus","onBlur","searchValue","inputRef","isOpen","setIsOpen","highlightedIndex","setHighlightedIndex","searchFunctionDefault","item","toLocaleLowerCase","indexOf","filteredOptions","filter","visibleItems","resultGroups","length","hasItems","find","group","highlightIndex","indexForHighlight","Math","min","max","onChange","e","value","ArrowUp","_","preventDefault","old","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getItem","index","couter","Escape","off","Tab","isActive","ignoreClicksInsideRefs","handler","current","blur","getOptionProps","key","onClick","onMouseEnter","active","hovered","handleInputFocus","on","handleInputBlur","focus"],"sources":["../../../../../src/components/AutoCompleteCanary/useAutoComplete.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useFlag } from '##/hooks/useFlag';\nimport { KeyHandler, useKeys } from '##/hooks/useKeys';\nimport { getGroups } from '##/utils/getGroups';\n\ntype IndexForHighlight = number | ((oldIndex: number) => number);\n\ntype GetItemGroupKey<ITEM> = (item: ITEM) => string | number | undefined;\ntype GetGroupKey<GROUP> = (item: GROUP) => string | number | undefined;\n\ntype OnChangeProp<ITEM> = (props: {\n value: ITEM | null;\n e: React.SyntheticEvent;\n}) => void;\n\ntype UseAutoCompleteProps<ITEM, GROUP> = {\n getItemGroupKey?: GetItemGroupKey<ITEM> | undefined;\n getGroupKey?: GetGroupKey<GROUP>;\n groups?: GROUP[];\n items: ITEM[];\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n disabled?: boolean;\n getItemLabel: (item: ITEM) => string;\n getItemKey: (item: ITEM) => string | number;\n searchFunction?: (item: ITEM, searchValue: string) => boolean;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n searchValue?: string;\n onChange: OnChangeProp<ITEM>;\n};\n\ntype OptionProps<ITEM> = {\n index: number;\n item: ITEM;\n};\n\ntype GetOptionPropsResult = {\n onClick: (e: React.SyntheticEvent) => void;\n onMouseEnter: (e: React.SyntheticEvent) => void;\n active: boolean;\n hovered: boolean;\n key: string | number;\n};\n\nexport function useAutoComplete<ITEM, GROUP>(\n params: UseAutoCompleteProps<ITEM, GROUP>,\n) {\n const {\n items,\n dropdownRef,\n controlRef,\n disabled = false,\n getItemLabel,\n getItemKey,\n searchFunction,\n getItemGroupKey,\n groups,\n getGroupKey,\n onFocus,\n onBlur,\n searchValue,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [isOpen, setIsOpen] = useFlag();\n const [highlightedIndex, setHighlightedIndex] = useState<number>(0);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) => {\n if (!searchValue) {\n return false;\n }\n return (\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1\n );\n };\n\n const filteredOptions = useMemo(\n () =>\n items.filter((item) =>\n searchFunction\n ? searchFunction(item, searchValue || '')\n : searchFunctionDefault(item, searchValue || ''),\n ),\n [searchValue, items],\n );\n\n const visibleItems = useMemo(() => {\n const resultGroups = getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n undefined,\n );\n\n return resultGroups;\n }, [filteredOptions, groups, getItemGroupKey, getGroupKey]);\n\n const hasItems = useMemo(() => {\n return !!visibleItems.find((group) => group.items.length > 0);\n }, [visibleItems]);\n\n const highlightIndex = useCallback(\n (indexForHighlight: IndexForHighlight) => {\n setHighlightedIndex(\n Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(highlightedIndex)\n : indexForHighlight,\n ),\n filteredOptions.length - 1,\n ),\n );\n },\n [filteredOptions, highlightedIndex],\n );\n\n const onChange = (e: React.SyntheticEvent, item: ITEM) => {\n if (!disabled) {\n params.onChange({ value: item, e });\n }\n };\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n e.preventDefault();\n highlightIndex((old) => old - 1);\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n e.preventDefault();\n highlightIndex((old) => old + 1);\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const getItem = (index: number) => {\n let couter = 0;\n for (const group of visibleItems) {\n if (group.items.length + couter > index) {\n return group.items[index - couter];\n }\n couter += group.items.length;\n }\n return undefined;\n };\n\n const item = getItem(highlightedIndex);\n\n if (item) {\n onChange(e, item);\n }\n }\n };\n\n const Escape = (): void => {\n setIsOpen.off();\n };\n\n const Tab = (): void => {\n setIsOpen.off();\n };\n\n const getKeyProps = useKeys({\n ArrowUp,\n ArrowDown,\n PageUp: ArrowUp,\n PageDown: ArrowDown,\n Home: ArrowUp,\n End: ArrowDown,\n Enter,\n Escape,\n Tab,\n });\n\n const getOptionProps = ({\n index,\n item,\n }: OptionProps<ITEM>): GetOptionPropsResult => {\n const key = getItemKey(item);\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChange(e, item);\n },\n onMouseEnter: () => {\n highlightIndex(index);\n },\n active: false,\n hovered: index === highlightedIndex,\n key,\n };\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [dropdownRef, controlRef],\n handler: setIsOpen.off,\n });\n\n useEffect(() => {\n if (disabled) {\n setIsOpen.off();\n inputRef.current?.blur();\n }\n }, [disabled]);\n\n const handleInputFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (!disabled) {\n if (!isOpen) {\n setIsOpen.on();\n }\n if (typeof onFocus === 'function') {\n onFocus(e);\n }\n }\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (isOpen) {\n inputRef.current?.focus();\n return;\n }\n\n if (typeof onBlur === 'function') {\n onBlur(e);\n }\n };\n\n return {\n isOpen: Boolean(isOpen && hasItems),\n visibleItems,\n getOptionProps,\n handleInputFocus,\n handleInputBlur,\n inputRef,\n getKeyProps,\n hasItems,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useAutoComplete.js","names":["useCallback","useEffect","useMemo","useRef","useState","scrollToIndex","useClickOutside","useFlag","useKeys","useRefs","getGroups","useAutoComplete","params","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","getGroupKey","onFocus","onBlur","searchValue","isLoading","dropdownOpen","onDropdownOpen","ignoreOutsideClicksRefs","inputRef","isOpen","setIsOpen","highlightedIndex","setHighlightedIndex","searchFunctionDefault","item","toLocaleLowerCase","indexOf","filteredOptions","filter","visibleItems","resultGroups","length","hasItems","find","group","highlightIndex","indexForHighlight","Math","min","max","onChange","e","value","ArrowUp","_","preventDefault","on","old","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getItem","index","couter","Escape","off","Tab","optionsRefs","isActive","ignoreClicksInsideRefs","handler","current","blur","set","getOptionProps","key","onClick","onMouseEnter","active","hovered","handleInputFocus","toggle","handleInputBlur","focus"],"sources":["../../../../../src/components/AutoCompleteCanary/useAutoComplete.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { scrollToIndex } from '##/components/SelectComponentsCanary/useSelect/helpers';\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useFlag } from '##/hooks/useFlag';\nimport { KeyHandler, useKeys } from '##/hooks/useKeys';\nimport { useRefs } from '##/hooks/useRefs';\nimport { getGroups } from '##/utils/getGroups';\n\ntype IndexForHighlight = number | ((oldIndex: number) => number);\n\ntype GetItemGroupKey<ITEM> = (item: ITEM) => string | number | undefined;\ntype GetGroupKey<GROUP> = (item: GROUP) => string | number | undefined;\n\ntype OnChangeProp<ITEM> = (props: {\n value: ITEM | null;\n e: React.SyntheticEvent;\n}) => void;\n\ntype UseAutoCompleteProps<ITEM, GROUP> = {\n getItemGroupKey?: GetItemGroupKey<ITEM> | undefined;\n getGroupKey?: GetGroupKey<GROUP>;\n groups?: GROUP[];\n items: ITEM[];\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n disabled?: boolean;\n getItemLabel: (item: ITEM) => string;\n getItemKey: (item: ITEM) => string | number;\n searchFunction?: (item: ITEM, searchValue: string) => boolean;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n searchValue?: string;\n onChange: OnChangeProp<ITEM>;\n isLoading?: boolean;\n dropdownOpen?: boolean;\n onDropdownOpen?: (isOpen: boolean) => void;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n};\n\ntype OptionProps<ITEM> = {\n index: number;\n item: ITEM;\n keyPrefix: number;\n};\n\ntype GetOptionPropsResult = {\n onClick: (e: React.SyntheticEvent) => void;\n onMouseEnter: (e: React.SyntheticEvent) => void;\n active: boolean;\n hovered: boolean;\n key: string | number;\n};\n\nexport function useAutoComplete<ITEM, GROUP>(\n params: UseAutoCompleteProps<ITEM, GROUP>,\n) {\n const {\n items,\n dropdownRef,\n controlRef,\n disabled = false,\n getItemLabel,\n getItemKey,\n searchFunction,\n getItemGroupKey,\n groups,\n getGroupKey,\n onFocus,\n onBlur,\n searchValue,\n isLoading,\n dropdownOpen,\n onDropdownOpen,\n ignoreOutsideClicksRefs,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [isOpen, setIsOpen] = useFlag();\n const [highlightedIndex, setHighlightedIndex] = useState<number>(0);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) => {\n if (!searchValue) {\n return false;\n }\n return (\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1\n );\n };\n\n const filteredOptions = useMemo(\n () =>\n items.filter((item) =>\n searchFunction\n ? searchFunction(item, searchValue || '')\n : searchFunctionDefault(item, searchValue || ''),\n ),\n [searchValue, items],\n );\n\n const visibleItems = useMemo(() => {\n const resultGroups = getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n undefined,\n );\n\n return resultGroups;\n }, [filteredOptions, groups, getItemGroupKey, getGroupKey]);\n\n const hasItems = useMemo(() => {\n return !!visibleItems.find((group) => group.items.length > 0);\n }, [visibleItems]);\n\n const highlightIndex = useCallback(\n (indexForHighlight: IndexForHighlight) => {\n setHighlightedIndex(\n Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(highlightedIndex)\n : indexForHighlight,\n ),\n filteredOptions.length - 1,\n ),\n );\n },\n [filteredOptions, highlightedIndex],\n );\n\n const onChange = (e: React.SyntheticEvent, item: ITEM) => {\n if (!disabled) {\n params.onChange({ value: item, e });\n }\n };\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n if (!disabled) {\n e.preventDefault();\n setIsOpen.on();\n highlightIndex((old) => old - 1);\n }\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n if (!disabled) {\n e.preventDefault();\n setIsOpen.on();\n highlightIndex((old) => old + 1);\n }\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const getItem = (index: number) => {\n let couter = 0;\n for (const group of visibleItems) {\n if (group.items.length + couter > index) {\n return group.items[index - couter];\n }\n couter += group.items.length;\n }\n return undefined;\n };\n\n const item = getItem(highlightedIndex);\n\n if (item) {\n onChange(e, item);\n }\n } else {\n setIsOpen.on();\n }\n };\n\n const Escape: KeyHandler = (): void => {\n setIsOpen.off();\n };\n\n const Tab: KeyHandler = (_, e): void => {\n if (isOpen) {\n e.preventDefault();\n setIsOpen.off();\n }\n };\n\n const getKeyProps = useKeys({\n ArrowUp,\n ArrowDown,\n PageUp: ArrowUp,\n PageDown: ArrowDown,\n Home: ArrowUp,\n End: ArrowDown,\n Enter,\n Escape,\n Tab,\n });\n\n const getOptionProps = ({\n index,\n item,\n }: OptionProps<ITEM>): GetOptionPropsResult => {\n const key = getItemKey(item);\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChange(e, item);\n },\n onMouseEnter: () => {\n highlightIndex(index);\n },\n active: false,\n hovered: index === highlightedIndex,\n key,\n };\n };\n\n const optionsRefs = useRefs<HTMLDivElement>(filteredOptions.length, [isOpen]);\n\n const handleInputFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (!disabled) {\n setIsOpen.toggle();\n\n if (typeof onFocus === 'function') {\n onFocus(e);\n }\n }\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (isOpen) {\n inputRef.current?.focus();\n return;\n }\n\n if (typeof onBlur === 'function') {\n onBlur(e);\n }\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [\n dropdownRef,\n controlRef,\n ...(ignoreOutsideClicksRefs || []),\n ],\n handler: setIsOpen.off,\n });\n\n useEffect(() => {\n if (disabled) {\n setIsOpen.off();\n inputRef.current?.blur();\n }\n }, [disabled]);\n\n useEffect(() => {\n if (filteredOptions.length > 0) {\n scrollToIndex(highlightedIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0),\n );\n }\n setIsOpen.on();\n }, [highlightedIndex]);\n\n useEffect(() => {\n onDropdownOpen?.(isOpen);\n }, [isOpen]);\n\n useEffect(() => {\n setIsOpen.set(dropdownOpen || false);\n }, [dropdownOpen]);\n\n useEffect(() => {\n if (searchValue) {\n setIsOpen.on();\n }\n }, [searchValue]);\n\n return {\n isOpen: Boolean(isOpen && (isLoading ? true : hasItems)),\n visibleItems,\n getOptionProps,\n handleInputFocus,\n handleInputBlur,\n inputRef,\n getKeyProps,\n hasItems,\n optionsRefs,\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- .Button{--button-loader-color:var(--button-color);--button-cursor:pointer;-webkit-appearance:none;background:var(--button-bg-color);border:none;border-radius:var(--control-radius);box-sizing:border-box;color:var(--button-color);cursor:var(--button-cursor);display:inline-block;flex-shrink:0;font-family:var(--font-primary);font-size:var(--button-font-size);font-weight:var(--font-weight-text-regular);height:var(--button-height);line-height:var(--button-height);max-width:100%;overflow:hidden;padding:0 var(--button-space);position:relative;text-decoration:none;text-overflow:ellipsis;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,fill .15s ease;white-space:nowrap}.Button:not(.Button_disabled):hover,.Button:not(.Button_disabled):not(.Button_loading):hover,.Button:not(.Button_loading):hover{background:var(--button-bg-color-hover);color:var(--button-color-hover)}.Button_form_brick{border-radius:0}.Button_form_round{border-radius:99rem}.Button_form_brickDefault{border-radius:0 var(--control-radius) var(--control-radius) 0}.Button_form_defaultBrick{border-radius:var(--control-radius) 0 0 var(--control-radius)}.Button_form_brickRound{border-radius:0 99rem 99rem 0}.Button_form_roundBrick{border-radius:99rem 0 0 99rem}.Button_size_xs{--button-height:var(--control-height-xs);--button-font-size:var(--control-text-size-xs);--button-space:calc(var(--control-space-xs) - var(--space-3xs));--button-icon-indent:var(--space-xs)}.Button_size_s{--button-height:var(--control-height-s);--button-font-size:var(--control-text-size-s);--button-space:var(--control-space-xs);--button-icon-indent:calc(var(--space-s) - var(--space-3xs))}.Button_size_m{--button-height:var(--control-height-m);--button-font-size:var(--control-text-size-m);--button-space:var(--control-space-s);--button-icon-indent:calc(var(--space-m) - var(--space-3xs))}.Button_size_l{--button-height:var(--control-height-l);--button-font-size:var(--control-text-size-l);--button-space:var(--control-space-m);--button-icon-indent:var(--space-l)}.Button_view_clear{--button-bg-color:var(--color-control-bg-clear);--button-bg-color-hover:var(--color-control-bg-clear-hover);--button-color:var(--color-control-typo-clear);--button-color-hover:var(--color-control-typo-clear-hover);--button-border:transparent;--button-bg-color-disable:var(--color-control-bg-border-disable);--button-color-disable:var(--color-control-typo-disable)}.Button_view_ghost{--button-bg-color:var(--color-control-bg-ghost);--button-bg-color-hover:var(--color-control-bg-ghost-hover);--button-color:var(--color-control-typo-ghost);--button-color-hover:var(--color-control-typo-ghost-hover);--button-border:transparent;--button-bg-color-disable:var(--color-control-bg-disable);--button-color-disable:var(--color-control-typo-disable)}.Button_view_primary{--button-bg-color:var(--color-control-bg-primary);--button-bg-color-hover:var(--color-control-bg-primary-hover);--button-color:var(--color-control-typo-primary);--button-color-hover:var(--color-control-typo-primary-hover);--button-border:transparent;--button-bg-color-disable:var(--color-control-bg-disable);--button-color-disable:var(--color-control-typo-disable)}.Button_view_secondary{--button-bg-color:var(--color-control-bg-secondary);--button-bg-color-hover:var(--color-control-bg-clear);--button-color:var(--color-control-typo-secondary);--button-color-hover:var(--color-control-typo-secondary-hover);--button-border:var(--color-control-bg-border-secondary);--button-border-hover:var(--color-control-bg-border-secondary-hover);--button-bg-color-disable:var(--color-control-bg-secondary);--button-color-disable:var(--color-control-typo-disable);--button-border-disable:var(--color-control-typo-disable);border:var(--control-border-width) solid var(--button-border);line-height:calc(var(--button-height) - var(--control-border-width)*2)}.Button_view_secondary:not(.Button_disabled):hover,.Button_view_secondary:not(.Button_disabled):not(.Button_loading):hover,.Button_view_secondary:not(.Button_loading):hover{border-color:var(--button-border-hover)}.Button_width_full{width:100%}.Button_disabled{--button-loader-color:var(--button-color-disable);--button-cursor:not-allowed;--button-color-hover:var(--button-color-disable);--button-bg-color-hover:var(--button-bg-color-disable);background-color:var(--button-bg-color-disable);border-color:var(--button-border-disable);color:var(--button-color-disable)}.Button_onlyIcon{--button-icon-indent:0;justify-content:center;padding:0;width:var(--button-height)}.Button_onlyIcon,.Button_withIcon{align-items:center;display:inline-flex}.Button-Icon{display:block;flex-shrink:0}.Button-Icon_position_left{margin-right:var(--button-icon-indent)}.Button-Icon_position_right{margin-left:var(--button-icon-indent)}.Button-Label{flex-grow:1;flex-shrink:1;overflow:hidden;text-align:center;text-overflow:ellipsis}.Button_loading{--button-cursor:wait;color:transparent}.Button_loading:not(.Button_disabled){--button-color-hover:transparent;--button-bg-color-hover:var(--button-bg-color)}.Button_loading.Button_disabled{--button-cursor:not-allowed;color:transparent}.Button_loading .Button-Loader{--loaderBackgroundColor:var(--button-loader-color);position:absolute}
1
+ .Button{--button-loader-color:var(--button-color);--button-cursor:pointer;-webkit-appearance:none;background:var(--button-bg-color);border:none;border-radius:var(--control-radius);box-sizing:border-box;color:var(--button-color);cursor:var(--button-cursor);display:inline-block;flex-shrink:0;font-family:var(--font-primary);font-size:var(--button-font-size);font-weight:var(--font-weight-text-regular);height:var(--button-height);line-height:var(--button-height);max-width:100%;overflow:hidden;padding:0 var(--button-space);position:relative;text-decoration:none;text-overflow:ellipsis;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,fill .15s ease;white-space:nowrap}.Button:not(.Button_disabled):hover,.Button:not(.Button_disabled):not(.Button_loading):hover,.Button:not(.Button_loading):hover{background:var(--button-bg-color-hover);color:var(--button-color-hover)}.Button_form_brick{border-radius:0}.Button_form_round{border-radius:99rem}.Button_form_brickDefault{border-radius:0 var(--control-radius) var(--control-radius) 0}.Button_form_defaultBrick{border-radius:var(--control-radius) 0 0 var(--control-radius)}.Button_form_brickRound{border-radius:0 99rem 99rem 0}.Button_form_roundBrick{border-radius:99rem 0 0 99rem}.Button_size_xs{--button-height:var(--control-height-xs);--button-font-size:var(--control-text-size-xs);--button-space:calc(var(--control-space-xs) - var(--space-3xs));--button-icon-indent:var(--space-xs)}.Button_size_s{--button-height:var(--control-height-s);--button-font-size:var(--control-text-size-s);--button-space:var(--control-space-xs);--button-icon-indent:calc(var(--space-s) - var(--space-3xs))}.Button_size_m{--button-height:var(--control-height-m);--button-font-size:var(--control-text-size-m);--button-space:var(--control-space-s);--button-icon-indent:calc(var(--space-m) - var(--space-3xs))}.Button_size_l{--button-height:var(--control-height-l);--button-font-size:var(--control-text-size-l);--button-space:var(--control-space-m);--button-icon-indent:var(--space-l)}.Button_view_clear{--button-bg-color:var(--color-control-bg-clear);--button-bg-color-hover:var(--color-control-bg-clear-hover);--button-color:var(--color-control-typo-clear);--button-color-hover:var(--color-control-typo-clear-hover);--button-border:transparent;--button-bg-color-disable:var(--color-control-bg-border-disable);--button-color-disable:var(--color-control-typo-disable)}.Button_view_ghost{--button-bg-color:var(--color-control-bg-ghost);--button-bg-color-hover:var(--color-control-bg-ghost-hover);--button-color:var(--color-control-typo-ghost);--button-color-hover:var(--color-control-typo-ghost-hover);--button-border:transparent;--button-bg-color-disable:var(--color-control-bg-disable);--button-color-disable:var(--color-control-typo-disable)}.Button_view_primary{--button-bg-color:var(--color-control-bg-primary);--button-bg-color-hover:var(--color-control-bg-primary-hover);--button-color:var(--color-control-typo-primary);--button-color-hover:var(--color-control-typo-primary-hover);--button-border:transparent;--button-bg-color-disable:var(--color-control-bg-disable);--button-color-disable:var(--color-control-typo-disable)}.Button_view_secondary{--button-bg-color:var(--color-control-bg-secondary);--button-bg-color-hover:var(--color-control-bg-clear);--button-color:var(--color-control-typo-secondary);--button-color-hover:var(--color-control-typo-secondary-hover);--button-border:var(--color-control-bg-border-secondary);--button-border-hover:var(--color-control-bg-border-secondary-hover);--button-bg-color-disable:var(--color-control-bg-secondary);--button-color-disable:var(--color-control-typo-disable);--button-border-disable:var(--color-control-typo-disable);border:var(--control-border-width) solid var(--button-border);line-height:calc(var(--button-height) - var(--control-border-width)*2)}.Button_view_secondary:not(.Button_disabled):hover,.Button_view_secondary:not(.Button_disabled):not(.Button_loading):hover,.Button_view_secondary:not(.Button_loading):hover{border-color:var(--button-border-hover)}.Button_width_full{width:100%}.Button_disabled{--button-loader-color:var(--button-color-disable);--button-cursor:not-allowed;--button-color-hover:var(--button-color-disable);--button-border-hover:var(--button-color-disable);--button-bg-color-hover:var(--button-bg-color-disable);background-color:var(--button-bg-color-disable);border-color:var(--button-border-disable);color:var(--button-color-disable)}.Button_onlyIcon{--button-icon-indent:0;justify-content:center;padding:0;width:var(--button-height)}.Button_onlyIcon,.Button_withIcon{align-items:center;display:inline-flex}.Button-Icon{display:block;flex-shrink:0}.Button-Icon_position_left{margin-right:var(--button-icon-indent)}.Button-Icon_position_right{margin-left:var(--button-icon-indent)}.Button-Label{flex-grow:1;flex-shrink:1;overflow:hidden;text-align:center;text-overflow:ellipsis}.Button_loading{--button-cursor:wait;color:transparent}.Button_loading:not(.Button_disabled){--button-color-hover:transparent;--button-bg-color-hover:var(--button-bg-color)}.Button_loading.Button_disabled{--button-cursor:not-allowed;color:transparent}.Button_loading .Button-Loader{--loaderBackgroundColor:var(--button-loader-color);position:absolute}
@@ -63,7 +63,7 @@ export declare function withDefaultGetters<ITEM, IS_ACCORDION extends boolean>(p
63
63
  items: ITEM[];
64
64
  isAccordion?: IS_ACCORDION | undefined;
65
65
  children?: undefined;
66
- icon?: IconComponent | undefined;
66
+ icon?: IconComponent<"span"> | undefined;
67
67
  divider?: boolean | undefined;
68
68
  size?: "m" | "s" | "xs" | "l" | "2xs" | undefined;
69
69
  form?: "default" | "round" | "brick" | undefined;
@@ -76,7 +76,7 @@ export declare function withDefaultGetters<ITEM, IS_ACCORDION extends boolean>(p
76
76
  getItemContent?: CollapseGroupPropGetItemContent<ITEM> | undefined;
77
77
  iconView?: "ghost" | "clear" | undefined;
78
78
  } & {
79
- closeIcon: IconComponent;
79
+ closeIcon: IconComponent<"span">;
80
80
  directionIcon?: undefined;
81
81
  closeDirectionIcon?: undefined;
82
82
  } & {
@@ -98,7 +98,7 @@ export declare function withDefaultGetters<ITEM, IS_ACCORDION extends boolean>(p
98
98
  items: ITEM[];
99
99
  isAccordion?: IS_ACCORDION | undefined;
100
100
  children?: undefined;
101
- icon?: IconComponent | undefined;
101
+ icon?: IconComponent<"span"> | undefined;
102
102
  divider?: boolean | undefined;
103
103
  size?: "m" | "s" | "xs" | "l" | "2xs" | undefined;
104
104
  form?: "default" | "round" | "brick" | undefined;
@@ -146,10 +146,10 @@ export declare function withDefaultGetters<ITEM = DefaultItem, GROUP = DefaultGr
146
146
  getGroupLabel?: PropGetGroupLabel<GROUP> | undefined;
147
147
  getGroupKey?: PropGetGroupKey<GROUP> | undefined;
148
148
  label?: string | undefined;
149
- labelIcon?: IconComponent | undefined;
149
+ labelIcon?: IconComponent<"span"> | undefined;
150
150
  caption?: string | undefined;
151
151
  labelPosition?: "left" | "top" | undefined;
152
- } & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "size" | "caption" | "form" | "label" | "view" | "status" | "name" | "disabled" | "value" | "multiple" | "required" | "inputRef" | "items" | "dropdownForm" | "ariaLabel" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "labelIcon" | "labelPosition" | "searchFunction" | "searchValue" | "labelForCreate" | "labelForNotFound" | "onCreate" | "onInputChange"> & React.RefAttributes<HTMLDivElement> & (MULTIPLE extends true ? {
152
+ } & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "size" | "caption" | "form" | "label" | "view" | "status" | "name" | "disabled" | "value" | "multiple" | "required" | "inputRef" | "items" | "dropdownForm" | "ariaLabel" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "labelIcon" | "labelPosition" | "labelForCreate" | "searchFunction" | "searchValue" | "labelForNotFound" | "onCreate" | "onInputChange"> & React.RefAttributes<HTMLDivElement> & (MULTIPLE extends true ? {
153
153
  selectAll?: boolean | undefined;
154
154
  } : {
155
155
  selectAll?: undefined;
@@ -0,0 +1,4 @@
1
+ import '##/components/SelectComponents/Select.css';
2
+ import { ComboboxComponent } from './helpers';
3
+ export declare const COMPONENT_NAME: "Combobox";
4
+ export declare const Combobox: ComboboxComponent;
@@ -0,0 +1,2 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValue","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","searchFunction","selectAll","isLoading","multiple","style","dropdownForm","virtualScroll","onScrollToBottom","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponentsCanary/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponentsCanary/helpers";import{SelectContainer}from"../SelectComponentsCanary/SelectContainer";import{SelectDropdown}from"../SelectComponentsCanary/SelectDropdown";import{SelectItem}from"../SelectComponentsCanary/SelectItem";import{SelectValueTag}from"../SelectComponentsCanary/SelectValueTag";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponentsCanary/types";import{useSelect}from"../SelectComponentsCanary/useSelect";import{useForkRef}from"../../hooks/useForkRef";import{isMultipleParams,isNotMultipleParams,withDefaultGetters}from"./helpers";export var COMPONENT_NAME="Combobox";var ComboboxRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.required,r=g.dropdownRef,s=g.form,t=void 0===s?defaultPropForm:s,u=g.view,v=void 0===u?defaultPropView:u,w=g.size,x=void 0===w?defaultPropSize:w,y=g.dropdownClassName,z=g.name,A=g.groups,B=void 0===A?[]:A,C=g.getItemLabel,D=g.getItemKey,E=g.getItemGroupKey,F=g.getItemDisabled,G=g.getGroupKey,H=g.getGroupLabel,I=g.renderItem,J=g.searchValue,K=g.renderValue,L=g.onCreate,M=g.inputRef,N=g.labelForNotFound,O=void 0===N?defaultlabelForNotFound:N,P=g.labelForCreate,Q=void 0===P?defaultlabelForCreate:P,R=g.labelForEmptyItems,S=void 0===R?defaultLabelForEmptyItems:R,T=g.searchFunction,U=g.selectAll,V=g.isLoading,W=g.multiple,X=void 0!==W&&W,Y=g.style,Z=g.dropdownForm,$=void 0===Z?"default":Z,_=g.virtualScroll,aa=g.onScrollToBottom,ba=g.onDropdownOpen,ca=g.onSearchValueChange,da=g.dropdownOpen,ea=g.ignoreOutsideClicksRefs,fa=_objectWithoutProperties(g,_excluded),ga=useSelect({items:k,groups:B,value:m,onChange:l,selectAll:U,dropdownRef:c,controlRef:f,disabled:n,getItemLabel:C,getItemKey:D,getGroupKey:G,searchValue:J,getItemGroupKey:E,getItemDisabled:F,multiple:X,onBlur:i,onFocus:j,onCreate:L,searchFunction:T,onDropdownOpen:ba,onSearchValueChange:ca,dropdownOpen:da,ignoreOutsideClicksRefs:ea}),ha=ga.getKeyProps,ia=ga.getOptionProps,ja=ga.isOpen,ka=ga.visibleItems,la=ga.isFocused,ma=ga.handleInputFocus,na=ga.handleInputBlur,oa=ga.handleToggleDropdown,pa=ga.inputRef,qa=ga.handleInputClick,ra=ga.handleInputChange,sa=ga.searchValue,ta=ga.clearValue,ua=ga.getHandleRemoveValue,va=ga.notFound,wa=ga.hasItems,xa=ga.optionsRefs,ya=p?"".concat(p,"-input"):p,za=K||(X?function renderValueDefaultMultiple(a){var b=a.item,c=a.handleRemove;return React.createElement(SelectValueTag,{label:C(b),key:D(b),size:x,disabled:n||F(b),handleRemove:c})}:function renderValueDefaultNotMultiple(a){var b=C(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)}),Aa=useForkRef([pa,M]),Ba=function(){var b=X?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return za({item:a,handleRemove:ua(a)})}),isNotMultipleParams(a)&&a.value&&za({item:a.value}),(!m||Array.isArray(m)&&0===m.length)&&!sa&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ha(),{type:"text",name:z,id:ya,onFocus:ma,onBlur:na,"aria-label":o,onChange:ra,ref:Aa,className:cnSelect("Input",{size:x,hide:!X&&!!m,multiple:X}),value:sa,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:la,disabled:n,size:x,view:v,required:q,form:t,multiple:X,ref:b,type:"combobox",style:Y,id:ya},fa),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":ja,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:qa,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},X?React.createElement("div",{className:cnSelect("ControlValue")},Ba()):Ba())),React.createElement("span",{className:cnSelect("Indicators")},m&&React.createElement("button",{type:"button",onClick:ta,tabIndex:-1,className:cnSelect("ClearIndicator")},React.createElement(IconClose,{size:"xs",className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:oa},React.createElement(IconSelect,{size:"xs",className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},sa)),React.createElement(SelectDropdown,{isOpen:ja,size:x,controlRef:f,getOptionProps:ia,dropdownRef:useForkRef([r,c]),form:$,className:y,renderItem:I||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter,g=a.ref;return React.createElement(SelectItem,{label:C(b),active:c,hovered:d,multiple:X,size:x,indent:"round"===$?"increased":"normal",onClick:e,onMouseEnter:f,disabled:F(b),ref:g})},getGroupLabel:H,visibleItems:ka,labelForNotFound:O,labelForCreate:Q,isLoading:V,labelForEmptyItems:S,notFound:va,hasItems:wa,itemsRefs:xa,virtualScroll:_,onScrollToBottom:aa,style:"number"==typeof(null===Y||void 0===Y?void 0:Y.zIndex)?{zIndex:Y.zIndex+1}:void 0}))};export var Combobox=forwardRef(ComboboxRender);
2
+ //# sourceMappingURL=ComboboxCanary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboboxCanary.js","names":["IconClose","IconSelect","React","forwardRef","useRef","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","SelectItem","SelectValueTag","defaultPropForm","defaultPropSize","defaultPropView","useSelect","useForkRef","isMultipleParams","isNotMultipleParams","withDefaultGetters","COMPONENT_NAME","ComboboxRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValueProp","searchValue","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","searchFunction","selectAll","isLoading","multiple","style","dropdownForm","virtualScroll","onScrollToBottom","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs","otherProps","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","optionsRefs","inputId","renderValueDefaultMultiple","item","handleRemove","renderValueDefaultNotMultiple","valueLable","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Combobox"],"sources":["../../../../../src/components/ComboboxCanary/ComboboxCanary.tsx"],"sourcesContent":["import '##/components/SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { cnSelect } from '##/components/SelectComponentsCanary/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '##/components/SelectComponentsCanary/helpers';\nimport { SelectContainer } from '##/components/SelectComponentsCanary/SelectContainer';\nimport { SelectDropdown } from '##/components/SelectComponentsCanary/SelectDropdown';\nimport { SelectItem } from '##/components/SelectComponentsCanary/SelectItem';\nimport { SelectValueTag } from '##/components/SelectComponentsCanary/SelectValueTag';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponentsCanary/types';\nimport { useSelect } from '##/components/SelectComponentsCanary/useSelect';\nimport { useForkRef } from '##/hooks/useForkRef';\n\nimport {\n ComboboxComponent,\n ComboboxProps,\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n withDefaultGetters,\n} from './helpers';\n\nexport const COMPONENT_NAME = 'Combobox' as const;\n\nconst ComboboxRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n required,\n dropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n searchValue: searchValueProp,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n searchFunction,\n selectAll,\n isLoading,\n multiple = false,\n style,\n dropdownForm = 'default',\n virtualScroll,\n onScrollToBottom,\n onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n optionsRefs,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n selectAll,\n dropdownRef: defaultDropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n searchValue: searchValueProp,\n getItemGroupKey,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction,\n onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={multiple}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n ref={ref}\n />\n );\n };\n\n const renderValueDefaultMultiple: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <SelectValueTag\n label={getItemLabel(item)}\n key={getItemKey(item)}\n size={size}\n disabled={disabled || getItemDisabled(item)}\n handleRemove={handleRemove}\n />\n );\n };\n\n const renderValueDefaultNotMultiple: PropRenderValue<ITEM> = (props) => {\n const valueLable = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={valueLable}>\n {valueLable}\n </span>\n );\n };\n\n const renderValue =\n renderValueProp ||\n (multiple ? renderValueDefaultMultiple : renderValueDefaultNotMultiple);\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n props.value &&\n renderValue({ item: props.value })}\n {(!value || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && !!value,\n multiple,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n required={required}\n form={form}\n multiple={multiple}\n ref={ref}\n type=\"combobox\"\n style={style}\n id={inputId}\n {...otherProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div className={cnSelect('ControlValue')}>\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {value && (\n <button\n type=\"button\"\n onClick={clearValue}\n tabIndex={-1}\n className={cnSelect('ClearIndicator')}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={useForkRef([dropdownRef, defaultDropdownRef])}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n notFound={notFound}\n hasItems={hasItems}\n itemsRefs={optionsRefs}\n virtualScroll={virtualScroll}\n onScrollToBottom={onScrollToBottom}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Combobox = forwardRef(ComboboxRender) as ComboboxComponent;\n"],"mappings":"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"}