@skbkontur/react-ui 3.10.0-fileuploader.1 → 3.11.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 (736) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +57 -0
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
  4. package/cjs/components/Autocomplete/Autocomplete.js +11 -5
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +5 -1
  7. package/cjs/components/Button/Button.js +17 -5
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Button/Button.styles.d.ts +1 -0
  10. package/cjs/components/Button/Button.styles.js +38 -28
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Center/Center.d.ts +1 -0
  13. package/cjs/components/Center/Center.js +10 -3
  14. package/cjs/components/Center/Center.js.map +1 -1
  15. package/cjs/components/Checkbox/Checkbox.d.ts +3 -3
  16. package/cjs/components/Checkbox/Checkbox.js +31 -22
  17. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  18. package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
  19. package/cjs/components/ComboBox/ComboBox.js +100 -70
  20. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  21. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +4 -3
  22. package/cjs/components/CurrencyInput/CurrencyInput.js +35 -4
  23. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  24. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  25. package/cjs/components/DateInput/DateInput.js +6 -3
  26. package/cjs/components/DateInput/DateInput.js.map +1 -1
  27. package/cjs/components/DatePicker/DatePicker.d.ts +4 -2
  28. package/cjs/components/DatePicker/DatePicker.js +17 -7
  29. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  30. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  31. package/cjs/components/Dropdown/Dropdown.js +11 -4
  32. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  33. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +3 -2
  34. package/cjs/components/DropdownMenu/DropdownMenu.js +7 -4
  35. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  36. package/cjs/components/FxInput/FxInput.d.ts +1 -0
  37. package/cjs/components/FxInput/FxInput.js +9 -2
  38. package/cjs/components/FxInput/FxInput.js.map +1 -1
  39. package/cjs/components/Gapped/Gapped.d.ts +2 -0
  40. package/cjs/components/Gapped/Gapped.js +22 -14
  41. package/cjs/components/Gapped/Gapped.js.map +1 -1
  42. package/cjs/components/Group/Group.d.ts +1 -0
  43. package/cjs/components/Group/Group.js +10 -7
  44. package/cjs/components/Group/Group.js.map +1 -1
  45. package/cjs/components/Hint/Hint.d.ts +5 -3
  46. package/cjs/components/Hint/Hint.js +7 -20
  47. package/cjs/components/Hint/Hint.js.map +1 -1
  48. package/cjs/components/Input/Input.d.ts +8 -1
  49. package/cjs/components/Input/Input.js +22 -5
  50. package/cjs/components/Input/Input.js.map +1 -1
  51. package/cjs/components/Kebab/Kebab.d.ts +3 -2
  52. package/cjs/components/Kebab/Kebab.js +8 -5
  53. package/cjs/components/Kebab/Kebab.js.map +1 -1
  54. package/cjs/components/Link/Link.d.ts +1 -0
  55. package/cjs/components/Link/Link.js +11 -3
  56. package/cjs/components/Link/Link.js.map +1 -1
  57. package/cjs/components/Loader/Loader.d.ts +1 -0
  58. package/cjs/components/Loader/Loader.js +11 -7
  59. package/cjs/components/Loader/Loader.js.map +1 -1
  60. package/cjs/components/MenuItem/MenuItem.d.ts +2 -1
  61. package/cjs/components/MenuItem/MenuItem.js +11 -8
  62. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  63. package/cjs/components/Modal/Modal.js +1 -1
  64. package/cjs/components/Modal/Modal.js.map +1 -1
  65. package/cjs/components/Modal/ModalBody.d.ts +1 -0
  66. package/cjs/components/Modal/ModalBody.js +9 -6
  67. package/cjs/components/Modal/ModalBody.js.map +1 -1
  68. package/cjs/components/Paging/Paging.d.ts +2 -2
  69. package/cjs/components/Paging/Paging.js +6 -5
  70. package/cjs/components/Paging/Paging.js.map +1 -1
  71. package/cjs/components/PasswordInput/PasswordInput.d.ts +3 -2
  72. package/cjs/components/PasswordInput/PasswordInput.js +13 -6
  73. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  74. package/cjs/components/Radio/Radio.d.ts +5 -10
  75. package/cjs/components/Radio/Radio.js +15 -11
  76. package/cjs/components/Radio/Radio.js.map +1 -1
  77. package/cjs/components/RadioGroup/RadioGroup.d.ts +11 -26
  78. package/cjs/components/RadioGroup/RadioGroup.js +25 -29
  79. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  80. package/cjs/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  81. package/cjs/components/RadioGroup/RadioGroupContext.js +21 -0
  82. package/cjs/components/RadioGroup/RadioGroupContext.js.map +1 -0
  83. package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
  84. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  85. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  86. package/cjs/components/ScrollContainer/ScrollContainer.js +10 -6
  87. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  88. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  89. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
  90. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  91. package/cjs/components/Select/Select.d.ts +1 -0
  92. package/cjs/components/Select/Select.js +8 -5
  93. package/cjs/components/Select/Select.js.map +1 -1
  94. package/cjs/components/SidePage/SidePage.d.ts +3 -0
  95. package/cjs/components/SidePage/SidePage.js +20 -2
  96. package/cjs/components/SidePage/SidePage.js.map +1 -1
  97. package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
  98. package/cjs/components/SidePage/SidePageBody.js +9 -6
  99. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  100. package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
  101. package/cjs/components/SidePage/SidePageContainer.js +9 -6
  102. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  103. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -2
  104. package/cjs/components/SidePage/SidePageFooter.js +11 -12
  105. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  106. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  107. package/cjs/components/SidePage/SidePageHeader.js +6 -3
  108. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  109. package/cjs/components/Spinner/Spinner.d.ts +9 -0
  110. package/cjs/components/Spinner/Spinner.js +29 -8
  111. package/cjs/components/Spinner/Spinner.js.map +1 -1
  112. package/cjs/components/Spinner/Spinner.md +1 -0
  113. package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
  114. package/cjs/components/Spinner/Spinner.styles.js +13 -10
  115. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  116. package/cjs/components/Sticky/Sticky.d.ts +1 -0
  117. package/cjs/components/Sticky/Sticky.js +8 -5
  118. package/cjs/components/Sticky/Sticky.js.map +1 -1
  119. package/cjs/components/Switcher/Switcher.d.ts +1 -0
  120. package/cjs/components/Switcher/Switcher.js +6 -3
  121. package/cjs/components/Switcher/Switcher.js.map +1 -1
  122. package/cjs/components/Switcher/Switcher.styles.js +4 -2
  123. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  124. package/cjs/components/Tabs/Indicator.d.ts +1 -0
  125. package/cjs/components/Tabs/Indicator.js +16 -15
  126. package/cjs/components/Tabs/Indicator.js.map +1 -1
  127. package/cjs/components/Tabs/Tab.d.ts +2 -1
  128. package/cjs/components/Tabs/Tab.js +13 -9
  129. package/cjs/components/Tabs/Tab.js.map +1 -1
  130. package/cjs/components/Tabs/Tabs.d.ts +1 -0
  131. package/cjs/components/Tabs/Tabs.js +9 -9
  132. package/cjs/components/Tabs/Tabs.js.map +1 -1
  133. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  134. package/cjs/components/Textarea/Textarea.js +12 -5
  135. package/cjs/components/Textarea/Textarea.js.map +1 -1
  136. package/cjs/components/Toast/Toast.d.ts +3 -0
  137. package/cjs/components/Toast/Toast.js +15 -4
  138. package/cjs/components/Toast/Toast.js.map +1 -1
  139. package/cjs/components/Toast/ToastView.d.ts +1 -0
  140. package/cjs/components/Toast/ToastView.js +8 -5
  141. package/cjs/components/Toast/ToastView.js.map +1 -1
  142. package/cjs/components/Toggle/Toggle.d.ts +1 -0
  143. package/cjs/components/Toggle/Toggle.js +9 -6
  144. package/cjs/components/Toggle/Toggle.js.map +1 -1
  145. package/cjs/components/Token/Token.d.ts +1 -0
  146. package/cjs/components/Token/Token.js +7 -4
  147. package/cjs/components/Token/Token.js.map +1 -1
  148. package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
  149. package/cjs/components/TokenInput/TokenInput.js +11 -8
  150. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  151. package/cjs/components/Tooltip/Tooltip.d.ts +11 -22
  152. package/cjs/components/Tooltip/Tooltip.js +28 -30
  153. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  154. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +3 -2
  155. package/cjs/components/TooltipMenu/TooltipMenu.js +8 -5
  156. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  157. package/cjs/index.d.ts +1 -1
  158. package/cjs/index.js +2 -2
  159. package/cjs/index.js.map +1 -1
  160. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  161. package/cjs/internal/CommonWrapper/CommonWrapper.js +38 -15
  162. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  163. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +3 -2
  164. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  165. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  166. package/cjs/internal/CustomComboBox/ComboBoxView.js +15 -5
  167. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  168. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  169. package/cjs/internal/CustomComboBox/CustomComboBox.js +8 -5
  170. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  171. package/cjs/internal/DateSelect/DateSelect.d.ts +2 -2
  172. package/cjs/internal/DateSelect/DateSelect.js +3 -3
  173. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  174. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  175. package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -13
  176. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  177. package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
  178. package/cjs/internal/FocusTrap/FocusTrap.js +12 -9
  179. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  180. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +12 -4
  181. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  182. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  183. package/cjs/internal/InputLikeText/InputLikeText.js +10 -3
  184. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  185. package/cjs/internal/InternalMenu/InternalMenu.d.ts +2 -3
  186. package/cjs/internal/InternalMenu/InternalMenu.js +16 -22
  187. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  188. package/cjs/internal/MaskedInput/MaskedInput.d.ts +2 -2
  189. package/cjs/internal/MaskedInput/MaskedInput.js +3 -3
  190. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  191. package/cjs/internal/Menu/Menu.d.ts +1 -0
  192. package/cjs/internal/Menu/Menu.js +9 -6
  193. package/cjs/internal/Menu/Menu.js.map +1 -1
  194. package/cjs/internal/Popup/Popup.d.ts +9 -8
  195. package/cjs/internal/Popup/Popup.js +64 -48
  196. package/cjs/internal/Popup/Popup.js.map +1 -1
  197. package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
  198. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  199. package/cjs/internal/Popup/types.d.ts +1 -0
  200. package/cjs/{components/FileUploader/locale → internal/Popup}/types.js +0 -0
  201. package/cjs/{components/FileUploader/locale → internal/Popup}/types.js.map +0 -0
  202. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -3
  203. package/cjs/internal/PopupMenu/PopupMenu.js +23 -6
  204. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  205. package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
  206. package/cjs/internal/PopupMenu/validatePositions.js +2 -4
  207. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  208. package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -1
  209. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  210. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  211. package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -3
  212. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  213. package/cjs/internal/RenderLayer/RenderLayer.d.ts +3 -1
  214. package/cjs/internal/RenderLayer/RenderLayer.js +13 -7
  215. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  216. package/cjs/internal/ThemePlayground/Playground.d.ts +0 -1
  217. package/cjs/internal/ThemePlayground/Playground.js +1 -11
  218. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  219. package/cjs/internal/ThemePlayground/darkTheme.d.ts +0 -15
  220. package/cjs/internal/ThemePlayground/darkTheme.js +1 -25
  221. package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
  222. package/cjs/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  223. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +20 -19
  224. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  225. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  226. package/cjs/internal/ZIndex/ZIndex.d.ts +2 -0
  227. package/cjs/internal/ZIndex/ZIndex.js +45 -34
  228. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  229. package/cjs/internal/icons/16px/index.d.ts +17 -19
  230. package/cjs/internal/icons/16px/index.js +105 -84
  231. package/cjs/internal/icons/16px/index.js.map +1 -1
  232. package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
  233. package/cjs/internal/icons/SpinnerIcon.js +5 -2
  234. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  235. package/cjs/internal/themes/DefaultTheme.d.ts +0 -23
  236. package/cjs/internal/themes/DefaultTheme.js +1 -64
  237. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  238. package/cjs/lib/ModalStack.js +16 -17
  239. package/cjs/lib/ModalStack.js.map +1 -1
  240. package/cjs/lib/callChildRef/callChildRef.d.ts +3 -0
  241. package/cjs/lib/callChildRef/callChildRef.js +19 -0
  242. package/cjs/lib/callChildRef/callChildRef.js.map +1 -0
  243. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  244. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +20 -0
  245. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  246. package/cjs/lib/getDisplayName.d.ts +3 -0
  247. package/cjs/lib/getDisplayName.js +9 -0
  248. package/cjs/lib/getDisplayName.js.map +1 -0
  249. package/cjs/lib/locale/types.d.ts +0 -2
  250. package/cjs/lib/locale/types.js +0 -2
  251. package/cjs/lib/locale/types.js.map +1 -1
  252. package/cjs/lib/rootNode/getRootNode.d.ts +3 -0
  253. package/cjs/lib/rootNode/getRootNode.js +27 -0
  254. package/cjs/lib/rootNode/getRootNode.js.map +1 -0
  255. package/cjs/lib/rootNode/index.d.ts +2 -0
  256. package/cjs/lib/rootNode/index.js +2 -0
  257. package/cjs/lib/rootNode/index.js.map +1 -0
  258. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  259. package/cjs/lib/rootNode/rootNodeDecorator.js +31 -0
  260. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -0
  261. package/cjs/lib/theming/AnimationKeyframes.js +1 -1
  262. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  263. package/cjs/lib/theming/Emotion.js +1 -0
  264. package/cjs/lib/theming/Emotion.js.map +1 -1
  265. package/cjs/lib/theming/useTheme.d.ts +1 -0
  266. package/cjs/lib/theming/useTheme.js +7 -0
  267. package/cjs/lib/theming/useTheme.js.map +1 -0
  268. package/cjs/lib/utils.d.ts +35 -1
  269. package/cjs/lib/utils.js +77 -22
  270. package/cjs/lib/utils.js.map +1 -1
  271. package/cjs/lib/withClassWrapper.d.ts +71 -0
  272. package/cjs/lib/withClassWrapper.js +59 -0
  273. package/cjs/lib/withClassWrapper.js.map +1 -0
  274. package/cjs/typings/html-props.d.ts +123 -0
  275. package/components/Autocomplete/Autocomplete/Autocomplete.js +19 -16
  276. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  277. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  278. package/components/Button/Button/Button.js +24 -15
  279. package/components/Button/Button/Button.js.map +1 -1
  280. package/components/Button/Button.d.ts +5 -1
  281. package/components/Button/Button.styles/Button.styles.js +31 -28
  282. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  283. package/components/Button/Button.styles.d.ts +1 -0
  284. package/components/Center/Center/Center.js +14 -9
  285. package/components/Center/Center/Center.js.map +1 -1
  286. package/components/Center/Center.d.ts +1 -0
  287. package/components/Checkbox/Checkbox/Checkbox.js +34 -30
  288. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  289. package/components/Checkbox/Checkbox.d.ts +3 -3
  290. package/components/ComboBox/ComboBox/ComboBox.js +38 -32
  291. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  292. package/components/ComboBox/ComboBox.d.ts +2 -0
  293. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +62 -27
  294. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  295. package/components/CurrencyInput/CurrencyInput.d.ts +4 -3
  296. package/components/DateInput/DateInput/DateInput.js +7 -3
  297. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  298. package/components/DateInput/DateInput.d.ts +1 -0
  299. package/components/DatePicker/DatePicker/DatePicker.js +29 -22
  300. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  301. package/components/DatePicker/DatePicker.d.ts +4 -2
  302. package/components/Dropdown/Dropdown/Dropdown.js +15 -13
  303. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  304. package/components/Dropdown/Dropdown.d.ts +1 -0
  305. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +15 -9
  306. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  307. package/components/DropdownMenu/DropdownMenu.d.ts +3 -2
  308. package/components/FxInput/FxInput/FxInput.js +13 -9
  309. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  310. package/components/FxInput/FxInput.d.ts +1 -0
  311. package/components/Gapped/Gapped/Gapped.js +24 -21
  312. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  313. package/components/Gapped/Gapped.d.ts +2 -0
  314. package/components/Group/Group/Group.js +22 -9
  315. package/components/Group/Group/Group.js.map +1 -1
  316. package/components/Group/Group.d.ts +1 -0
  317. package/components/Hint/Hint/Hint.js +18 -12
  318. package/components/Hint/Hint/Hint.js.map +1 -1
  319. package/components/Hint/Hint.d.ts +5 -3
  320. package/components/Input/Input/Input.js +29 -14
  321. package/components/Input/Input/Input.js.map +1 -1
  322. package/components/Input/Input.d.ts +8 -1
  323. package/components/Kebab/Kebab/Kebab.js +12 -7
  324. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  325. package/components/Kebab/Kebab.d.ts +3 -2
  326. package/components/Link/Link/Link.js +15 -11
  327. package/components/Link/Link/Link.js.map +1 -1
  328. package/components/Link/Link.d.ts +1 -0
  329. package/components/Loader/Loader/Loader.js +19 -13
  330. package/components/Loader/Loader/Loader.js.map +1 -1
  331. package/components/Loader/Loader.d.ts +1 -0
  332. package/components/MenuItem/MenuItem/MenuItem.js +19 -17
  333. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  334. package/components/MenuItem/MenuItem.d.ts +2 -1
  335. package/components/Modal/Modal/Modal.js +1 -1
  336. package/components/Modal/Modal/Modal.js.map +1 -1
  337. package/components/Modal/ModalBody/ModalBody.js +16 -10
  338. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  339. package/components/Modal/ModalBody.d.ts +1 -0
  340. package/components/Paging/Paging/Paging.js +17 -14
  341. package/components/Paging/Paging/Paging.js.map +1 -1
  342. package/components/Paging/Paging.d.ts +2 -2
  343. package/components/PasswordInput/PasswordInput/PasswordInput.js +18 -14
  344. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  345. package/components/PasswordInput/PasswordInput.d.ts +3 -2
  346. package/components/Radio/Radio/Radio.js +21 -20
  347. package/components/Radio/Radio/Radio.js.map +1 -1
  348. package/components/Radio/Radio.d.ts +5 -10
  349. package/components/RadioGroup/RadioGroup/RadioGroup.js +36 -29
  350. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  351. package/components/RadioGroup/RadioGroup.d.ts +11 -26
  352. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js +12 -0
  353. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js.map +1 -0
  354. package/components/RadioGroup/RadioGroupContext/package.json +6 -0
  355. package/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  356. package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
  357. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  358. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +15 -9
  359. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  360. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  361. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
  362. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  363. package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  364. package/components/Select/Select/Select.js +14 -6
  365. package/components/Select/Select/Select.js.map +1 -1
  366. package/components/Select/Select.d.ts +1 -0
  367. package/components/SidePage/SidePage/SidePage.js +27 -3
  368. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  369. package/components/SidePage/SidePage.d.ts +3 -0
  370. package/components/SidePage/SidePageBody/SidePageBody.js +16 -10
  371. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  372. package/components/SidePage/SidePageBody.d.ts +1 -0
  373. package/components/SidePage/SidePageContainer/SidePageContainer.js +16 -9
  374. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  375. package/components/SidePage/SidePageContainer.d.ts +1 -0
  376. package/components/SidePage/SidePageFooter/SidePageFooter.js +22 -19
  377. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  378. package/components/SidePage/SidePageFooter.d.ts +1 -2
  379. package/components/SidePage/SidePageHeader/SidePageHeader.js +15 -10
  380. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  381. package/components/SidePage/SidePageHeader.d.ts +1 -0
  382. package/components/Spinner/Spinner/Spinner.js +14 -6
  383. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  384. package/components/Spinner/Spinner.d.ts +9 -0
  385. package/components/Spinner/Spinner.md +1 -0
  386. package/components/Spinner/Spinner.styles/Spinner.styles.js +12 -9
  387. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  388. package/components/Spinner/Spinner.styles.d.ts +2 -1
  389. package/components/Sticky/Sticky/Sticky.js +13 -8
  390. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  391. package/components/Sticky/Sticky.d.ts +1 -0
  392. package/components/Switcher/Switcher/Switcher.js +11 -6
  393. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  394. package/components/Switcher/Switcher.d.ts +1 -0
  395. package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
  396. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  397. package/components/Tabs/Indicator/Indicator.js +16 -14
  398. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  399. package/components/Tabs/Indicator.d.ts +1 -0
  400. package/components/Tabs/Tab/Tab.js +31 -34
  401. package/components/Tabs/Tab/Tab.js.map +1 -1
  402. package/components/Tabs/Tab.d.ts +2 -1
  403. package/components/Tabs/Tabs/Tabs.js +20 -20
  404. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  405. package/components/Tabs/Tabs.d.ts +1 -0
  406. package/components/Textarea/Textarea/Textarea.js +21 -17
  407. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  408. package/components/Textarea/Textarea.d.ts +1 -0
  409. package/components/Toast/Toast/Toast.js +29 -14
  410. package/components/Toast/Toast/Toast.js.map +1 -1
  411. package/components/Toast/Toast.d.ts +3 -0
  412. package/components/Toast/ToastView/ToastView.js +10 -5
  413. package/components/Toast/ToastView/ToastView.js.map +1 -1
  414. package/components/Toast/ToastView.d.ts +1 -0
  415. package/components/Toggle/Toggle/Toggle.js +16 -11
  416. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  417. package/components/Toggle/Toggle.d.ts +1 -0
  418. package/components/Token/Token/Token.js +11 -4
  419. package/components/Token/Token/Token.js.map +1 -1
  420. package/components/Token/Token.d.ts +1 -0
  421. package/components/TokenInput/TokenInput/TokenInput.js +12 -6
  422. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  423. package/components/TokenInput/TokenInput.d.ts +1 -0
  424. package/components/Tooltip/Tooltip/Tooltip.js +26 -17
  425. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  426. package/components/Tooltip/Tooltip.d.ts +11 -22
  427. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +23 -17
  428. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  429. package/components/TooltipMenu/TooltipMenu.d.ts +3 -2
  430. package/index.d.ts +1 -1
  431. package/index.js +2 -2
  432. package/index.js.map +1 -1
  433. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +37 -10
  434. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  435. package/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  436. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -3
  437. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  438. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +23 -13
  439. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  440. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  441. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +12 -4
  442. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  443. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  444. package/internal/DateSelect/DateSelect/DateSelect.js +5 -5
  445. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  446. package/internal/DateSelect/DateSelect.d.ts +2 -2
  447. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +11 -15
  448. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  449. package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  450. package/internal/FocusTrap/FocusTrap/FocusTrap.js +17 -9
  451. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  452. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  453. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +13 -7
  454. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  455. package/internal/InputLikeText/InputLikeText/InputLikeText.js +11 -6
  456. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  457. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  458. package/internal/InternalMenu/InternalMenu/InternalMenu.js +24 -25
  459. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  460. package/internal/InternalMenu/InternalMenu.d.ts +2 -3
  461. package/internal/MaskedInput/MaskedInput/MaskedInput.js +7 -7
  462. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  463. package/internal/MaskedInput/MaskedInput.d.ts +2 -2
  464. package/internal/Menu/Menu/Menu.js +11 -8
  465. package/internal/Menu/Menu/Menu.js.map +1 -1
  466. package/internal/Menu/Menu.d.ts +1 -0
  467. package/internal/Popup/Popup/Popup.js +85 -68
  468. package/internal/Popup/Popup/Popup.js.map +1 -1
  469. package/internal/Popup/Popup.d.ts +9 -8
  470. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  471. package/internal/Popup/PopupHelper.d.ts +2 -2
  472. package/{components/FileUploader/locale → internal/Popup}/types/package.json +1 -1
  473. package/{components/FileUploader/locale → internal/Popup}/types/types.js +0 -0
  474. package/{components/FileUploader/locale → internal/Popup}/types/types.js.map +0 -0
  475. package/internal/Popup/types.d.ts +1 -0
  476. package/internal/PopupMenu/PopupMenu/PopupMenu.js +15 -10
  477. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  478. package/internal/PopupMenu/PopupMenu.d.ts +4 -3
  479. package/internal/PopupMenu/validatePositions/validatePositions.js +2 -2
  480. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  481. package/internal/PopupMenu/validatePositions.d.ts +2 -2
  482. package/internal/RenderContainer/RenderContainer/RenderContainer.js +3 -1
  483. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  484. package/internal/RenderContainer/RenderContainer.d.ts +1 -1
  485. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +2 -3
  486. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  487. package/internal/RenderLayer/RenderLayer/RenderLayer.js +20 -18
  488. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  489. package/internal/RenderLayer/RenderLayer.d.ts +3 -1
  490. package/internal/ThemePlayground/Playground/Playground.js +1 -11
  491. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  492. package/internal/ThemePlayground/Playground.d.ts +0 -1
  493. package/internal/ThemePlayground/darkTheme/darkTheme.js +1 -26
  494. package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
  495. package/internal/ThemePlayground/darkTheme.d.ts +0 -15
  496. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +35 -43
  497. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  498. package/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  499. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  500. package/internal/ZIndex/ZIndex/ZIndex.js +20 -8
  501. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  502. package/internal/ZIndex/ZIndex.d.ts +2 -0
  503. package/internal/icons/16px/index/index.js +83 -78
  504. package/internal/icons/16px/index/index.js.map +1 -1
  505. package/internal/icons/16px/index.d.ts +17 -19
  506. package/internal/icons/SpinnerIcon/SpinnerIcon.js +5 -2
  507. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  508. package/internal/icons/SpinnerIcon.d.ts +4 -1
  509. package/internal/themes/DefaultTheme/DefaultTheme.js +0 -67
  510. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  511. package/internal/themes/DefaultTheme.d.ts +0 -23
  512. package/lib/ModalStack/ModalStack.js +9 -13
  513. package/lib/ModalStack/ModalStack.js.map +1 -1
  514. package/lib/callChildRef/callChildRef/callChildRef.js +14 -0
  515. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -0
  516. package/lib/callChildRef/callChildRef/package.json +6 -0
  517. package/lib/callChildRef/callChildRef.d.ts +3 -0
  518. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +19 -0
  519. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  520. package/lib/events/fixFirefoxModifiedClickOnLabel/package.json +6 -0
  521. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  522. package/lib/getDisplayName/getDisplayName.js +3 -0
  523. package/lib/getDisplayName/getDisplayName.js.map +1 -0
  524. package/lib/getDisplayName/package.json +6 -0
  525. package/lib/getDisplayName.d.ts +3 -0
  526. package/lib/locale/types/types.js.map +1 -1
  527. package/lib/locale/types.d.ts +0 -2
  528. package/lib/rootNode/getRootNode/getRootNode.js +25 -0
  529. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -0
  530. package/lib/rootNode/getRootNode/package.json +6 -0
  531. package/lib/rootNode/getRootNode.d.ts +3 -0
  532. package/lib/rootNode/index/index.js +2 -0
  533. package/lib/rootNode/index/index.js.map +1 -0
  534. package/{components/FileUploader → lib/rootNode}/index/package.json +1 -1
  535. package/lib/rootNode/index.d.ts +2 -0
  536. package/{components/FileUploader → lib/rootNode}/package.json +1 -1
  537. package/lib/rootNode/rootNodeDecorator/package.json +6 -0
  538. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +37 -0
  539. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -0
  540. package/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  541. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
  542. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  543. package/lib/theming/Emotion/Emotion.js +1 -0
  544. package/lib/theming/Emotion/Emotion.js.map +1 -1
  545. package/lib/theming/useTheme/package.json +6 -0
  546. package/lib/theming/useTheme/useTheme.js +5 -0
  547. package/lib/theming/useTheme/useTheme.js.map +1 -0
  548. package/lib/theming/useTheme.d.ts +1 -0
  549. package/lib/utils/utils.js +77 -19
  550. package/lib/utils/utils.js.map +1 -1
  551. package/lib/utils.d.ts +35 -1
  552. package/lib/withClassWrapper/package.json +6 -0
  553. package/lib/withClassWrapper/withClassWrapper.js +70 -0
  554. package/lib/withClassWrapper/withClassWrapper.js.map +1 -0
  555. package/lib/withClassWrapper.d.ts +71 -0
  556. package/package.json +14 -3
  557. package/typings/html-props.d.ts +123 -0
  558. package/cjs/components/FileUploader/FileUploader.d.ts +0 -31
  559. package/cjs/components/FileUploader/FileUploader.js +0 -270
  560. package/cjs/components/FileUploader/FileUploader.js.map +0 -1
  561. package/cjs/components/FileUploader/FileUploader.md +0 -67
  562. package/cjs/components/FileUploader/FileUploader.styles.d.ts +0 -19
  563. package/cjs/components/FileUploader/FileUploader.styles.js +0 -159
  564. package/cjs/components/FileUploader/FileUploader.styles.js.map +0 -1
  565. package/cjs/components/FileUploader/index.d.ts +0 -4
  566. package/cjs/components/FileUploader/index.js +0 -4
  567. package/cjs/components/FileUploader/index.js.map +0 -1
  568. package/cjs/components/FileUploader/locale/index.d.ts +0 -4
  569. package/cjs/components/FileUploader/locale/index.js +0 -11
  570. package/cjs/components/FileUploader/locale/index.js.map +0 -1
  571. package/cjs/components/FileUploader/locale/locales/en.d.ts +0 -2
  572. package/cjs/components/FileUploader/locale/locales/en.js +0 -7
  573. package/cjs/components/FileUploader/locale/locales/en.js.map +0 -1
  574. package/cjs/components/FileUploader/locale/locales/ru.d.ts +0 -2
  575. package/cjs/components/FileUploader/locale/locales/ru.js +0 -7
  576. package/cjs/components/FileUploader/locale/locales/ru.js.map +0 -1
  577. package/cjs/components/FileUploader/locale/types.d.ts +0 -6
  578. package/cjs/hooks/useDrop.d.ts +0 -11
  579. package/cjs/hooks/useDrop.js +0 -75
  580. package/cjs/hooks/useDrop.js.map +0 -1
  581. package/cjs/hooks/useMemoObject.d.ts +0 -1
  582. package/cjs/hooks/useMemoObject.js +0 -5
  583. package/cjs/hooks/useMemoObject.js.map +0 -1
  584. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
  585. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +0 -15
  586. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +0 -1
  587. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
  588. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +0 -107
  589. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +0 -1
  590. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
  591. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +0 -187
  592. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +0 -1
  593. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
  594. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +0 -66
  595. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +0 -1
  596. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
  597. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +0 -24
  598. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  599. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
  600. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +0 -17
  601. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
  602. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
  603. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js +0 -16
  604. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +0 -1
  605. package/cjs/internal/FileUploaderControl/fileUtils.d.ts +0 -18
  606. package/cjs/internal/FileUploaderControl/fileUtils.js +0 -55
  607. package/cjs/internal/FileUploaderControl/fileUtils.js.map +0 -1
  608. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  609. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js +0 -4
  610. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js.map +0 -1
  611. package/cjs/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
  612. package/cjs/internal/FileUploaderControl/hooks/useUpload.js +0 -51
  613. package/cjs/internal/FileUploaderControl/hooks/useUpload.js.map +0 -1
  614. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
  615. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +0 -18
  616. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +0 -1
  617. package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  618. package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
  619. package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
  620. package/cjs/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
  621. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +0 -34
  622. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +0 -1
  623. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  624. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js +0 -23
  625. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js.map +0 -1
  626. package/cjs/lib/guidUtils.d.ts +0 -1
  627. package/cjs/lib/guidUtils.js +0 -5
  628. package/cjs/lib/guidUtils.js.map +0 -1
  629. package/cjs/lib/locale/useLocaleForControl.d.ts +0 -3
  630. package/cjs/lib/locale/useLocaleForControl.js +0 -14
  631. package/cjs/lib/locale/useLocaleForControl.js.map +0 -1
  632. package/cjs/lib/stringUtils.d.ts +0 -1
  633. package/cjs/lib/stringUtils.js +0 -13
  634. package/cjs/lib/stringUtils.js.map +0 -1
  635. package/components/FileUploader/FileUploader/FileUploader.js +0 -277
  636. package/components/FileUploader/FileUploader/FileUploader.js.map +0 -1
  637. package/components/FileUploader/FileUploader/package.json +0 -6
  638. package/components/FileUploader/FileUploader.d.ts +0 -31
  639. package/components/FileUploader/FileUploader.md +0 -67
  640. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +0 -56
  641. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +0 -1
  642. package/components/FileUploader/FileUploader.styles/package.json +0 -6
  643. package/components/FileUploader/FileUploader.styles.d.ts +0 -19
  644. package/components/FileUploader/index/index.js +0 -3
  645. package/components/FileUploader/index/index.js.map +0 -1
  646. package/components/FileUploader/index.d.ts +0 -4
  647. package/components/FileUploader/locale/index/index.js +0 -8
  648. package/components/FileUploader/locale/index/index.js.map +0 -1
  649. package/components/FileUploader/locale/index/package.json +0 -6
  650. package/components/FileUploader/locale/index.d.ts +0 -4
  651. package/components/FileUploader/locale/locales/en/en.js +0 -6
  652. package/components/FileUploader/locale/locales/en/en.js.map +0 -1
  653. package/components/FileUploader/locale/locales/en/package.json +0 -6
  654. package/components/FileUploader/locale/locales/en.d.ts +0 -2
  655. package/components/FileUploader/locale/locales/ru/package.json +0 -6
  656. package/components/FileUploader/locale/locales/ru/ru.js +0 -6
  657. package/components/FileUploader/locale/locales/ru/ru.js.map +0 -1
  658. package/components/FileUploader/locale/locales/ru.d.ts +0 -2
  659. package/components/FileUploader/locale/package.json +0 -6
  660. package/components/FileUploader/locale/types.d.ts +0 -6
  661. package/hooks/useDrop/package.json +0 -6
  662. package/hooks/useDrop/useDrop.js +0 -57
  663. package/hooks/useDrop/useDrop.js.map +0 -1
  664. package/hooks/useDrop.d.ts +0 -11
  665. package/hooks/useMemoObject/package.json +0 -6
  666. package/hooks/useMemoObject/useMemoObject.js +0 -6
  667. package/hooks/useMemoObject/useMemoObject.js.map +0 -1
  668. package/hooks/useMemoObject.d.ts +0 -1
  669. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js +0 -2
  670. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +0 -1
  671. package/internal/FileUploaderControl/FileUploaderControlContext/package.json +0 -6
  672. package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
  673. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +0 -79
  674. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +0 -1
  675. package/internal/FileUploaderControl/FileUploaderControlProvider/package.json +0 -6
  676. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
  677. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +0 -176
  678. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +0 -1
  679. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/package.json +0 -6
  680. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
  681. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +0 -32
  682. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +0 -1
  683. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/package.json +0 -6
  684. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
  685. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +0 -23
  686. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  687. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/package.json +0 -6
  688. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
  689. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +0 -11
  690. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +0 -1
  691. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/package.json +0 -6
  692. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
  693. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js +0 -18
  694. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js.map +0 -1
  695. package/internal/FileUploaderControl/FileUploaderFileValidationResult/package.json +0 -6
  696. package/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
  697. package/internal/FileUploaderControl/fileUtils/fileUtils.js +0 -85
  698. package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +0 -1
  699. package/internal/FileUploaderControl/fileUtils/package.json +0 -6
  700. package/internal/FileUploaderControl/fileUtils.d.ts +0 -18
  701. package/internal/FileUploaderControl/hooks/useControlLocale/package.json +0 -6
  702. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js +0 -5
  703. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js.map +0 -1
  704. package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  705. package/internal/FileUploaderControl/hooks/useUpload/package.json +0 -6
  706. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js +0 -56
  707. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js.map +0 -1
  708. package/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
  709. package/internal/FileUploaderControl/withFileUploaderControlProvider/package.json +0 -6
  710. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +0 -16
  711. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +0 -1
  712. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
  713. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
  714. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
  715. package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
  716. package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  717. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +0 -49
  718. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +0 -1
  719. package/internal/TextWidthHelper/TextWidthHelper/package.json +0 -6
  720. package/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
  721. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js +0 -14
  722. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js.map +0 -1
  723. package/internal/TextWidthHelper/TextWidthHelper.styles/package.json +0 -6
  724. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  725. package/lib/guidUtils/guidUtils.js +0 -4
  726. package/lib/guidUtils/guidUtils.js.map +0 -1
  727. package/lib/guidUtils/package.json +0 -6
  728. package/lib/guidUtils.d.ts +0 -1
  729. package/lib/locale/useLocaleForControl/package.json +0 -6
  730. package/lib/locale/useLocaleForControl/useLocaleForControl.js +0 -12
  731. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +0 -1
  732. package/lib/locale/useLocaleForControl.d.ts +0 -3
  733. package/lib/stringUtils/package.json +0 -6
  734. package/lib/stringUtils/stringUtils.js +0 -12
  735. package/lib/stringUtils/stringUtils.js.map +0 -1
  736. package/lib/stringUtils.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["Checkbox.tsx"],"names":["Checkbox","state","focusedByTab","indeterminate","props","initialIndeterminate","theme","input","componentDidMount","setIndeterminate","setState","resetIndeterminate","renderMain","error","warning","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","rest","isIndeterminate","rootClass","styles","root","rootFallback","isIE11","isEdge","rootChecked","checked","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","inputRef","caption","children","captionClass","captionIE11","iconClass","iconUnchecked","iconFixBaseline","isFirefox","box","globalClasses","boxChecked","boxDisabled","boxFocus","boxError","boxWarning","e","requestAnimationFrame","keyListener","isTabPressed","event","currentTarget","undefined","UNSAFE_componentWillReceiveProps","nextProps","render","focus","blur","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isFirefox, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles, globalClasses } from './Checkbox.styles';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n}\n\nexport class Checkbox extends React.Component<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n };\n\n private theme!: Theme;\n private input: Nullable<HTMLInputElement>;\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input) {\n this.input.indeterminate = true;\n }\n };\n\n public UNSAFE_componentWillReceiveProps(nextProps: CheckboxProps) {\n if (nextProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input) {\n this.input.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input) {\n this.input.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const rootClass = cx({\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.inputRef,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const iconClass = cx({\n [styles.iconUnchecked()]: !props.checked && !isIndeterminate,\n [styles.iconFixBaseline()]: isFirefox || isIE11 || isEdge,\n });\n\n const box = (\n <span\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxDisabled(this.theme)]: props.disabled,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n })}\n >\n {(isIndeterminate && <SquareIcon className={iconClass} />) || <OkIcon className={iconClass} />}\n </span>\n );\n\n return (\n <label className={rootClass} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} onMouseOver={onMouseOver}>\n <input {...inputProps} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private inputRef = (ref: HTMLInputElement | null) => {\n this.input = ref;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input) {\n const checked = !this.input.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["Checkbox.tsx"],"names":["Checkbox","rootNode","state","focusedByTab","indeterminate","props","initialIndeterminate","theme","input","React","createRef","componentDidMount","current","setRootNode","setIndeterminate","setState","resetIndeterminate","renderMain","error","warning","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","rest","isIndeterminate","rootClass","styles","root","rootFallback","isIE11","isEdge","rootChecked","checked","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","iconClass","iconUnchecked","iconFixBaseline","isFirefox","box","globalClasses","boxChecked","boxDisabled","boxFocus","boxError","boxWarning","e","requestAnimationFrame","keyListener","isTabPressed","event","currentTarget","undefined","componentDidUpdate","prevProps","render","focus","blur","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isFirefox, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\n\nimport { styles, globalClasses } from './Checkbox.styles';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n}\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const rootClass = cx({\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const iconClass = cx({\n [styles.iconUnchecked()]: !props.checked && !isIndeterminate,\n [styles.iconFixBaseline()]: isFirefox || isIE11 || isEdge,\n });\n\n const box = (\n <span\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxDisabled(this.theme)]: props.disabled,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n })}\n >\n {(isIndeterminate && <SquareIcon className={iconClass} />) || <OkIcon className={iconClass} />}\n </span>\n );\n\n return (\n <label\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
@@ -140,6 +140,7 @@ export declare class ComboBox<T = ComboBoxItem> extends React.Component<ComboBox
140
140
  drawArrow: boolean;
141
141
  };
142
142
  private comboboxElement;
143
+ private setRootNode;
143
144
  /**
144
145
  * @public
145
146
  */
@@ -179,4 +180,5 @@ export declare class ComboBox<T = ComboBoxItem> extends React.Component<ComboBox
179
180
  */
180
181
  reset(): void;
181
182
  render(): JSX.Element;
183
+ private customComboBoxRef;
182
184
  }
@@ -1,10 +1,11 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.ComboBox = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
2
 
3
- var _CustomComboBox = require("../../internal/CustomComboBox");var
3
+ var _CustomComboBox = require("../../internal/CustomComboBox");
4
4
 
5
5
 
6
6
 
7
7
 
8
+ var _rootNode = require("../../lib/rootNode");var _class, _class2, _temp;var
8
9
 
9
10
 
10
11
 
@@ -165,8 +166,8 @@ var _CustomComboBox = require("../../internal/CustomComboBox");var
165
166
 
166
167
 
167
168
 
168
- ComboBox = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(ComboBox, _React$Component);function ComboBox() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
169
169
 
170
+ ComboBox = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(ComboBox, _React$Component);function ComboBox() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
170
171
 
171
172
 
172
173
 
@@ -178,86 +179,115 @@ ComboBox = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default
178
179
 
179
180
 
180
181
 
181
- comboboxElement = null;return _this;}var _proto = ComboBox.prototype;
182
182
 
183
- /**
183
+ comboboxElement = null;_this.
184
+ setRootNode = void 0;_this.
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+ customComboBoxRef = function (element) {
269
+ _this.setRootNode(element);
270
+ _this.comboboxElement = element;
271
+ };return _this;}var _proto = ComboBox.prototype; /**
184
272
  * @public
185
- */_proto.
186
- focus = function focus() {
187
- if (this.comboboxElement) {
188
- this.comboboxElement.focus();
189
- }
190
- }
191
-
192
- /**
273
+ */_proto.focus = function focus() {if (this.comboboxElement) {this.comboboxElement.focus();}} /**
193
274
  * @public
194
- */;_proto.
195
- blur = function blur() {
196
- if (this.comboboxElement) {
197
- this.comboboxElement.blur();
198
- }
199
- }
200
-
201
- /**
275
+ */;_proto.blur = function blur() {if (this.comboboxElement) {this.comboboxElement.blur();}} /**
202
276
  * Открывает выпадающий список и запускает поиск элементов
203
277
  *
204
278
  * @public
205
279
  * @param {string} [query] Текст поиска. По умолчанию берется
206
280
  * текст из инпута или результат `valueToString(value)`
207
- */;_proto.
208
- search = function search(query) {
209
- if (this.comboboxElement) {
210
- this.comboboxElement.search(query);
211
- }
212
- }
213
-
214
- /**
281
+ */;_proto.search = function search(query) {if (this.comboboxElement) {this.comboboxElement.search(query);}} /**
215
282
  * @public
216
- */;_proto.
217
- cancelSearch = function cancelSearch() {
218
- if (this.comboboxElement) {
219
- this.comboboxElement.cancelSearch();
220
- }
221
- }
222
-
223
- /**
283
+ */;_proto.cancelSearch = function cancelSearch() {if (this.comboboxElement) {this.comboboxElement.cancelSearch();}} /**
224
284
  * @public Открывает выпадающий список
225
- */;_proto.
226
- open = function open() {
227
- if (this.comboboxElement) {
228
- this.comboboxElement.open();
229
- }
230
- }
231
-
232
- /**
285
+ */;_proto.open = function open() {if (this.comboboxElement) {this.comboboxElement.open();}} /**
233
286
  * @public Закрывает выпадающий список
234
- */;_proto.
235
- close = function close() {
236
- if (this.comboboxElement) {
237
- this.comboboxElement.close();
238
- }
239
- }
240
-
241
- /**
287
+ */;_proto.close = function close() {if (this.comboboxElement) {this.comboboxElement.close();}} /**
242
288
  * Выделяет текст внутри input
243
289
  * @public
244
- */;_proto.
245
- selectInputText = function selectInputText() {
246
- if (this.comboboxElement) {
247
- this.comboboxElement.selectInputText();
248
- }
249
- }
250
-
251
- /**
290
+ */;_proto.selectInputText = function selectInputText() {if (this.comboboxElement) {this.comboboxElement.selectInputText();}} /**
252
291
  * Сбрасывает введенное пользователем значение
253
292
  * @public
254
- */;_proto.
255
- reset = function reset() {
256
- if (this.comboboxElement) {
257
- this.comboboxElement.reset();
258
- }
259
- };_proto.
260
-
261
- render = function render() {var _this2 = this;
262
- return /*#__PURE__*/_react.default.createElement(_CustomComboBox.CustomComboBox, (0, _extends2.default)({}, this.props, { ref: function ref(element) {return _this2.comboboxElement = element;} }));
263
- };return ComboBox;}(_react.default.Component);exports.ComboBox = ComboBox;ComboBox.__KONTUR_REACT_UI__ = 'ComboBox';ComboBox.defaultProps = { itemToValue: function itemToValue(item) {return item.value;}, valueToString: function valueToString(item) {return item.label;}, renderValue: function renderValue(item) {return item.label;}, renderItem: function renderItem(item) {return item.label;}, menuAlign: 'left', searchOnFocus: true, drawArrow: true };
293
+ */;_proto.reset = function reset() {if (this.comboboxElement) {this.comboboxElement.reset();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CustomComboBox.CustomComboBox, (0, _extends2.default)({}, this.props, { ref: this.customComboBoxRef }));};return ComboBox;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'ComboBox', _class2.defaultProps = { itemToValue: function itemToValue(item) {return item.value;}, valueToString: function valueToString(item) {return item.label;}, renderValue: function renderValue(item) {return item.label;}, renderItem: function renderItem(item) {return item.label;}, menuAlign: 'left', searchOnFocus: true, drawArrow: true }, _temp)) || _class;exports.ComboBox = ComboBox;
@@ -1 +1 @@
1
- {"version":3,"sources":["ComboBox.tsx"],"names":["ComboBox","comboboxElement","focus","blur","search","query","cancelSearch","open","close","selectInputText","reset","render","props","element","React","Component","__KONTUR_REACT_UI__","defaultProps","itemToValue","item","value","valueToString","label","renderValue","renderItem","menuAlign","searchOnFocus","drawArrow"],"mappings":"sUAAA;;AAEA,+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqKaA,Q;;;;;;;;;;;;;AAaHC,IAAAA,e,GAA+C,I;;AAEvD;AACF;AACA,K;AACSC,EAAAA,K,GAAP,iBAAe;AACb,QAAI,KAAKD,eAAT,EAA0B;AACxB,WAAKA,eAAL,CAAqBC,KAArB;AACD;AACF;;AAED;AACF;AACA,K;AACSC,EAAAA,I,GAAP,gBAAc;AACZ,QAAI,KAAKF,eAAT,EAA0B;AACxB,WAAKA,eAAL,CAAqBE,IAArB;AACD;AACF;;AAED;AACF;AACA;AACA;AACA;AACA;AACA,K;AACSC,EAAAA,M,GAAP,gBAAcC,KAAd,EAA8B;AAC5B,QAAI,KAAKJ,eAAT,EAA0B;AACxB,WAAKA,eAAL,CAAqBG,MAArB,CAA4BC,KAA5B;AACD;AACF;;AAED;AACF;AACA,K;AACSC,EAAAA,Y,GAAP,wBAAsB;AACpB,QAAI,KAAKL,eAAT,EAA0B;AACxB,WAAKA,eAAL,CAAqBK,YAArB;AACD;AACF;;AAED;AACF;AACA,K;AACSC,EAAAA,I,GAAP,gBAAc;AACZ,QAAI,KAAKN,eAAT,EAA0B;AACxB,WAAKA,eAAL,CAAqBM,IAArB;AACD;AACF;;AAED;AACF;AACA,K;AACSC,EAAAA,K,GAAP,iBAAe;AACb,QAAI,KAAKP,eAAT,EAA0B;AACxB,WAAKA,eAAL,CAAqBO,KAArB;AACD;AACF;;AAED;AACF;AACA;AACA,K;AACSC,EAAAA,e,GAAP,2BAAyB;AACvB,QAAI,KAAKR,eAAT,EAA0B;AACxB,WAAKA,eAAL,CAAqBQ,eAArB;AACD;AACF;;AAED;AACF;AACA;AACA,K;AACSC,EAAAA,K,GAAP,iBAAe;AACb,QAAI,KAAKT,eAAT,EAA0B;AACxB,WAAKA,eAAL,CAAqBS,KAArB;AACD;AACF,G;;AAEMC,EAAAA,M,GAAP,kBAAgB;AACd,wBAAO,6BAAC,8BAAD,6BAAoB,KAAKC,KAAzB,IAAgC,GAAG,EAAE,aAACC,OAAD,UAAc,MAAI,CAACZ,eAAL,GAAuBY,OAArC,EAArC,IAAP;AACD,G,mBA/F6CC,eAAMC,S,8BAAzCf,Q,CACGgB,mB,GAAsB,U,CADzBhB,Q,CAGGiB,Y,GAAe,EAC3BC,WAAW,EAAE,qBAACC,IAAD,UAAwBA,IAAI,CAACC,KAA7B,EADc,EAE3BC,aAAa,EAAE,uBAACF,IAAD,UAAwBA,IAAI,CAACG,KAA7B,EAFY,EAG3BC,WAAW,EAAE,qBAACJ,IAAD,UAAwBA,IAAI,CAACG,KAA7B,EAHc,EAI3BE,UAAU,EAAE,oBAACL,IAAD,UAAwBA,IAAI,CAACG,KAA7B,EAJe,EAK3BG,SAAS,EAAE,MALgB,EAM3BC,aAAa,EAAE,IANY,EAO3BC,SAAS,EAAE,IAPgB,E","sourcesContent":["import React from 'react';\n\nimport { CustomComboBox } from '../../internal/CustomComboBox';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuItemState } from '../MenuItem';\nimport { InputIconType } from '../Input';\nimport { CommonProps } from '../../internal/CommonWrapper';\n\nexport interface ComboBoxProps<T> extends CommonProps {\n align?: 'left' | 'center' | 'right';\n /**\n * Вызывает функцию поиска `getItems` при фокусе и очистке поля ввода\n * @default true\n */\n searchOnFocus?: boolean;\n /**\n * Рисует справа иконку в виде стрелки\n * @default true\n */\n drawArrow?: boolean;\n\n autoFocus?: boolean;\n\n borderless?: boolean;\n\n /**\n * Не использовать Portal для рендеринга меню.\n * См. https://github.com/skbkontur/retail-ui/issues/15\n * @default false\n */\n disablePortal?: boolean;\n\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n leftIcon?: InputIconType;\n\n rightIcon?: InputIconType;\n\n /**\n * Функция поиска элементов, должна возвращать Promise с массивом элементов.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n *\n * Элементы могут быть любого типа. В этом случае необходимо определить\n * свойства `itemToValue`, `renderValue`, `renderItem`, `valueToString`\n */\n getItems: (query: string) => Promise<T[]>;\n\n /**\n * Необходим для сравнения полученных результатов с `value`\n * @default item => item.label\n */\n itemToValue: (item: T) => string | number;\n\n maxLength?: number;\n\n menuAlign?: 'left' | 'right';\n\n onBlur?: () => void;\n\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n\n onFocus?: () => void;\n\n /**\n * Вызывается при изменении текста в поле ввода,\n * если результатом функции будет строка,\n * то она станет следующим состояним полем ввода\n */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /**\n * Функция для обработки ситуации, когда была введена\n * строка в инпут и был потерян фокус с элемента.\n *\n * Если при потере фокуса в выпадающем списке будет только один\n * элемент и результат `renderValue` с этим элементом будет\n * совпадать со значение в текстовом поле, то\n * сработает onValueChange со значением данного элемента\n *\n * Сама функция также может вернуть значение,\n * неравное `undefined`,\n * с которым будет вызван onValueChange.\n */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n placeholder?: string;\n\n /**\n * Функция отрисовки элементов результата поиска.\n * Не применяется если элемент является функцией или React-элементом\n * @default item => item.label\n */\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /**\n * Функция для отрисовки сообщения о пустом результате поиска\n * Если есть renderAddButton - не работает\n */\n renderNotFound?: () => React.ReactNode;\n\n /**\n * Функция отображающая сообщение об общем количестве элементов.\n * `found` учитывает только компонент `MenuItem`. Им \"оборачиваются\" элементы, возвращаемые `getItems()`.\n */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /**\n * Функция отрисовки выбранного значения\n * @default item => item.label\n */\n renderValue: (item: T) => React.ReactNode;\n\n /**\n * Функция отрисовки кнопки добавления в выпадающем списке\n */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /**\n * Общее количество элементов.\n * Необходим для работы `renderTotalCount`\n */\n totalCount?: number;\n\n /**\n * Выбранное значение\n * Ожидается, что `value` того же типа что и элементы в массиве,\n * возвращаемом в `getItems`\n */\n value?: Nullable<T>;\n\n /**\n * Необходим для преобразования `value` в строку при фокусировке\n * @default item => item.label\n */\n valueToString: (item: T) => string;\n\n size?: 'small' | 'medium' | 'large';\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n width?: string | number;\n\n maxMenuHeight?: number | string;\n\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n onMouseOver?: (e: React.MouseEvent) => void;\n\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n\n public static defaultProps = {\n itemToValue: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n };\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n\n /**\n * @public\n */\n public focus() {\n if (this.comboboxElement) {\n this.comboboxElement.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /**\n * Открывает выпадающий список и запускает поиск элементов\n *\n * @public\n * @param {string} [query] Текст поиска. По умолчанию берется\n * текст из инпута или результат `valueToString(value)`\n */\n public search(query?: string) {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /**\n * @public Открывает выпадающий список\n */\n public open() {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /**\n * @public Закрывает выпадающий список\n */\n public close() {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Выделяет текст внутри input\n * @public\n */\n public selectInputText() {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render() {\n return <CustomComboBox {...this.props} ref={(element) => (this.comboboxElement = element)} />;\n }\n}\n"]}
1
+ {"version":3,"sources":["ComboBox.tsx"],"names":["ComboBox","rootNode","comboboxElement","setRootNode","customComboBoxRef","element","focus","blur","search","query","cancelSearch","open","close","selectInputText","reset","render","props","React","Component","__KONTUR_REACT_UI__","defaultProps","itemToValue","item","value","valueToString","label","renderValue","renderItem","menuAlign","searchOnFocus","drawArrow"],"mappings":"sUAAA;;AAEA;;;;;AAKA,8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKaA,Q,OADZC,kB;;;;;;;;;;;;;AAcSC,IAAAA,e,GAA+C,I;AAC/CC,IAAAA,W;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFAC,IAAAA,iB,GAAoB,UAACC,OAAD,EAA0C;AACpE,YAAKF,WAAL,CAAiBE,OAAjB;AACA,YAAKH,eAAL,GAAuBG,OAAvB;AACD,K,gDArFD;AACF;AACA,K,OACSC,K,GAAP,iBAAe,CACb,IAAI,KAAKJ,eAAT,EAA0B,CACxB,KAAKA,eAAL,CAAqBI,KAArB,GACD,CACF,C,CAED;AACF;AACA,K,QACSC,I,GAAP,gBAAc,CACZ,IAAI,KAAKL,eAAT,EAA0B,CACxB,KAAKA,eAAL,CAAqBK,IAArB,GACD,CACF,C,CAED;AACF;AACA;AACA;AACA;AACA;AACA,K,QACSC,M,GAAP,gBAAcC,KAAd,EAA8B,CAC5B,IAAI,KAAKP,eAAT,EAA0B,CACxB,KAAKA,eAAL,CAAqBM,MAArB,CAA4BC,KAA5B,EACD,CACF,C,CAED;AACF;AACA,K,QACSC,Y,GAAP,wBAAsB,CACpB,IAAI,KAAKR,eAAT,EAA0B,CACxB,KAAKA,eAAL,CAAqBQ,YAArB,GACD,CACF,C,CAED;AACF;AACA,K,QACSC,I,GAAP,gBAAc,CACZ,IAAI,KAAKT,eAAT,EAA0B,CACxB,KAAKA,eAAL,CAAqBS,IAArB,GACD,CACF,C,CAED;AACF;AACA,K,QACSC,K,GAAP,iBAAe,CACb,IAAI,KAAKV,eAAT,EAA0B,CACxB,KAAKA,eAAL,CAAqBU,KAArB,GACD,CACF,C,CAED;AACF;AACA;AACA,K,QACSC,e,GAAP,2BAAyB,CACvB,IAAI,KAAKX,eAAT,EAA0B,CACxB,KAAKA,eAAL,CAAqBW,eAArB,GACD,CACF,C,CAED;AACF;AACA;AACA,K,QACSC,K,GAAP,iBAAe,CACb,IAAI,KAAKZ,eAAT,EAA0B,CACxB,KAAKA,eAAL,CAAqBY,KAArB,GACD,CACF,C,QAEMC,M,GAAP,kBAAgB,CACd,oBAAO,6BAAC,8BAAD,6BAAoB,KAAKC,KAAzB,IAAgC,GAAG,EAAE,KAAKZ,iBAA1C,IAAP,CACD,C,mBAhG6Ca,eAAMC,S,WACtCC,mB,GAAsB,U,UAEtBC,Y,GAAe,EAC3BC,WAAW,EAAE,qBAACC,IAAD,UAAwBA,IAAI,CAACC,KAA7B,EADc,EAE3BC,aAAa,EAAE,uBAACF,IAAD,UAAwBA,IAAI,CAACG,KAA7B,EAFY,EAG3BC,WAAW,EAAE,qBAACJ,IAAD,UAAwBA,IAAI,CAACG,KAA7B,EAHc,EAI3BE,UAAU,EAAE,oBAACL,IAAD,UAAwBA,IAAI,CAACG,KAA7B,EAJe,EAK3BG,SAAS,EAAE,MALgB,EAM3BC,aAAa,EAAE,IANY,EAO3BC,SAAS,EAAE,IAPgB,E","sourcesContent":["import React from 'react';\n\nimport { CustomComboBox } from '../../internal/CustomComboBox';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuItemState } from '../MenuItem';\nimport { InputIconType } from '../Input';\nimport { CommonProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nexport interface ComboBoxProps<T> extends CommonProps {\n align?: 'left' | 'center' | 'right';\n /**\n * Вызывает функцию поиска `getItems` при фокусе и очистке поля ввода\n * @default true\n */\n searchOnFocus?: boolean;\n /**\n * Рисует справа иконку в виде стрелки\n * @default true\n */\n drawArrow?: boolean;\n\n autoFocus?: boolean;\n\n borderless?: boolean;\n\n /**\n * Не использовать Portal для рендеринга меню.\n * См. https://github.com/skbkontur/retail-ui/issues/15\n * @default false\n */\n disablePortal?: boolean;\n\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n leftIcon?: InputIconType;\n\n rightIcon?: InputIconType;\n\n /**\n * Функция поиска элементов, должна возвращать Promise с массивом элементов.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n *\n * Элементы могут быть любого типа. В этом случае необходимо определить\n * свойства `itemToValue`, `renderValue`, `renderItem`, `valueToString`\n */\n getItems: (query: string) => Promise<T[]>;\n\n /**\n * Необходим для сравнения полученных результатов с `value`\n * @default item => item.label\n */\n itemToValue: (item: T) => string | number;\n\n maxLength?: number;\n\n menuAlign?: 'left' | 'right';\n\n onBlur?: () => void;\n\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n\n onFocus?: () => void;\n\n /**\n * Вызывается при изменении текста в поле ввода,\n * если результатом функции будет строка,\n * то она станет следующим состояним полем ввода\n */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /**\n * Функция для обработки ситуации, когда была введена\n * строка в инпут и был потерян фокус с элемента.\n *\n * Если при потере фокуса в выпадающем списке будет только один\n * элемент и результат `renderValue` с этим элементом будет\n * совпадать со значение в текстовом поле, то\n * сработает onValueChange со значением данного элемента\n *\n * Сама функция также может вернуть значение,\n * неравное `undefined`,\n * с которым будет вызван onValueChange.\n */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n placeholder?: string;\n\n /**\n * Функция отрисовки элементов результата поиска.\n * Не применяется если элемент является функцией или React-элементом\n * @default item => item.label\n */\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /**\n * Функция для отрисовки сообщения о пустом результате поиска\n * Если есть renderAddButton - не работает\n */\n renderNotFound?: () => React.ReactNode;\n\n /**\n * Функция отображающая сообщение об общем количестве элементов.\n * `found` учитывает только компонент `MenuItem`. Им \"оборачиваются\" элементы, возвращаемые `getItems()`.\n */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /**\n * Функция отрисовки выбранного значения\n * @default item => item.label\n */\n renderValue: (item: T) => React.ReactNode;\n\n /**\n * Функция отрисовки кнопки добавления в выпадающем списке\n */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /**\n * Общее количество элементов.\n * Необходим для работы `renderTotalCount`\n */\n totalCount?: number;\n\n /**\n * Выбранное значение\n * Ожидается, что `value` того же типа что и элементы в массиве,\n * возвращаемом в `getItems`\n */\n value?: Nullable<T>;\n\n /**\n * Необходим для преобразования `value` в строку при фокусировке\n * @default item => item.label\n */\n valueToString: (item: T) => string;\n\n size?: 'small' | 'medium' | 'large';\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n width?: string | number;\n\n maxMenuHeight?: number | string;\n\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n onMouseOver?: (e: React.MouseEvent) => void;\n\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\n@rootNode\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n\n public static defaultProps = {\n itemToValue: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n };\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.comboboxElement) {\n this.comboboxElement.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /**\n * Открывает выпадающий список и запускает поиск элементов\n *\n * @public\n * @param {string} [query] Текст поиска. По умолчанию берется\n * текст из инпута или результат `valueToString(value)`\n */\n public search(query?: string) {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /**\n * @public Открывает выпадающий список\n */\n public open() {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /**\n * @public Закрывает выпадающий список\n */\n public close() {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Выделяет текст внутри input\n * @public\n */\n public selectInputText() {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render() {\n return <CustomComboBox {...this.props} ref={this.customComboBoxRef} />;\n }\n\n private customComboBoxRef = (element: Nullable<CustomComboBox<T>>) => {\n this.setRootNode(element);\n this.comboboxElement = element;\n };\n}\n"]}
@@ -37,7 +37,7 @@ export interface CurrencyInputState {
37
37
  * <br/>
38
38
  * Если `fractionDigits=15`, то в целой части допускается **0**.
39
39
  */
40
- export declare class CurrencyInput extends React.Component<CurrencyInputProps, CurrencyInputState> {
40
+ export declare class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {
41
41
  static __KONTUR_REACT_UI__: string;
42
42
  static propTypes: {
43
43
  align: PropTypes.Requireable<string>;
@@ -72,9 +72,9 @@ export declare class CurrencyInput extends React.Component<CurrencyInputProps, C
72
72
  state: CurrencyInputState;
73
73
  private input;
74
74
  private tempSelectionForOnChange;
75
+ private setRootNode;
75
76
  componentDidMount(): void;
76
- UNSAFE_componentWillReceiveProps(nextProps: CurrencyInputProps): void;
77
- componentDidUpdate(): void;
77
+ componentDidUpdate(prevProps: CurrencyInputProps, prevState: CurrencyInputState): void;
78
78
  render(): JSX.Element;
79
79
  renderMain: (props: CommonWrapperRestProps<CurrencyInputProps>) => JSX.Element;
80
80
  /**
@@ -90,6 +90,7 @@ export declare class CurrencyInput extends React.Component<CurrencyInputProps, C
90
90
  private readonly debouncedSetSelectionFromEvent;
91
91
  private handleMouseUp;
92
92
  private handleKeyDown;
93
+ private scrollInput;
93
94
  private getSelection;
94
95
  private moveCursor;
95
96
  private extendSelection;
@@ -7,12 +7,13 @@ var _client = require("../../lib/client");
7
7
  var _Input = require("../Input");
8
8
 
9
9
  var _CommonWrapper = require("../../internal/CommonWrapper");
10
+ var _rootNode = require("../../lib/rootNode");
10
11
 
11
12
  var _constants = require("./constants");
12
13
  var _SelectionHelper = require("./SelectionHelper");
13
14
  var _CurrencyHelper = require("./CurrencyHelper");
14
15
  var _CurrencyInputHelper = require("./CurrencyInputHelper");
15
- var _CurrencyInputKeyboardActions = require("./CurrencyInputKeyboardActions");
16
+ var _CurrencyInputKeyboardActions = require("./CurrencyInputKeyboardActions");var _class, _class2, _temp;
16
17
 
17
18
 
18
19
 
@@ -53,7 +54,8 @@ var _CurrencyInputKeyboardActions = require("./CurrencyInputKeyboardActions");
53
54
  * <br/>
54
55
  * Если `fractionDigits=15`, то в целой части допускается **0**.
55
56
  */var
56
- CurrencyInput = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(CurrencyInput, _React$Component);function CurrencyInput() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
57
+
58
+ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(CurrencyInput, _React$PureComponent);function CurrencyInput() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
57
59
 
58
60
 
59
61
 
@@ -95,6 +97,10 @@ CurrencyInput = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.de
95
97
 
96
98
  input = void 0;_this.
97
99
  tempSelectionForOnChange = _SelectionHelper.SelectionHelper.fromPosition(0);_this.
100
+ setRootNode = void 0;_this.
101
+
102
+
103
+
98
104
 
99
105
 
100
106
 
@@ -283,6 +289,31 @@ CurrencyInput = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.de
283
289
 
284
290
  };_this.
285
291
 
292
+ scrollInput = function () {var _this$input;
293
+ var node = (_this$input = _this.input) == null ? void 0 : _this$input.getNode();
294
+ if (!node || node.scrollWidth === node.clientWidth) {
295
+ return;
296
+ }
297
+ var PAD = 1;
298
+ var SHIFT = 3;
299
+
300
+ var selection = _this.state.selection;
301
+ var selected = selection.start !== selection.end;
302
+ var position = selected && selection.direction === 'forward' ? selection.end : selection.start;
303
+ var charsCount = _this.state.formatted.length;
304
+ var charWidth = node.scrollWidth / charsCount;
305
+ var frame = Math.ceil(node.clientWidth / charWidth);
306
+ var frameStart = Math.ceil(node.scrollLeft / charWidth);
307
+ var frameEnd = frameStart + frame;
308
+
309
+ if (position < frameStart + PAD) {
310
+ node.scrollLeft = (position - SHIFT) * charWidth;
311
+ }
312
+ if (position > frameEnd - PAD) {
313
+ node.scrollLeft = (position - frame + SHIFT) * charWidth;
314
+ }
315
+ };_this.
316
+
286
317
  getSelection = function (input) {
287
318
  var selection = getInputSelectionFromEvent(input);
288
319
  return {
@@ -408,8 +439,8 @@ CurrencyInput = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.de
408
439
 
409
440
  refInput = function (element) {
410
441
  _this.input = element;
411
- };return _this;}var _proto = CurrencyInput.prototype;_proto.componentDidMount = function componentDidMount() {var _this$props = this.props,maxLength = _this$props.maxLength,integerDigits = _this$props.integerDigits,fractionDigits = _this$props.fractionDigits;(0, _warning.default)(maxLength === undefined, "[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'");(0, _warning.default)((integerDigits || 0) + (fractionDigits || 0) <= _constants.MAX_SAFE_DIGITS, "[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds " + _constants.MAX_SAFE_DIGITS + "." + "\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15");};_proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {var value = nextProps.value,fractionDigits = nextProps.fractionDigits,hideTrailingZeros = nextProps.hideTrailingZeros;if (value !== _CurrencyHelper.CurrencyHelper.parse(this.state.formatted) || fractionDigits !== this.props.fractionDigits) {var state = this.getState(value, fractionDigits, hideTrailingZeros);this.setState(state);}};_proto.componentDidUpdate = function componentDidUpdate() {if (this.state.focused && this.input) {var _this$state$selection = this.state.selection,start = _this$state$selection.start,end = _this$state$selection.end;this.input.setSelectionRange(start, end);}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, this.renderMain);};_proto.getState = function getState(value, fractionDigits, hideTrailingZeros) {return { formatted: _CurrencyHelper.CurrencyHelper.format(value, { fractionDigits: fractionDigits, hideTrailingZeros: hideTrailingZeros }), selection: _SelectionHelper.SelectionHelper.fromPosition(0) };};_proto.setSelectionFromEvent = function setSelectionFromEvent(event) {var selection = getInputSelectionFromEvent(event.target);var normilized = _CurrencyInputHelper.CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);this.setState({ selection: normilized });} // for IE11
412
- ;return CurrencyInput;}(_react.default.Component);exports.CurrencyInput = CurrencyInput;CurrencyInput.__KONTUR_REACT_UI__ = 'CurrencyInput';CurrencyInput.propTypes = { align: _propTypes.default.oneOf(['left', 'center', 'right']), autoFocus: _propTypes.default.bool, borderless: _propTypes.default.bool, disabled: _propTypes.default.bool, error: _propTypes.default.bool, fractionDigits: _propTypes.default.number, hideTrailingZeros: _propTypes.default.bool, leftIcon: _propTypes.default.element, placeholder: _propTypes.default.string, signed: _propTypes.default.bool, size: _propTypes.default.oneOf(['small', 'medium', 'large']), value: _propTypes.default.number, warning: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]), onBlur: _propTypes.default.func, onValueChange: _propTypes.default.func.isRequired, onFocus: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func, onSubmit: _propTypes.default.func };CurrencyInput.defaultProps = { align: 'right', fractionDigits: 2, hideTrailingZeros: false, value: null, inputMode: 'decimal' };
442
+ };return _this;}var _proto = CurrencyInput.prototype;_proto.componentDidMount = function componentDidMount() {var _this$props = this.props,maxLength = _this$props.maxLength,integerDigits = _this$props.integerDigits,fractionDigits = _this$props.fractionDigits;(0, _warning.default)(maxLength === undefined, "[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'");(0, _warning.default)((integerDigits || 0) + (fractionDigits || 0) <= _constants.MAX_SAFE_DIGITS, "[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds " + _constants.MAX_SAFE_DIGITS + "." + "\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15");};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var _this$props2 = this.props,value = _this$props2.value,fractionDigits = _this$props2.fractionDigits,hideTrailingZeros = _this$props2.hideTrailingZeros;if (value !== _CurrencyHelper.CurrencyHelper.parse(prevState.formatted) || prevProps.fractionDigits !== fractionDigits) {this.setState(this.getState(value, fractionDigits, hideTrailingZeros));}if (this.state.focused && this.input) {var _this$state$selection = this.state.selection,start = _this$state$selection.start,end = _this$state$selection.end;this.input.setSelectionRange(start, end);}if (prevState.selection !== this.state.selection) {this.scrollInput();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), this.renderMain);};_proto.getState = function getState(value, fractionDigits, hideTrailingZeros) {return { formatted: _CurrencyHelper.CurrencyHelper.format(value, { fractionDigits: fractionDigits, hideTrailingZeros: hideTrailingZeros }), selection: _SelectionHelper.SelectionHelper.fromPosition(0) };};_proto.setSelectionFromEvent = function setSelectionFromEvent(event) {var selection = getInputSelectionFromEvent(event.target);var normilized = _CurrencyInputHelper.CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);this.setState({ selection: normilized });} // for IE11
443
+ ;return CurrencyInput;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'CurrencyInput', _class2.propTypes = { align: _propTypes.default.oneOf(['left', 'center', 'right']), autoFocus: _propTypes.default.bool, borderless: _propTypes.default.bool, disabled: _propTypes.default.bool, error: _propTypes.default.bool, fractionDigits: _propTypes.default.number, hideTrailingZeros: _propTypes.default.bool, leftIcon: _propTypes.default.element, placeholder: _propTypes.default.string, signed: _propTypes.default.bool, size: _propTypes.default.oneOf(['small', 'medium', 'large']), value: _propTypes.default.number, warning: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]), onBlur: _propTypes.default.func, onValueChange: _propTypes.default.func.isRequired, onFocus: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func, onSubmit: _propTypes.default.func }, _class2.defaultProps = { align: 'right', fractionDigits: 2, hideTrailingZeros: false, value: null, inputMode: 'decimal' }, _temp)) || _class;exports.CurrencyInput = CurrencyInput;
413
444
 
414
445
  function getInputSelectionFromEvent(input) {
415
446
  if (!(input instanceof HTMLInputElement)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["CurrencyInput.tsx"],"names":["CurrencyInput","state","getState","props","value","fractionDigits","hideTrailingZeros","focused","input","tempSelectionForOnChange","SelectionHelper","fromPosition","renderMain","signed","onSubmit","integerDigits","rest","placeholder","CurrencyHelper","format","formatted","handleBlur","handleFocus","handleMouseUp","handleKeyDown","handleValueChange","handlePaste","handleCopy","handleCut","onMouseEnter","onMouseLeave","onMouseOver","refInput","focus","blur","debouncedSetSelectionFromEvent","setSelectionFromEvent","event","isIE11","persist","selection","getSelection","target","onKeyDown","defaultPrevented","action","CURRENCY_INPUT_ACTIONS","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","CurrencyInputHelper","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","length","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","getInputSelectionFromEvent","direction","step","position","extended","result","safeInsert","unsigned","parsedValue","parse","onValueChange","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","selectionStart","selectionEnd","selectionDirection","valueLenght","onFocus","onBlur","element","componentDidMount","maxLength","undefined","MAX_SAFE_DIGITS","UNSAFE_componentWillReceiveProps","nextProps","componentDidUpdate","setSelectionRange","render","normilized","normalizeSelection","React","Component","__KONTUR_REACT_UI__","propTypes","align","PropTypes","oneOf","autoFocus","bool","borderless","disabled","error","number","leftIcon","string","size","warning","width","oneOfType","func","isRequired","defaultProps","inputMode","HTMLInputElement","Error"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\n\nimport { isIE11 } from '../../lib/client';\nimport { Input, InputProps } from '../Input';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport { Selection, SelectionDirection, SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends CommonProps,\n Override<\n InputProps,\n {\n /** Значение */\n value: Nullable<number>;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros: boolean;\n /** Кол-во цифр после зяпятой */\n fractionDigits?: Nullable<number>;\n /** Отрицательные значения */\n signed?: boolean;\n /**\n * Допустимое кол-во цифр целой части.\n * Если передан **0**, или `fractionDigits=15`, то и в целой части допускается только **0**.\n */\n integerDigits?: Nullable<number>;\n /** Вызывается при изменении `value` */\n onValueChange: (value: Nullable<number>) => void;\n /** onSubmit */\n onSubmit?: () => void;\n }\n > {}\n\nexport interface CurrencyInputState {\n formatted: string;\n selection: Selection;\n focused: boolean;\n}\n\n/**\n * Поле для денежных сумм (и других числовых значений).\n * Принимает любые свойства `Input`.\n *\n * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).\n * <br/>\n * Если `fractionDigits=15`, то в целой части допускается **0**.\n */\nexport class CurrencyInput extends React.Component<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n\n public static propTypes = {\n align: PropTypes.oneOf(['left', 'center', 'right']),\n autoFocus: PropTypes.bool,\n borderless: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n fractionDigits: PropTypes.number,\n hideTrailingZeros: PropTypes.bool,\n leftIcon: PropTypes.element,\n placeholder: PropTypes.string,\n signed: PropTypes.bool,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n value: PropTypes.number,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onValueChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onSubmit: PropTypes.func,\n };\n\n public static defaultProps = {\n align: 'right',\n fractionDigits: 2,\n hideTrailingZeros: false,\n value: null,\n inputMode: 'decimal',\n };\n\n public state: CurrencyInputState = {\n ...this.getState(this.props.value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n };\n\n private input: Nullable<Input>;\n private tempSelectionForOnChange: Selection = SelectionHelper.fromPosition(0);\n\n public componentDidMount(): void {\n const { maxLength, integerDigits, fractionDigits } = this.props;\n warning(\n maxLength === undefined,\n `[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'`,\n );\n warning(\n (integerDigits || 0) + (fractionDigits || 0) <= MAX_SAFE_DIGITS,\n `[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n public UNSAFE_componentWillReceiveProps(nextProps: CurrencyInputProps) {\n const { value, fractionDigits, hideTrailingZeros } = nextProps;\n if (value !== CurrencyHelper.parse(this.state.formatted) || fractionDigits !== this.props.fractionDigits) {\n const state = this.getState(value, fractionDigits, hideTrailingZeros);\n this.setState(state);\n }\n }\n\n public componentDidUpdate() {\n if (this.state.focused && this.input) {\n const { start, end } = this.state.selection;\n\n this.input.setSelectionRange(start, end);\n }\n }\n\n public render() {\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>) => {\n const { fractionDigits, signed, onSubmit, integerDigits, hideTrailingZeros, ...rest } = props;\n const placeholder =\n this.props.placeholder == null\n ? CurrencyHelper.format(0, { fractionDigits, hideTrailingZeros })\n : this.props.placeholder;\n\n return (\n <Input\n {...rest}\n value={this.state.formatted}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onMouseUp={this.handleMouseUp}\n onKeyDown={this.handleKeyDown}\n onValueChange={this.handleValueChange}\n onPaste={this.handlePaste}\n onCopy={this.handleCopy}\n onCut={this.handleCut}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n ref={this.refInput}\n placeholder={this.state.focused ? '' : placeholder}\n />\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getState(value: Nullable<number>, fractionDigits: Nullable<number>, hideTrailingZeros: boolean) {\n return {\n formatted: CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros }),\n selection: SelectionHelper.fromPosition(0),\n };\n }\n\n private setSelectionFromEvent(event: React.MouseEvent<HTMLInputElement>) {\n const selection = getInputSelectionFromEvent(event.target);\n const normilized = CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);\n this.setState({ selection: normilized });\n }\n\n // for IE11\n private readonly debouncedSetSelectionFromEvent = debounce(this.setSelectionFromEvent, 300);\n\n private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n if (isIE11) {\n event.persist();\n this.debouncedSetSelectionFromEvent(event);\n } else {\n this.setSelectionFromEvent(event);\n }\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n this.tempSelectionForOnChange = selection;\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n const action = extractAction(event);\n\n if (action === CURRENCY_INPUT_ACTIONS.Ignore) {\n return;\n }\n\n if (action !== CURRENCY_INPUT_ACTIONS.Unknown) {\n event.preventDefault();\n }\n\n switch (action) {\n case CURRENCY_INPUT_ACTIONS.Submit: {\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Backspace: {\n this.inputValue(CurrencyInputHelper.moveCursor(this.state.formatted, selection, -1), selection.end, '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Delete: {\n this.inputValue(selection.start, CurrencyInputHelper.moveCursor(this.state.formatted, selection, +1), '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorLeft: {\n this.moveCursor(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorRight: {\n this.moveCursor(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Home: {\n this.setState({ selection: SelectionHelper.fromPosition(0) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.End: {\n const end = this.state.formatted.length;\n this.setState({ selection: SelectionHelper.fromPosition(end) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft: {\n this.extendSelection(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionRight: {\n this.extendSelection(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.FullSelection: {\n this.setState({\n selection: SelectionHelper.forward(0, this.state.formatted.length),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart: {\n this.setState({\n selection: SelectionHelper.backward(0, selection.start),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd: {\n const inputEnd = this.state.formatted.length;\n this.setState({\n selection: SelectionHelper.forward(selection.start, inputEnd),\n });\n return;\n }\n }\n };\n\n private getSelection = (input: EventTarget): Selection => {\n const selection = getInputSelectionFromEvent(input);\n return {\n start: selection.start,\n end: selection.end,\n direction: this.state.selection.direction,\n };\n };\n\n private moveCursor = (selection: Selection, step: number) => {\n const position = CurrencyInputHelper.moveCursor(this.state.formatted, selection, step);\n this.setState({ selection: SelectionHelper.fromPosition(position) });\n };\n\n private extendSelection = (selection: Selection, step: number) => {\n const extended = CurrencyInputHelper.extendSelection(this.state.formatted, selection, step);\n this.setState({ selection: extended });\n };\n\n private inputValue = (start: number, end: number, value: string) => {\n const result = CurrencyInputHelper.safeInsert(this.state.formatted, start, end, value, {\n integerDigits: this.props.integerDigits,\n fractionDigits: this.props.fractionDigits,\n unsigned: !this.props.signed,\n });\n if (result) {\n const formatted = result.value;\n const selection = SelectionHelper.fromPosition(result.position);\n this.setState({ formatted, selection }, () => {\n const parsedValue = CurrencyHelper.parse(formatted);\n if (this.props.value !== parsedValue) {\n this.props.onValueChange(parsedValue);\n }\n });\n return true;\n }\n\n if (this.input) {\n this.input.blink();\n }\n return false;\n };\n\n private getOnChangeDelta = (value: string) => {\n const selection = this.tempSelectionForOnChange;\n const oldValue = this.state.formatted;\n if (selection.start !== selection.end) {\n return value.substring(selection.start, value.length - (oldValue.length - selection.end));\n } else if (value.length > oldValue.length) {\n return value.substr(selection.start, value.length - oldValue.length);\n }\n return null;\n };\n\n private handleValueChange = (value: string): void => {\n const selection = this.tempSelectionForOnChange;\n const delta = this.getOnChangeDelta(value);\n if (delta != null && !this.inputValue(selection.start, selection.end, delta)) {\n this.setState({ selection });\n }\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const data = event.clipboardData.getData('text');\n const selection = this.getSelection(event.target);\n this.inputValue(selection.start, selection.end, data);\n event.preventDefault();\n };\n\n private handleCopy = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n }\n event.preventDefault();\n };\n\n private handleCut = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n this.inputValue(selection.start, selection.end, '');\n }\n event.preventDefault();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n const { selectionStart, selectionEnd, selectionDirection } = event.target;\n const valueLenght = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLenght,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLenght,\n direction: (selectionDirection as SelectionDirection) || 'none',\n };\n\n this.setState({\n focused: true,\n selection,\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const value = CurrencyHelper.parse(this.state.formatted);\n\n this.setState({\n ...this.getState(value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!(input instanceof HTMLInputElement)) {\n throw new Error('input is not HTMLInputElement');\n }\n\n return {\n start: input.selectionStart!,\n end: input.selectionEnd!,\n direction: input.selectionDirection as SelectionDirection,\n };\n}\n"]}
1
+ {"version":3,"sources":["CurrencyInput.tsx"],"names":["CurrencyInput","rootNode","state","getState","props","value","fractionDigits","hideTrailingZeros","focused","input","tempSelectionForOnChange","SelectionHelper","fromPosition","setRootNode","renderMain","signed","onSubmit","integerDigits","rest","placeholder","CurrencyHelper","format","formatted","handleBlur","handleFocus","handleMouseUp","handleKeyDown","handleValueChange","handlePaste","handleCopy","handleCut","onMouseEnter","onMouseLeave","onMouseOver","refInput","focus","blur","debouncedSetSelectionFromEvent","setSelectionFromEvent","event","isIE11","persist","selection","getSelection","target","onKeyDown","defaultPrevented","action","CURRENCY_INPUT_ACTIONS","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","CurrencyInputHelper","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","length","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","scrollInput","node","getNode","scrollWidth","clientWidth","PAD","SHIFT","selected","position","direction","charsCount","charWidth","frame","Math","ceil","frameStart","scrollLeft","frameEnd","getInputSelectionFromEvent","step","extended","result","safeInsert","unsigned","parsedValue","parse","onValueChange","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","selectionStart","selectionEnd","selectionDirection","valueLenght","onFocus","onBlur","element","componentDidMount","maxLength","undefined","MAX_SAFE_DIGITS","componentDidUpdate","prevProps","prevState","setSelectionRange","render","normilized","normalizeSelection","React","PureComponent","__KONTUR_REACT_UI__","propTypes","align","PropTypes","oneOf","autoFocus","bool","borderless","disabled","error","number","leftIcon","string","size","warning","width","oneOfType","func","isRequired","defaultProps","inputMode","HTMLInputElement","Error"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\n\nimport { isIE11 } from '../../lib/client';\nimport { Input, InputProps } from '../Input';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport { Selection, SelectionDirection, SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends CommonProps,\n Override<\n InputProps,\n {\n /** Значение */\n value: Nullable<number>;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros: boolean;\n /** Кол-во цифр после зяпятой */\n fractionDigits?: Nullable<number>;\n /** Отрицательные значения */\n signed?: boolean;\n /**\n * Допустимое кол-во цифр целой части.\n * Если передан **0**, или `fractionDigits=15`, то и в целой части допускается только **0**.\n */\n integerDigits?: Nullable<number>;\n /** Вызывается при изменении `value` */\n onValueChange: (value: Nullable<number>) => void;\n /** onSubmit */\n onSubmit?: () => void;\n }\n > {}\n\nexport interface CurrencyInputState {\n formatted: string;\n selection: Selection;\n focused: boolean;\n}\n\n/**\n * Поле для денежных сумм (и других числовых значений).\n * Принимает любые свойства `Input`.\n *\n * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).\n * <br/>\n * Если `fractionDigits=15`, то в целой части допускается **0**.\n */\n@rootNode\nexport class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n\n public static propTypes = {\n align: PropTypes.oneOf(['left', 'center', 'right']),\n autoFocus: PropTypes.bool,\n borderless: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n fractionDigits: PropTypes.number,\n hideTrailingZeros: PropTypes.bool,\n leftIcon: PropTypes.element,\n placeholder: PropTypes.string,\n signed: PropTypes.bool,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n value: PropTypes.number,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onValueChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onSubmit: PropTypes.func,\n };\n\n public static defaultProps = {\n align: 'right',\n fractionDigits: 2,\n hideTrailingZeros: false,\n value: null,\n inputMode: 'decimal',\n };\n\n public state: CurrencyInputState = {\n ...this.getState(this.props.value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n };\n\n private input: Nullable<Input>;\n private tempSelectionForOnChange: Selection = SelectionHelper.fromPosition(0);\n private setRootNode!: TSetRootNode;\n\n public componentDidMount(): void {\n const { maxLength, integerDigits, fractionDigits } = this.props;\n warning(\n maxLength === undefined,\n `[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'`,\n );\n warning(\n (integerDigits || 0) + (fractionDigits || 0) <= MAX_SAFE_DIGITS,\n `[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n public componentDidUpdate(prevProps: CurrencyInputProps, prevState: CurrencyInputState) {\n const { value, fractionDigits, hideTrailingZeros } = this.props;\n if (value !== CurrencyHelper.parse(prevState.formatted) || prevProps.fractionDigits !== fractionDigits) {\n this.setState(this.getState(value, fractionDigits, hideTrailingZeros));\n }\n if (this.state.focused && this.input) {\n const { start, end } = this.state.selection;\n\n this.input.setSelectionRange(start, end);\n }\n if (prevState.selection !== this.state.selection) {\n this.scrollInput();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>) => {\n const { fractionDigits, signed, onSubmit, integerDigits, hideTrailingZeros, ...rest } = props;\n const placeholder =\n this.props.placeholder == null\n ? CurrencyHelper.format(0, { fractionDigits, hideTrailingZeros })\n : this.props.placeholder;\n\n return (\n <Input\n {...rest}\n value={this.state.formatted}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onMouseUp={this.handleMouseUp}\n onKeyDown={this.handleKeyDown}\n onValueChange={this.handleValueChange}\n onPaste={this.handlePaste}\n onCopy={this.handleCopy}\n onCut={this.handleCut}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n ref={this.refInput}\n placeholder={this.state.focused ? '' : placeholder}\n />\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getState(value: Nullable<number>, fractionDigits: Nullable<number>, hideTrailingZeros: boolean) {\n return {\n formatted: CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros }),\n selection: SelectionHelper.fromPosition(0),\n };\n }\n\n private setSelectionFromEvent(event: React.MouseEvent<HTMLInputElement>) {\n const selection = getInputSelectionFromEvent(event.target);\n const normilized = CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);\n this.setState({ selection: normilized });\n }\n\n // for IE11\n private readonly debouncedSetSelectionFromEvent = debounce(this.setSelectionFromEvent, 300);\n\n private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n if (isIE11) {\n event.persist();\n this.debouncedSetSelectionFromEvent(event);\n } else {\n this.setSelectionFromEvent(event);\n }\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n this.tempSelectionForOnChange = selection;\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n const action = extractAction(event);\n\n if (action === CURRENCY_INPUT_ACTIONS.Ignore) {\n return;\n }\n\n if (action !== CURRENCY_INPUT_ACTIONS.Unknown) {\n event.preventDefault();\n }\n\n switch (action) {\n case CURRENCY_INPUT_ACTIONS.Submit: {\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Backspace: {\n this.inputValue(CurrencyInputHelper.moveCursor(this.state.formatted, selection, -1), selection.end, '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Delete: {\n this.inputValue(selection.start, CurrencyInputHelper.moveCursor(this.state.formatted, selection, +1), '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorLeft: {\n this.moveCursor(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorRight: {\n this.moveCursor(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Home: {\n this.setState({ selection: SelectionHelper.fromPosition(0) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.End: {\n const end = this.state.formatted.length;\n this.setState({ selection: SelectionHelper.fromPosition(end) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft: {\n this.extendSelection(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionRight: {\n this.extendSelection(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.FullSelection: {\n this.setState({\n selection: SelectionHelper.forward(0, this.state.formatted.length),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart: {\n this.setState({\n selection: SelectionHelper.backward(0, selection.start),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd: {\n const inputEnd = this.state.formatted.length;\n this.setState({\n selection: SelectionHelper.forward(selection.start, inputEnd),\n });\n return;\n }\n }\n };\n\n private scrollInput = () => {\n const node = this.input?.getNode();\n if (!node || node.scrollWidth === node.clientWidth) {\n return;\n }\n const PAD = 1;\n const SHIFT = 3;\n\n const selection = this.state.selection;\n const selected = selection.start !== selection.end;\n const position = selected && selection.direction === 'forward' ? selection.end : selection.start;\n const charsCount = this.state.formatted.length;\n const charWidth = node.scrollWidth / charsCount;\n const frame = Math.ceil(node.clientWidth / charWidth);\n const frameStart = Math.ceil(node.scrollLeft / charWidth);\n const frameEnd = frameStart + frame;\n\n if (position < frameStart + PAD) {\n node.scrollLeft = (position - SHIFT) * charWidth;\n }\n if (position > frameEnd - PAD) {\n node.scrollLeft = (position - frame + SHIFT) * charWidth;\n }\n };\n\n private getSelection = (input: EventTarget): Selection => {\n const selection = getInputSelectionFromEvent(input);\n return {\n start: selection.start,\n end: selection.end,\n direction: this.state.selection.direction,\n };\n };\n\n private moveCursor = (selection: Selection, step: number) => {\n const position = CurrencyInputHelper.moveCursor(this.state.formatted, selection, step);\n this.setState({ selection: SelectionHelper.fromPosition(position) });\n };\n\n private extendSelection = (selection: Selection, step: number) => {\n const extended = CurrencyInputHelper.extendSelection(this.state.formatted, selection, step);\n this.setState({ selection: extended });\n };\n\n private inputValue = (start: number, end: number, value: string) => {\n const result = CurrencyInputHelper.safeInsert(this.state.formatted, start, end, value, {\n integerDigits: this.props.integerDigits,\n fractionDigits: this.props.fractionDigits,\n unsigned: !this.props.signed,\n });\n if (result) {\n const formatted = result.value;\n const selection = SelectionHelper.fromPosition(result.position);\n this.setState({ formatted, selection }, () => {\n const parsedValue = CurrencyHelper.parse(formatted);\n if (this.props.value !== parsedValue) {\n this.props.onValueChange(parsedValue);\n }\n });\n return true;\n }\n\n if (this.input) {\n this.input.blink();\n }\n return false;\n };\n\n private getOnChangeDelta = (value: string) => {\n const selection = this.tempSelectionForOnChange;\n const oldValue = this.state.formatted;\n if (selection.start !== selection.end) {\n return value.substring(selection.start, value.length - (oldValue.length - selection.end));\n } else if (value.length > oldValue.length) {\n return value.substr(selection.start, value.length - oldValue.length);\n }\n return null;\n };\n\n private handleValueChange = (value: string): void => {\n const selection = this.tempSelectionForOnChange;\n const delta = this.getOnChangeDelta(value);\n if (delta != null && !this.inputValue(selection.start, selection.end, delta)) {\n this.setState({ selection });\n }\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const data = event.clipboardData.getData('text');\n const selection = this.getSelection(event.target);\n this.inputValue(selection.start, selection.end, data);\n event.preventDefault();\n };\n\n private handleCopy = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n }\n event.preventDefault();\n };\n\n private handleCut = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n this.inputValue(selection.start, selection.end, '');\n }\n event.preventDefault();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n const { selectionStart, selectionEnd, selectionDirection } = event.target;\n const valueLenght = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLenght,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLenght,\n direction: (selectionDirection as SelectionDirection) || 'none',\n };\n\n this.setState({\n focused: true,\n selection,\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const value = CurrencyHelper.parse(this.state.formatted);\n\n this.setState({\n ...this.getState(value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!(input instanceof HTMLInputElement)) {\n throw new Error('input is not HTMLInputElement');\n }\n\n return {\n start: input.selectionStart!,\n end: input.selectionEnd!,\n direction: input.selectionDirection as SelectionDirection,\n };\n}\n"]}