@skbkontur/react-ui 4.2.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +9 -17
  3. package/cjs/components/Autocomplete/Autocomplete.js +10 -6
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +4 -5
  6. package/cjs/components/Button/Button.js +8 -3
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/Button.mixins.js +1 -1
  9. package/cjs/components/Button/Button.mixins.js.map +1 -1
  10. package/cjs/components/Button/Button.styles.js +18 -18
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Center/Center.d.ts +4 -3
  13. package/cjs/components/Center/Center.js +9 -3
  14. package/cjs/components/Center/Center.js.map +1 -1
  15. package/cjs/components/Checkbox/Checkbox.md +48 -0
  16. package/cjs/components/ComboBox/ComboBox.d.ts +8 -13
  17. package/cjs/components/ComboBox/ComboBox.js +12 -2
  18. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  19. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  20. package/cjs/components/CurrencyInput/CurrencyInput.js +15 -6
  21. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  22. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  23. package/cjs/components/CurrencyLabel/CurrencyLabel.js +15 -15
  24. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  25. package/cjs/components/DateInput/DateInput.d.ts +8 -11
  26. package/cjs/components/DateInput/DateInput.js +11 -3
  27. package/cjs/components/DateInput/DateInput.js.map +1 -1
  28. package/cjs/components/DatePicker/DatePicker.d.ts +6 -8
  29. package/cjs/components/DatePicker/DatePicker.js +12 -6
  30. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  31. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  32. package/cjs/components/DropdownMenu/DropdownMenu.js +9 -3
  33. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  34. package/cjs/components/FxInput/FxInput.d.ts +6 -6
  35. package/cjs/components/FxInput/FxInput.js +13 -10
  36. package/cjs/components/FxInput/FxInput.js.map +1 -1
  37. package/cjs/components/Gapped/Gapped.d.ts +7 -8
  38. package/cjs/components/Gapped/Gapped.js +12 -6
  39. package/cjs/components/Gapped/Gapped.js.map +1 -1
  40. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  41. package/cjs/components/GlobalLoader/GlobalLoader.js +13 -9
  42. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  43. package/cjs/components/Hint/Hint.d.ts +7 -11
  44. package/cjs/components/Hint/Hint.js +15 -5
  45. package/cjs/components/Hint/Hint.js.map +1 -1
  46. package/cjs/components/Input/Input.d.ts +4 -3
  47. package/cjs/components/Input/Input.js +7 -4
  48. package/cjs/components/Input/Input.js.map +1 -1
  49. package/cjs/components/Kebab/Kebab.d.ts +7 -11
  50. package/cjs/components/Kebab/Kebab.js +14 -5
  51. package/cjs/components/Kebab/Kebab.js.map +1 -1
  52. package/cjs/components/Link/Link.d.ts +4 -4
  53. package/cjs/components/Link/Link.js +11 -4
  54. package/cjs/components/Link/Link.js.map +1 -1
  55. package/cjs/components/Loader/Loader.d.ts +7 -4
  56. package/cjs/components/Loader/Loader.js +14 -4
  57. package/cjs/components/Loader/Loader.js.map +1 -1
  58. package/cjs/components/Modal/Modal.d.ts +4 -3
  59. package/cjs/components/Modal/Modal.js +8 -3
  60. package/cjs/components/Modal/Modal.js.map +1 -1
  61. package/cjs/components/Modal/ModalFooter.js +1 -1
  62. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  63. package/cjs/components/Modal/ModalHeader.js +1 -1
  64. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  65. package/cjs/components/Paging/Paging.d.ts +6 -9
  66. package/cjs/components/Paging/Paging.js +15 -5
  67. package/cjs/components/Paging/Paging.js.map +1 -1
  68. package/cjs/components/Paging/PagingDefaultComponent.d.ts +1 -1
  69. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  70. package/cjs/components/PasswordInput/PasswordInput.d.ts +4 -3
  71. package/cjs/components/PasswordInput/PasswordInput.js +8 -3
  72. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  73. package/cjs/components/Radio/Radio.d.ts +4 -3
  74. package/cjs/components/Radio/Radio.js +8 -3
  75. package/cjs/components/Radio/Radio.js.map +1 -1
  76. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -4
  77. package/cjs/components/RadioGroup/RadioGroup.js +4 -2
  78. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  79. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +1 -1
  80. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  81. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +6 -7
  82. package/cjs/components/ScrollContainer/ScrollContainer.js +11 -5
  83. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  84. package/cjs/components/Select/Select.d.ts +3 -12
  85. package/cjs/components/Select/Select.js +6 -1
  86. package/cjs/components/Select/Select.js.map +1 -1
  87. package/cjs/components/Select/Select.styles.js +4 -4
  88. package/cjs/components/Select/Select.styles.js.map +1 -1
  89. package/cjs/components/SidePage/SidePage.d.ts +5 -6
  90. package/cjs/components/SidePage/SidePage.js +8 -1
  91. package/cjs/components/SidePage/SidePage.js.map +1 -1
  92. package/cjs/components/Spinner/Spinner.d.ts +4 -2
  93. package/cjs/components/Spinner/Spinner.js +9 -3
  94. package/cjs/components/Spinner/Spinner.js.map +1 -1
  95. package/cjs/components/Sticky/Sticky.d.ts +5 -4
  96. package/cjs/components/Sticky/Sticky.js +9 -2
  97. package/cjs/components/Sticky/Sticky.js.map +1 -1
  98. package/cjs/components/Tabs/Tab.d.ts +4 -4
  99. package/cjs/components/Tabs/Tab.js +11 -13
  100. package/cjs/components/Tabs/Tab.js.map +1 -1
  101. package/cjs/components/Tabs/Tabs.d.ts +4 -4
  102. package/cjs/components/Tabs/Tabs.js +12 -3
  103. package/cjs/components/Tabs/Tabs.js.map +1 -1
  104. package/cjs/components/Textarea/Textarea.d.ts +8 -10
  105. package/cjs/components/Textarea/Textarea.js +10 -6
  106. package/cjs/components/Textarea/Textarea.js.map +1 -1
  107. package/cjs/components/Toggle/Toggle.d.ts +5 -6
  108. package/cjs/components/Toggle/Toggle.js +10 -4
  109. package/cjs/components/Toggle/Toggle.js.map +1 -1
  110. package/cjs/components/TokenInput/TokenInput.d.ts +19 -16
  111. package/cjs/components/TokenInput/TokenInput.js +75 -57
  112. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  113. package/cjs/components/Tooltip/Tooltip.d.ts +11 -14
  114. package/cjs/components/Tooltip/Tooltip.js +26 -14
  115. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  116. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +5 -4
  117. package/cjs/components/TooltipMenu/TooltipMenu.js +11 -5
  118. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  119. package/cjs/internal/BGRuler.d.ts +13 -15
  120. package/cjs/internal/BGRuler.js +16 -8
  121. package/cjs/internal/BGRuler.js.map +1 -1
  122. package/cjs/internal/Calendar/Calendar.d.ts +4 -13
  123. package/cjs/internal/Calendar/Calendar.js +10 -5
  124. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  125. package/cjs/internal/Calendar/DayCellView.styles.js +1 -1
  126. package/cjs/internal/Calendar/DayCellView.styles.js.map +1 -1
  127. package/cjs/internal/Calendar/Month.js +16 -11
  128. package/cjs/internal/Calendar/Month.js.map +1 -1
  129. package/cjs/internal/ComponentCombinator.d.ts +6 -8
  130. package/cjs/internal/ComponentCombinator.js +6 -2
  131. package/cjs/internal/ComponentCombinator.js.map +1 -1
  132. package/cjs/internal/ComponentTable.d.ts +5 -6
  133. package/cjs/internal/ComponentTable.js +11 -2
  134. package/cjs/internal/ComponentTable.js.map +1 -1
  135. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +4 -4
  136. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +7 -1
  137. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  138. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  139. package/cjs/internal/CustomComboBox/ComboBoxView.js +18 -10
  140. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  141. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -6
  142. package/cjs/internal/DateSelect/DateSelect.js +15 -9
  143. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  144. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +3 -6
  145. package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -5
  146. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  147. package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -3
  148. package/cjs/internal/InputLikeText/InputLikeText.js +7 -2
  149. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  150. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -9
  151. package/cjs/internal/InternalMenu/InternalMenu.js +16 -6
  152. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  153. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -1
  154. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  155. package/cjs/internal/MaskedInput/MaskedInput.d.ts +4 -2
  156. package/cjs/internal/MaskedInput/MaskedInput.js +7 -2
  157. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  158. package/cjs/internal/Menu/Menu.d.ts +4 -7
  159. package/cjs/internal/Menu/Menu.js +7 -1
  160. package/cjs/internal/Menu/Menu.js.map +1 -1
  161. package/cjs/internal/Popup/Popup.d.ts +10 -16
  162. package/cjs/internal/Popup/Popup.js +21 -7
  163. package/cjs/internal/Popup/Popup.js.map +1 -1
  164. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -11
  165. package/cjs/internal/PopupMenu/PopupMenu.js +8 -1
  166. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  167. package/cjs/internal/RenderLayer/RenderLayer.d.ts +5 -3
  168. package/cjs/internal/RenderLayer/RenderLayer.js +15 -4
  169. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  170. package/cjs/internal/ThemePlayground/VariableValue.d.ts +5 -4
  171. package/cjs/internal/ThemePlayground/VariableValue.js +6 -1
  172. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  173. package/cjs/internal/ZIndex/ZIndex.d.ts +7 -11
  174. package/cjs/internal/ZIndex/ZIndex.js +10 -3
  175. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  176. package/cjs/lib/createPropsGetter.d.ts +2 -1
  177. package/cjs/lib/createPropsGetter.js +2 -0
  178. package/cjs/lib/createPropsGetter.js.map +1 -1
  179. package/components/Autocomplete/Autocomplete/Autocomplete.js +22 -12
  180. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  181. package/components/Autocomplete/Autocomplete.d.ts +9 -17
  182. package/components/Button/Button/Button.js +11 -5
  183. package/components/Button/Button/Button.js.map +1 -1
  184. package/components/Button/Button.d.ts +4 -5
  185. package/components/Button/Button.mixins/Button.mixins.js +1 -1
  186. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  187. package/components/Button/Button.styles/Button.styles.js +18 -18
  188. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  189. package/components/Center/Center/Center.js +7 -5
  190. package/components/Center/Center/Center.js.map +1 -1
  191. package/components/Center/Center.d.ts +4 -3
  192. package/components/Checkbox/Checkbox.md +48 -0
  193. package/components/ComboBox/ComboBox/ComboBox.js +3 -1
  194. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  195. package/components/ComboBox/ComboBox.d.ts +8 -13
  196. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +21 -18
  197. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  198. package/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  199. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +21 -15
  200. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  201. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  202. package/components/DateInput/DateInput/DateInput.js +17 -4
  203. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  204. package/components/DateInput/DateInput.d.ts +8 -11
  205. package/components/DatePicker/DatePicker/DatePicker.js +12 -9
  206. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  207. package/components/DatePicker/DatePicker.d.ts +6 -8
  208. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +8 -2
  209. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  210. package/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  211. package/components/FxInput/FxInput/FxInput.js +11 -9
  212. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  213. package/components/FxInput/FxInput.d.ts +6 -6
  214. package/components/Gapped/Gapped/Gapped.js +17 -8
  215. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  216. package/components/Gapped/Gapped.d.ts +7 -8
  217. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +35 -16
  218. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  219. package/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  220. package/components/Hint/Hint/Hint.js +30 -18
  221. package/components/Hint/Hint/Hint.js.map +1 -1
  222. package/components/Hint/Hint.d.ts +7 -11
  223. package/components/Input/Input/Input.js +9 -7
  224. package/components/Input/Input/Input.js.map +1 -1
  225. package/components/Input/Input.d.ts +4 -3
  226. package/components/Kebab/Kebab/Kebab.js +19 -8
  227. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  228. package/components/Kebab/Kebab.d.ts +7 -11
  229. package/components/Link/Link/Link.js +9 -6
  230. package/components/Link/Link/Link.js.map +1 -1
  231. package/components/Link/Link.d.ts +4 -4
  232. package/components/Loader/Loader/Loader.js +22 -17
  233. package/components/Loader/Loader/Loader.js.map +1 -1
  234. package/components/Loader/Loader.d.ts +7 -4
  235. package/components/Modal/Modal/Modal.js +3 -1
  236. package/components/Modal/Modal/Modal.js.map +1 -1
  237. package/components/Modal/Modal.d.ts +4 -3
  238. package/components/Modal/ModalFooter/ModalFooter.js +2 -2
  239. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  240. package/components/Modal/ModalHeader/ModalHeader.js +2 -2
  241. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  242. package/components/Paging/Paging/Paging.js +24 -14
  243. package/components/Paging/Paging/Paging.js.map +1 -1
  244. package/components/Paging/Paging.d.ts +6 -9
  245. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  246. package/components/Paging/PagingDefaultComponent.d.ts +1 -1
  247. package/components/PasswordInput/PasswordInput/PasswordInput.js +7 -5
  248. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  249. package/components/PasswordInput/PasswordInput.d.ts +4 -3
  250. package/components/Radio/Radio/Radio.js +7 -5
  251. package/components/Radio/Radio/Radio.js.map +1 -1
  252. package/components/Radio/Radio.d.ts +4 -3
  253. package/components/RadioGroup/RadioGroup/RadioGroup.js +10 -10
  254. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  255. package/components/RadioGroup/RadioGroup.d.ts +2 -4
  256. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +1 -1
  257. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  258. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +10 -6
  259. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  260. package/components/ScrollContainer/ScrollContainer.d.ts +6 -7
  261. package/components/Select/Select/Select.js +4 -3
  262. package/components/Select/Select/Select.js.map +1 -1
  263. package/components/Select/Select.d.ts +3 -12
  264. package/components/Select/Select.styles/Select.styles.js +4 -4
  265. package/components/Select/Select.styles/Select.styles.js.map +1 -1
  266. package/components/SidePage/SidePage/SidePage.js +14 -9
  267. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  268. package/components/SidePage/SidePage.d.ts +5 -6
  269. package/components/Spinner/Spinner/Spinner.js +7 -5
  270. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  271. package/components/Spinner/Spinner.d.ts +4 -2
  272. package/components/Sticky/Sticky/Sticky.js +7 -4
  273. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  274. package/components/Sticky/Sticky.d.ts +5 -4
  275. package/components/Tabs/Tab/Tab.js +15 -7
  276. package/components/Tabs/Tab/Tab.js.map +1 -1
  277. package/components/Tabs/Tab.d.ts +4 -4
  278. package/components/Tabs/Tabs/Tabs.js +10 -8
  279. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  280. package/components/Tabs/Tabs.d.ts +4 -4
  281. package/components/Textarea/Textarea/Textarea.js +19 -14
  282. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  283. package/components/Textarea/Textarea.d.ts +8 -10
  284. package/components/Toggle/Toggle/Toggle.js +12 -7
  285. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  286. package/components/Toggle/Toggle.d.ts +5 -6
  287. package/components/TokenInput/TokenInput/TokenInput.js +107 -77
  288. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  289. package/components/TokenInput/TokenInput.d.ts +19 -16
  290. package/components/Tooltip/Tooltip/Tooltip.js +55 -32
  291. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  292. package/components/Tooltip/Tooltip.d.ts +11 -14
  293. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +15 -13
  294. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  295. package/components/TooltipMenu/TooltipMenu.d.ts +5 -4
  296. package/internal/BGRuler/BGRuler.js +11 -6
  297. package/internal/BGRuler/BGRuler.js.map +1 -1
  298. package/internal/BGRuler.d.ts +13 -15
  299. package/internal/Calendar/Calendar/Calendar.js +11 -5
  300. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  301. package/internal/Calendar/Calendar.d.ts +4 -13
  302. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js +1 -1
  303. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  304. package/internal/Calendar/Month/Month.js +20 -11
  305. package/internal/Calendar/Month/Month.js.map +1 -1
  306. package/internal/ComponentCombinator/ComponentCombinator.js +8 -5
  307. package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
  308. package/internal/ComponentCombinator.d.ts +6 -8
  309. package/internal/ComponentTable/ComponentTable.js +16 -4
  310. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  311. package/internal/ComponentTable.d.ts +5 -6
  312. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +4 -2
  313. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  314. package/internal/CustomComboBox/ComboBoxMenu.d.ts +4 -4
  315. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +21 -10
  316. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  317. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  318. package/internal/DateSelect/DateSelect/DateSelect.js +14 -11
  319. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  320. package/internal/DateSelect/DateSelect.d.ts +4 -6
  321. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +6 -10
  322. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  323. package/internal/DropdownContainer/DropdownContainer.d.ts +3 -6
  324. package/internal/InputLikeText/InputLikeText/InputLikeText.js +4 -2
  325. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  326. package/internal/InputLikeText/InputLikeText.d.ts +4 -3
  327. package/internal/InternalMenu/InternalMenu/InternalMenu.js +21 -10
  328. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  329. package/internal/InternalMenu/InternalMenu.d.ts +3 -9
  330. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  331. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  332. package/internal/MaskedInput/MaskedInput/MaskedInput.js +3 -1
  333. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  334. package/internal/MaskedInput/MaskedInput.d.ts +4 -2
  335. package/internal/Menu/Menu/Menu.js +10 -3
  336. package/internal/Menu/Menu/Menu.js.map +1 -1
  337. package/internal/Menu/Menu.d.ts +4 -7
  338. package/internal/Popup/Popup/Popup.js +32 -23
  339. package/internal/Popup/Popup/Popup.js.map +1 -1
  340. package/internal/Popup/Popup.d.ts +10 -16
  341. package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -4
  342. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  343. package/internal/PopupMenu/PopupMenu.d.ts +8 -11
  344. package/internal/RenderLayer/RenderLayer/RenderLayer.js +18 -11
  345. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  346. package/internal/RenderLayer/RenderLayer.d.ts +5 -3
  347. package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -2
  348. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  349. package/internal/ThemePlayground/VariableValue.d.ts +5 -4
  350. package/internal/ZIndex/ZIndex/ZIndex.js +15 -13
  351. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  352. package/internal/ZIndex/ZIndex.d.ts +7 -11
  353. package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
  354. package/lib/createPropsGetter.d.ts +2 -1
  355. package/package.json +2 -2
@@ -6,9 +6,9 @@ import { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrappe
6
6
  import { Selection } from './SelectionHelper';
7
7
  export interface CurrencyInputProps extends CommonProps, Override<InputProps, {
8
8
  /** Значение */
9
- value: Nullable<number>;
9
+ value?: Nullable<number>;
10
10
  /** Убрать лишние нули после запятой */
11
- hideTrailingZeros: boolean;
11
+ hideTrailingZeros?: boolean;
12
12
  /** Кол-во цифр после запятой */
13
13
  fractionDigits?: Nullable<number>;
14
14
  /** Отрицательные значения */
@@ -32,6 +32,7 @@ export interface CurrencyInputState {
32
32
  export declare const CurrencyInputDataTids: {
33
33
  readonly root: "CurrencyInput__root";
34
34
  };
35
+ declare type DefaultProps = Required<Pick<CurrencyInputProps, 'align' | 'fractionDigits' | 'hideTrailingZeros' | 'value' | 'inputMode'>>;
35
36
  /**
36
37
  * Поле для денежных сумм (и других числовых значений).
37
38
  * Принимает любые свойства `Input`.
@@ -65,13 +66,8 @@ export declare class CurrencyInput extends React.PureComponent<CurrencyInputProp
65
66
  onMouseOver: PropTypes.Requireable<(...args: any[]) => any>;
66
67
  onSubmit: PropTypes.Requireable<(...args: any[]) => any>;
67
68
  };
68
- static defaultProps: {
69
- align: string;
70
- fractionDigits: number;
71
- hideTrailingZeros: boolean;
72
- value: null;
73
- inputMode: string;
74
- };
69
+ static defaultProps: DefaultProps;
70
+ private getProps;
75
71
  state: CurrencyInputState;
76
72
  private input;
77
73
  private tempSelectionForOnChange;
@@ -107,3 +103,4 @@ export declare class CurrencyInput extends React.PureComponent<CurrencyInputProp
107
103
  private handleBlur;
108
104
  private refInput;
109
105
  }
106
+ export {};
@@ -9,6 +9,7 @@ var _Input = require("../Input");
9
9
 
10
10
  var _CommonWrapper = require("../../internal/CommonWrapper");
11
11
  var _rootNode = require("../../lib/rootNode");
12
+ var _createPropsGetter = require("../../lib/createPropsGetter");
12
13
 
13
14
  var _constants = require("./constants");
14
15
  var _SelectionHelper = require("./SelectionHelper");
@@ -48,7 +49,11 @@ var _CurrencyInputKeyboardActions = require("./CurrencyInputKeyboardActions");va
48
49
 
49
50
 
50
51
  var CurrencyInputDataTids = {
51
- root: 'CurrencyInput__root' };
52
+ root: 'CurrencyInput__root' };exports.CurrencyInputDataTids = CurrencyInputDataTids;
53
+
54
+
55
+
56
+
52
57
 
53
58
 
54
59
  /**
@@ -58,7 +63,7 @@ var CurrencyInputDataTids = {
58
63
  * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).
59
64
  * <br/>
60
65
  * Если `fractionDigits=15`, то в целой части допускается **0**.
61
- */exports.CurrencyInputDataTids = CurrencyInputDataTids;var
66
+ */var
62
67
 
63
68
  CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(CurrencyInput, _React$PureComponent);function CurrencyInput() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
64
69
 
@@ -96,9 +101,11 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
96
101
 
97
102
 
98
103
 
104
+
105
+ getProps = (0, _createPropsGetter.createPropsGetter)(CurrencyInput.defaultProps);_this.
99
106
 
100
107
  state = (0, _extends2.default)({},
101
- _this.getState(_this.props.value, _this.props.fractionDigits, _this.props.hideTrailingZeros), {
108
+ _this.getState(_this.getProps().value, _this.getProps().fractionDigits, _this.getProps().hideTrailingZeros), {
102
109
  focused: false });_this.
103
110
 
104
111
 
@@ -143,6 +150,7 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
143
150
 
144
151
 
145
152
 
153
+
146
154
 
147
155
 
148
156
  renderMain = function (props) {
@@ -152,6 +160,7 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
152
160
  _react.default.createElement(_Input.Input, (0, _extends2.default)({
153
161
  "data-tid": CurrencyInputDataTids.root },
154
162
  rest, {
163
+ align: _this.getProps().align,
155
164
  value: _this.state.formatted,
156
165
  onBlur: _this.handleBlur,
157
166
  onFocus: _this.handleFocus,
@@ -343,7 +352,7 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
343
352
  inputValue = function (start, end, value) {
344
353
  var result = _CurrencyInputHelper.CurrencyInputHelper.safeInsert(_this.state.formatted, start, end, value, {
345
354
  integerDigits: _this.props.integerDigits,
346
- fractionDigits: _this.props.fractionDigits,
355
+ fractionDigits: _this.getProps().fractionDigits,
347
356
  unsigned: !_this.props.signed });
348
357
 
349
358
  if (result) {
@@ -435,7 +444,7 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
435
444
  var value = _CurrencyHelper.CurrencyHelper.parse(_this.state.formatted);
436
445
 
437
446
  _this.setState((0, _extends2.default)({},
438
- _this.getState(value, _this.props.fractionDigits, _this.props.hideTrailingZeros), {
447
+ _this.getState(value, _this.getProps().fractionDigits, _this.getProps().hideTrailingZeros), {
439
448
  focused: false }));
440
449
 
441
450
 
@@ -446,7 +455,7 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
446
455
 
447
456
  refInput = function (element) {
448
457
  _this.input = element;
449
- };return _this;}var _proto = CurrencyInput.prototype;_proto.componentDidMount = function componentDidMount() {var _this$props = this.props,maxLength = _this$props.maxLength,integerDigits = _this$props.integerDigits,fractionDigits = _this$props.fractionDigits;(0, _warning.default)(maxLength === undefined, "[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'");(0, _warning.default)((integerDigits || 0) + (fractionDigits || 0) <= _constants.MAX_SAFE_DIGITS, "[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds " + _constants.MAX_SAFE_DIGITS + "." + "\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15");};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var _this$props2 = this.props,value = _this$props2.value,fractionDigits = _this$props2.fractionDigits,hideTrailingZeros = _this$props2.hideTrailingZeros;if (isValidNumber(value) && isNumeric(value) && Number(value) !== _CurrencyHelper.CurrencyHelper.parse(prevState.formatted) || prevProps.fractionDigits !== fractionDigits) {this.setState(this.getState(value, fractionDigits, hideTrailingZeros));}if (this.state.focused && this.input) {var _this$state$selection = this.state.selection,start = _this$state$selection.start,end = _this$state$selection.end;this.input.setSelectionRange(start, end);}if (prevState.selection !== this.state.selection) {this.scrollInput();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), this.renderMain);};_proto.getState = function getState(value, fractionDigits, hideTrailingZeros) {return { formatted: _CurrencyHelper.CurrencyHelper.format(value, { fractionDigits: fractionDigits, hideTrailingZeros: hideTrailingZeros }), selection: _SelectionHelper.SelectionHelper.fromPosition(0) };};_proto.setSelectionFromEvent = function setSelectionFromEvent(event) {var selection = getInputSelectionFromEvent(event.target);var normilized = _CurrencyInputHelper.CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);this.setState({ selection: normilized });} // for IE11
458
+ };return _this;}var _proto = CurrencyInput.prototype;_proto.componentDidMount = function componentDidMount() {var _this$props = this.props,maxLength = _this$props.maxLength,integerDigits = _this$props.integerDigits;var fractionDigits = this.getProps().fractionDigits;(0, _warning.default)(maxLength === undefined, "[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'");(0, _warning.default)((integerDigits || 0) + (fractionDigits || 0) <= _constants.MAX_SAFE_DIGITS, "[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds " + _constants.MAX_SAFE_DIGITS + "." + "\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15");};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var _this$getProps = this.getProps(),value = _this$getProps.value,fractionDigits = _this$getProps.fractionDigits,hideTrailingZeros = _this$getProps.hideTrailingZeros;if (isValidNumber(value) && isNumeric(value) && Number(value) !== _CurrencyHelper.CurrencyHelper.parse(prevState.formatted) || prevProps.fractionDigits !== fractionDigits) {this.setState(this.getState(value, fractionDigits, hideTrailingZeros));}if (this.state.focused && this.input) {var _this$state$selection = this.state.selection,start = _this$state$selection.start,end = _this$state$selection.end;this.input.setSelectionRange(start, end);}if (prevState.selection !== this.state.selection) {this.scrollInput();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), this.renderMain);};_proto.getState = function getState(value, fractionDigits, hideTrailingZeros) {return { formatted: _CurrencyHelper.CurrencyHelper.format(value, { fractionDigits: fractionDigits, hideTrailingZeros: hideTrailingZeros }), selection: _SelectionHelper.SelectionHelper.fromPosition(0) };};_proto.setSelectionFromEvent = function setSelectionFromEvent(event) {var selection = getInputSelectionFromEvent(event.target);var normilized = _CurrencyInputHelper.CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);this.setState({ selection: normilized });} // for IE11
450
459
  ;return CurrencyInput;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'CurrencyInput', _class2.propTypes = { align: _propTypes.default.oneOf(['left', 'center', 'right']), autoFocus: _propTypes.default.bool, borderless: _propTypes.default.bool, disabled: _propTypes.default.bool, error: _propTypes.default.bool, fractionDigits: _propTypes.default.number, hideTrailingZeros: _propTypes.default.bool, leftIcon: _propTypes.default.element, placeholder: _propTypes.default.string, signed: _propTypes.default.bool, size: _propTypes.default.oneOf(['small', 'medium', 'large']), value: function value(props) {(0, _warning.default)(isValidNumber(props.value), "[CurrencyInput]: Prop value is not a valid number");}, warning: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]), onBlur: _propTypes.default.func, onValueChange: _propTypes.default.func.isRequired, onFocus: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func, onSubmit: _propTypes.default.func }, _class2.defaultProps = { align: 'right', fractionDigits: 2, hideTrailingZeros: false, value: null, inputMode: 'decimal' }, _temp)) || _class;exports.CurrencyInput = CurrencyInput;
451
460
 
452
461
  function getInputSelectionFromEvent(input) {
@@ -1 +1 @@
1
- {"version":3,"sources":["CurrencyInput.tsx"],"names":["CurrencyInputDataTids","root","CurrencyInput","rootNode","state","getState","props","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","SelectionHelper","fromPosition","renderMain","signed","onSubmit","integerDigits","rest","formatted","handleBlur","handleFocus","handleMouseUp","handleKeyDown","handleValueChange","handlePaste","handleCopy","handleCut","onMouseEnter","onMouseLeave","onMouseOver","refInput","getPlaceholder","focus","input","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","CurrencyHelper","parse","onValueChange","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","selectionStart","selectionEnd","selectionDirection","valueLength","onFocus","onBlur","element","componentDidMount","maxLength","undefined","MAX_SAFE_DIGITS","componentDidUpdate","prevProps","prevState","isValidNumber","isNumeric","Number","setSelectionRange","render","setRootNode","format","normilized","normalizeSelection","React","PureComponent","__KONTUR_REACT_UI__","propTypes","align","PropTypes","oneOf","autoFocus","bool","borderless","disabled","error","number","leftIcon","placeholder","string","size","warning","width","oneOfType","func","isRequired","defaultProps","inputMode","HTMLInputElement","Error","isNaN","parseFloat","isFinite"],"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 { isNonNullable, isNullable } from '../../lib/utils';\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\nexport const CurrencyInputDataTids = {\n root: 'CurrencyInput__root',\n} as const;\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: (props: CurrencyInputProps) => {\n warning(isValidNumber(props.value), `[CurrencyInput]: Prop value is not a valid number`);\n },\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 (\n (isValidNumber(value) && isNumeric(value) && Number(value) !== CurrencyHelper.parse(prevState.formatted)) ||\n prevProps.fractionDigits !== fractionDigits\n ) {\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\n return (\n <Input\n data-tid={CurrencyInputDataTids.root}\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 ? '' : getPlaceholder(props)}\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 (isNonNullable(delta) && !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 valueLength = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLength,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLength,\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\nfunction isNumeric(value: unknown): value is number | string {\n return !isNaN(parseFloat(value as string)) && isFinite(value as number);\n}\n\nfunction isValidNumber(value: unknown): boolean {\n return !isNaN(Number(value));\n}\n\nconst getPlaceholder = (props: CurrencyInputProps) => {\n if (isNullable(props.placeholder)) {\n return CurrencyHelper.format(0, {\n fractionDigits: props.fractionDigits,\n hideTrailingZeros: props.hideTrailingZeros,\n });\n }\n\n return props.placeholder;\n};\n"]}
1
+ {"version":3,"sources":["CurrencyInput.tsx"],"names":["CurrencyInputDataTids","root","CurrencyInput","rootNode","getProps","defaultProps","state","getState","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","SelectionHelper","fromPosition","renderMain","props","signed","onSubmit","integerDigits","rest","align","formatted","handleBlur","handleFocus","handleMouseUp","handleKeyDown","handleValueChange","handlePaste","handleCopy","handleCut","onMouseEnter","onMouseLeave","onMouseOver","refInput","getPlaceholder","focus","input","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","CurrencyHelper","parse","onValueChange","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","selectionStart","selectionEnd","selectionDirection","valueLength","onFocus","onBlur","element","componentDidMount","maxLength","undefined","MAX_SAFE_DIGITS","componentDidUpdate","prevProps","prevState","isValidNumber","isNumeric","Number","setSelectionRange","render","setRootNode","format","normilized","normalizeSelection","React","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","oneOf","autoFocus","bool","borderless","disabled","error","number","leftIcon","placeholder","string","size","warning","width","oneOfType","func","isRequired","inputMode","HTMLInputElement","Error","isNaN","parseFloat","isFinite"],"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 { isNonNullable, isNullable } from '../../lib/utils';\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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\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\nexport const CurrencyInputDataTids = {\n root: 'CurrencyInput__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<CurrencyInputProps, 'align' | 'fractionDigits' | 'hideTrailingZeros' | 'value' | 'inputMode'>\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: (props: CurrencyInputProps) => {\n warning(isValidNumber(props.value), `[CurrencyInput]: Prop value is not a valid number`);\n },\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: DefaultProps = {\n align: 'right',\n fractionDigits: 2,\n hideTrailingZeros: false,\n value: null,\n inputMode: 'decimal',\n };\n\n private getProps = createPropsGetter(CurrencyInput.defaultProps);\n\n public state: CurrencyInputState = {\n ...this.getState(this.getProps().value, this.getProps().fractionDigits, this.getProps().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 } = this.props;\n const fractionDigits = this.getProps().fractionDigits;\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.getProps();\n if (\n (isValidNumber(value) && isNumeric(value) && Number(value) !== CurrencyHelper.parse(prevState.formatted)) ||\n prevProps.fractionDigits !== fractionDigits\n ) {\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\n return (\n <Input\n data-tid={CurrencyInputDataTids.root}\n {...rest}\n align={this.getProps().align}\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 ? '' : getPlaceholder(props)}\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.getProps().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 (isNonNullable(delta) && !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 valueLength = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLength,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLength,\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.getProps().fractionDigits, this.getProps().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\nfunction isNumeric(value: unknown): value is number | string {\n return !isNaN(parseFloat(value as string)) && isFinite(value as number);\n}\n\nfunction isValidNumber(value: unknown): boolean {\n return !isNaN(Number(value));\n}\n\nconst getPlaceholder = (props: CurrencyInputProps) => {\n if (isNullable(props.placeholder)) {\n return CurrencyHelper.format(0, {\n fractionDigits: props.fractionDigits,\n hideTrailingZeros: props.hideTrailingZeros,\n });\n }\n\n return props.placeholder;\n};\n"]}
@@ -5,23 +5,17 @@ export interface CurrencyLabelProps extends CommonProps {
5
5
  * Минимальное количество отображаемых знаков после запятой
6
6
  * @default 2
7
7
  */
8
- fractionDigits: number;
8
+ fractionDigits?: number;
9
9
  value: number;
10
10
  currencySymbol?: React.ReactNode;
11
11
  }
12
- export declare const defaultProps: {
13
- fractionDigits: number;
14
- };
15
12
  export declare const CurrencyLabelDataTids: {
16
13
  readonly root: "CurrencyLabel__root";
17
14
  };
18
15
  export declare const CurrencyLabel: {
19
- (props: CurrencyLabelProps): JSX.Element;
16
+ ({ value, fractionDigits, currencySymbol, ...rest }: CurrencyLabelProps): JSX.Element;
20
17
  __KONTUR_REACT_UI__: string;
21
- defaultProps: {
22
- fractionDigits: number;
23
- };
24
18
  propTypes: {
25
- fractionDigits: (props: CurrencyLabelProps & typeof defaultProps) => Error | null;
19
+ fractionDigits: ({ fractionDigits, value }: CurrencyLabelProps) => Error | null;
26
20
  };
27
21
  };
@@ -1,8 +1,8 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.defaultProps = exports.CurrencyLabelDataTids = exports.CurrencyLabel = void 0;var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.CurrencyLabelDataTids = exports.CurrencyLabel = void 0;var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _react = _interopRequireDefault(require("react"));
2
2
 
3
3
  var _constants = require("../CurrencyInput/constants");
4
4
  var _CurrencyHelper = require("../CurrencyInput/CurrencyHelper");
5
- var _CommonWrapper = require("../../internal/CommonWrapper");
5
+ var _CommonWrapper = require("../../internal/CommonWrapper");var _excluded = ["value", "fractionDigits", "currencySymbol"];
6
6
 
7
7
 
8
8
 
@@ -14,18 +14,20 @@ var _CommonWrapper = require("../../internal/CommonWrapper");
14
14
 
15
15
 
16
16
 
17
- var defaultProps = {
18
- fractionDigits: 2 };exports.defaultProps = defaultProps;
19
-
17
+ var FRACTION_DIGITS_DEFAULT = 2;
20
18
 
21
19
  var CurrencyLabelDataTids = {
22
20
  root: 'CurrencyLabel__root' };exports.CurrencyLabelDataTids = CurrencyLabelDataTids;
23
21
 
24
22
 
25
- var CurrencyLabel = function CurrencyLabel(props) {
26
- var value = props.value,fractionDigits = props.fractionDigits,currencySymbol = props.currencySymbol;
23
+ var CurrencyLabel = function CurrencyLabel(_ref)
24
+
25
+
26
+
27
+
28
+ {var value = _ref.value,_ref$fractionDigits = _ref.fractionDigits,fractionDigits = _ref$fractionDigits === void 0 ? FRACTION_DIGITS_DEFAULT : _ref$fractionDigits,currencySymbol = _ref.currencySymbol,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
27
29
  return /*#__PURE__*/(
28
- _react.default.createElement(_CommonWrapper.CommonWrapper, props, /*#__PURE__*/
30
+ _react.default.createElement(_CommonWrapper.CommonWrapper, rest, /*#__PURE__*/
29
31
  _react.default.createElement("span", { "data-tid": CurrencyLabelDataTids.root },
30
32
  _CurrencyHelper.CurrencyHelper.format(value, { fractionDigits: fractionDigits }),
31
33
  currencySymbol && String.fromCharCode(0xa0) /* &nbsp; */,
@@ -37,26 +39,24 @@ var CurrencyLabel = function CurrencyLabel(props) {
37
39
 
38
40
  CurrencyLabel.__KONTUR_REACT_UI__ = 'CurrencyLabel';
39
41
 
40
- CurrencyLabel.defaultProps = defaultProps;
41
-
42
42
  CurrencyLabel.propTypes = {
43
- fractionDigits: function fractionDigits(props) {
44
- if (props.fractionDigits > _constants.MAX_SAFE_DIGITS) {
43
+ fractionDigits: function fractionDigits(_ref2) {var _ref2$fractionDigits = _ref2.fractionDigits,_fractionDigits = _ref2$fractionDigits === void 0 ? FRACTION_DIGITS_DEFAULT : _ref2$fractionDigits,value = _ref2.value;
44
+ if (_fractionDigits > _constants.MAX_SAFE_DIGITS) {
45
45
  return new Error(
46
46
  "[CurrencyLabel]: Prop 'fractionDigits' exceeds " + _constants.MAX_SAFE_DIGITS + "." + "\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15");
47
47
 
48
48
 
49
49
  }
50
50
 
51
- var _ref = _CurrencyHelper.CurrencyHelper.destructString(String(props.value)) || { fraction: '' },fraction = _ref.fraction;
52
- if (fraction.length > props.fractionDigits) {
51
+ var _ref3 = _CurrencyHelper.CurrencyHelper.destructString(String(value)) || { fraction: '' },fraction = _ref3.fraction;
52
+ if (fraction.length > _fractionDigits) {
53
53
  return new Error(
54
54
  "[CurrencyLabel]: Prop 'fractionDigits' less than fractional part of the 'value' property," + "'value' will not be cutted");
55
55
 
56
56
 
57
57
  }
58
58
 
59
- if (!Number.isInteger(props.fractionDigits)) {
59
+ if (!Number.isInteger(_fractionDigits)) {
60
60
  return new Error("[CurrencyLabel]: Prop 'fractionDigits' is not integer, fraction part of these property will not be used");
61
61
 
62
62
 
@@ -1 +1 @@
1
- {"version":3,"sources":["CurrencyLabel.tsx"],"names":["defaultProps","fractionDigits","CurrencyLabelDataTids","root","CurrencyLabel","props","value","currencySymbol","CurrencyHelper","format","String","fromCharCode","__KONTUR_REACT_UI__","propTypes","MAX_SAFE_DIGITS","Error","destructString","fraction","length","Number","isInteger"],"mappings":"kNAAA;;AAEA;AACA;AACA;;;;;;;;;;;;AAYO,IAAMA,YAAY,GAAG;AAC1BC,EAAAA,cAAc,EAAE,CADU,EAArB,C;;;AAIA,IAAMC,qBAAqB,GAAG;AACnCC,EAAAA,IAAI,EAAE,qBAD6B,EAA9B,C;;;AAIA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAA4C;AACvE,MAAQC,KAAR,GAAkDD,KAAlD,CAAQC,KAAR,CAAeL,cAAf,GAAkDI,KAAlD,CAAeJ,cAAf,CAA+BM,cAA/B,GAAkDF,KAAlD,CAA+BE,cAA/B;AACA;AACE,iCAAC,4BAAD,EAAmBF,KAAnB;AACE,2CAAM,YAAUH,qBAAqB,CAACC,IAAtC;AACGK,mCAAeC,MAAf,CAAsBH,KAAtB,EAA6B,EAAEL,cAAc,EAAdA,cAAF,EAA7B,CADH;AAEGM,IAAAA,cAAc,IAAIG,MAAM,CAACC,YAAP,CAAoB,IAApB,CAFrB,CAE+C,YAF/C;AAGGJ,IAAAA,cAHH,CADF,CADF;;;;AASD,CAXM,C;;AAaPH,aAAa,CAACQ,mBAAd,GAAoC,eAApC;;AAEAR,aAAa,CAACJ,YAAd,GAA6BA,YAA7B;;AAEAI,aAAa,CAACS,SAAd,GAA0B;AACxBZ,EAAAA,cAAc,EAAE,wBAACI,KAAD,EAAqD;AACnE,QAAIA,KAAK,CAACJ,cAAN,GAAuBa,0BAA3B,EAA4C;AAC1C,aAAO,IAAIC,KAAJ;AACL,0DAAkDD,0BAAlD,4EADK,CAAP;;;AAID;;AAED,eAAqBN,+BAAeQ,cAAf,CAA8BN,MAAM,CAACL,KAAK,CAACC,KAAP,CAApC,KAAsD,EAAEW,QAAQ,EAAE,EAAZ,EAA3E,CAAQA,QAAR,QAAQA,QAAR;AACA,QAAIA,QAAQ,CAACC,MAAT,GAAkBb,KAAK,CAACJ,cAA5B,EAA4C;AAC1C,aAAO,IAAIc,KAAJ;AACL,gIADK,CAAP;;;AAID;;AAED,QAAI,CAACI,MAAM,CAACC,SAAP,CAAiBf,KAAK,CAACJ,cAAvB,CAAL,EAA6C;AAC3C,aAAO,IAAIc,KAAJ,2GAAP;;;AAGD;;AAED,WAAO,IAAP;AACD,GAxBuB,EAA1B","sourcesContent":["import React from 'react';\n\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\n\nexport interface CurrencyLabelProps extends CommonProps {\n /**\n * Минимальное количество отображаемых знаков после запятой\n * @default 2\n */\n fractionDigits: number;\n value: number;\n currencySymbol?: React.ReactNode;\n}\n\nexport const defaultProps = {\n fractionDigits: 2,\n};\n\nexport const CurrencyLabelDataTids = {\n root: 'CurrencyLabel__root',\n} as const;\n\nexport const CurrencyLabel = (props: CurrencyLabelProps): JSX.Element => {\n const { value, fractionDigits, currencySymbol } = props;\n return (\n <CommonWrapper {...props}>\n <span data-tid={CurrencyLabelDataTids.root}>\n {CurrencyHelper.format(value, { fractionDigits })}\n {currencySymbol && String.fromCharCode(0xa0) /* &nbsp; */}\n {currencySymbol}\n </span>\n </CommonWrapper>\n );\n};\n\nCurrencyLabel.__KONTUR_REACT_UI__ = 'CurrencyLabel';\n\nCurrencyLabel.defaultProps = defaultProps;\n\nCurrencyLabel.propTypes = {\n fractionDigits: (props: CurrencyLabelProps & typeof defaultProps) => {\n if (props.fractionDigits > MAX_SAFE_DIGITS) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n const { fraction } = CurrencyHelper.destructString(String(props.value)) || { fraction: '' };\n if (fraction.length > props.fractionDigits) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' less than fractional part of the 'value' property,` +\n `'value' will not be cutted`,\n );\n }\n\n if (!Number.isInteger(props.fractionDigits)) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' is not integer, fraction part of these property will not be used`,\n );\n }\n\n return null;\n },\n};\n"]}
1
+ {"version":3,"sources":["CurrencyLabel.tsx"],"names":["FRACTION_DIGITS_DEFAULT","CurrencyLabelDataTids","root","CurrencyLabel","value","fractionDigits","currencySymbol","rest","CurrencyHelper","format","String","fromCharCode","__KONTUR_REACT_UI__","propTypes","MAX_SAFE_DIGITS","Error","destructString","fraction","length","Number","isInteger"],"mappings":"uTAAA;;AAEA;AACA;AACA,6D;;;;;;;;;;;;AAYA,IAAMA,uBAAuB,GAAG,CAAhC;;AAEO,IAAMC,qBAAqB,GAAG;AACnCC,EAAAA,IAAI,EAAE,qBAD6B,EAA9B,C;;;AAIA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB;;;;;AAKU,KAJrCC,KAIqC,QAJrCA,KAIqC,4BAHrCC,cAGqC,CAHrCA,cAGqC,oCAHpBL,uBAGoB,uBAFrCM,cAEqC,QAFrCA,cAEqC,CADlCC,IACkC;AACrC;AACE,iCAAC,4BAAD,EAAmBA,IAAnB;AACE,2CAAM,YAAUN,qBAAqB,CAACC,IAAtC;AACGM,mCAAeC,MAAf,CAAsBL,KAAtB,EAA6B,EAAEC,cAAc,EAAdA,cAAF,EAA7B,CADH;AAEGC,IAAAA,cAAc,IAAII,MAAM,CAACC,YAAP,CAAoB,IAApB,CAFrB,CAE+C,YAF/C;AAGGL,IAAAA,cAHH,CADF,CADF;;;;AASD,CAfM,C;;AAiBPH,aAAa,CAACS,mBAAd,GAAoC,eAApC;;AAEAT,aAAa,CAACU,SAAd,GAA0B;AACxBR,EAAAA,cAAc,EAAE,+BAA6E,kCAA1EA,cAA0E,CAA1EA,eAA0E,qCAAzDL,uBAAyD,wBAAhCI,KAAgC,SAAhCA,KAAgC;AAC3F,QAAIC,eAAc,GAAGS,0BAArB,EAAsC;AACpC,aAAO,IAAIC,KAAJ;AACL,0DAAkDD,0BAAlD,4EADK,CAAP;;;AAID;;AAED,gBAAqBN,+BAAeQ,cAAf,CAA8BN,MAAM,CAACN,KAAD,CAApC,KAAgD,EAAEa,QAAQ,EAAE,EAAZ,EAArE,CAAQA,QAAR,SAAQA,QAAR;AACA,QAAIA,QAAQ,CAACC,MAAT,GAAkBb,eAAtB,EAAsC;AACpC,aAAO,IAAIU,KAAJ;AACL,gIADK,CAAP;;;AAID;;AAED,QAAI,CAACI,MAAM,CAACC,SAAP,CAAiBf,eAAjB,CAAL,EAAuC;AACrC,aAAO,IAAIU,KAAJ,2GAAP;;;AAGD;;AAED,WAAO,IAAP;AACD,GAxBuB,EAA1B","sourcesContent":["import React from 'react';\n\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\n\nexport interface CurrencyLabelProps extends CommonProps {\n /**\n * Минимальное количество отображаемых знаков после запятой\n * @default 2\n */\n fractionDigits?: number;\n value: number;\n currencySymbol?: React.ReactNode;\n}\n\nconst FRACTION_DIGITS_DEFAULT = 2;\n\nexport const CurrencyLabelDataTids = {\n root: 'CurrencyLabel__root',\n} as const;\n\nexport const CurrencyLabel = ({\n value,\n fractionDigits = FRACTION_DIGITS_DEFAULT,\n currencySymbol,\n ...rest\n}: CurrencyLabelProps): JSX.Element => {\n return (\n <CommonWrapper {...rest}>\n <span data-tid={CurrencyLabelDataTids.root}>\n {CurrencyHelper.format(value, { fractionDigits })}\n {currencySymbol && String.fromCharCode(0xa0) /* &nbsp; */}\n {currencySymbol}\n </span>\n </CommonWrapper>\n );\n};\n\nCurrencyLabel.__KONTUR_REACT_UI__ = 'CurrencyLabel';\n\nCurrencyLabel.propTypes = {\n fractionDigits: ({ fractionDigits = FRACTION_DIGITS_DEFAULT, value }: CurrencyLabelProps) => {\n if (fractionDigits > MAX_SAFE_DIGITS) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n const { fraction } = CurrencyHelper.destructString(String(value)) || { fraction: '' };\n if (fraction.length > fractionDigits) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' less than fractional part of the 'value' property,` +\n `'value' will not be cutted`,\n );\n }\n\n if (!Number.isInteger(fractionDigits)) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' is not integer, fraction part of these property will not be used`,\n );\n }\n\n return null;\n },\n};\n"]}
@@ -10,7 +10,7 @@ export interface DateInputState {
10
10
  }
11
11
  export interface DateInputProps extends CommonProps {
12
12
  autoFocus?: boolean;
13
- value: string;
13
+ value?: string;
14
14
  /**
15
15
  * Состояние валидации при ошибке.
16
16
  */
@@ -24,12 +24,12 @@ export interface DateInputProps extends CommonProps {
24
24
  * Минимальная дата.
25
25
  * @default '01.01.1900'
26
26
  */
27
- minDate: string;
27
+ minDate?: string;
28
28
  /**
29
29
  * Максимальная дата
30
30
  * @default '31.12.2099'
31
31
  */
32
- maxDate: string;
32
+ maxDate?: string;
33
33
  /**
34
34
  * Ширина поля
35
35
  * @default 125
@@ -40,7 +40,7 @@ export interface DateInputProps extends CommonProps {
40
40
  * Размер поля
41
41
  * @default 'small'
42
42
  */
43
- size: 'small' | 'large' | 'medium';
43
+ size?: 'small' | 'large' | 'medium';
44
44
  onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;
45
45
  onClick?: (x0: React.MouseEvent<HTMLElement>) => void;
46
46
  onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;
@@ -52,15 +52,11 @@ export interface DateInputProps extends CommonProps {
52
52
  onValueChange?: (value: string) => void;
53
53
  onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;
54
54
  }
55
+ declare type DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'size' | 'width'>>;
55
56
  export declare class DateInput extends React.Component<DateInputProps, DateInputState> {
56
57
  static __KONTUR_REACT_UI__: string;
57
- static defaultProps: {
58
- value: string;
59
- minDate: string;
60
- maxDate: string;
61
- size: string;
62
- width: number;
63
- };
58
+ static defaultProps: DefaultProps;
59
+ private getProps;
64
60
  private iDateMediator;
65
61
  private inputLikeText;
66
62
  private dateFragmentsView;
@@ -105,3 +101,4 @@ export declare class DateInput extends React.Component<DateInputProps, DateInput
105
101
  private shiftSelection;
106
102
  private inputValue;
107
103
  }
104
+ export {};
@@ -12,6 +12,7 @@ var _px = require("../../internal/icons/16px");
12
12
  var _CommonWrapper = require("../../internal/CommonWrapper");
13
13
  var _Emotion = require("../../lib/theming/Emotion");
14
14
  var _rootNode = require("../../lib/rootNode");
15
+ var _createPropsGetter = require("../../lib/createPropsGetter");
15
16
 
16
17
  var _DateFragmentsView = require("./DateFragmentsView");
17
18
  var _DateInput = require("./DateInput.styles");
@@ -70,6 +71,8 @@ var _InternalDateMediator = require("./helpers/InternalDateMediator");var _dec,
70
71
 
71
72
 
72
73
 
74
+
75
+
73
76
 
74
77
 
75
78
 
@@ -106,11 +109,14 @@ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLoca
106
109
 
107
110
 
108
111
 
112
+
113
+
109
114
 
110
115
 
111
116
 
112
117
  function DateInput(props) {var _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.blurEvent = null;_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.
118
+ _this = _React$Component.call(this, props) || this;_this.getProps = (0, _createPropsGetter.createPropsGetter)(DateInput.defaultProps);_this.iDateMediator = new _InternalDateMediator.InternalDateMediator();_this.inputLikeText = null;_this.dateFragmentsView = null;_this.isMouseDown = false;_this.isMouseFocus = false;_this.ignoringDelimiter = false;_this.blurEvent = null;_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.
119
+
114
120
 
115
121
 
116
122
 
@@ -224,10 +230,12 @@ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLoca
224
230
 
225
231
 
226
232
 
233
+
227
234
 
228
235
 
229
236
  renderIcon = function () {
230
- var _this$props = _this.props,withIcon = _this$props.withIcon,size = _this$props.size,_this$props$disabled = _this$props.disabled,disabled = _this$props$disabled === void 0 ? false : _this$props$disabled;
237
+ var _this$props = _this.props,withIcon = _this$props.withIcon,_this$props$disabled = _this$props.disabled,disabled = _this$props$disabled === void 0 ? false : _this$props$disabled;
238
+ var size = _this.getProps().size;
231
239
 
232
240
  if (withIcon) {var _cx;
233
241
  var theme = _this.theme;
@@ -443,4 +451,4 @@ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLoca
443
451
  _this.shiftSelection(1);
444
452
  }
445
453
  _this.updateValue({ inputMode: inputMode });
446
- };_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;
454
+ };_this.state = { valueFormatted: '', selected: null, inputMode: false, focused: false, dragged: false };return _this;}var _proto = DateInput.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var _this$getProps = this.getProps(),value = _this$getProps.value,minDate = _this$getProps.minDate,maxDate = _this$getProps.maxDate;if (prevProps.value !== value || prevProps.minDate !== minDate || prevProps.maxDate !== 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);var _this$getProps2 = this.getProps(),width = _this$getProps2.width,size = _this$getProps2.size;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_InputLikeText.InputLikeText, { width: width, ref: this.inputLikeTextRef, size: 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;