@skbkontur/react-ui 5.4.7-7ccf0.0 → 5.4.7-a27a4.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 (281) hide show
  1. package/cjs/components/Button/Button.d.ts +1 -0
  2. package/cjs/components/Button/Button.js.map +1 -1
  3. package/cjs/components/Calendar/Calendar.d.ts +1 -1
  4. package/cjs/components/Calendar/Calendar.js.map +1 -1
  5. package/cjs/components/DateInput/DateFragmentsView.d.ts +2 -2
  6. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  7. package/cjs/components/DateRangePicker/DateRangePicker.d.ts +2 -2
  8. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  9. package/cjs/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
  10. package/cjs/components/DateRangePicker/DateRangePickerContext.js.map +1 -1
  11. package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  12. package/cjs/components/Dropdown/Dropdown.d.ts +4 -4
  13. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  14. package/cjs/components/DropdownMenu/DropdownMenu.js +3 -1
  15. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  16. package/cjs/components/FileUploader/FileUploader.d.ts +1 -1
  17. package/cjs/components/FileUploader/FileUploaderFile.js.map +1 -1
  18. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
  19. package/cjs/components/GlobalLoader/GlobalLoaderView.js +49 -50
  20. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  21. package/cjs/components/Input/Input.d.ts +2 -2
  22. package/cjs/components/Input/Input.js.map +1 -1
  23. package/cjs/components/Input/InputLayout/InputLayout.d.ts +3 -1
  24. package/cjs/components/Input/InputLayout/InputLayout.js +2 -1
  25. package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
  26. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +6 -4
  27. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  28. package/cjs/components/Kebab/Kebab.d.ts +1 -1
  29. package/cjs/components/Kebab/Kebab.js.map +1 -1
  30. package/cjs/components/Link/Link.d.ts +1 -1
  31. package/cjs/components/Link/Link.js.map +1 -1
  32. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
  33. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +1 -1
  34. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  35. package/cjs/components/MaskedInput/FixedIMaskInput.js +3 -1
  36. package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
  37. package/cjs/components/MaskedInput/MaskedInput.js +2 -2
  38. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  39. package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
  40. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  41. package/cjs/components/Modal/Modal.d.ts +4 -1
  42. package/cjs/components/Modal/Modal.js +8 -3
  43. package/cjs/components/Modal/Modal.js.map +1 -1
  44. package/cjs/components/Modal/ModalBody.d.ts +2 -2
  45. package/cjs/components/Modal/ModalBody.js.map +1 -1
  46. package/cjs/components/Paging/Paging.d.ts +2 -2
  47. package/cjs/components/Paging/Paging.js.map +1 -1
  48. package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -1
  49. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  50. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -2
  51. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  52. package/cjs/components/ResponsiveLayout/decorator.d.ts +0 -3
  53. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -1
  54. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  55. package/cjs/components/Select/Select.d.ts +1 -1
  56. package/cjs/components/Select/Select.js.map +1 -1
  57. package/cjs/components/SidePage/SidePage.d.ts +5 -2
  58. package/cjs/components/SidePage/SidePage.js +9 -3
  59. package/cjs/components/SidePage/SidePage.js.map +1 -1
  60. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -1
  61. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  62. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -1
  63. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  64. package/cjs/components/SingleToast/SingleToast.d.ts +1 -1
  65. package/cjs/components/Sticky/Sticky.js +6 -2
  66. package/cjs/components/Sticky/Sticky.js.map +1 -1
  67. package/cjs/components/Tabs/Tabs.d.ts +1 -1
  68. package/cjs/components/Tabs/Tabs.js.map +1 -1
  69. package/cjs/components/Token/TokenView.d.ts +2 -1
  70. package/cjs/components/Token/TokenView.js +4 -4
  71. package/cjs/components/Token/TokenView.js.map +1 -1
  72. package/cjs/components/TokenInput/TextWidthHelper.js +3 -1
  73. package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
  74. package/cjs/components/TokenInput/TokenInput.js +14 -7
  75. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  76. package/cjs/components/Tooltip/Tooltip.d.ts +4 -4
  77. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  78. package/cjs/hooks/useDrop.js +1 -1
  79. package/cjs/hooks/useDrop.js.map +1 -1
  80. package/cjs/internal/CommonWrapper/CommonWrapper.js +3 -2
  81. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  82. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
  83. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +84 -83
  84. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  85. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  86. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +11 -12
  87. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  88. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
  89. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js +28 -23
  90. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
  91. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
  92. package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -2
  93. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  94. package/cjs/internal/Menu/Menu.js +6 -2
  95. package/cjs/internal/Menu/Menu.js.map +1 -1
  96. package/cjs/internal/Menu/MenuNavigation.d.ts +1 -1
  97. package/cjs/internal/Menu/MenuNavigation.js.map +1 -1
  98. package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
  99. package/cjs/internal/MobilePopup/MobilePopup.js +9 -1
  100. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  101. package/cjs/internal/Popup/Popup.js +2 -4
  102. package/cjs/internal/Popup/Popup.js.map +1 -1
  103. package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -1
  104. package/cjs/internal/PopupMenu/PopupMenu.js +9 -3
  105. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  106. package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -2
  107. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  108. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +3 -1
  109. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  110. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
  111. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  112. package/cjs/lib/dom/getDOMRect.d.ts +1 -1
  113. package/cjs/lib/dom/getDOMRect.js +3 -1
  114. package/cjs/lib/dom/getDOMRect.js.map +1 -1
  115. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
  116. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  117. package/cjs/lib/forwardRefAndName.d.ts +3 -2
  118. package/cjs/lib/forwardRefAndName.js +2 -1
  119. package/cjs/lib/forwardRefAndName.js.map +1 -1
  120. package/cjs/lib/getElementRef.d.ts +5 -0
  121. package/cjs/lib/getElementRef.js +16 -0
  122. package/cjs/lib/getElementRef.js.map +1 -0
  123. package/cjs/lib/locale/decorators.d.ts +0 -3
  124. package/cjs/lib/mergeRefs.d.ts +2 -3
  125. package/cjs/lib/mergeRefs.js +1 -1
  126. package/cjs/lib/mergeRefs.js.map +1 -1
  127. package/cjs/lib/reactGetTextContent.js +6 -1
  128. package/cjs/lib/reactGetTextContent.js.map +1 -1
  129. package/cjs/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
  130. package/cjs/lib/rootNode/getRootNode.js +1 -24
  131. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  132. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +0 -3
  133. package/cjs/lib/size/SizeDecorator.d.ts +0 -3
  134. package/cjs/lib/types/polymorphic-component.d.ts +2 -1
  135. package/cjs/lib/types/polymorphic-component.js.map +1 -1
  136. package/cjs/lib/utils.d.ts +4 -3
  137. package/cjs/lib/utils.js +4 -3
  138. package/cjs/lib/utils.js.map +1 -1
  139. package/cjs/lib/withClassWrapper.d.ts +3 -8
  140. package/components/Button/Button/Button.js +1 -1
  141. package/components/Button/Button/Button.js.map +1 -1
  142. package/components/Button/Button.d.ts +1 -0
  143. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  144. package/components/Calendar/Calendar.d.ts +1 -1
  145. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  146. package/components/DateInput/DateFragmentsView.d.ts +2 -2
  147. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +1 -1
  148. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
  149. package/components/DateRangePicker/DateRangePicker.d.ts +2 -2
  150. package/components/DateRangePicker/DateRangePickerContext/DateRangePickerContext.js.map +1 -1
  151. package/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
  152. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
  153. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  154. package/components/Dropdown/Dropdown.d.ts +4 -4
  155. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  156. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  157. package/components/FileUploader/FileUploader.d.ts +1 -1
  158. package/components/FileUploader/FileUploaderFile/FileUploaderFile.js +1 -1
  159. package/components/FileUploader/FileUploaderFile/FileUploaderFile.js.map +1 -1
  160. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +5 -4
  161. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  162. package/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
  163. package/components/Input/Input/Input.js.map +1 -1
  164. package/components/Input/Input.d.ts +2 -2
  165. package/components/Input/InputLayout/InputLayout/InputLayout.js +4 -2
  166. package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
  167. package/components/Input/InputLayout/InputLayout.d.ts +3 -1
  168. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +2 -2
  169. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
  170. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  171. package/components/Kebab/Kebab.d.ts +1 -1
  172. package/components/Link/Link/Link.js.map +1 -1
  173. package/components/Link/Link.d.ts +1 -1
  174. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +1 -1
  175. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
  176. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
  177. package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +1 -1
  178. package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
  179. package/components/MaskedInput/MaskedInput/MaskedInput.js +2 -2
  180. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  181. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  182. package/components/MenuItem/MenuItem.d.ts +1 -1
  183. package/components/Modal/Modal/Modal.js +7 -3
  184. package/components/Modal/Modal/Modal.js.map +1 -1
  185. package/components/Modal/Modal.d.ts +4 -1
  186. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  187. package/components/Modal/ModalBody.d.ts +2 -2
  188. package/components/Paging/Paging/Paging.js.map +1 -1
  189. package/components/Paging/Paging.d.ts +2 -2
  190. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  191. package/components/PasswordInput/PasswordInput.d.ts +1 -1
  192. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  193. package/components/RadioGroup/RadioGroup.d.ts +2 -2
  194. package/components/ResponsiveLayout/decorator.d.ts +0 -3
  195. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
  196. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  197. package/components/ScrollContainer/ScrollContainer.d.ts +1 -1
  198. package/components/Select/Select/Select.js.map +1 -1
  199. package/components/Select/Select.d.ts +1 -1
  200. package/components/SidePage/SidePage/SidePage.js +7 -3
  201. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  202. package/components/SidePage/SidePage.d.ts +5 -2
  203. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  204. package/components/SidePage/SidePageFooter.d.ts +1 -1
  205. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  206. package/components/SidePage/SidePageHeader.d.ts +1 -1
  207. package/components/SingleToast/SingleToast.d.ts +1 -1
  208. package/components/Sticky/Sticky/Sticky.js +2 -2
  209. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  210. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  211. package/components/Tabs/Tabs.d.ts +1 -1
  212. package/components/Token/TokenView/TokenView.js +6 -4
  213. package/components/Token/TokenView/TokenView.js.map +1 -1
  214. package/components/Token/TokenView.d.ts +2 -1
  215. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +1 -1
  216. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
  217. package/components/TokenInput/TokenInput/TokenInput.js +5 -5
  218. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  219. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  220. package/components/Tooltip/Tooltip.d.ts +4 -4
  221. package/hooks/useDrop/useDrop.js +1 -1
  222. package/hooks/useDrop/useDrop.js.map +1 -1
  223. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
  224. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  225. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +2 -2
  226. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  227. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
  228. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -3
  229. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  230. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  231. package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js +7 -4
  232. package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
  233. package/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
  234. package/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
  235. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  236. package/internal/InputLikeText/InputLikeText.d.ts +2 -2
  237. package/internal/Menu/Menu/Menu.js +2 -2
  238. package/internal/Menu/Menu/Menu.js.map +1 -1
  239. package/internal/Menu/MenuNavigation/MenuNavigation.js.map +1 -1
  240. package/internal/Menu/MenuNavigation.d.ts +1 -1
  241. package/internal/MobilePopup/MobilePopup/MobilePopup.js +5 -2
  242. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  243. package/internal/MobilePopup/MobilePopup.d.ts +1 -0
  244. package/internal/Popup/Popup/Popup.js +2 -2
  245. package/internal/Popup/Popup/Popup.js.map +1 -1
  246. package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
  247. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  248. package/internal/PopupMenu/PopupMenu.d.ts +1 -1
  249. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  250. package/internal/RenderLayer/RenderLayer.d.ts +2 -2
  251. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +1 -1
  252. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -1
  253. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
  254. package/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
  255. package/lib/dom/getDOMRect/getDOMRect.js.map +1 -1
  256. package/lib/dom/getDOMRect.d.ts +1 -1
  257. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  258. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
  259. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  260. package/lib/forwardRefAndName.d.ts +3 -2
  261. package/lib/getElementRef/getElementRef.js +11 -0
  262. package/lib/getElementRef/getElementRef.js.map +1 -0
  263. package/lib/getElementRef/package.json +6 -0
  264. package/lib/getElementRef.d.ts +5 -0
  265. package/lib/locale/decorators.d.ts +0 -3
  266. package/lib/mergeRefs/mergeRefs.js.map +1 -1
  267. package/lib/mergeRefs.d.ts +2 -3
  268. package/lib/reactGetTextContent/reactGetTextContent.js +1 -1
  269. package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
  270. package/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
  271. package/lib/rootNode/getRootNode/getRootNode.js +0 -15
  272. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  273. package/lib/rootNode/rootNodeDecorator.d.ts +0 -3
  274. package/lib/size/SizeDecorator.d.ts +0 -3
  275. package/lib/types/polymorphic-component/polymorphic-component.js.map +1 -1
  276. package/lib/types/polymorphic-component.d.ts +2 -1
  277. package/lib/utils/utils.js +2 -2
  278. package/lib/utils/utils.js.map +1 -1
  279. package/lib/utils.d.ts +4 -3
  280. package/lib/withClassWrapper.d.ts +3 -8
  281. package/package.json +10 -9
@@ -1 +1 @@
1
- {"version":3,"names":["React","lodashIsEqual","logWarning","PopupIds","isKeyArrowHorizontal","isKeyArrowLeft","isKeyArrowRight","isKeyArrowUp","isKeyArrowVertical","isKeyBackspace","isKeyComma","isKeyDelete","isKeyEnter","isKeyEscape","isShortcutSelectAll","LayoutEvents","Token","MenuItem","emptyHandler","getRandomID","ThemeContext","locale","CommonWrapper","getRootNode","rootNode","createPropsGetter","getUid","TokenView","withSize","withRenderEnvironment","blink","ScrollContainer","TokenInputLocaleHelper","getStyles","tokenInputReducer","TokenInputMenu","TextWidthHelper","TEMP_FAKE_FLAG","TokenInputType","DefaultState","inputValue","reservedInputValue","undefined","autocompleteItems","activeTokens","editingTokenIndex","inFocus","loading","preventBlur","inputValueWidth","inputValueHeight","TokenInputDataTids","root","tokenInputMenu","label","defaultToKey","item","toString","identity","defaultRenderToken","_ref","index","isActive","onClick","onDoubleClick","onRemove","disabled","size","createElement","key","TokenInput","_dec","_class","_TokenInput","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","rootId","input","tokensInputMenu","textHelper","wrapper","scrollContainerRef","createRef","memoizedTokens","Map","isEqual","itemA","itemB","_this$getProps","getProps","itemToId","hasValueInItems","items","value","_this$getProps2","valueToString","map","includes","some","inputRef","node","tokensInputMenuRef","textHelperRef","wrapperRef","dispatch","action","cb","setState","prevState","handleInputFocus","event","type","onFocus","handleInputBlur","isBlurToMenu","handleOutsideBlur","_this$input","preventDefault","focus","preventScroll","globalObject","requestAnimationFrame","_this$input2","payload","onBlur","_this$state","isEditingMode","finishTokenEdit","isTokenValueChanged","selectItem","isInputChanged","checkForUnexpectedInput","menuRef","document","_this$tokensInputMenu","menu","getMenuRef","relatedTarget","activeElement","contains","handleWrapperMouseDown","_this$wrapper","target","isClickOnToken","handleWrapperMouseUp","e","props","maxHeight","current","_this$input3","focusInput","scrollIntoView","behavior","block","handleCopy","isCursorVisible","_this$getProps3","selectedItems","delimiters","tokens","token","indexOf","sort","clipboardData","setData","join","handleInputPaste","WithReference","paste","getData","_this$getProps4","valueToItem","onValueChange","delimiter","stopPropagation","trim","split","RegExp","filter","Boolean","newItems","tryGetItems","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","_this$getProps5","isSelectedItem","isEditingItem","autocompleteItemsUnique","editingItem","selectItemIndex","wrap","_callee$","_context","prev","next","getItems","isInputValueChanged","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","onKeyDown","defaultPrevented","handleInputKeyDown","handleWrapperKeyDown","_this$state$autocompl","_this$state$autocompl2","_this$input4","_this$input5","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","canSetValueToInput","showAddItemHint","enter","up","down","blur","moveFocusToLastToken","selectionStart","getAvailableTokenIndex","itemNew","options","_this$input6","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps6","indexOfActiveToken","itemsNew","_this$input7","handleWrapperArrows","handleTokenEdit","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input8","handleValueChange","_this$getProps7","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps8","_autocompleteItems$fi","_this$getProps9","_this$state2","editedItem","find","splice","onUnexpectedInput","returnedValue","handleChangeInputValue","trimLeft","endsWith","trimRight","onInputValueChange","Combined","renderTokensStart","slice","renderToken","renderTokensEnd","_this$props$selectedI","_this$props","_this$props$renderTok","handleIconClick","handleTokenDoubleClick","renderedToken","set","renderAddButton","_this$locale","addButtonComment","addButtonTitle","comment","itemIndex","has","get","startIndex","isDirectionLeft","_this$getProps10","step","availableIndex","_inheritsLoose","_proto","prototype","getDelimiters","_this$props$delimiter","every","propsGetter","defaultProps","propsWithOldDelimiters","_extends","componentDidMount","_this$globalObject$do","updateInputTextWidth","addEventListener","autoFocus","componentDidUpdate","prevProps","clear","isCursorVisibleForState","componentWillUnmount","_this$globalObject$do2","removeEventListener","_this$input9","_this$input10","el","blinkColor","theme","inputBlinkColor","render","_this2","styles","emotion","Consumer","renderMain","getLabelSizeClassName","labelLarge","labelMedium","labelSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","_this$cx","_this$cx2","_this$cx3","_this$props2","maxMenuHeight","error","warning","renderNotFound","inputMode","renderTotalCount","totalCount","ariaDescribedby","ariaLabel","_this$getProps11","width","onMouseEnter","onMouseLeave","menuWidth","menuAlign","renderItem","_this$state3","showMenu","inputInlineStyles","height","caretColor","labelClassName","cx","hovering","labelDisabled","labelFocused","inputClassName","inputDisabled","placeholder","inputNode","className","inputPlaceholderWrapper","hideCloseButton","id","textareaId","ref","style","spellCheck","onChange","onPaste","inner","Fragment","text","popupMenuId","opened","anchorElementForCursor","anchorElementRoot","reservedInput","container","scrollRef","showScrollBar","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass","_this$props$id","_this$state4","_this$getProps12","PureComponent","__KONTUR_REACT_UI__","displayName","renderValue","toKey"],"sources":["TokenInput.tsx"],"sourcesContent":["import type {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEventHandler,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport lodashIsEqual from 'lodash.isequal';\nimport type { Emotion } from '@emotion/css/types/create-instance';\nimport logWarning from 'warning';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { PopupIds } from '../../internal/Popup';\nimport {\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowRight,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyBackspace,\n isKeyComma,\n isKeyDelete,\n isKeyEnter,\n isKeyEscape,\n isShortcutSelectAll,\n} from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Menu } from '../../internal/Menu';\nimport type { TokenProps, TokenSize } from '../Token';\nimport { Token } from '../Token';\nimport type { MenuItemState } from '../MenuItem';\nimport { MenuItem } from '../MenuItem';\nimport type { AnyObject } from '../../lib/utils';\nimport { emptyHandler, getRandomID } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { locale } from '../../lib/locale/decorators';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getUid } from '../../lib/uidUtils';\nimport { TokenView } from '../Token/TokenView';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport type { SizeProp } from '../../lib/types/props';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\nimport { blink } from '../../lib/blink';\nimport { ScrollContainer } from '../ScrollContainer';\n\nimport type { TokenInputLocale } from './locale';\nimport { TokenInputLocaleHelper } from './locale';\nimport { getStyles } from './TokenInput.styles';\nimport type { TokenInputAction } from './TokenInputReducer';\nimport { tokenInputReducer } from './TokenInputReducer';\nimport { TokenInputMenu } from './TokenInputMenu';\nimport { TextWidthHelper } from './TextWidthHelper';\n\nconst TEMP_FAKE_FLAG = 'TEMP_FAKE_FLAG';\n\nexport enum TokenInputType {\n WithReference,\n WithoutReference,\n Combined,\n}\n\nexport type TokenInputMenuAlign = 'left' | 'cursor';\n\nexport interface TokenInputProps<T>\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Задает выбранные токены, которые будут отображаться в поле ввода. */\n selectedItems?: T[];\n\n /** Задает функцию, которая вызывается при добавлении нового токена. */\n onValueChange?: (items: T[]) => void;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: MouseEventHandler<HTMLDivElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: MouseEventHandler<HTMLDivElement>;\n\n /** Задает HTML-событие `onfocus`.\n * @ignore */\n onFocus?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** Задает HTML-событие `onblur`.\n * @ignore */\n onBlur?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** Задает HTML-событие `onkeydown`. */\n onKeyDown?: KeyboardEventHandler<HTMLTextAreaElement>;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Задает размер контрола. */\n size?: TokenSize;\n\n /** Задает тип инпута.\n * Возможные значения:\n * `TokenInputType.WithReference` (можно выбирать токены только из предложенных, нельзя добавить новые).\n * `TokenInputType.WithoutReference` (можно добавлять токены, но нельзя выбирать).\n * `TokenInputType.Combined` (можно и выбирать, и добавлять). */\n type?: TokenInputType;\n\n /** Задает ширину выпадающего меню. Может быть 'auto', в пикселях, процентах (от ширины инпута) и других конкретных единицах.\n * Если menuAlign = 'cursor', то ширина выпадающего меню всегда будет равна 'auto' (по ширине текста). */\n menuWidth?: React.CSSProperties['width'];\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: TokenInputMenuAlign;\n\n /** Задает функцию поиска элементов, должна возвращать Promise с массивом элементов. По умолчанию ожидаются строки.\n * Элементы могут быть любого типа. В таком случае необходимо определить свойства `renderItem`, `valueToString`. */\n getItems?: (query: string) => Promise<T[]>;\n\n /** Скрывает меню при пустом вводе. */\n hideMenuIfEmptyInputValue?: boolean;\n\n /** Задает функцию, которая отображает элемент списка. */\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode | null;\n\n /** Задает функцию, которая отображает выбранное значение. */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию, которая возвращает строковое представление токена.\n * @default item => item */\n valueToString?: (item: T) => string;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * `found` учитывает только компонент `MenuItem`. Им \"оборачиваются\" элементы, возвращаемые `getItems()`. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы `renderTotalCount`. */\n totalCount?: number;\n\n /** Задает функцию, которая отображает заданное содержимое при пустом результате поиска. Не работает, если рендерится `AddButton`. */\n renderNotFound?: () => React.ReactNode;\n\n /** Преобразует значение в элемент списка. */\n valueToItem?: (value: string) => T;\n\n /** @deprecated Используйте `itemToId` вместо `toKey`. */\n toKey?: (item: T) => string | number | undefined;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToId?: (item: T) => string | number | undefined;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает символы, которые разделяют введённый текст на токены. */\n delimiters?: string[];\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает ширину токен-инпута. */\n width?: string | number;\n\n /** Задает максимальную высоту выпадающего меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая отображает токен и предоставляет возможность кастомизации внешнего вида и поведения токена. */\n renderToken?: (item: T, props: Partial<TokenProps>, index: number) => ReactNode;\n\n /** Задает функцию, вызывающуюся при изменении текста в поле ввода. */\n onInputValueChange?: (value: string) => void;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n\n /** Задает функцию для обработки ввода строки в инпут и последующую потерю фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки\n *\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет\n * совпадать со значением в текстовом поле, то сработает `onValueChange` со значением данного элемента\n *\n * Сама функция также может вернуть значение, неравное `undefined`, с которым будет вызван `onValueChange`.\n * При возвращаемом значении `null` будет выполнена очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n\n /**\n * Максимальная высота компонента. При её достижении появится скроллбар\n */\n maxHeight?: number;\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: T[];\n activeTokens: T[];\n editingTokenIndex: number;\n clickedToken?: T;\n clickedTokenTimeout?: number;\n inFocus?: boolean;\n inputValue: string;\n reservedInputValue: string | undefined;\n inputValueWidth: number;\n inputValueHeight: number;\n preventBlur?: boolean;\n loading?: boolean;\n}\n\nexport const DefaultState = {\n inputValue: '',\n reservedInputValue: undefined,\n autocompleteItems: undefined,\n activeTokens: [],\n editingTokenIndex: -1,\n inFocus: false,\n loading: false,\n preventBlur: false,\n inputValueWidth: 2,\n inputValueHeight: 22,\n};\n\nexport const TokenInputDataTids = {\n root: 'TokenInput__root',\n tokenInputMenu: 'TokenInputMenu__root',\n label: 'TokenInput__label',\n} as const;\n\ntype DefaultProps<T> = Required<\n Pick<\n TokenInputProps<T>,\n | 'selectedItems'\n | 'delimiters'\n | 'renderItem'\n | 'renderValue'\n | 'valueToString'\n | 'valueToItem'\n | 'toKey'\n | 'itemToId'\n | 'onValueChange'\n | 'width'\n | 'onBlur'\n | 'onFocus'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'menuWidth'\n | 'menuAlign'\n >\n>;\n\nconst defaultToKey = <T extends AnyObject>(item: T): string => item.toString();\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nconst identity = <T extends unknown>(item: T): T => item;\nconst defaultRenderToken = <T extends AnyObject>(\n item: T,\n { isActive, onClick, onDoubleClick, onRemove, disabled, size }: Partial<TokenProps>,\n index: number,\n) => (\n <Token\n key={item.toString()}\n isActive={isActive}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onRemove={onRemove}\n disabled={disabled}\n size={size}\n >\n {item.toString()}\n </Token>\n);\n\n/**\n * Поле с токенами `TokenInput` — это поле ввода со списком подсказок.\n *\n * Поле с токенами используют для выбора нескольких значений из справочника и для добавления своих значений.\n */\n@withRenderEnvironment\n@rootNode\n@locale('TokenInput', TokenInputLocaleHelper)\n@withSize\nexport class TokenInput<T = string> extends React.PureComponent<TokenInputProps<T>, TokenInputState<T>> {\n public static __KONTUR_REACT_UI__ = 'TokenInput';\n public static displayName = 'TokenInput';\n\n public static defaultProps: DefaultProps<any> = {\n selectedItems: [],\n // TEMP_FAKE_FLAG помогает узнать, остались ли разделители дефолтными или пользователь передал их равными дефолтным.\n delimiters: [',', TEMP_FAKE_FLAG],\n renderItem: identity,\n renderValue: identity,\n valueToString: identity,\n valueToItem: (item: string) => item,\n toKey: defaultToKey,\n itemToId: identity,\n onValueChange: () => void 0,\n width: 250 as string | number,\n onBlur: emptyHandler,\n onFocus: emptyHandler,\n onMouseEnter: emptyHandler,\n onMouseLeave: emptyHandler,\n menuWidth: 'auto',\n menuAlign: 'cursor',\n };\n\n private getDelimiters(): string[] {\n const delimiters = this.props.delimiters ?? [];\n if (delimiters.every((delimiter) => delimiter !== TEMP_FAKE_FLAG)) {\n return delimiters;\n }\n return delimiters.filter((delimiter) => delimiter !== TEMP_FAKE_FLAG);\n }\n\n private getProps() {\n const propsGetter = createPropsGetter(TokenInput.defaultProps);\n const propsWithOldDelimiters = propsGetter.apply(this);\n return { ...propsWithOldDelimiters, delimiters: this.getDelimiters() };\n }\n\n private get textareaId() {\n return this.props.id ?? this._textareaId;\n }\n\n public state: TokenInputState<T> = DefaultState;\n\n private readonly _textareaId: string = getUid();\n private rootId = PopupIds.root + getRandomID();\n private readonly locale!: TokenInputLocale;\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private input: HTMLTextAreaElement | null = null;\n private tokensInputMenu: TokenInputMenu<T> | null = null;\n private textHelper: TextWidthHelper | null = null;\n private wrapper: HTMLLabelElement | null = null;\n private scrollContainerRef = React.createRef<HTMLDivElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n this.globalObject.document?.addEventListener('copy', this.handleCopy);\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n\n public componentDidUpdate(prevProps: TokenInputProps<T> & DefaultProps<T>, prevState: TokenInputState<T>) {\n if (prevState.inputValue !== this.state.inputValue) {\n this.updateInputTextWidth();\n }\n if (prevState.activeTokens.length === 0 && this.state.activeTokens.length > 0) {\n this.dispatch({\n type: 'SET_AUTOCOMPLETE_ITEMS',\n payload: undefined,\n });\n }\n if (prevProps.selectedItems.length !== this.getProps().selectedItems.length) {\n LayoutEvents.emit();\n this.memoizedTokens.clear();\n }\n if (!this.isCursorVisibleForState(prevState) && this.isCursorVisible) {\n this.tryGetItems(this.isEditingMode ? '' : this.state.inputValue);\n }\n }\n\n public componentWillUnmount() {\n this.globalObject.document?.removeEventListener('copy', this.handleCopy);\n }\n\n /**\n * @public\n */\n public focus() {\n this.input?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.input?.blur();\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.wrapper, blinkColor: this.theme.inputBlinkColor });\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getLabelSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.labelLarge(this.theme);\n case 'medium':\n return this.styles.labelMedium(this.theme);\n case 'small':\n default:\n return this.styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.inputLarge(this.theme);\n case 'medium':\n return this.styles.inputMedium(this.theme);\n case 'small':\n default:\n return this.styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n logWarning(false, `getItems is required for \"Combined\" and \"WithReference\" modes.`);\n }\n\n const {\n maxMenuHeight,\n error,\n warning,\n disabled,\n renderNotFound,\n hideMenuIfEmptyInputValue,\n inputMode,\n renderTotalCount,\n totalCount,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n maxHeight,\n } = this.props;\n\n const { selectedItems, width, onMouseEnter, onMouseLeave, menuWidth, menuAlign, renderItem } = this.getProps();\n\n const {\n activeTokens,\n inFocus,\n inputValueWidth,\n inputValueHeight,\n inputValue,\n reservedInputValue,\n autocompleteItems,\n loading,\n } = this.state;\n\n const showMenu =\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n activeTokens.length === 0 &&\n (this.isInputValueChanged || !hideMenuIfEmptyInputValue);\n\n const theme = this.theme;\n\n const inputInlineStyles: React.CSSProperties = {\n // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости\n width: inputValueWidth,\n height: inputValueHeight,\n // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее\n caretColor: this.isCursorVisible ? undefined : 'transparent',\n };\n\n const labelClassName = this.cx(this.styles.label(theme), this.getLabelSizeClassName(), {\n [this.styles.hovering(this.theme)]: !inFocus && !disabled && !warning && !error,\n [this.styles.labelDisabled(theme)]: !!disabled,\n [this.styles.labelFocused(theme)]: !!inFocus,\n [this.styles.error(theme)]: !!error,\n [this.styles.warning(theme)]: !!warning,\n });\n const inputClassName = this.cx(this.styles.input(theme), this.getInputSizeClassName(), {\n [this.styles.inputDisabled(theme)]: !!disabled,\n });\n\n const placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';\n\n const inputNode = (\n <TokenView\n size={this.size}\n className={this.cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [this.styles.inputPlaceholderWrapper()]: Boolean(placeholder),\n })}\n hideCloseButton={Boolean(placeholder)}\n >\n <textarea\n id={this.textareaId}\n ref={this.inputRef}\n value={inputValue}\n style={inputInlineStyles}\n spellCheck={false}\n disabled={disabled}\n className={inputClassName}\n placeholder={placeholder}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onChange={this.handleChangeInputValue}\n onKeyDown={this.handleKeyDown}\n onPaste={this.handleInputPaste}\n inputMode={inputMode}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </TokenView>\n );\n\n const inner = (\n <>\n <TextWidthHelper ref={this.textHelperRef} text={inputValue} theme={this.theme} size={this.size} />\n {this.renderTokensStart()}\n {inputNode}\n {showMenu && (\n <TokenInputMenu\n popupMenuId={this.rootId}\n ref={this.tokensInputMenuRef}\n items={autocompleteItems}\n loading={loading}\n opened={showMenu}\n maxMenuHeight={maxMenuHeight}\n anchorElementForCursor={this.input}\n anchorElementRoot={this.wrapper}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n menuWidth={menuWidth}\n menuAlign={menuAlign}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.size}\n />\n )}\n {this.renderTokensEnd()}\n {this.isEditingMode ? (\n <TokenView size={this.size}>\n <span className={this.styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </>\n );\n const container = maxHeight ? (\n <ScrollContainer scrollRef={this.scrollContainerRef} maxHeight={maxHeight} showScrollBar=\"always\">\n {inner}\n </ScrollContainer>\n ) : (\n inner\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <label\n ref={this.wrapperRef}\n style={{ width }}\n className={labelClassName}\n onMouseDown={this.handleWrapperMouseDown}\n onMouseUp={this.handleWrapperMouseUp}\n // Для корректной работы скролла приходится ломать связь label с полем ввода\n // Иначе любой клик внутри label вызывает фокус и автоскроллинг к полю ввода\n htmlFor={maxHeight ? 'fake-id' : this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n {container}\n </label>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n this.dispatch({ type: 'RESET' });\n }\n\n private isEqual = (itemA: T, itemB: T) => {\n const { itemToId } = this.getProps();\n return lodashIsEqual(itemToId(itemA), itemToId(itemB));\n };\n\n private hasValueInItems = (items: T[], value: string | T) => {\n const { valueToString } = this.getProps();\n if (typeof value === 'string') {\n return items.map((item) => valueToString(item)).includes(value);\n }\n\n return items.some((item) => this.isEqual(item, value));\n };\n\n private get showAddItemHint() {\n const items = this.state.autocompleteItems;\n const value = this.getProps().valueToItem(this.state.inputValue);\n if (items && this.hasValueInItems(items, value)) {\n return false;\n }\n\n const selectedItems = this.getProps().selectedItems;\n if (selectedItems && this.hasValueInItems(selectedItems, value)) {\n return false;\n }\n\n if (this.type === TokenInputType.Combined && this.isInputValueChanged) {\n return true;\n }\n }\n\n private get type() {\n return this.props.type ? this.props.type : TokenInputType.WithReference;\n }\n\n private get menuRef(): Menu | null {\n return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();\n }\n\n private get isCursorVisible() {\n return this.isCursorVisibleForState(this.state);\n }\n\n private get isEditingMode() {\n return this.state.editingTokenIndex > -1;\n }\n\n private isCursorVisibleForState(state: TokenInputState<T>) {\n return state.inFocus && (this.isInputValueChanged || state.activeTokens.length === 0);\n }\n\n private inputRef = (node: HTMLTextAreaElement) => (this.input = node);\n private tokensInputMenuRef = (node: TokenInputMenu<T>) => (this.tokensInputMenu = node);\n private textHelperRef = (node: TextWidthHelper) => (this.textHelper = node);\n private wrapperRef = (node: HTMLLabelElement) => (this.wrapper = node);\n\n private dispatch = (action: TokenInputAction, cb?: () => void) => {\n this.setState((prevState) => tokenInputReducer(prevState, action), cb);\n };\n\n private updateInputTextWidth() {\n if (this.textHelper) {\n // в IE текст иногда не помещается в input\n // из-за округления, поэтому округляем явно\n const inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));\n const inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));\n\n this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);\n this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);\n }\n }\n\n private handleInputFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.getProps().onFocus(event);\n };\n\n private handleInputBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n const isBlurToMenu = this.isBlurToMenu(event);\n\n if (!isBlurToMenu) {\n this.handleOutsideBlur();\n }\n\n if (isBlurToMenu || this.state.preventBlur) {\n event.preventDefault();\n // первый focus нужен для предотвращения/уменьшения моргания в других браузерах\n this.input?.focus({ preventScroll: true });\n // в firefox не работает без второго focus\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus({ preventScroll: true }));\n\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems } = this.state;\n\n if (inputValue === '') {\n // если стерли содержимое токена в режиме редактирования, то удаляем токен\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n return;\n }\n\n // если не изменилось значение токена при редактировании\n if (this.isEditingMode && !this.isTokenValueChanged) {\n this.finishTokenEdit();\n return;\n }\n\n // чекаем автокомплит на совпадение с введенным значением в инпут\n if (autocompleteItems && autocompleteItems.length === 1) {\n const item = autocompleteItems[0];\n\n if (this.getProps().valueToString(item) === inputValue) {\n this.isEditingMode ? this.finishTokenEdit() : this.selectItem(item);\n\n return;\n }\n }\n\n if (this.isInputChanged) {\n this.checkForUnexpectedInput();\n }\n };\n\n private get isInputChanged() {\n if (this.isEditingMode) {\n return this.isTokenValueChanged;\n }\n\n return this.isInputValueChanged;\n }\n\n private get isInputValueChanged() {\n const { inputValue } = this.state;\n\n return inputValue !== '';\n }\n\n private get isTokenValueChanged() {\n const { inputValue, editingTokenIndex } = this.state;\n const { valueToString, selectedItems } = this.getProps();\n\n if (this.isEditingMode) {\n return valueToString(selectedItems[editingTokenIndex]) !== inputValue;\n }\n\n return false;\n }\n\n private isBlurToMenu = (event: FocusEvent<HTMLElement>) => {\n if (this.menuRef && this.globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || this.globalObject.document.activeElement;\n\n if (menu && menu.contains(relatedTarget)) {\n return true;\n }\n }\n return false;\n };\n\n private handleWrapperMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: true });\n const target = event.target as HTMLElement;\n const isClickOnToken = target && this.wrapper?.contains(target) && target !== this.wrapper && target !== this.input;\n if (!isClickOnToken) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n }\n };\n\n private handleWrapperMouseUp = (e: React.MouseEvent<HTMLElement>) => {\n // Имитируем поведение label, когда задан maxHeight.\n if (\n this.props.maxHeight &&\n e.target === this.scrollContainerRef.current &&\n (this.state.activeTokens.length !== 0 || !this.state.inFocus)\n ) {\n this.dispatch({ type: 'BLUR' });\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.focusInput();\n this.input?.scrollIntoView({ behavior: 'auto', block: 'center' });\n }\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, valueToItem, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = paste.trim().split(new RegExp(`[${delimiters.join('')}]+`));\n const items = tokens\n .filter(Boolean)\n .map((token) => valueToItem(token))\n .filter((item) => item && !this.hasValueInItems(selectedItems, item));\n const newItems = selectedItems.concat(items);\n onValueChange(newItems);\n\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.tryGetItems();\n }\n };\n\n private tryGetItems = async (query = '') => {\n if (this.props.getItems && (this.isInputValueChanged || !this.props.hideMenuIfEmptyInputValue)) {\n this.dispatch({ type: 'SET_LOADING', payload: true });\n const autocompleteItems = await this.props.getItems(query);\n this.dispatch({ type: 'SET_LOADING', payload: false });\n\n const { selectedItems, valueToItem, valueToString } = this.getProps();\n const isSelectedItem = (item: T) => this.hasValueInItems(selectedItems, item);\n const isEditingItem = (item: T) => {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n return !!editingItem && this.isEqual(item, editingItem);\n };\n\n const autocompleteItemsUnique = autocompleteItems.filter((item) => !isSelectedItem(item) || isEditingItem(item));\n\n if (this.isEditingMode) {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n if (\n this.isEqual(editingItem, valueToItem(this.state.inputValue)) &&\n !this.hasValueInItems(autocompleteItemsUnique, editingItem)\n ) {\n autocompleteItemsUnique.unshift(editingItem);\n }\n }\n\n if (query === '' || this.isInputValueChanged) {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: autocompleteItemsUnique }, () => {\n LayoutEvents.emit();\n this.highlightMenuItem();\n });\n }\n const selectItemIndex = autocompleteItemsUnique.findIndex(\n (item) => valueToString(item).toLowerCase() === this.state.inputValue.toLowerCase(),\n );\n setTimeout(() => this.menuRef?.highlightItem(selectItemIndex < 0 ? 0 : selectItemIndex), 0);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n this.props.onKeyDown?.(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.isCursorVisible) {\n this.handleInputKeyDown(event);\n } else {\n this.handleWrapperKeyDown(event);\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n\n if (\n (this.type !== TokenInputType.WithReference &&\n this.getProps().delimiters.some((key) => key === e.key || (key === ',' && isKeyComma(e)))) ||\n (isKeyEnter(e) && this.type === TokenInputType.WithoutReference)\n ) {\n e.preventDefault();\n const newValue = this.state.inputValue;\n if (newValue !== '') {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n } else {\n this.handleAddItem();\n }\n }\n }\n const isRightmostTokenNotDisabled = !this.isTokenDisabled(this.getProps().selectedItems.length - 1);\n const canSetValueToInput = this.showAddItemHint || (this.state.autocompleteItems?.length ?? 0) > 0;\n\n switch (true) {\n case isKeyEnter(e):\n if (canSetValueToInput && this.menuRef) {\n this.menuRef.enter(e);\n }\n // don't allow textarea\n // became multiline\n e.preventDefault();\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n if (this.menuRef) {\n if (isKeyArrowUp(e)) {\n this.menuRef.up();\n } else {\n this.menuRef.down();\n }\n }\n break;\n case isKeyEscape(e):\n this.input?.blur();\n break;\n case isKeyBackspace(e):\n if (!this.isEditingMode && isRightmostTokenNotDisabled) {\n this.moveFocusToLastToken();\n }\n break;\n case isKeyArrowLeft(e):\n if (this.input?.selectionStart === 0) {\n const index = this.getAvailableTokenIndex(this.getProps().selectedItems.length);\n const itemNew = this.getProps().selectedItems[index];\n if (itemNew) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n }\n break;\n }\n };\n\n private moveFocusToLastToken() {\n const items = this.getProps().selectedItems;\n if (this.state.inputValue === '' && items && items.length > 0) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });\n }\n }\n\n private focusInput = (options?: FocusOptions) => {\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus(options));\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !this.isEqual(item, itemNew))];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: itemsNew });\n }\n };\n\n private handleValueChange = (items: T[]) => {\n this.getProps().onValueChange(items);\n };\n\n private handleAddItem = () => {\n const item = this.getProps().valueToItem(this.state.inputValue);\n if (item) {\n this.selectItem(item);\n }\n };\n\n private selectItem = (item: T) => {\n const { selectedItems, valueToString } = this.getProps();\n if (this.isEditingMode) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(item) }, this.finishTokenEdit);\n } else if (!this.hasValueInItems(selectedItems, item)) {\n this.handleValueChange(selectedItems.concat([item]));\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n }\n };\n\n private handleRemoveToken = (item: T) => {\n this.props.onValueChange?.(this.getProps().selectedItems.filter((_) => !this.isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !this.isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0) {\n this.focusInput({ preventScroll: true });\n }\n\n this.tryGetItems();\n };\n\n private handleTokenClick = (event: React.MouseEvent<HTMLElement>, itemNew: T) => {\n const items = this.state.activeTokens;\n if (event.ctrlKey) {\n const newItems = this.hasValueInItems(this.state.activeTokens, itemNew)\n ? items.filter((item) => !this.isEqual(item, itemNew))\n : [...items, itemNew];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: newItems });\n } else {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n this.focusInput({ preventScroll: true });\n };\n\n private handleTokenEdit = (itemNew: T) => {\n const { selectedItems, valueToString } = this.getProps();\n const editingTokenIndex = selectedItems.findIndex((item) => item === itemNew);\n this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });\n\n if (this.isInputValueChanged) {\n if (this.state.reservedInputValue === undefined) {\n this.dispatch({ type: 'SET_TEMPORARY_QUERY', payload: this.state.inputValue });\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(itemNew) }, this.selectInputText);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n\n this.tryGetItems();\n };\n\n private finishTokenEdit = () => {\n const { selectedItems, valueToString } = this.getProps();\n const { editingTokenIndex, inputValue, reservedInputValue, autocompleteItems } = this.state;\n\n const editedItem =\n autocompleteItems?.find((item) => valueToString(item) === inputValue) ?? this.getProps().valueToItem(inputValue);\n\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(this.isInputValueChanged ? [editedItem] : []));\n this.handleValueChange(newItems);\n }\n\n this.dispatch({ type: 'REMOVE_EDITING_TOKEN_INDEX' });\n\n if (reservedInputValue) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: reservedInputValue });\n this.dispatch({ type: 'REMOVE_TEMPORARY_QUERY' });\n } else {\n this.dispatch({ type: 'CLEAR_INPUT' });\n }\n\n if (newItems.length === selectedItems.length) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [newItems[editingTokenIndex]] });\n }\n };\n\n private checkForUnexpectedInput = () => {\n const { inputValue } = this.state;\n const { onUnexpectedInput } = this.props;\n\n // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput?.(inputValue);\n\n if (returnedValue === undefined) {\n if (this.type === TokenInputType.WithoutReference) {\n this.handleAddItem();\n }\n\n return;\n }\n\n if (returnedValue === null) {\n this.dispatch({ type: 'CLEAR_INPUT' }, () => {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n });\n\n return;\n }\n\n if (returnedValue) {\n this.selectItem(returnedValue);\n }\n };\n\n private handleChangeInputValue = (event: ChangeEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n let query = event.target.value.trimLeft();\n\n if (query.endsWith(' ')) {\n query = query.trimRight() + ' ';\n }\n if (this.isInputValueChanged && query === '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: query }, () => {\n this.tryGetItems(query);\n });\n if (this.props.onInputValueChange) {\n this.props.onInputValueChange(query);\n }\n };\n\n private highlightMenuItem = () => {\n if (\n this.menuRef &&\n this.state.autocompleteItems &&\n this.state.autocompleteItems.length > 0 &&\n this.type !== TokenInputType.Combined\n ) {\n this.menuRef.highlightItem(0);\n }\n };\n\n private renderTokensStart = () => {\n const { editingTokenIndex } = this.state;\n const selectedItems = this.getProps().selectedItems;\n const delimiter = editingTokenIndex >= 0 ? editingTokenIndex : selectedItems.length;\n return selectedItems.slice(0, delimiter).map(this.renderToken);\n };\n\n private renderTokensEnd = () => {\n if (this.state.editingTokenIndex >= 0) {\n return this.getProps()\n .selectedItems.slice(this.state.editingTokenIndex + 1)\n .map(this.renderToken);\n }\n };\n\n private renderToken = (item: T, index: number) => {\n const { renderToken = defaultRenderToken, disabled } = this.props;\n\n const isActive = this.state.activeTokens.includes(item);\n\n // TODO useCallback\n const handleIconClick: React.MouseEventHandler<HTMLElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleRemoveToken(item);\n }\n };\n\n // TODO useCallback\n const handleTokenClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleTokenClick(event, item);\n }\n };\n\n const handleTokenDoubleClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode && !disabled) {\n this.handleTokenEdit(item);\n }\n };\n\n const renderedToken = renderToken(\n item as T & AnyObject,\n {\n size: this.size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n },\n index,\n );\n\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonTitle } = this.locale;\n\n return (\n <MenuItem onClick={this.handleAddItem} comment={addButtonComment} key=\"renderAddButton\">\n {addButtonTitle} {value}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex], itemIndex) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","lodashIsEqual","logWarning","PopupIds","isKeyArrowHorizontal","isKeyArrowLeft","isKeyArrowRight","isKeyArrowUp","isKeyArrowVertical","isKeyBackspace","isKeyComma","isKeyDelete","isKeyEnter","isKeyEscape","isShortcutSelectAll","LayoutEvents","Token","MenuItem","emptyHandler","getRandomID","ThemeContext","locale","CommonWrapper","getRootNode","rootNode","createPropsGetter","getUid","TokenView","withSize","withRenderEnvironment","blink","ScrollContainer","TokenInputLocaleHelper","getStyles","tokenInputReducer","TokenInputMenu","TextWidthHelper","TEMP_FAKE_FLAG","TokenInputType","DefaultState","inputValue","reservedInputValue","undefined","autocompleteItems","activeTokens","editingTokenIndex","inFocus","loading","preventBlur","inputValueWidth","inputValueHeight","TokenInputDataTids","root","tokenInputMenu","label","defaultToKey","item","toString","identity","defaultRenderToken","_ref","isActive","onClick","onDoubleClick","onRemove","disabled","size","createElement","key","TokenInput","_dec","_class","_TokenInput","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","rootId","input","tokensInputMenu","textHelper","wrapper","scrollContainerRef","createRef","memoizedTokens","Map","isEqual","itemA","itemB","_this$getProps","getProps","itemToId","hasValueInItems","items","value","_this$getProps2","valueToString","map","includes","some","inputRef","node","tokensInputMenuRef","textHelperRef","wrapperRef","dispatch","action","cb","setState","prevState","handleInputFocus","event","type","onFocus","handleInputBlur","isBlurToMenu","handleOutsideBlur","_this$input","preventDefault","focus","preventScroll","globalObject","requestAnimationFrame","_this$input2","payload","onBlur","_this$state","isEditingMode","finishTokenEdit","isTokenValueChanged","selectItem","isInputChanged","checkForUnexpectedInput","menuRef","document","_this$tokensInputMenu","menu","getMenuRef","relatedTarget","activeElement","contains","handleWrapperMouseDown","_this$wrapper","target","isClickOnToken","handleWrapperMouseUp","e","props","maxHeight","current","_this$input3","focusInput","scrollIntoView","behavior","block","handleCopy","isCursorVisible","_this$getProps3","selectedItems","delimiters","tokens","token","indexOf","sort","index","clipboardData","setData","join","handleInputPaste","WithReference","paste","getData","_this$getProps4","valueToItem","onValueChange","delimiter","stopPropagation","trim","split","RegExp","filter","Boolean","newItems","tryGetItems","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","_this$getProps5","isSelectedItem","isEditingItem","autocompleteItemsUnique","editingItem","selectItemIndex","wrap","_callee$","_context","prev","next","getItems","isInputValueChanged","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","onKeyDown","defaultPrevented","handleInputKeyDown","handleWrapperKeyDown","_this$state$autocompl","_this$state$autocompl2","_this$input4","_this$input5","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","canSetValueToInput","showAddItemHint","enter","up","down","blur","moveFocusToLastToken","selectionStart","getAvailableTokenIndex","itemNew","options","_this$input6","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps6","indexOfActiveToken","itemsNew","_this$input7","handleWrapperArrows","handleTokenEdit","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input8","handleValueChange","_this$getProps7","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps8","_autocompleteItems$fi","_this$getProps9","_this$state2","editedItem","find","splice","onUnexpectedInput","returnedValue","handleChangeInputValue","trimLeft","endsWith","trimRight","onInputValueChange","Combined","renderTokensStart","slice","renderToken","renderTokensEnd","_this$props$selectedI","_this$props","_this$props$renderTok","handleIconClick","handleTokenDoubleClick","renderedToken","set","renderAddButton","_this$locale","addButtonComment","addButtonTitle","comment","itemIndex","has","get","startIndex","isDirectionLeft","_this$getProps10","step","availableIndex","_inheritsLoose","_proto","prototype","getDelimiters","_this$props$delimiter","every","propsGetter","defaultProps","propsWithOldDelimiters","_extends","componentDidMount","_this$globalObject$do","updateInputTextWidth","addEventListener","autoFocus","componentDidUpdate","prevProps","clear","isCursorVisibleForState","componentWillUnmount","_this$globalObject$do2","removeEventListener","_this$input9","_this$input10","el","blinkColor","theme","inputBlinkColor","render","_this2","styles","emotion","Consumer","renderMain","getLabelSizeClassName","labelLarge","labelMedium","labelSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","_this$cx","_this$cx2","_this$cx3","_this$props2","maxMenuHeight","error","warning","renderNotFound","inputMode","renderTotalCount","totalCount","ariaDescribedby","ariaLabel","_this$getProps11","width","onMouseEnter","onMouseLeave","menuWidth","menuAlign","renderItem","_this$state3","showMenu","inputInlineStyles","height","caretColor","labelClassName","cx","hovering","labelDisabled","labelFocused","inputClassName","inputDisabled","placeholder","inputNode","className","inputPlaceholderWrapper","hideCloseButton","id","textareaId","ref","style","spellCheck","onChange","onPaste","inner","Fragment","text","popupMenuId","opened","anchorElementForCursor","anchorElementRoot","reservedInput","container","scrollRef","showScrollBar","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass","_this$props$id","_this$state4","_this$getProps12","PureComponent","__KONTUR_REACT_UI__","displayName","renderValue","toKey"],"sources":["TokenInput.tsx"],"sourcesContent":["import type {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEventHandler,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport lodashIsEqual from 'lodash.isequal';\nimport type { Emotion } from '@emotion/css/types/create-instance';\nimport logWarning from 'warning';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { PopupIds } from '../../internal/Popup';\nimport {\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowRight,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyBackspace,\n isKeyComma,\n isKeyDelete,\n isKeyEnter,\n isKeyEscape,\n isShortcutSelectAll,\n} from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Menu } from '../../internal/Menu';\nimport type { TokenProps, TokenSize } from '../Token';\nimport { Token } from '../Token';\nimport type { MenuItemState } from '../MenuItem';\nimport { MenuItem } from '../MenuItem';\nimport type { AnyObject } from '../../lib/utils';\nimport { emptyHandler, getRandomID } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { locale } from '../../lib/locale/decorators';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getUid } from '../../lib/uidUtils';\nimport { TokenView } from '../Token/TokenView';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport type { SizeProp } from '../../lib/types/props';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\nimport { blink } from '../../lib/blink';\nimport { ScrollContainer } from '../ScrollContainer';\n\nimport type { TokenInputLocale } from './locale';\nimport { TokenInputLocaleHelper } from './locale';\nimport { getStyles } from './TokenInput.styles';\nimport type { TokenInputAction } from './TokenInputReducer';\nimport { tokenInputReducer } from './TokenInputReducer';\nimport { TokenInputMenu } from './TokenInputMenu';\nimport { TextWidthHelper } from './TextWidthHelper';\n\nconst TEMP_FAKE_FLAG = 'TEMP_FAKE_FLAG';\n\nexport enum TokenInputType {\n WithReference,\n WithoutReference,\n Combined,\n}\n\nexport type TokenInputMenuAlign = 'left' | 'cursor';\n\nexport interface TokenInputProps<T>\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Задает выбранные токены, которые будут отображаться в поле ввода. */\n selectedItems?: T[];\n\n /** Задает функцию, которая вызывается при добавлении нового токена. */\n onValueChange?: (items: T[]) => void;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: MouseEventHandler<HTMLDivElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: MouseEventHandler<HTMLDivElement>;\n\n /** Задает HTML-событие `onfocus`.\n * @ignore */\n onFocus?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** Задает HTML-событие `onblur`.\n * @ignore */\n onBlur?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** Задает HTML-событие `onkeydown`. */\n onKeyDown?: KeyboardEventHandler<HTMLTextAreaElement>;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Задает размер контрола. */\n size?: TokenSize;\n\n /** Задает тип инпута.\n * Возможные значения:\n * `TokenInputType.WithReference` (можно выбирать токены только из предложенных, нельзя добавить новые).\n * `TokenInputType.WithoutReference` (можно добавлять токены, но нельзя выбирать).\n * `TokenInputType.Combined` (можно и выбирать, и добавлять). */\n type?: TokenInputType;\n\n /** Задает ширину выпадающего меню. Может быть 'auto', в пикселях, процентах (от ширины инпута) и других конкретных единицах.\n * Если menuAlign = 'cursor', то ширина выпадающего меню всегда будет равна 'auto' (по ширине текста). */\n menuWidth?: React.CSSProperties['width'];\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: TokenInputMenuAlign;\n\n /** Задает функцию поиска элементов, должна возвращать Promise с массивом элементов. По умолчанию ожидаются строки.\n * Элементы могут быть любого типа. В таком случае необходимо определить свойства `renderItem`, `valueToString`. */\n getItems?: (query: string) => Promise<T[]>;\n\n /** Скрывает меню при пустом вводе. */\n hideMenuIfEmptyInputValue?: boolean;\n\n /** Задает функцию, которая отображает элемент списка. */\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode | null;\n\n /** Задает функцию, которая отображает выбранное значение. */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию, которая возвращает строковое представление токена.\n * @default item => item */\n valueToString?: (item: T) => string;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * `found` учитывает только компонент `MenuItem`. Им \"оборачиваются\" элементы, возвращаемые `getItems()`. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы `renderTotalCount`. */\n totalCount?: number;\n\n /** Задает функцию, которая отображает заданное содержимое при пустом результате поиска. Не работает, если рендерится `AddButton`. */\n renderNotFound?: () => React.ReactNode;\n\n /** Преобразует значение в элемент списка. */\n valueToItem?: (value: string) => T;\n\n /** @deprecated Используйте `itemToId` вместо `toKey`. */\n toKey?: (item: T) => string | number | undefined;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToId?: (item: T) => string | number | undefined;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает символы, которые разделяют введённый текст на токены. */\n delimiters?: string[];\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает ширину токен-инпута. */\n width?: string | number;\n\n /** Задает максимальную высоту выпадающего меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая отображает токен и предоставляет возможность кастомизации внешнего вида и поведения токена. */\n renderToken?: (item: T, props: Partial<TokenProps>, index: number) => ReactNode;\n\n /** Задает функцию, вызывающуюся при изменении текста в поле ввода. */\n onInputValueChange?: (value: string) => void;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n\n /** Задает функцию для обработки ввода строки в инпут и последующую потерю фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки\n *\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет\n * совпадать со значением в текстовом поле, то сработает `onValueChange` со значением данного элемента\n *\n * Сама функция также может вернуть значение, неравное `undefined`, с которым будет вызван `onValueChange`.\n * При возвращаемом значении `null` будет выполнена очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n\n /**\n * Максимальная высота компонента. При её достижении появится скроллбар\n */\n maxHeight?: number;\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: T[];\n activeTokens: T[];\n editingTokenIndex: number;\n clickedToken?: T;\n clickedTokenTimeout?: number;\n inFocus?: boolean;\n inputValue: string;\n reservedInputValue: string | undefined;\n inputValueWidth: number;\n inputValueHeight: number;\n preventBlur?: boolean;\n loading?: boolean;\n}\n\nexport const DefaultState = {\n inputValue: '',\n reservedInputValue: undefined,\n autocompleteItems: undefined,\n activeTokens: [],\n editingTokenIndex: -1,\n inFocus: false,\n loading: false,\n preventBlur: false,\n inputValueWidth: 2,\n inputValueHeight: 22,\n};\n\nexport const TokenInputDataTids = {\n root: 'TokenInput__root',\n tokenInputMenu: 'TokenInputMenu__root',\n label: 'TokenInput__label',\n} as const;\n\ntype DefaultProps<T> = Required<\n Pick<\n TokenInputProps<T>,\n | 'selectedItems'\n | 'delimiters'\n | 'renderItem'\n | 'renderValue'\n | 'valueToString'\n | 'valueToItem'\n | 'toKey'\n | 'itemToId'\n | 'onValueChange'\n | 'width'\n | 'onBlur'\n | 'onFocus'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'menuWidth'\n | 'menuAlign'\n >\n>;\n\nconst defaultToKey = <T extends AnyObject>(item: T): string => item.toString();\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nconst identity = <T extends unknown>(item: T): T => item;\nconst defaultRenderToken = <T extends AnyObject>(\n item: T,\n { isActive, onClick, onDoubleClick, onRemove, disabled, size }: Partial<TokenProps>,\n) => (\n <Token\n key={item.toString()}\n isActive={isActive}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onRemove={onRemove}\n disabled={disabled}\n size={size}\n >\n {item.toString()}\n </Token>\n);\n\n/**\n * Поле с токенами `TokenInput` — это поле ввода со списком подсказок.\n *\n * Поле с токенами используют для выбора нескольких значений из справочника и для добавления своих значений.\n */\n@withRenderEnvironment\n@rootNode\n@locale('TokenInput', TokenInputLocaleHelper)\n@withSize\nexport class TokenInput<T = string> extends React.PureComponent<TokenInputProps<T>, TokenInputState<T>> {\n public static __KONTUR_REACT_UI__ = 'TokenInput';\n public static displayName = 'TokenInput';\n\n public static defaultProps: DefaultProps<any> = {\n selectedItems: [],\n // TEMP_FAKE_FLAG помогает узнать, остались ли разделители дефолтными или пользователь передал их равными дефолтным.\n delimiters: [',', TEMP_FAKE_FLAG],\n renderItem: identity,\n renderValue: identity,\n valueToString: identity,\n valueToItem: (item: string) => item,\n toKey: defaultToKey,\n itemToId: identity,\n onValueChange: () => void 0,\n width: 250 as string | number,\n onBlur: emptyHandler,\n onFocus: emptyHandler,\n onMouseEnter: emptyHandler,\n onMouseLeave: emptyHandler,\n menuWidth: 'auto',\n menuAlign: 'cursor',\n };\n\n private getDelimiters(): string[] {\n const delimiters = this.props.delimiters ?? [];\n if (delimiters.every((delimiter) => delimiter !== TEMP_FAKE_FLAG)) {\n return delimiters;\n }\n return delimiters.filter((delimiter) => delimiter !== TEMP_FAKE_FLAG);\n }\n\n private getProps() {\n const propsGetter = createPropsGetter(TokenInput.defaultProps);\n const propsWithOldDelimiters = propsGetter.apply(this);\n return { ...propsWithOldDelimiters, delimiters: this.getDelimiters() };\n }\n\n private get textareaId() {\n return this.props.id ?? this._textareaId;\n }\n\n public state: TokenInputState<T> = DefaultState;\n\n private readonly _textareaId: string = getUid();\n private rootId = PopupIds.root + getRandomID();\n private readonly locale!: TokenInputLocale;\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private input: HTMLTextAreaElement | null = null;\n private tokensInputMenu: TokenInputMenu<T> | null = null;\n private textHelper: TextWidthHelper | null = null;\n private wrapper: HTMLLabelElement | null = null;\n private scrollContainerRef = React.createRef<HTMLDivElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n this.globalObject.document?.addEventListener('copy', this.handleCopy);\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n\n public componentDidUpdate(prevProps: TokenInputProps<T> & DefaultProps<T>, prevState: TokenInputState<T>) {\n if (prevState.inputValue !== this.state.inputValue) {\n this.updateInputTextWidth();\n }\n if (prevState.activeTokens.length === 0 && this.state.activeTokens.length > 0) {\n this.dispatch({\n type: 'SET_AUTOCOMPLETE_ITEMS',\n payload: undefined,\n });\n }\n if (prevProps.selectedItems.length !== this.getProps().selectedItems.length) {\n LayoutEvents.emit();\n this.memoizedTokens.clear();\n }\n if (!this.isCursorVisibleForState(prevState) && this.isCursorVisible) {\n this.tryGetItems(this.isEditingMode ? '' : this.state.inputValue);\n }\n }\n\n public componentWillUnmount() {\n this.globalObject.document?.removeEventListener('copy', this.handleCopy);\n }\n\n /**\n * @public\n */\n public focus() {\n this.input?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.input?.blur();\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.wrapper, blinkColor: this.theme.inputBlinkColor });\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getLabelSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.labelLarge(this.theme);\n case 'medium':\n return this.styles.labelMedium(this.theme);\n case 'small':\n default:\n return this.styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.inputLarge(this.theme);\n case 'medium':\n return this.styles.inputMedium(this.theme);\n case 'small':\n default:\n return this.styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n logWarning(false, `getItems is required for \"Combined\" and \"WithReference\" modes.`);\n }\n\n const {\n maxMenuHeight,\n error,\n warning,\n disabled,\n renderNotFound,\n hideMenuIfEmptyInputValue,\n inputMode,\n renderTotalCount,\n totalCount,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n maxHeight,\n } = this.props;\n\n const { selectedItems, width, onMouseEnter, onMouseLeave, menuWidth, menuAlign, renderItem } = this.getProps();\n\n const {\n activeTokens,\n inFocus,\n inputValueWidth,\n inputValueHeight,\n inputValue,\n reservedInputValue,\n autocompleteItems,\n loading,\n } = this.state;\n\n const showMenu =\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n activeTokens.length === 0 &&\n (this.isInputValueChanged || !hideMenuIfEmptyInputValue);\n\n const theme = this.theme;\n\n const inputInlineStyles: React.CSSProperties = {\n // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости\n width: inputValueWidth,\n height: inputValueHeight,\n // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее\n caretColor: this.isCursorVisible ? undefined : 'transparent',\n };\n\n const labelClassName = this.cx(this.styles.label(theme), this.getLabelSizeClassName(), {\n [this.styles.hovering(this.theme)]: !inFocus && !disabled && !warning && !error,\n [this.styles.labelDisabled(theme)]: !!disabled,\n [this.styles.labelFocused(theme)]: !!inFocus,\n [this.styles.error(theme)]: !!error,\n [this.styles.warning(theme)]: !!warning,\n });\n const inputClassName = this.cx(this.styles.input(theme), this.getInputSizeClassName(), {\n [this.styles.inputDisabled(theme)]: !!disabled,\n });\n\n const placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';\n\n const inputNode = (\n <TokenView\n size={this.size}\n className={this.cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [this.styles.inputPlaceholderWrapper()]: Boolean(placeholder),\n })}\n hideCloseButton={Boolean(placeholder)}\n >\n <textarea\n id={this.textareaId}\n ref={this.inputRef}\n value={inputValue}\n style={inputInlineStyles}\n spellCheck={false}\n disabled={disabled}\n className={inputClassName}\n placeholder={placeholder}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onChange={this.handleChangeInputValue}\n onKeyDown={this.handleKeyDown}\n onPaste={this.handleInputPaste}\n inputMode={inputMode}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </TokenView>\n );\n\n const inner = (\n <>\n <TextWidthHelper ref={this.textHelperRef} text={inputValue} theme={this.theme} size={this.size} />\n {this.renderTokensStart()}\n {inputNode}\n {showMenu && (\n <TokenInputMenu\n popupMenuId={this.rootId}\n ref={this.tokensInputMenuRef}\n items={autocompleteItems}\n loading={loading}\n opened={showMenu}\n maxMenuHeight={maxMenuHeight}\n anchorElementForCursor={this.input}\n anchorElementRoot={this.wrapper}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n menuWidth={menuWidth}\n menuAlign={menuAlign}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.size}\n />\n )}\n {this.renderTokensEnd()}\n {this.isEditingMode ? (\n <TokenView size={this.size}>\n <span className={this.styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </>\n );\n const container = maxHeight ? (\n <ScrollContainer scrollRef={this.scrollContainerRef} maxHeight={maxHeight} showScrollBar=\"always\">\n {inner}\n </ScrollContainer>\n ) : (\n inner\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <label\n ref={this.wrapperRef}\n style={{ width }}\n className={labelClassName}\n onMouseDown={this.handleWrapperMouseDown}\n onMouseUp={this.handleWrapperMouseUp}\n // Для корректной работы скролла приходится ломать связь label с полем ввода\n // Иначе любой клик внутри label вызывает фокус и автоскроллинг к полю ввода\n htmlFor={maxHeight ? 'fake-id' : this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n {container}\n </label>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n this.dispatch({ type: 'RESET' });\n }\n\n private isEqual = (itemA: T, itemB: T) => {\n const { itemToId } = this.getProps();\n return lodashIsEqual(itemToId(itemA), itemToId(itemB));\n };\n\n private hasValueInItems = (items: T[], value: string | T) => {\n const { valueToString } = this.getProps();\n if (typeof value === 'string') {\n return items.map((item) => valueToString(item)).includes(value);\n }\n\n return items.some((item) => this.isEqual(item, value));\n };\n\n private get showAddItemHint() {\n const items = this.state.autocompleteItems;\n const value = this.getProps().valueToItem(this.state.inputValue);\n if (items && this.hasValueInItems(items, value)) {\n return false;\n }\n\n const selectedItems = this.getProps().selectedItems;\n if (selectedItems && this.hasValueInItems(selectedItems, value)) {\n return false;\n }\n\n if (this.type === TokenInputType.Combined && this.isInputValueChanged) {\n return true;\n }\n }\n\n private get type() {\n return this.props.type ? this.props.type : TokenInputType.WithReference;\n }\n\n private get menuRef(): Menu | null {\n return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();\n }\n\n private get isCursorVisible() {\n return this.isCursorVisibleForState(this.state);\n }\n\n private get isEditingMode() {\n return this.state.editingTokenIndex > -1;\n }\n\n private isCursorVisibleForState(state: TokenInputState<T>) {\n return state.inFocus && (this.isInputValueChanged || state.activeTokens.length === 0);\n }\n\n private inputRef = (node: HTMLTextAreaElement) => {\n this.input = node;\n };\n private tokensInputMenuRef = (node: TokenInputMenu<T>) => {\n this.tokensInputMenu = node;\n };\n private textHelperRef = (node: TextWidthHelper) => {\n this.textHelper = node;\n };\n private wrapperRef = (node: HTMLLabelElement) => {\n this.wrapper = node;\n };\n\n private dispatch = (action: TokenInputAction, cb?: () => void) => {\n this.setState((prevState) => tokenInputReducer(prevState, action), cb);\n };\n\n private updateInputTextWidth() {\n if (this.textHelper) {\n // в IE текст иногда не помещается в input\n // из-за округления, поэтому округляем явно\n const inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));\n const inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));\n\n this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);\n this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);\n }\n }\n\n private handleInputFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.getProps().onFocus(event);\n };\n\n private handleInputBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n const isBlurToMenu = this.isBlurToMenu(event);\n\n if (!isBlurToMenu) {\n this.handleOutsideBlur();\n }\n\n if (isBlurToMenu || this.state.preventBlur) {\n event.preventDefault();\n // первый focus нужен для предотвращения/уменьшения моргания в других браузерах\n this.input?.focus({ preventScroll: true });\n // в firefox не работает без второго focus\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus({ preventScroll: true }));\n\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems } = this.state;\n\n if (inputValue === '') {\n // если стерли содержимое токена в режиме редактирования, то удаляем токен\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n return;\n }\n\n // если не изменилось значение токена при редактировании\n if (this.isEditingMode && !this.isTokenValueChanged) {\n this.finishTokenEdit();\n return;\n }\n\n // чекаем автокомплит на совпадение с введенным значением в инпут\n if (autocompleteItems && autocompleteItems.length === 1) {\n const item = autocompleteItems[0];\n\n if (this.getProps().valueToString(item) === inputValue) {\n this.isEditingMode ? this.finishTokenEdit() : this.selectItem(item);\n\n return;\n }\n }\n\n if (this.isInputChanged) {\n this.checkForUnexpectedInput();\n }\n };\n\n private get isInputChanged() {\n if (this.isEditingMode) {\n return this.isTokenValueChanged;\n }\n\n return this.isInputValueChanged;\n }\n\n private get isInputValueChanged() {\n const { inputValue } = this.state;\n\n return inputValue !== '';\n }\n\n private get isTokenValueChanged() {\n const { inputValue, editingTokenIndex } = this.state;\n const { valueToString, selectedItems } = this.getProps();\n\n if (this.isEditingMode) {\n return valueToString(selectedItems[editingTokenIndex]) !== inputValue;\n }\n\n return false;\n }\n\n private isBlurToMenu = (event: FocusEvent<HTMLElement>) => {\n if (this.menuRef && this.globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || this.globalObject.document.activeElement;\n\n if (menu && menu.contains(relatedTarget)) {\n return true;\n }\n }\n return false;\n };\n\n private handleWrapperMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: true });\n const target = event.target as HTMLElement;\n const isClickOnToken = target && this.wrapper?.contains(target) && target !== this.wrapper && target !== this.input;\n if (!isClickOnToken) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n }\n };\n\n private handleWrapperMouseUp = (e: React.MouseEvent<HTMLElement>) => {\n // Имитируем поведение label, когда задан maxHeight.\n if (\n this.props.maxHeight &&\n e.target === this.scrollContainerRef.current &&\n (this.state.activeTokens.length !== 0 || !this.state.inFocus)\n ) {\n this.dispatch({ type: 'BLUR' });\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.focusInput();\n this.input?.scrollIntoView({ behavior: 'auto', block: 'center' });\n }\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, valueToItem, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = paste.trim().split(new RegExp(`[${delimiters.join('')}]+`));\n const items = tokens\n .filter(Boolean)\n .map((token) => valueToItem(token))\n .filter((item) => item && !this.hasValueInItems(selectedItems, item));\n const newItems = selectedItems.concat(items);\n onValueChange(newItems);\n\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.tryGetItems();\n }\n };\n\n private tryGetItems = async (query = '') => {\n if (this.props.getItems && (this.isInputValueChanged || !this.props.hideMenuIfEmptyInputValue)) {\n this.dispatch({ type: 'SET_LOADING', payload: true });\n const autocompleteItems = await this.props.getItems(query);\n this.dispatch({ type: 'SET_LOADING', payload: false });\n\n const { selectedItems, valueToItem, valueToString } = this.getProps();\n const isSelectedItem = (item: T) => this.hasValueInItems(selectedItems, item);\n const isEditingItem = (item: T) => {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n return !!editingItem && this.isEqual(item, editingItem);\n };\n\n const autocompleteItemsUnique = autocompleteItems.filter((item) => !isSelectedItem(item) || isEditingItem(item));\n\n if (this.isEditingMode) {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n if (\n this.isEqual(editingItem, valueToItem(this.state.inputValue)) &&\n !this.hasValueInItems(autocompleteItemsUnique, editingItem)\n ) {\n autocompleteItemsUnique.unshift(editingItem);\n }\n }\n\n if (query === '' || this.isInputValueChanged) {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: autocompleteItemsUnique }, () => {\n LayoutEvents.emit();\n this.highlightMenuItem();\n });\n }\n const selectItemIndex = autocompleteItemsUnique.findIndex(\n (item) => valueToString(item).toLowerCase() === this.state.inputValue.toLowerCase(),\n );\n setTimeout(() => this.menuRef?.highlightItem(selectItemIndex < 0 ? 0 : selectItemIndex), 0);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n this.props.onKeyDown?.(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.isCursorVisible) {\n this.handleInputKeyDown(event);\n } else {\n this.handleWrapperKeyDown(event);\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n\n if (\n (this.type !== TokenInputType.WithReference &&\n this.getProps().delimiters.some((key) => key === e.key || (key === ',' && isKeyComma(e)))) ||\n (isKeyEnter(e) && this.type === TokenInputType.WithoutReference)\n ) {\n e.preventDefault();\n const newValue = this.state.inputValue;\n if (newValue !== '') {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n } else {\n this.handleAddItem();\n }\n }\n }\n const isRightmostTokenNotDisabled = !this.isTokenDisabled(this.getProps().selectedItems.length - 1);\n const canSetValueToInput = this.showAddItemHint || (this.state.autocompleteItems?.length ?? 0) > 0;\n\n switch (true) {\n case isKeyEnter(e):\n if (canSetValueToInput && this.menuRef) {\n this.menuRef.enter(e);\n }\n // don't allow textarea\n // became multiline\n e.preventDefault();\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n if (this.menuRef) {\n if (isKeyArrowUp(e)) {\n this.menuRef.up();\n } else {\n this.menuRef.down();\n }\n }\n break;\n case isKeyEscape(e):\n this.input?.blur();\n break;\n case isKeyBackspace(e):\n if (!this.isEditingMode && isRightmostTokenNotDisabled) {\n this.moveFocusToLastToken();\n }\n break;\n case isKeyArrowLeft(e):\n if (this.input?.selectionStart === 0) {\n const index = this.getAvailableTokenIndex(this.getProps().selectedItems.length);\n const itemNew = this.getProps().selectedItems[index];\n if (itemNew) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n }\n break;\n }\n };\n\n private moveFocusToLastToken() {\n const items = this.getProps().selectedItems;\n if (this.state.inputValue === '' && items && items.length > 0) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });\n }\n }\n\n private focusInput = (options?: FocusOptions) => {\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus(options));\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !this.isEqual(item, itemNew))];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: itemsNew });\n }\n };\n\n private handleValueChange = (items: T[]) => {\n this.getProps().onValueChange(items);\n };\n\n private handleAddItem = () => {\n const item = this.getProps().valueToItem(this.state.inputValue);\n if (item) {\n this.selectItem(item);\n }\n };\n\n private selectItem = (item: T) => {\n const { selectedItems, valueToString } = this.getProps();\n if (this.isEditingMode) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(item) }, this.finishTokenEdit);\n } else if (!this.hasValueInItems(selectedItems, item)) {\n this.handleValueChange(selectedItems.concat([item]));\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n }\n };\n\n private handleRemoveToken = (item: T) => {\n this.props.onValueChange?.(this.getProps().selectedItems.filter((_) => !this.isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !this.isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0) {\n this.focusInput({ preventScroll: true });\n }\n\n this.tryGetItems();\n };\n\n private handleTokenClick = (event: React.MouseEvent<HTMLElement>, itemNew: T) => {\n const items = this.state.activeTokens;\n if (event.ctrlKey) {\n const newItems = this.hasValueInItems(this.state.activeTokens, itemNew)\n ? items.filter((item) => !this.isEqual(item, itemNew))\n : [...items, itemNew];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: newItems });\n } else {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n this.focusInput({ preventScroll: true });\n };\n\n private handleTokenEdit = (itemNew: T) => {\n const { selectedItems, valueToString } = this.getProps();\n const editingTokenIndex = selectedItems.findIndex((item) => item === itemNew);\n this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });\n\n if (this.isInputValueChanged) {\n if (this.state.reservedInputValue === undefined) {\n this.dispatch({ type: 'SET_TEMPORARY_QUERY', payload: this.state.inputValue });\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(itemNew) }, this.selectInputText);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n\n this.tryGetItems();\n };\n\n private finishTokenEdit = () => {\n const { selectedItems, valueToString } = this.getProps();\n const { editingTokenIndex, inputValue, reservedInputValue, autocompleteItems } = this.state;\n\n const editedItem =\n autocompleteItems?.find((item) => valueToString(item) === inputValue) ?? this.getProps().valueToItem(inputValue);\n\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(this.isInputValueChanged ? [editedItem] : []));\n this.handleValueChange(newItems);\n }\n\n this.dispatch({ type: 'REMOVE_EDITING_TOKEN_INDEX' });\n\n if (reservedInputValue) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: reservedInputValue });\n this.dispatch({ type: 'REMOVE_TEMPORARY_QUERY' });\n } else {\n this.dispatch({ type: 'CLEAR_INPUT' });\n }\n\n if (newItems.length === selectedItems.length) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [newItems[editingTokenIndex]] });\n }\n };\n\n private checkForUnexpectedInput = () => {\n const { inputValue } = this.state;\n const { onUnexpectedInput } = this.props;\n\n // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput?.(inputValue);\n\n if (returnedValue === undefined) {\n if (this.type === TokenInputType.WithoutReference) {\n this.handleAddItem();\n }\n\n return;\n }\n\n if (returnedValue === null) {\n this.dispatch({ type: 'CLEAR_INPUT' }, () => {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n });\n\n return;\n }\n\n if (returnedValue) {\n this.selectItem(returnedValue);\n }\n };\n\n private handleChangeInputValue = (event: ChangeEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n let query = event.target.value.trimLeft();\n\n if (query.endsWith(' ')) {\n query = query.trimRight() + ' ';\n }\n if (this.isInputValueChanged && query === '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: query }, () => {\n this.tryGetItems(query);\n });\n if (this.props.onInputValueChange) {\n this.props.onInputValueChange(query);\n }\n };\n\n private highlightMenuItem = () => {\n if (\n this.menuRef &&\n this.state.autocompleteItems &&\n this.state.autocompleteItems.length > 0 &&\n this.type !== TokenInputType.Combined\n ) {\n this.menuRef.highlightItem(0);\n }\n };\n\n private renderTokensStart = () => {\n const { editingTokenIndex } = this.state;\n const selectedItems = this.getProps().selectedItems;\n const delimiter = editingTokenIndex >= 0 ? editingTokenIndex : selectedItems.length;\n return selectedItems.slice(0, delimiter).map(this.renderToken);\n };\n\n private renderTokensEnd = () => {\n if (this.state.editingTokenIndex >= 0) {\n return this.getProps()\n .selectedItems.slice(this.state.editingTokenIndex + 1)\n .map(this.renderToken);\n }\n };\n\n private renderToken = (item: T, index: number) => {\n const { renderToken = defaultRenderToken, disabled } = this.props;\n\n const isActive = this.state.activeTokens.includes(item);\n\n // TODO useCallback\n const handleIconClick: React.MouseEventHandler<HTMLElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleRemoveToken(item);\n }\n };\n\n // TODO useCallback\n const handleTokenClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleTokenClick(event, item);\n }\n };\n\n const handleTokenDoubleClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode && !disabled) {\n this.handleTokenEdit(item);\n }\n };\n\n const renderedToken = renderToken(\n item as T & AnyObject,\n {\n size: this.size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n },\n index,\n );\n\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonTitle } = this.locale;\n\n return (\n <MenuItem onClick={this.handleAddItem} comment={addButtonComment} key=\"renderAddButton\">\n {addButtonTitle} {value}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex], itemIndex) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n"],"mappings":"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","ignoreList":[]}