@skbkontur/react-ui 3.10.0-fileuploader.1 → 3.11.0-select-right

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 (784) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/LICENSE +21 -21
  3. package/README.md +57 -0
  4. package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
  5. package/cjs/components/Autocomplete/Autocomplete.js +11 -5
  6. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  7. package/cjs/components/Autocomplete/Autocomplete.md +7 -7
  8. package/cjs/components/Button/Button.d.ts +5 -1
  9. package/cjs/components/Button/Button.js +17 -5
  10. package/cjs/components/Button/Button.js.map +1 -1
  11. package/cjs/components/Button/Button.styles.d.ts +1 -0
  12. package/cjs/components/Button/Button.styles.js +38 -28
  13. package/cjs/components/Button/Button.styles.js.map +1 -1
  14. package/cjs/components/Center/Center.d.ts +1 -0
  15. package/cjs/components/Center/Center.js +10 -3
  16. package/cjs/components/Center/Center.js.map +1 -1
  17. package/cjs/components/Checkbox/Checkbox.d.ts +3 -3
  18. package/cjs/components/Checkbox/Checkbox.js +31 -22
  19. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  20. package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
  21. package/cjs/components/ComboBox/ComboBox.js +100 -70
  22. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  23. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +4 -3
  24. package/cjs/components/CurrencyInput/CurrencyInput.js +35 -4
  25. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  26. package/cjs/components/CurrencyInput/CurrencyInput.md +24 -24
  27. package/cjs/components/CurrencyLabel/CurrencyLabel.md +23 -23
  28. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  29. package/cjs/components/DateInput/DateInput.js +6 -3
  30. package/cjs/components/DateInput/DateInput.js.map +1 -1
  31. package/cjs/components/DateInput/DateInput.md +106 -106
  32. package/cjs/components/DatePicker/DatePicker.d.ts +4 -2
  33. package/cjs/components/DatePicker/DatePicker.js +17 -7
  34. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  35. package/cjs/components/DatePicker/DatePicker.md +307 -307
  36. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  37. package/cjs/components/Dropdown/Dropdown.js +11 -4
  38. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  39. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +3 -2
  40. package/cjs/components/DropdownMenu/DropdownMenu.js +7 -4
  41. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  42. package/cjs/components/FxInput/FxInput.d.ts +1 -0
  43. package/cjs/components/FxInput/FxInput.js +9 -2
  44. package/cjs/components/FxInput/FxInput.js.map +1 -1
  45. package/cjs/components/FxInput/FxInput.md +16 -16
  46. package/cjs/components/Gapped/Gapped.d.ts +2 -0
  47. package/cjs/components/Gapped/Gapped.js +22 -14
  48. package/cjs/components/Gapped/Gapped.js.map +1 -1
  49. package/cjs/components/Gapped/Gapped.md +43 -43
  50. package/cjs/components/Group/Group.d.ts +1 -0
  51. package/cjs/components/Group/Group.js +10 -7
  52. package/cjs/components/Group/Group.js.map +1 -1
  53. package/cjs/components/Group/Group.md +18 -18
  54. package/cjs/components/Hint/Hint.d.ts +5 -3
  55. package/cjs/components/Hint/Hint.js +7 -20
  56. package/cjs/components/Hint/Hint.js.map +1 -1
  57. package/cjs/components/Input/Input.d.ts +8 -1
  58. package/cjs/components/Input/Input.js +22 -5
  59. package/cjs/components/Input/Input.js.map +1 -1
  60. package/cjs/components/Input/Input.md +13 -13
  61. package/cjs/components/Kebab/Kebab.d.ts +3 -2
  62. package/cjs/components/Kebab/Kebab.js +8 -5
  63. package/cjs/components/Kebab/Kebab.js.map +1 -1
  64. package/cjs/components/Link/Link.d.ts +1 -0
  65. package/cjs/components/Link/Link.js +11 -3
  66. package/cjs/components/Link/Link.js.map +1 -1
  67. package/cjs/components/Loader/Loader.d.ts +1 -0
  68. package/cjs/components/Loader/Loader.js +11 -7
  69. package/cjs/components/Loader/Loader.js.map +1 -1
  70. package/cjs/components/MenuItem/MenuItem.d.ts +2 -1
  71. package/cjs/components/MenuItem/MenuItem.js +11 -8
  72. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  73. package/cjs/components/Modal/Modal.js +1 -1
  74. package/cjs/components/Modal/Modal.js.map +1 -1
  75. package/cjs/components/Modal/ModalBody.d.ts +1 -0
  76. package/cjs/components/Modal/ModalBody.js +9 -6
  77. package/cjs/components/Modal/ModalBody.js.map +1 -1
  78. package/cjs/components/Paging/Paging.d.ts +2 -2
  79. package/cjs/components/Paging/Paging.js +6 -5
  80. package/cjs/components/Paging/Paging.js.map +1 -1
  81. package/cjs/components/Paging/Paging.md +43 -43
  82. package/cjs/components/PasswordInput/PasswordInput.d.ts +3 -2
  83. package/cjs/components/PasswordInput/PasswordInput.js +13 -6
  84. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  85. package/cjs/components/PasswordInput/PasswordInput.md +9 -9
  86. package/cjs/components/Radio/Radio.d.ts +5 -10
  87. package/cjs/components/Radio/Radio.js +15 -11
  88. package/cjs/components/Radio/Radio.js.map +1 -1
  89. package/cjs/components/RadioGroup/RadioGroup.d.ts +11 -26
  90. package/cjs/components/RadioGroup/RadioGroup.js +25 -29
  91. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  92. package/cjs/components/RadioGroup/RadioGroup.md +43 -43
  93. package/cjs/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  94. package/cjs/components/RadioGroup/RadioGroupContext.js +21 -0
  95. package/cjs/components/RadioGroup/RadioGroupContext.js.map +1 -0
  96. package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
  97. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  98. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  99. package/cjs/components/ScrollContainer/ScrollContainer.js +10 -6
  100. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  101. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  102. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
  103. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  104. package/cjs/components/Select/Select.d.ts +1 -0
  105. package/cjs/components/Select/Select.js +9 -5
  106. package/cjs/components/Select/Select.js.map +1 -1
  107. package/cjs/components/SidePage/SidePage.d.ts +3 -0
  108. package/cjs/components/SidePage/SidePage.js +20 -2
  109. package/cjs/components/SidePage/SidePage.js.map +1 -1
  110. package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
  111. package/cjs/components/SidePage/SidePageBody.js +9 -6
  112. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  113. package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
  114. package/cjs/components/SidePage/SidePageContainer.js +9 -6
  115. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  116. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -2
  117. package/cjs/components/SidePage/SidePageFooter.js +11 -12
  118. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  119. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  120. package/cjs/components/SidePage/SidePageHeader.js +6 -3
  121. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  122. package/cjs/components/Spinner/Spinner.d.ts +9 -0
  123. package/cjs/components/Spinner/Spinner.js +29 -8
  124. package/cjs/components/Spinner/Spinner.js.map +1 -1
  125. package/cjs/components/Spinner/Spinner.md +1 -0
  126. package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
  127. package/cjs/components/Spinner/Spinner.styles.js +13 -10
  128. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  129. package/cjs/components/Sticky/Sticky.d.ts +1 -0
  130. package/cjs/components/Sticky/Sticky.js +8 -5
  131. package/cjs/components/Sticky/Sticky.js.map +1 -1
  132. package/cjs/components/Switcher/Switcher.d.ts +1 -0
  133. package/cjs/components/Switcher/Switcher.js +6 -3
  134. package/cjs/components/Switcher/Switcher.js.map +1 -1
  135. package/cjs/components/Switcher/Switcher.styles.js +4 -2
  136. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  137. package/cjs/components/Tabs/Indicator.d.ts +1 -0
  138. package/cjs/components/Tabs/Indicator.js +16 -15
  139. package/cjs/components/Tabs/Indicator.js.map +1 -1
  140. package/cjs/components/Tabs/Tab.d.ts +2 -1
  141. package/cjs/components/Tabs/Tab.js +13 -9
  142. package/cjs/components/Tabs/Tab.js.map +1 -1
  143. package/cjs/components/Tabs/Tabs.d.ts +1 -0
  144. package/cjs/components/Tabs/Tabs.js +9 -9
  145. package/cjs/components/Tabs/Tabs.js.map +1 -1
  146. package/cjs/components/Tabs/Tabs.md +36 -36
  147. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  148. package/cjs/components/Textarea/Textarea.js +12 -5
  149. package/cjs/components/Textarea/Textarea.js.map +1 -1
  150. package/cjs/components/Textarea/Textarea.md +25 -25
  151. package/cjs/components/Toast/Toast.d.ts +3 -0
  152. package/cjs/components/Toast/Toast.js +15 -4
  153. package/cjs/components/Toast/Toast.js.map +1 -1
  154. package/cjs/components/Toast/ToastView.d.ts +1 -0
  155. package/cjs/components/Toast/ToastView.js +8 -5
  156. package/cjs/components/Toast/ToastView.js.map +1 -1
  157. package/cjs/components/Toggle/Toggle.d.ts +1 -0
  158. package/cjs/components/Toggle/Toggle.js +9 -6
  159. package/cjs/components/Toggle/Toggle.js.map +1 -1
  160. package/cjs/components/Token/Token.d.ts +1 -0
  161. package/cjs/components/Token/Token.js +7 -4
  162. package/cjs/components/Token/Token.js.map +1 -1
  163. package/cjs/components/Token/Token.md +112 -112
  164. package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
  165. package/cjs/components/TokenInput/TokenInput.js +11 -8
  166. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  167. package/cjs/components/TokenInput/TokenInput.md +79 -79
  168. package/cjs/components/Tooltip/Tooltip.d.ts +11 -22
  169. package/cjs/components/Tooltip/Tooltip.js +28 -30
  170. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  171. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +3 -2
  172. package/cjs/components/TooltipMenu/TooltipMenu.js +8 -5
  173. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  174. package/cjs/index.d.ts +1 -1
  175. package/cjs/index.js +2 -2
  176. package/cjs/index.js.map +1 -1
  177. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  178. package/cjs/internal/CommonWrapper/CommonWrapper.js +38 -15
  179. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  180. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +3 -2
  181. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  182. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  183. package/cjs/internal/CustomComboBox/ComboBoxView.js +15 -5
  184. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  185. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  186. package/cjs/internal/CustomComboBox/CustomComboBox.js +8 -5
  187. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  188. package/cjs/internal/DateSelect/DateSelect.d.ts +2 -2
  189. package/cjs/internal/DateSelect/DateSelect.js +3 -3
  190. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  191. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  192. package/cjs/internal/DropdownContainer/DropdownContainer.js +14 -11
  193. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  194. package/cjs/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  195. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js +9 -0
  196. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js.map +1 -0
  197. package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
  198. package/cjs/internal/FocusTrap/FocusTrap.js +12 -9
  199. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  200. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +12 -4
  201. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  202. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  203. package/cjs/internal/InputLikeText/InputLikeText.js +10 -3
  204. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  205. package/cjs/internal/InternalMenu/InternalMenu.d.ts +2 -3
  206. package/cjs/internal/InternalMenu/InternalMenu.js +16 -22
  207. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  208. package/cjs/internal/MaskedInput/MaskedInput.d.ts +2 -2
  209. package/cjs/internal/MaskedInput/MaskedInput.js +3 -3
  210. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  211. package/cjs/internal/Menu/Menu.d.ts +3 -0
  212. package/cjs/internal/Menu/Menu.js +33 -6
  213. package/cjs/internal/Menu/Menu.js.map +1 -1
  214. package/cjs/internal/Menu/Menu.styles.d.ts +3 -0
  215. package/cjs/internal/Menu/Menu.styles.js +22 -3
  216. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  217. package/cjs/internal/Popup/Popup.d.ts +9 -8
  218. package/cjs/internal/Popup/Popup.js +64 -48
  219. package/cjs/internal/Popup/Popup.js.map +1 -1
  220. package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
  221. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  222. package/cjs/internal/Popup/types.d.ts +1 -0
  223. package/cjs/{components/FileUploader/locale → internal/Popup}/types.js +0 -0
  224. package/cjs/{components/FileUploader/locale → internal/Popup}/types.js.map +0 -0
  225. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -3
  226. package/cjs/internal/PopupMenu/PopupMenu.js +23 -6
  227. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  228. package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
  229. package/cjs/internal/PopupMenu/validatePositions.js +2 -4
  230. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  231. package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -1
  232. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  233. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  234. package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -3
  235. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  236. package/cjs/internal/RenderLayer/RenderLayer.d.ts +3 -1
  237. package/cjs/internal/RenderLayer/RenderLayer.js +13 -7
  238. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  239. package/cjs/internal/ThemePlayground/Playground.d.ts +0 -1
  240. package/cjs/internal/ThemePlayground/Playground.js +1 -11
  241. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  242. package/cjs/internal/ThemePlayground/darkTheme.d.ts +0 -15
  243. package/cjs/internal/ThemePlayground/darkTheme.js +1 -25
  244. package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
  245. package/cjs/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  246. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +20 -19
  247. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  248. package/cjs/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  249. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  250. package/cjs/internal/ZIndex/ZIndex.d.ts +2 -0
  251. package/cjs/internal/ZIndex/ZIndex.js +45 -34
  252. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  253. package/cjs/internal/icons/16px/index.d.ts +17 -19
  254. package/cjs/internal/icons/16px/index.js +105 -84
  255. package/cjs/internal/icons/16px/index.js.map +1 -1
  256. package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
  257. package/cjs/internal/icons/SpinnerIcon.js +5 -2
  258. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  259. package/cjs/internal/themes/DefaultTheme.d.ts +0 -23
  260. package/cjs/internal/themes/DefaultTheme.js +1 -64
  261. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  262. package/cjs/lib/ModalStack.js +16 -17
  263. package/cjs/lib/ModalStack.js.map +1 -1
  264. package/cjs/lib/callChildRef/callChildRef.d.ts +3 -0
  265. package/cjs/lib/callChildRef/callChildRef.js +19 -0
  266. package/cjs/lib/callChildRef/callChildRef.js.map +1 -0
  267. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  268. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +20 -0
  269. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  270. package/cjs/lib/getDisplayName.d.ts +3 -0
  271. package/cjs/lib/getDisplayName.js +9 -0
  272. package/cjs/lib/getDisplayName.js.map +1 -0
  273. package/cjs/lib/locale/types.d.ts +0 -2
  274. package/cjs/lib/locale/types.js +0 -2
  275. package/cjs/lib/locale/types.js.map +1 -1
  276. package/cjs/lib/rootNode/getRootNode.d.ts +3 -0
  277. package/cjs/lib/rootNode/getRootNode.js +27 -0
  278. package/cjs/lib/rootNode/getRootNode.js.map +1 -0
  279. package/cjs/lib/rootNode/index.d.ts +2 -0
  280. package/cjs/lib/rootNode/index.js +2 -0
  281. package/cjs/lib/rootNode/index.js.map +1 -0
  282. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  283. package/cjs/lib/rootNode/rootNodeDecorator.js +31 -0
  284. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -0
  285. package/cjs/lib/theming/AnimationKeyframes.js +1 -1
  286. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  287. package/cjs/lib/theming/Emotion.js +1 -0
  288. package/cjs/lib/theming/Emotion.js.map +1 -1
  289. package/cjs/lib/theming/useTheme.d.ts +1 -0
  290. package/cjs/lib/theming/useTheme.js +7 -0
  291. package/cjs/lib/theming/useTheme.js.map +1 -0
  292. package/cjs/lib/utils.d.ts +35 -1
  293. package/cjs/lib/utils.js +77 -22
  294. package/cjs/lib/utils.js.map +1 -1
  295. package/cjs/lib/withClassWrapper.d.ts +71 -0
  296. package/cjs/lib/withClassWrapper.js +59 -0
  297. package/cjs/lib/withClassWrapper.js.map +1 -0
  298. package/cjs/typings/html-props.d.ts +123 -0
  299. package/components/Autocomplete/Autocomplete/Autocomplete.js +19 -16
  300. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  301. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  302. package/components/Autocomplete/Autocomplete.md +7 -7
  303. package/components/Button/Button/Button.js +24 -15
  304. package/components/Button/Button/Button.js.map +1 -1
  305. package/components/Button/Button.d.ts +5 -1
  306. package/components/Button/Button.styles/Button.styles.js +31 -28
  307. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  308. package/components/Button/Button.styles.d.ts +1 -0
  309. package/components/Center/Center/Center.js +14 -9
  310. package/components/Center/Center/Center.js.map +1 -1
  311. package/components/Center/Center.d.ts +1 -0
  312. package/components/Checkbox/Checkbox/Checkbox.js +34 -30
  313. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  314. package/components/Checkbox/Checkbox.d.ts +3 -3
  315. package/components/ComboBox/ComboBox/ComboBox.js +38 -32
  316. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  317. package/components/ComboBox/ComboBox.d.ts +2 -0
  318. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +62 -27
  319. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  320. package/components/CurrencyInput/CurrencyInput.d.ts +4 -3
  321. package/components/CurrencyInput/CurrencyInput.md +24 -24
  322. package/components/CurrencyLabel/CurrencyLabel.md +23 -23
  323. package/components/DateInput/DateInput/DateInput.js +7 -3
  324. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  325. package/components/DateInput/DateInput.d.ts +1 -0
  326. package/components/DateInput/DateInput.md +106 -106
  327. package/components/DatePicker/DatePicker/DatePicker.js +29 -22
  328. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  329. package/components/DatePicker/DatePicker.d.ts +4 -2
  330. package/components/DatePicker/DatePicker.md +307 -307
  331. package/components/Dropdown/Dropdown/Dropdown.js +15 -13
  332. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  333. package/components/Dropdown/Dropdown.d.ts +1 -0
  334. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +15 -9
  335. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  336. package/components/DropdownMenu/DropdownMenu.d.ts +3 -2
  337. package/components/FxInput/FxInput/FxInput.js +13 -9
  338. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  339. package/components/FxInput/FxInput.d.ts +1 -0
  340. package/components/FxInput/FxInput.md +16 -16
  341. package/components/Gapped/Gapped/Gapped.js +24 -21
  342. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  343. package/components/Gapped/Gapped.d.ts +2 -0
  344. package/components/Gapped/Gapped.md +43 -43
  345. package/components/Group/Group/Group.js +22 -9
  346. package/components/Group/Group/Group.js.map +1 -1
  347. package/components/Group/Group.d.ts +1 -0
  348. package/components/Group/Group.md +18 -18
  349. package/components/Hint/Hint/Hint.js +18 -12
  350. package/components/Hint/Hint/Hint.js.map +1 -1
  351. package/components/Hint/Hint.d.ts +5 -3
  352. package/components/Input/Input/Input.js +29 -14
  353. package/components/Input/Input/Input.js.map +1 -1
  354. package/components/Input/Input.d.ts +8 -1
  355. package/components/Input/Input.md +13 -13
  356. package/components/Kebab/Kebab/Kebab.js +12 -7
  357. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  358. package/components/Kebab/Kebab.d.ts +3 -2
  359. package/components/Link/Link/Link.js +15 -11
  360. package/components/Link/Link/Link.js.map +1 -1
  361. package/components/Link/Link.d.ts +1 -0
  362. package/components/Loader/Loader/Loader.js +19 -13
  363. package/components/Loader/Loader/Loader.js.map +1 -1
  364. package/components/Loader/Loader.d.ts +1 -0
  365. package/components/MenuItem/MenuItem/MenuItem.js +19 -17
  366. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  367. package/components/MenuItem/MenuItem.d.ts +2 -1
  368. package/components/Modal/Modal/Modal.js +1 -1
  369. package/components/Modal/Modal/Modal.js.map +1 -1
  370. package/components/Modal/ModalBody/ModalBody.js +16 -10
  371. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  372. package/components/Modal/ModalBody.d.ts +1 -0
  373. package/components/Paging/Paging/Paging.js +17 -14
  374. package/components/Paging/Paging/Paging.js.map +1 -1
  375. package/components/Paging/Paging.d.ts +2 -2
  376. package/components/Paging/Paging.md +43 -43
  377. package/components/PasswordInput/PasswordInput/PasswordInput.js +18 -14
  378. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  379. package/components/PasswordInput/PasswordInput.d.ts +3 -2
  380. package/components/PasswordInput/PasswordInput.md +9 -9
  381. package/components/Radio/Radio/Radio.js +21 -20
  382. package/components/Radio/Radio/Radio.js.map +1 -1
  383. package/components/Radio/Radio.d.ts +5 -10
  384. package/components/RadioGroup/RadioGroup/RadioGroup.js +36 -29
  385. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  386. package/components/RadioGroup/RadioGroup.d.ts +11 -26
  387. package/components/RadioGroup/RadioGroup.md +43 -43
  388. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js +12 -0
  389. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js.map +1 -0
  390. package/components/RadioGroup/RadioGroupContext/package.json +6 -0
  391. package/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  392. package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
  393. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  394. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +15 -9
  395. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  396. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  397. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
  398. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  399. package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  400. package/components/Select/Select/Select.js +16 -7
  401. package/components/Select/Select/Select.js.map +1 -1
  402. package/components/Select/Select.d.ts +1 -0
  403. package/components/SidePage/SidePage/SidePage.js +27 -3
  404. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  405. package/components/SidePage/SidePage.d.ts +3 -0
  406. package/components/SidePage/SidePageBody/SidePageBody.js +16 -10
  407. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  408. package/components/SidePage/SidePageBody.d.ts +1 -0
  409. package/components/SidePage/SidePageContainer/SidePageContainer.js +16 -9
  410. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  411. package/components/SidePage/SidePageContainer.d.ts +1 -0
  412. package/components/SidePage/SidePageFooter/SidePageFooter.js +22 -19
  413. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  414. package/components/SidePage/SidePageFooter.d.ts +1 -2
  415. package/components/SidePage/SidePageHeader/SidePageHeader.js +15 -10
  416. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  417. package/components/SidePage/SidePageHeader.d.ts +1 -0
  418. package/components/Spinner/Spinner/Spinner.js +14 -6
  419. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  420. package/components/Spinner/Spinner.d.ts +9 -0
  421. package/components/Spinner/Spinner.md +1 -0
  422. package/components/Spinner/Spinner.styles/Spinner.styles.js +12 -9
  423. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  424. package/components/Spinner/Spinner.styles.d.ts +2 -1
  425. package/components/Sticky/Sticky/Sticky.js +13 -8
  426. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  427. package/components/Sticky/Sticky.d.ts +1 -0
  428. package/components/Switcher/Switcher/Switcher.js +11 -6
  429. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  430. package/components/Switcher/Switcher.d.ts +1 -0
  431. package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
  432. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  433. package/components/Tabs/Indicator/Indicator.js +16 -14
  434. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  435. package/components/Tabs/Indicator.d.ts +1 -0
  436. package/components/Tabs/Tab/Tab.js +31 -34
  437. package/components/Tabs/Tab/Tab.js.map +1 -1
  438. package/components/Tabs/Tab.d.ts +2 -1
  439. package/components/Tabs/Tabs/Tabs.js +20 -20
  440. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  441. package/components/Tabs/Tabs.d.ts +1 -0
  442. package/components/Tabs/Tabs.md +36 -36
  443. package/components/Textarea/Textarea/Textarea.js +21 -17
  444. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  445. package/components/Textarea/Textarea.d.ts +1 -0
  446. package/components/Textarea/Textarea.md +25 -25
  447. package/components/Toast/Toast/Toast.js +29 -14
  448. package/components/Toast/Toast/Toast.js.map +1 -1
  449. package/components/Toast/Toast.d.ts +3 -0
  450. package/components/Toast/ToastView/ToastView.js +10 -5
  451. package/components/Toast/ToastView/ToastView.js.map +1 -1
  452. package/components/Toast/ToastView.d.ts +1 -0
  453. package/components/Toggle/Toggle/Toggle.js +16 -11
  454. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  455. package/components/Toggle/Toggle.d.ts +1 -0
  456. package/components/Token/Token/Token.js +11 -4
  457. package/components/Token/Token/Token.js.map +1 -1
  458. package/components/Token/Token.d.ts +1 -0
  459. package/components/Token/Token.md +112 -112
  460. package/components/TokenInput/TokenInput/TokenInput.js +12 -6
  461. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  462. package/components/TokenInput/TokenInput.d.ts +1 -0
  463. package/components/TokenInput/TokenInput.md +79 -79
  464. package/components/Tooltip/Tooltip/Tooltip.js +26 -17
  465. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  466. package/components/Tooltip/Tooltip.d.ts +11 -22
  467. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +23 -17
  468. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  469. package/components/TooltipMenu/TooltipMenu.d.ts +3 -2
  470. package/index.d.ts +1 -1
  471. package/index.js +2 -2
  472. package/index.js.map +1 -1
  473. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +37 -10
  474. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  475. package/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  476. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -3
  477. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  478. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +23 -13
  479. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  480. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  481. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +12 -4
  482. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  483. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  484. package/internal/DateSelect/DateSelect/DateSelect.js +5 -5
  485. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  486. package/internal/DateSelect/DateSelect.d.ts +2 -2
  487. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +17 -16
  488. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  489. package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  490. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js +10 -0
  491. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js.map +1 -0
  492. package/internal/DropdownContainer/DropdownContainer.styles/package.json +6 -0
  493. package/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  494. package/internal/FocusTrap/FocusTrap/FocusTrap.js +17 -9
  495. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  496. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  497. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +13 -7
  498. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  499. package/internal/InputLikeText/InputLikeText/InputLikeText.js +11 -6
  500. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  501. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  502. package/internal/InternalMenu/InternalMenu/InternalMenu.js +24 -25
  503. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  504. package/internal/InternalMenu/InternalMenu.d.ts +2 -3
  505. package/internal/MaskedInput/MaskedInput/MaskedInput.js +7 -7
  506. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  507. package/internal/MaskedInput/MaskedInput.d.ts +2 -2
  508. package/internal/Menu/Menu/Menu.js +24 -12
  509. package/internal/Menu/Menu/Menu.js.map +1 -1
  510. package/internal/Menu/Menu.d.ts +3 -0
  511. package/internal/Menu/Menu.styles/Menu.styles.js +12 -3
  512. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  513. package/internal/Menu/Menu.styles.d.ts +3 -0
  514. package/internal/Popup/Popup/Popup.js +85 -68
  515. package/internal/Popup/Popup/Popup.js.map +1 -1
  516. package/internal/Popup/Popup.d.ts +9 -8
  517. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  518. package/internal/Popup/PopupHelper.d.ts +2 -2
  519. package/{components/FileUploader/locale → internal/Popup}/types/package.json +1 -1
  520. package/{components/FileUploader/locale → internal/Popup}/types/types.js +0 -0
  521. package/{components/FileUploader/locale → internal/Popup}/types/types.js.map +0 -0
  522. package/internal/Popup/types.d.ts +1 -0
  523. package/internal/PopupMenu/PopupMenu/PopupMenu.js +15 -10
  524. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  525. package/internal/PopupMenu/PopupMenu.d.ts +4 -3
  526. package/internal/PopupMenu/validatePositions/validatePositions.js +2 -2
  527. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  528. package/internal/PopupMenu/validatePositions.d.ts +2 -2
  529. package/internal/RenderContainer/RenderContainer/RenderContainer.js +3 -1
  530. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  531. package/internal/RenderContainer/RenderContainer.d.ts +1 -1
  532. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +2 -3
  533. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  534. package/internal/RenderLayer/RenderLayer/RenderLayer.js +20 -18
  535. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  536. package/internal/RenderLayer/RenderLayer.d.ts +3 -1
  537. package/internal/ThemePlayground/Playground/Playground.js +1 -11
  538. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  539. package/internal/ThemePlayground/Playground.d.ts +0 -1
  540. package/internal/ThemePlayground/darkTheme/darkTheme.js +1 -26
  541. package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
  542. package/internal/ThemePlayground/darkTheme.d.ts +0 -15
  543. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +35 -43
  544. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  545. package/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  546. package/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  547. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  548. package/internal/ZIndex/ZIndex/ZIndex.js +20 -8
  549. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  550. package/internal/ZIndex/ZIndex.d.ts +2 -0
  551. package/internal/icons/16px/index/index.js +83 -78
  552. package/internal/icons/16px/index/index.js.map +1 -1
  553. package/internal/icons/16px/index.d.ts +17 -19
  554. package/internal/icons/SpinnerIcon/SpinnerIcon.js +5 -2
  555. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  556. package/internal/icons/SpinnerIcon.d.ts +4 -1
  557. package/internal/themes/DefaultTheme/DefaultTheme.js +0 -67
  558. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  559. package/internal/themes/DefaultTheme.d.ts +0 -23
  560. package/lib/ModalStack/ModalStack.js +9 -13
  561. package/lib/ModalStack/ModalStack.js.map +1 -1
  562. package/lib/callChildRef/callChildRef/callChildRef.js +14 -0
  563. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -0
  564. package/lib/callChildRef/callChildRef/package.json +6 -0
  565. package/lib/callChildRef/callChildRef.d.ts +3 -0
  566. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +19 -0
  567. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  568. package/lib/events/fixFirefoxModifiedClickOnLabel/package.json +6 -0
  569. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  570. package/lib/getDisplayName/getDisplayName.js +3 -0
  571. package/lib/getDisplayName/getDisplayName.js.map +1 -0
  572. package/lib/getDisplayName/package.json +6 -0
  573. package/lib/getDisplayName.d.ts +3 -0
  574. package/lib/locale/types/types.js.map +1 -1
  575. package/lib/locale/types.d.ts +0 -2
  576. package/lib/rootNode/getRootNode/getRootNode.js +25 -0
  577. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -0
  578. package/lib/rootNode/getRootNode/package.json +6 -0
  579. package/lib/rootNode/getRootNode.d.ts +3 -0
  580. package/lib/rootNode/index/index.js +2 -0
  581. package/lib/rootNode/index/index.js.map +1 -0
  582. package/{components/FileUploader → lib/rootNode}/index/package.json +1 -1
  583. package/lib/rootNode/index.d.ts +2 -0
  584. package/{components/FileUploader → lib/rootNode}/package.json +1 -1
  585. package/lib/rootNode/rootNodeDecorator/package.json +6 -0
  586. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +37 -0
  587. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -0
  588. package/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  589. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
  590. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  591. package/lib/theming/Emotion/Emotion.js +1 -0
  592. package/lib/theming/Emotion/Emotion.js.map +1 -1
  593. package/lib/theming/useTheme/package.json +6 -0
  594. package/lib/theming/useTheme/useTheme.js +5 -0
  595. package/lib/theming/useTheme/useTheme.js.map +1 -0
  596. package/lib/theming/useTheme.d.ts +1 -0
  597. package/lib/utils/utils.js +77 -19
  598. package/lib/utils/utils.js.map +1 -1
  599. package/lib/utils.d.ts +35 -1
  600. package/lib/withClassWrapper/package.json +6 -0
  601. package/lib/withClassWrapper/withClassWrapper.js +70 -0
  602. package/lib/withClassWrapper/withClassWrapper.js.map +1 -0
  603. package/lib/withClassWrapper.d.ts +71 -0
  604. package/package.json +13 -5
  605. package/typings/html-props.d.ts +123 -0
  606. package/cjs/components/FileUploader/FileUploader.d.ts +0 -31
  607. package/cjs/components/FileUploader/FileUploader.js +0 -270
  608. package/cjs/components/FileUploader/FileUploader.js.map +0 -1
  609. package/cjs/components/FileUploader/FileUploader.md +0 -67
  610. package/cjs/components/FileUploader/FileUploader.styles.d.ts +0 -19
  611. package/cjs/components/FileUploader/FileUploader.styles.js +0 -159
  612. package/cjs/components/FileUploader/FileUploader.styles.js.map +0 -1
  613. package/cjs/components/FileUploader/index.d.ts +0 -4
  614. package/cjs/components/FileUploader/index.js +0 -4
  615. package/cjs/components/FileUploader/index.js.map +0 -1
  616. package/cjs/components/FileUploader/locale/index.d.ts +0 -4
  617. package/cjs/components/FileUploader/locale/index.js +0 -11
  618. package/cjs/components/FileUploader/locale/index.js.map +0 -1
  619. package/cjs/components/FileUploader/locale/locales/en.d.ts +0 -2
  620. package/cjs/components/FileUploader/locale/locales/en.js +0 -7
  621. package/cjs/components/FileUploader/locale/locales/en.js.map +0 -1
  622. package/cjs/components/FileUploader/locale/locales/ru.d.ts +0 -2
  623. package/cjs/components/FileUploader/locale/locales/ru.js +0 -7
  624. package/cjs/components/FileUploader/locale/locales/ru.js.map +0 -1
  625. package/cjs/components/FileUploader/locale/types.d.ts +0 -6
  626. package/cjs/hooks/useDrop.d.ts +0 -11
  627. package/cjs/hooks/useDrop.js +0 -75
  628. package/cjs/hooks/useDrop.js.map +0 -1
  629. package/cjs/hooks/useMemoObject.d.ts +0 -1
  630. package/cjs/hooks/useMemoObject.js +0 -5
  631. package/cjs/hooks/useMemoObject.js.map +0 -1
  632. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
  633. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +0 -15
  634. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +0 -1
  635. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
  636. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +0 -107
  637. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +0 -1
  638. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
  639. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +0 -187
  640. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +0 -1
  641. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
  642. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +0 -66
  643. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +0 -1
  644. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
  645. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +0 -24
  646. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  647. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
  648. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +0 -17
  649. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
  650. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
  651. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js +0 -16
  652. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +0 -1
  653. package/cjs/internal/FileUploaderControl/fileUtils.d.ts +0 -18
  654. package/cjs/internal/FileUploaderControl/fileUtils.js +0 -55
  655. package/cjs/internal/FileUploaderControl/fileUtils.js.map +0 -1
  656. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  657. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js +0 -4
  658. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js.map +0 -1
  659. package/cjs/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
  660. package/cjs/internal/FileUploaderControl/hooks/useUpload.js +0 -51
  661. package/cjs/internal/FileUploaderControl/hooks/useUpload.js.map +0 -1
  662. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
  663. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +0 -18
  664. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +0 -1
  665. package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  666. package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
  667. package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
  668. package/cjs/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
  669. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +0 -34
  670. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +0 -1
  671. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  672. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js +0 -23
  673. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js.map +0 -1
  674. package/cjs/lib/guidUtils.d.ts +0 -1
  675. package/cjs/lib/guidUtils.js +0 -5
  676. package/cjs/lib/guidUtils.js.map +0 -1
  677. package/cjs/lib/locale/useLocaleForControl.d.ts +0 -3
  678. package/cjs/lib/locale/useLocaleForControl.js +0 -14
  679. package/cjs/lib/locale/useLocaleForControl.js.map +0 -1
  680. package/cjs/lib/stringUtils.d.ts +0 -1
  681. package/cjs/lib/stringUtils.js +0 -13
  682. package/cjs/lib/stringUtils.js.map +0 -1
  683. package/components/FileUploader/FileUploader/FileUploader.js +0 -277
  684. package/components/FileUploader/FileUploader/FileUploader.js.map +0 -1
  685. package/components/FileUploader/FileUploader/package.json +0 -6
  686. package/components/FileUploader/FileUploader.d.ts +0 -31
  687. package/components/FileUploader/FileUploader.md +0 -67
  688. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +0 -56
  689. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +0 -1
  690. package/components/FileUploader/FileUploader.styles/package.json +0 -6
  691. package/components/FileUploader/FileUploader.styles.d.ts +0 -19
  692. package/components/FileUploader/index/index.js +0 -3
  693. package/components/FileUploader/index/index.js.map +0 -1
  694. package/components/FileUploader/index.d.ts +0 -4
  695. package/components/FileUploader/locale/index/index.js +0 -8
  696. package/components/FileUploader/locale/index/index.js.map +0 -1
  697. package/components/FileUploader/locale/index/package.json +0 -6
  698. package/components/FileUploader/locale/index.d.ts +0 -4
  699. package/components/FileUploader/locale/locales/en/en.js +0 -6
  700. package/components/FileUploader/locale/locales/en/en.js.map +0 -1
  701. package/components/FileUploader/locale/locales/en/package.json +0 -6
  702. package/components/FileUploader/locale/locales/en.d.ts +0 -2
  703. package/components/FileUploader/locale/locales/ru/package.json +0 -6
  704. package/components/FileUploader/locale/locales/ru/ru.js +0 -6
  705. package/components/FileUploader/locale/locales/ru/ru.js.map +0 -1
  706. package/components/FileUploader/locale/locales/ru.d.ts +0 -2
  707. package/components/FileUploader/locale/package.json +0 -6
  708. package/components/FileUploader/locale/types.d.ts +0 -6
  709. package/hooks/useDrop/package.json +0 -6
  710. package/hooks/useDrop/useDrop.js +0 -57
  711. package/hooks/useDrop/useDrop.js.map +0 -1
  712. package/hooks/useDrop.d.ts +0 -11
  713. package/hooks/useMemoObject/package.json +0 -6
  714. package/hooks/useMemoObject/useMemoObject.js +0 -6
  715. package/hooks/useMemoObject/useMemoObject.js.map +0 -1
  716. package/hooks/useMemoObject.d.ts +0 -1
  717. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js +0 -2
  718. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +0 -1
  719. package/internal/FileUploaderControl/FileUploaderControlContext/package.json +0 -6
  720. package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
  721. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +0 -79
  722. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +0 -1
  723. package/internal/FileUploaderControl/FileUploaderControlProvider/package.json +0 -6
  724. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
  725. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +0 -176
  726. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +0 -1
  727. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/package.json +0 -6
  728. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
  729. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +0 -32
  730. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +0 -1
  731. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/package.json +0 -6
  732. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
  733. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +0 -23
  734. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  735. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/package.json +0 -6
  736. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
  737. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +0 -11
  738. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +0 -1
  739. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/package.json +0 -6
  740. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
  741. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js +0 -18
  742. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js.map +0 -1
  743. package/internal/FileUploaderControl/FileUploaderFileValidationResult/package.json +0 -6
  744. package/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
  745. package/internal/FileUploaderControl/fileUtils/fileUtils.js +0 -85
  746. package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +0 -1
  747. package/internal/FileUploaderControl/fileUtils/package.json +0 -6
  748. package/internal/FileUploaderControl/fileUtils.d.ts +0 -18
  749. package/internal/FileUploaderControl/hooks/useControlLocale/package.json +0 -6
  750. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js +0 -5
  751. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js.map +0 -1
  752. package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  753. package/internal/FileUploaderControl/hooks/useUpload/package.json +0 -6
  754. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js +0 -56
  755. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js.map +0 -1
  756. package/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
  757. package/internal/FileUploaderControl/withFileUploaderControlProvider/package.json +0 -6
  758. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +0 -16
  759. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +0 -1
  760. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
  761. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
  762. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
  763. package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
  764. package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  765. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +0 -49
  766. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +0 -1
  767. package/internal/TextWidthHelper/TextWidthHelper/package.json +0 -6
  768. package/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
  769. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js +0 -14
  770. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js.map +0 -1
  771. package/internal/TextWidthHelper/TextWidthHelper.styles/package.json +0 -6
  772. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  773. package/lib/guidUtils/guidUtils.js +0 -4
  774. package/lib/guidUtils/guidUtils.js.map +0 -1
  775. package/lib/guidUtils/package.json +0 -6
  776. package/lib/guidUtils.d.ts +0 -1
  777. package/lib/locale/useLocaleForControl/package.json +0 -6
  778. package/lib/locale/useLocaleForControl/useLocaleForControl.js +0 -12
  779. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +0 -1
  780. package/lib/locale/useLocaleForControl.d.ts +0 -3
  781. package/lib/stringUtils/package.json +0 -6
  782. package/lib/stringUtils/stringUtils.js +0 -12
  783. package/lib/stringUtils/stringUtils.js.map +0 -1
  784. package/lib/stringUtils.d.ts +0 -1
@@ -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"]}
@@ -1,24 +1,24 @@
1
- ```jsx harmony
2
- const [value, setValue] = React.useState();
3
-
4
- <CurrencyInput value={value} fractionDigits={3} onValueChange={setValue} />
5
- ```
6
-
7
- `fractionDigits={15}`
8
-
9
- ```jsx harmony
10
- const [value, setValue] = React.useState();
11
-
12
- <CurrencyInput value={value} fractionDigits={15} onValueChange={setValue} />
13
- ```
14
-
15
- ---
16
-
17
- ### <a name="/CurrencyInput?id=why15" href="#/CurrencyInput?id=why15">Почему 15?</a>
18
-
19
- Максимальное безопасное целочисленное значение - `9007199254740991` (16 цифр).
20
- Убрав один разряд, мы получим "новое" максимальное безопасное значение - **`999999999999999` (15 цифр)**.
21
-
22
- При этом десятичный резделитель может находиться в любом месте. Если целая часть равна `0`, то она не учитывается.
23
-
24
- _Детали можно почитать здесь - <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER">MDN web docs</a>_
1
+ ```jsx harmony
2
+ const [value, setValue] = React.useState();
3
+
4
+ <CurrencyInput value={value} fractionDigits={3} onValueChange={setValue} />
5
+ ```
6
+
7
+ `fractionDigits={15}`
8
+
9
+ ```jsx harmony
10
+ const [value, setValue] = React.useState();
11
+
12
+ <CurrencyInput value={value} fractionDigits={15} onValueChange={setValue} />
13
+ ```
14
+
15
+ ---
16
+
17
+ ### <a name="/CurrencyInput?id=why15" href="#/CurrencyInput?id=why15">Почему 15?</a>
18
+
19
+ Максимальное безопасное целочисленное значение - `9007199254740991` (16 цифр).
20
+ Убрав один разряд, мы получим "новое" максимальное безопасное значение - **`999999999999999` (15 цифр)**.
21
+
22
+ При этом десятичный резделитель может находиться в любом месте. Если целая часть равна `0`, то она не учитывается.
23
+
24
+ _Детали можно почитать здесь - <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER">MDN web docs</a>_
@@ -1,23 +1,23 @@
1
- To render rubles
2
-
3
- ```jsx
4
- <CurrencyLabel value={12356.1} currencySymbol={'₽'} />
5
- ```
6
-
7
- ...or dollars
8
-
9
- ```jsx
10
- <CurrencyLabel value={12356.1} currencySymbol={'$'} />
11
- ```
12
-
13
- ...or nothing
14
-
15
- ```jsx
16
- <CurrencyLabel value={12356.1} />
17
- ```
18
-
19
- Count of fraction digits can be changed
20
-
21
- ```jsx
22
- <CurrencyLabel value={3562001.1} fractionDigits={3} currencySymbol={'₽'} />
23
- ```
1
+ To render rubles
2
+
3
+ ```jsx
4
+ <CurrencyLabel value={12356.1} currencySymbol={'₽'} />
5
+ ```
6
+
7
+ ...or dollars
8
+
9
+ ```jsx
10
+ <CurrencyLabel value={12356.1} currencySymbol={'$'} />
11
+ ```
12
+
13
+ ...or nothing
14
+
15
+ ```jsx
16
+ <CurrencyLabel value={12356.1} />
17
+ ```
18
+
19
+ Count of fraction digits can be changed
20
+
21
+ ```jsx
22
+ <CurrencyLabel value={3562001.1} fractionDigits={3} currencySymbol={'₽'} />
23
+ ```
@@ -70,6 +70,7 @@ export declare class DateInput extends React.Component<DateInputProps, DateInput
70
70
  private locale;
71
71
  private blurEvent;
72
72
  private theme;
73
+ private setRootNode;
73
74
  private conditionalHandler;
74
75
  constructor(props: DateInputProps);
75
76
  componentDidUpdate(prevProps: DateInputProps, prevState: DateInputState): void;
@@ -11,6 +11,7 @@ var _ThemeContext = require("../../lib/theming/ThemeContext");
11
11
  var _px = require("../../internal/icons/16px");
12
12
  var _CommonWrapper = require("../../internal/CommonWrapper");
13
13
  var _Emotion = require("../../lib/theming/Emotion");
14
+ var _rootNode = require("../../lib/rootNode");
14
15
 
15
16
  var _DateFragmentsView = require("./DateFragmentsView");
16
17
  var _DateInput = require("./DateInput.styles");
@@ -71,7 +72,9 @@ var _InternalDateMediator = require("./helpers/InternalDateMediator");var _dec,
71
72
 
72
73
 
73
74
 
74
- DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLocaleHelper), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(DateInput, _React$Component);
75
+
76
+ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLocaleHelper), (0, _rootNode.rootNode)(_class = _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(DateInput, _React$Component);
77
+
75
78
 
76
79
 
77
80
 
@@ -107,7 +110,7 @@ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLoca
107
110
 
108
111
 
109
112
  function DateInput(props) {var _this;
110
- _this = _React$Component.call(this, props) || this;_this.iDateMediator = new _InternalDateMediator.InternalDateMediator();_this.inputLikeText = null;_this.dateFragmentsView = null;_this.isMouseDown = false;_this.isMouseFocus = false;_this.ignoringDelimiter = false;_this.locale = void 0;_this.blurEvent = null;_this.theme = void 0;_this.conditionalHandler = new _ConditionalHandler.ConditionalHandler().add(_DateInputKeyboardActions.Actions.MoveSelectionLeft, function () {return _this.shiftSelection(-1);}).add(_DateInputKeyboardActions.Actions.MoveSelectionRight, function () {return _this.shiftSelection(1);}).add(_DateInputKeyboardActions.Actions.Separator, function () {return _this.pressDelimiter();}).add(_DateInputKeyboardActions.Actions.MoveSelectionFirst, function () {return _this.selectDateComponent(_this.iDateMediator.getLeftmostType());}).add(_DateInputKeyboardActions.Actions.MoveSelectionLast, function () {return _this.selectDateComponent(_this.iDateMediator.getRightmostType());}).add(_DateInputKeyboardActions.Actions.Increment, function () {return _this.shiftDateComponent(1);}).add(_DateInputKeyboardActions.Actions.Decrement, function () {return _this.shiftDateComponent(-1);}).add(_DateInputKeyboardActions.Actions.Digit, function (e) {return _this.inputValue(e);}).add(_DateInputKeyboardActions.Actions.ClearSelection, function () {return _this.clearSelected();}).add(_DateInputKeyboardActions.Actions.ClearOneChar, function () {return _this.clearOneChar();}).add(_DateInputKeyboardActions.Actions.FullSelection, function () {return _this.fullSelection();}).add(_DateInputKeyboardActions.Actions.WrongInput, function () {return _this.blink();}).build();_this.
113
+ _this = _React$Component.call(this, props) || this;_this.iDateMediator = new _InternalDateMediator.InternalDateMediator();_this.inputLikeText = null;_this.dateFragmentsView = null;_this.isMouseDown = false;_this.isMouseFocus = false;_this.ignoringDelimiter = false;_this.locale = void 0;_this.blurEvent = null;_this.theme = void 0;_this.setRootNode = void 0;_this.conditionalHandler = new _ConditionalHandler.ConditionalHandler().add(_DateInputKeyboardActions.Actions.MoveSelectionLeft, function () {return _this.shiftSelection(-1);}).add(_DateInputKeyboardActions.Actions.MoveSelectionRight, function () {return _this.shiftSelection(1);}).add(_DateInputKeyboardActions.Actions.Separator, function () {return _this.pressDelimiter();}).add(_DateInputKeyboardActions.Actions.MoveSelectionFirst, function () {return _this.selectDateComponent(_this.iDateMediator.getLeftmostType());}).add(_DateInputKeyboardActions.Actions.MoveSelectionLast, function () {return _this.selectDateComponent(_this.iDateMediator.getRightmostType());}).add(_DateInputKeyboardActions.Actions.Increment, function () {return _this.shiftDateComponent(1);}).add(_DateInputKeyboardActions.Actions.Decrement, function () {return _this.shiftDateComponent(-1);}).add(_DateInputKeyboardActions.Actions.Digit, function (e) {return _this.inputValue(e);}).add(_DateInputKeyboardActions.Actions.ClearSelection, function () {return _this.clearSelected();}).add(_DateInputKeyboardActions.Actions.ClearOneChar, function () {return _this.clearOneChar();}).add(_DateInputKeyboardActions.Actions.FullSelection, function () {return _this.fullSelection();}).add(_DateInputKeyboardActions.Actions.WrongInput, function () {return _this.blink();}).build();_this.
111
114
 
112
115
 
113
116
 
@@ -436,4 +439,4 @@ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLoca
436
439
  _this.shiftSelection(1);
437
440
  }
438
441
  _this.updateValue({ inputMode: inputMode });
439
- };_this.state = { valueFormatted: '', selected: null, inputMode: false, focused: false, dragged: false };return _this;}var _proto = DateInput.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {if (prevProps.value !== this.props.value || prevProps.minDate !== this.props.minDate || prevProps.maxDate !== this.props.maxDate || this.iDateMediator.isChangedLocale(this.locale)) {this.updateFromProps();}this.selectNode();};_proto.componentDidMount = function componentDidMount() {this.updateFromProps();if (this.props.autoFocus) {this.focus();}};_proto.blur = function blur() {if (this.inputLikeText) {this.inputLikeText.blur();}};_proto.focus = function focus() {if (this.inputLikeText) {this.inputLikeText.focus();}};_proto.blink = function blink() {if (this.inputLikeText) {this.inputLikeText.blink();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx2;var _this$state2 = this.state,focused = _this$state2.focused,selected = _this$state2.selected,inputMode = _this$state2.inputMode,valueFormatted = _this$state2.valueFormatted;var showValue = Boolean(focused || valueFormatted);return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(_InputLikeText.InputLikeText, { width: this.props.width, ref: this.inputLikeTextRef, size: this.props.size, disabled: this.props.disabled, error: this.props.error, warning: this.props.warning, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.props.onClick, onKeyDown: this.handleKeyDown, onMouseDownCapture: this.handleMouseDownCapture, onPaste: this.handlePaste, rightIcon: this.renderIcon(), onDoubleClickCapture: this.handleDoubleClick, onMouseDragStart: this.handleMouseDragStart, onMouseDragEnd: this.handleMouseDragEnd, value: this.iDateMediator.getInternalString(), inputMode: 'numeric', takeContentWidth: true }, /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_DateInput.styles.value(), (_cx2 = {}, _cx2[_DateInput.styles.valueVisible()] = showValue, _cx2)) }, /*#__PURE__*/_react.default.createElement(_DateFragmentsView.DateFragmentsView, { ref: this.dateFragmentsViewRef, fragments: this.iDateMediator.getFragments(), onSelectDateComponent: this.handleSelectDateComponent, selected: selected, inputMode: inputMode }))));};return DateInput;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'DateInput', _class2.defaultProps = { value: '', minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE, size: 'small', width: 125 }, _temp)) || _class);exports.DateInput = DateInput;
442
+ };_this.state = { valueFormatted: '', selected: null, inputMode: false, focused: false, dragged: false };return _this;}var _proto = DateInput.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {if (prevProps.value !== this.props.value || prevProps.minDate !== this.props.minDate || prevProps.maxDate !== this.props.maxDate || this.iDateMediator.isChangedLocale(this.locale)) {this.updateFromProps();}this.selectNode();};_proto.componentDidMount = function componentDidMount() {this.updateFromProps();if (this.props.autoFocus) {this.focus();}};_proto.blur = function blur() {if (this.inputLikeText) {this.inputLikeText.blur();}};_proto.focus = function focus() {if (this.inputLikeText) {this.inputLikeText.focus();}};_proto.blink = function blink() {if (this.inputLikeText) {this.inputLikeText.blink();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx2;var _this$state2 = this.state,focused = _this$state2.focused,selected = _this$state2.selected,inputMode = _this$state2.inputMode,valueFormatted = _this$state2.valueFormatted;var showValue = Boolean(focused || valueFormatted);return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_InputLikeText.InputLikeText, { width: this.props.width, ref: this.inputLikeTextRef, size: this.props.size, disabled: this.props.disabled, error: this.props.error, warning: this.props.warning, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.props.onClick, onKeyDown: this.handleKeyDown, onMouseDownCapture: this.handleMouseDownCapture, onPaste: this.handlePaste, rightIcon: this.renderIcon(), onDoubleClickCapture: this.handleDoubleClick, onMouseDragStart: this.handleMouseDragStart, onMouseDragEnd: this.handleMouseDragEnd, value: this.iDateMediator.getInternalString(), inputMode: 'numeric', takeContentWidth: true }, /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_DateInput.styles.value(), (_cx2 = {}, _cx2[_DateInput.styles.valueVisible()] = showValue, _cx2)) }, /*#__PURE__*/_react.default.createElement(_DateFragmentsView.DateFragmentsView, { ref: this.dateFragmentsViewRef, fragments: this.iDateMediator.getFragments(), onSelectDateComponent: this.handleSelectDateComponent, selected: selected, inputMode: inputMode }))));};return DateInput;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'DateInput', _class2.defaultProps = { value: '', minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE, size: 'small', width: 125 }, _temp)) || _class) || _class);exports.DateInput = DateInput;
@@ -1 +1 @@
1
- {"version":3,"sources":["DateInput.tsx"],"names":["DateInput","DatePickerLocaleHelper","props","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","locale","blurEvent","theme","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","size","disabled","iconStyles","styles","icon","iconSmall","iconMedium","iconLarge","iconDisabled","handleFocus","setState","prevState","focused","onFocus","handleBlur","restored","restore","updateValue","inputMode","onBlur","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","valueFormatted","getString","emitChange","updateFromProps","update","value","get","getInternalString","onValueChange","clear","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","inputKey","key","componentDidUpdate","prevProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","renderMain","showValue","Boolean","width","error","warning","onClick","valueVisible","getFragments","React","Component","__KONTUR_REACT_UI__","defaultProps","MIN_FULLDATE","MAX_FULLDATE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CalendarIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value: string;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size: 'small' | 'large' | 'medium';\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps, prevState: DateInputState) {\n if (\n prevProps.value !== this.props.value ||\n prevProps.minDate !== this.props.minDate ||\n prevProps.maxDate !== this.props.maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps();\n }\n this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps();\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n\n return (\n <CommonWrapper {...this.props}>\n <InputLikeText\n width={this.props.width}\n ref={this.inputLikeTextRef}\n size={this.props.size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, size, disabled = false } = this.props;\n\n if (withIcon) {\n const theme = this.theme;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles}>\n <CalendarIcon />\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const restored = this.iDateMediator.restore();\n this.updateValue({ focused: false, selected: null, inputMode: false });\n\n if (this.props.onBlur) {\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = getSelection();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n };\n\n private updateFromProps = (): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue();\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const inputMode = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
1
+ {"version":3,"sources":["DateInput.tsx"],"names":["DateInput","DatePickerLocaleHelper","rootNode","props","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","locale","blurEvent","theme","setRootNode","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","size","disabled","iconStyles","styles","icon","iconSmall","iconMedium","iconLarge","iconDisabled","handleFocus","setState","prevState","focused","onFocus","handleBlur","restored","restore","updateValue","inputMode","onBlur","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","valueFormatted","getString","emitChange","updateFromProps","update","value","get","getInternalString","onValueChange","clear","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","inputKey","key","componentDidUpdate","prevProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","renderMain","showValue","Boolean","width","error","warning","onClick","valueVisible","getFragments","React","Component","__KONTUR_REACT_UI__","defaultProps","MIN_FULLDATE","MAX_FULLDATE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CalendarIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value: string;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size: 'small' | 'large' | 'medium';\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps, prevState: DateInputState) {\n if (\n prevProps.value !== this.props.value ||\n prevProps.minDate !== this.props.minDate ||\n prevProps.maxDate !== this.props.maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps();\n }\n this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps();\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <InputLikeText\n width={this.props.width}\n ref={this.inputLikeTextRef}\n size={this.props.size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, size, disabled = false } = this.props;\n\n if (withIcon) {\n const theme = this.theme;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles}>\n <CalendarIcon />\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const restored = this.iDateMediator.restore();\n this.updateValue({ focused: false, selected: null, inputMode: false });\n\n if (this.props.onBlur) {\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = getSelection();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n };\n\n private updateFromProps = (): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue();\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const inputMode = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}