@skbkontur/react-ui 0.0.0-2ac4c133dd → 0.0.0-2dd5039746

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 (1102) hide show
  1. package/CHANGELOG.md +309 -0
  2. package/README.md +29 -25
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +13 -18
  4. package/cjs/components/Autocomplete/Autocomplete.js +47 -10
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Autocomplete/Autocomplete.md +15 -1
  7. package/cjs/components/Autocomplete/locale/index.d.ts +4 -0
  8. package/cjs/components/Autocomplete/locale/index.js +11 -0
  9. package/cjs/components/Autocomplete/locale/index.js.map +1 -0
  10. package/cjs/components/Autocomplete/locale/locales/en.d.ts +2 -0
  11. package/cjs/components/Autocomplete/locale/locales/en.js +6 -0
  12. package/cjs/components/Autocomplete/locale/locales/en.js.map +1 -0
  13. package/cjs/components/Autocomplete/locale/locales/ru.d.ts +2 -0
  14. package/cjs/components/Autocomplete/locale/locales/ru.js +6 -0
  15. package/cjs/components/Autocomplete/locale/locales/ru.js.map +1 -0
  16. package/cjs/components/Autocomplete/locale/types.d.ts +5 -0
  17. package/cjs/components/Autocomplete/locale/types.js +1 -0
  18. package/cjs/components/Autocomplete/locale/types.js.map +1 -0
  19. package/cjs/components/Button/Button.d.ts +9 -6
  20. package/cjs/components/Button/Button.js +14 -3
  21. package/cjs/components/Button/Button.js.map +1 -1
  22. package/cjs/components/Button/Button.mixins.js +1 -1
  23. package/cjs/components/Button/Button.mixins.js.map +1 -1
  24. package/cjs/components/Button/Button.styles.js +18 -18
  25. package/cjs/components/Button/Button.styles.js.map +1 -1
  26. package/cjs/components/Center/Center.d.ts +4 -3
  27. package/cjs/components/Center/Center.js +9 -3
  28. package/cjs/components/Center/Center.js.map +1 -1
  29. package/cjs/components/Checkbox/Checkbox.d.ts +5 -1
  30. package/cjs/components/Checkbox/Checkbox.js +12 -5
  31. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  32. package/cjs/components/Checkbox/Checkbox.md +49 -1
  33. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -1
  34. package/cjs/components/Checkbox/Checkbox.styles.js +1 -1
  35. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  36. package/cjs/components/ComboBox/ComboBox.d.ts +30 -15
  37. package/cjs/components/ComboBox/ComboBox.js +34 -2
  38. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  39. package/cjs/components/ComboBox/ComboBox.md +84 -1
  40. package/cjs/components/CurrencyInput/CurrencyHelper.js +1 -1
  41. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  42. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  43. package/cjs/components/CurrencyInput/CurrencyInput.js +29 -11
  44. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  45. package/cjs/components/CurrencyInput/CurrencyInput.md +13 -0
  46. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  47. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js +14 -2
  48. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
  49. package/cjs/components/CurrencyInput/constants.d.ts +3 -0
  50. package/cjs/components/CurrencyInput/constants.js +6 -2
  51. package/cjs/components/CurrencyInput/constants.js.map +1 -1
  52. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +5 -9
  53. package/cjs/components/CurrencyLabel/CurrencyLabel.js +18 -15
  54. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  55. package/cjs/components/CurrencyLabel/CurrencyLabel.md +6 -0
  56. package/cjs/components/DateInput/DateFragmentsView.d.ts +1 -1
  57. package/cjs/components/DateInput/DateFragmentsView.js +10 -1
  58. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  59. package/cjs/components/DateInput/DateInput.d.ts +9 -12
  60. package/cjs/components/DateInput/DateInput.js +11 -3
  61. package/cjs/components/DateInput/DateInput.js.map +1 -1
  62. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -2
  63. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
  64. package/cjs/components/DateInput/helpers/SelectionHelpers.js +2 -2
  65. package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
  66. package/cjs/components/DatePicker/DatePicker.d.ts +14 -16
  67. package/cjs/components/DatePicker/DatePicker.js +24 -11
  68. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  69. package/cjs/components/DatePicker/DatePicker.md +18 -0
  70. package/cjs/components/DatePicker/Picker.js +5 -1
  71. package/cjs/components/DatePicker/Picker.js.map +1 -1
  72. package/cjs/components/Dropdown/Dropdown.d.ts +8 -2
  73. package/cjs/components/Dropdown/Dropdown.js +30 -4
  74. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  75. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +7 -7
  76. package/cjs/components/DropdownMenu/DropdownMenu.js +9 -3
  77. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  78. package/cjs/components/DropdownMenu/DropdownMenu.md +68 -1
  79. package/cjs/components/FileUploader/FileUploader.d.ts +11 -2
  80. package/cjs/components/FileUploader/FileUploader.js +83 -20
  81. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  82. package/cjs/components/FileUploader/FileUploader.md +13 -1
  83. package/cjs/components/FileUploader/FileUploader.mixins.d.ts +1 -0
  84. package/cjs/components/FileUploader/FileUploader.mixins.js +10 -0
  85. package/cjs/components/FileUploader/FileUploader.mixins.js.map +1 -0
  86. package/cjs/components/FileUploader/FileUploader.styles.d.ts +12 -1
  87. package/cjs/components/FileUploader/FileUploader.styles.js +119 -22
  88. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  89. package/cjs/components/FxInput/FxInput.d.ts +6 -6
  90. package/cjs/components/FxInput/FxInput.js +16 -11
  91. package/cjs/components/FxInput/FxInput.js.map +1 -1
  92. package/cjs/components/FxInput/FxInput.md +13 -0
  93. package/cjs/components/Gapped/Gapped.d.ts +7 -8
  94. package/cjs/components/Gapped/Gapped.js +12 -6
  95. package/cjs/components/Gapped/Gapped.js.map +1 -1
  96. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  97. package/cjs/components/GlobalLoader/GlobalLoader.js +13 -9
  98. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  99. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  100. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  101. package/cjs/components/Group/Group.d.ts +1 -0
  102. package/cjs/components/Group/Group.js +7 -11
  103. package/cjs/components/Group/Group.js.map +1 -1
  104. package/cjs/components/Hint/Hint.d.ts +9 -15
  105. package/cjs/components/Hint/Hint.js +14 -25
  106. package/cjs/components/Hint/Hint.js.map +1 -1
  107. package/cjs/components/Hint/Hint.md +43 -0
  108. package/cjs/components/Hint/Hint.styles.d.ts +0 -1
  109. package/cjs/components/Hint/Hint.styles.js +2 -10
  110. package/cjs/components/Hint/Hint.styles.js.map +1 -1
  111. package/cjs/components/Input/Input.d.ts +9 -4
  112. package/cjs/components/Input/Input.js +26 -9
  113. package/cjs/components/Input/Input.js.map +1 -1
  114. package/cjs/components/Input/Input.md +17 -1
  115. package/cjs/components/Input/Input.styles.d.ts +1 -0
  116. package/cjs/components/Input/Input.styles.js +17 -10
  117. package/cjs/components/Input/Input.styles.js.map +1 -1
  118. package/cjs/components/Kebab/Kebab.d.ts +13 -16
  119. package/cjs/components/Kebab/Kebab.js +20 -6
  120. package/cjs/components/Kebab/Kebab.js.map +1 -1
  121. package/cjs/components/Link/Link.d.ts +5 -7
  122. package/cjs/components/Link/Link.js +12 -5
  123. package/cjs/components/Link/Link.js.map +1 -1
  124. package/cjs/components/Loader/Loader.d.ts +20 -7
  125. package/cjs/components/Loader/Loader.js +25 -5
  126. package/cjs/components/Loader/Loader.js.map +1 -1
  127. package/cjs/components/Loader/Loader.md +30 -23
  128. package/cjs/components/Loader/__stories__/LoaderAndButton.js +6 -0
  129. package/cjs/components/Loader/__stories__/LoaderAndButton.js.map +1 -1
  130. package/cjs/components/MenuHeader/MenuHeader.d.ts +1 -1
  131. package/cjs/components/MenuHeader/MenuHeader.js +1 -1
  132. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  133. package/cjs/components/MenuItem/MenuItem.d.ts +19 -3
  134. package/cjs/components/MenuItem/MenuItem.js +75 -28
  135. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  136. package/cjs/components/MenuItem/MenuItem.styles.d.ts +5 -0
  137. package/cjs/components/MenuItem/MenuItem.styles.js +34 -14
  138. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  139. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +1 -1
  140. package/cjs/components/MenuSeparator/MenuSeparator.js +13 -2
  141. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  142. package/cjs/components/MenuSeparator/MenuSeparator.styles.d.ts +1 -0
  143. package/cjs/components/MenuSeparator/MenuSeparator.styles.js +8 -1
  144. package/cjs/components/MenuSeparator/MenuSeparator.styles.js.map +1 -1
  145. package/cjs/components/Modal/Modal.d.ts +4 -3
  146. package/cjs/components/Modal/Modal.js +9 -8
  147. package/cjs/components/Modal/Modal.js.map +1 -1
  148. package/cjs/components/Modal/Modal.styles.d.ts +2 -2
  149. package/cjs/components/Modal/Modal.styles.js +3 -3
  150. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  151. package/cjs/components/Modal/ModalBody.js +2 -2
  152. package/cjs/components/Modal/ModalBody.js.map +1 -1
  153. package/cjs/components/Modal/ModalFooter.d.ts +14 -0
  154. package/cjs/components/Modal/ModalFooter.js +23 -2
  155. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  156. package/cjs/components/Modal/ModalHeader.js +1 -1
  157. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  158. package/cjs/components/Paging/Paging.d.ts +7 -10
  159. package/cjs/components/Paging/Paging.js +34 -19
  160. package/cjs/components/Paging/Paging.js.map +1 -1
  161. package/cjs/components/Paging/Paging.md +13 -0
  162. package/cjs/components/Paging/Paging.styles.d.ts +6 -2
  163. package/cjs/components/Paging/Paging.styles.js +41 -15
  164. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  165. package/cjs/components/Paging/PagingDefaultComponent.d.ts +3 -3
  166. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  167. package/cjs/components/PasswordInput/PasswordInput.d.ts +4 -3
  168. package/cjs/components/PasswordInput/PasswordInput.js +14 -7
  169. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  170. package/cjs/components/Radio/Radio.d.ts +4 -3
  171. package/cjs/components/Radio/Radio.js +11 -4
  172. package/cjs/components/Radio/Radio.js.map +1 -1
  173. package/cjs/components/RadioGroup/RadioGroup.d.ts +7 -19
  174. package/cjs/components/RadioGroup/RadioGroup.js +19 -20
  175. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  176. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  177. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +5 -9
  178. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  179. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  180. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +16 -13
  181. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  182. package/cjs/components/ResponsiveLayout/decorator.d.ts +1 -1
  183. package/cjs/components/ResponsiveLayout/types.d.ts +9 -1
  184. package/cjs/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  185. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +31 -15
  186. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  187. package/cjs/components/ScrollContainer/ScrollBar.d.ts +12 -2
  188. package/cjs/components/ScrollContainer/ScrollBar.js +67 -10
  189. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  190. package/cjs/components/ScrollContainer/ScrollContainer.constants.js +3 -2
  191. package/cjs/components/ScrollContainer/ScrollContainer.constants.js.map +1 -1
  192. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +29 -8
  193. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +8 -4
  194. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
  195. package/cjs/components/ScrollContainer/ScrollContainer.js +56 -11
  196. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  197. package/cjs/components/ScrollContainer/ScrollContainer.md +52 -0
  198. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +9 -0
  199. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +48 -21
  200. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  201. package/cjs/components/Select/Item.d.ts +4 -2
  202. package/cjs/components/Select/Item.js +3 -0
  203. package/cjs/components/Select/Item.js.map +1 -1
  204. package/cjs/components/Select/Select.d.ts +13 -38
  205. package/cjs/components/Select/Select.js +21 -22
  206. package/cjs/components/Select/Select.js.map +1 -1
  207. package/cjs/components/Select/Select.md +14 -0
  208. package/cjs/components/Select/Select.styles.js +4 -4
  209. package/cjs/components/Select/Select.styles.js.map +1 -1
  210. package/cjs/components/Select/selectTheme.js +2 -0
  211. package/cjs/components/Select/selectTheme.js.map +1 -1
  212. package/cjs/components/SidePage/SidePage.d.ts +9 -6
  213. package/cjs/components/SidePage/SidePage.js +12 -1
  214. package/cjs/components/SidePage/SidePage.js.map +1 -1
  215. package/cjs/components/SidePage/SidePageFooter.d.ts +15 -5
  216. package/cjs/components/SidePage/SidePageFooter.js +20 -1
  217. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  218. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -1
  219. package/cjs/components/SidePage/SidePageHeader.js +1 -1
  220. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  221. package/cjs/components/Spinner/Spinner.d.ts +15 -4
  222. package/cjs/components/Spinner/Spinner.js +20 -5
  223. package/cjs/components/Spinner/Spinner.js.map +1 -1
  224. package/cjs/components/Spinner/Spinner.styles.d.ts +1 -1
  225. package/cjs/components/Spinner/Spinner.styles.js +7 -7
  226. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  227. package/cjs/components/Sticky/Sticky.d.ts +7 -6
  228. package/cjs/components/Sticky/Sticky.js +10 -3
  229. package/cjs/components/Sticky/Sticky.js.map +1 -1
  230. package/cjs/components/Switcher/Switcher.d.ts +12 -3
  231. package/cjs/components/Switcher/Switcher.js +69 -35
  232. package/cjs/components/Switcher/Switcher.js.map +1 -1
  233. package/cjs/components/Switcher/Switcher.md +97 -0
  234. package/cjs/components/Switcher/helpers.d.ts +1 -0
  235. package/cjs/components/Switcher/helpers.js +1 -0
  236. package/cjs/components/Switcher/helpers.js.map +1 -0
  237. package/cjs/components/Tabs/Indicator.d.ts +1 -1
  238. package/cjs/components/Tabs/Indicator.js +1 -1
  239. package/cjs/components/Tabs/Indicator.js.map +1 -1
  240. package/cjs/components/Tabs/Tab.d.ts +9 -13
  241. package/cjs/components/Tabs/Tab.js +14 -19
  242. package/cjs/components/Tabs/Tab.js.map +1 -1
  243. package/cjs/components/Tabs/Tabs.d.ts +9 -13
  244. package/cjs/components/Tabs/Tabs.js +17 -10
  245. package/cjs/components/Tabs/Tabs.js.map +1 -1
  246. package/cjs/components/Textarea/Textarea.d.ts +9 -10
  247. package/cjs/components/Textarea/Textarea.js +14 -7
  248. package/cjs/components/Textarea/Textarea.js.map +1 -1
  249. package/cjs/components/Textarea/Textarea.md +19 -0
  250. package/cjs/components/Textarea/TextareaCounter.d.ts +2 -2
  251. package/cjs/components/Textarea/TextareaCounter.js +5 -1
  252. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  253. package/cjs/components/Toast/Toast.d.ts +6 -3
  254. package/cjs/components/Toast/Toast.js +16 -9
  255. package/cjs/components/Toast/Toast.js.map +1 -1
  256. package/cjs/components/Toast/Toast.md +129 -0
  257. package/cjs/components/Toast/ToastStatic.d.ts +3 -2
  258. package/cjs/components/Toast/ToastStatic.js +5 -5
  259. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  260. package/cjs/components/Toggle/Toggle.d.ts +10 -7
  261. package/cjs/components/Toggle/Toggle.js +16 -4
  262. package/cjs/components/Toggle/Toggle.js.map +1 -1
  263. package/cjs/components/Token/Token.d.ts +6 -1
  264. package/cjs/components/Token/Token.js +13 -2
  265. package/cjs/components/Token/Token.js.map +1 -1
  266. package/cjs/components/Token/Token.styles.js +2 -1
  267. package/cjs/components/Token/Token.styles.js.map +1 -1
  268. package/cjs/components/TokenInput/TokenInput.d.ts +27 -17
  269. package/cjs/components/TokenInput/TokenInput.js +141 -68
  270. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  271. package/cjs/components/TokenInput/TokenInput.md +26 -0
  272. package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
  273. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  274. package/cjs/components/TokenInput/TokenInputMenu.d.ts +2 -1
  275. package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
  276. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  277. package/cjs/components/Tooltip/Tooltip.d.ts +14 -21
  278. package/cjs/components/Tooltip/Tooltip.js +26 -38
  279. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  280. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +8 -7
  281. package/cjs/components/TooltipMenu/TooltipMenu.js +11 -5
  282. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  283. package/cjs/components/TooltipMenu/TooltipMenu.md +28 -1
  284. package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -2
  285. package/cjs/hooks/useEffectWithoutInitCall.js +2 -2
  286. package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -1
  287. package/cjs/hooks/useMemoObject.d.ts +2 -1
  288. package/cjs/hooks/useMemoObject.js +2 -0
  289. package/cjs/hooks/useMemoObject.js.map +1 -1
  290. package/cjs/index.d.ts +2 -0
  291. package/cjs/index.js +54 -54
  292. package/cjs/index.js.map +1 -1
  293. package/cjs/internal/BGRuler.d.ts +13 -15
  294. package/cjs/internal/BGRuler.js +16 -8
  295. package/cjs/internal/BGRuler.js.map +1 -1
  296. package/cjs/internal/Calendar/Calendar.d.ts +4 -13
  297. package/cjs/internal/Calendar/Calendar.js +10 -5
  298. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  299. package/cjs/internal/Calendar/DayCellView.styles.js +1 -1
  300. package/cjs/internal/Calendar/DayCellView.styles.js.map +1 -1
  301. package/cjs/internal/Calendar/Month.js +16 -11
  302. package/cjs/internal/Calendar/Month.js.map +1 -1
  303. package/cjs/internal/Calendar/MonthViewModel.d.ts +1 -1
  304. package/cjs/internal/Calendar/config.d.ts +1 -8
  305. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  306. package/cjs/internal/CommonWrapper/CommonWrapper.js +5 -4
  307. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  308. package/cjs/internal/ComponentCombinator.d.ts +6 -8
  309. package/cjs/internal/ComponentCombinator.js +6 -2
  310. package/cjs/internal/ComponentCombinator.js.map +1 -1
  311. package/cjs/internal/ComponentTable.d.ts +7 -8
  312. package/cjs/internal/ComponentTable.js +14 -3
  313. package/cjs/internal/ComponentTable.js.map +1 -1
  314. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -6
  315. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +16 -9
  316. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  317. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +9 -14
  318. package/cjs/internal/CustomComboBox/ComboBoxView.js +26 -12
  319. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  320. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +5 -2
  321. package/cjs/internal/CustomComboBox/CustomComboBox.js +7 -1
  322. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  323. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +8 -6
  324. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  325. package/cjs/internal/DataTids/DataTids.d.ts +5 -5
  326. package/cjs/internal/DataTids/DataTids.js +4 -0
  327. package/cjs/internal/DataTids/DataTids.js.map +1 -1
  328. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -6
  329. package/cjs/internal/DateSelect/DateSelect.js +16 -10
  330. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  331. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +8 -7
  332. package/cjs/internal/DropdownContainer/DropdownContainer.js +19 -11
  333. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  334. package/cjs/internal/DropdownContainer/getManualPosition.d.ts +19 -0
  335. package/cjs/internal/DropdownContainer/getManualPosition.js +41 -0
  336. package/cjs/internal/DropdownContainer/getManualPosition.js.map +1 -0
  337. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +2 -0
  338. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +2 -0
  339. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +1 -1
  340. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +4 -1
  341. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  342. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -0
  343. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +48 -11
  344. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  345. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +7 -0
  346. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +49 -7
  347. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +1 -1
  348. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -0
  349. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +15 -3
  350. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  351. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +3 -0
  352. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +19 -1
  353. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -1
  354. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -0
  355. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.js +18 -0
  356. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.js.map +1 -0
  357. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  358. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  359. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  360. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  361. package/cjs/internal/InputLikeText/InputLikeText.d.ts +5 -3
  362. package/cjs/internal/InputLikeText/InputLikeText.js +23 -8
  363. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  364. package/cjs/internal/InternalMenu/InternalMenu.d.ts +4 -9
  365. package/cjs/internal/InternalMenu/InternalMenu.js +60 -22
  366. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  367. package/cjs/internal/InternalMenu/InternalMenu.styles.d.ts +5 -4
  368. package/cjs/internal/InternalMenu/InternalMenu.styles.js +15 -18
  369. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  370. package/cjs/internal/MaskedInput/MaskedInput.d.ts +5 -2
  371. package/cjs/internal/MaskedInput/MaskedInput.js +20 -7
  372. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  373. package/cjs/internal/Menu/Menu.d.ts +5 -7
  374. package/cjs/internal/Menu/Menu.js +32 -10
  375. package/cjs/internal/Menu/Menu.js.map +1 -1
  376. package/cjs/internal/Menu/Menu.styles.d.ts +2 -0
  377. package/cjs/internal/Menu/Menu.styles.js +21 -7
  378. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  379. package/cjs/internal/MenuMessage/MenuMessage.d.ts +10 -0
  380. package/cjs/internal/MenuMessage/MenuMessage.js +43 -0
  381. package/cjs/internal/MenuMessage/MenuMessage.js.map +1 -0
  382. package/cjs/internal/MenuMessage/MenuMessage.styles.d.ts +5 -0
  383. package/cjs/internal/MenuMessage/MenuMessage.styles.js +33 -0
  384. package/cjs/internal/MenuMessage/MenuMessage.styles.js.map +1 -0
  385. package/cjs/internal/MenuMessage/index.d.ts +1 -0
  386. package/cjs/internal/MenuMessage/index.js +1 -0
  387. package/cjs/internal/MenuMessage/index.js.map +1 -0
  388. package/cjs/internal/MobilePopup/MobilePopup.d.ts +13 -12
  389. package/cjs/internal/MobilePopup/MobilePopup.js +6 -60
  390. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  391. package/cjs/internal/MobilePopup/MobilePopup.styles.d.ts +3 -3
  392. package/cjs/internal/MobilePopup/MobilePopup.styles.js +22 -24
  393. package/cjs/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
  394. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +3 -4
  395. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +26 -37
  396. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  397. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +2 -4
  398. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +8 -32
  399. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
  400. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  401. package/cjs/internal/Popup/Popup.d.ts +18 -18
  402. package/cjs/internal/Popup/Popup.js +60 -22
  403. package/cjs/internal/Popup/Popup.js.map +1 -1
  404. package/cjs/internal/Popup/PopupHelper.d.ts +1 -1
  405. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  406. package/cjs/internal/Popup/PopupPin.d.ts +1 -1
  407. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  408. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -11
  409. package/cjs/internal/PopupMenu/PopupMenu.js +8 -1
  410. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  411. package/cjs/internal/RenderLayer/RenderLayer.d.ts +5 -4
  412. package/cjs/internal/RenderLayer/RenderLayer.js +12 -2
  413. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  414. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  415. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js +7 -0
  416. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
  417. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  418. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js +2 -3
  419. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js.map +1 -1
  420. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  421. package/cjs/internal/ThemePlayground/FxInputPlayground.js +5 -5
  422. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  423. package/cjs/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  424. package/cjs/internal/ThemePlayground/HintPlayground.js.map +1 -1
  425. package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  426. package/cjs/internal/ThemePlayground/PagingPlayground.js +5 -2
  427. package/cjs/internal/ThemePlayground/PagingPlayground.js.map +1 -1
  428. package/cjs/internal/ThemePlayground/Playground.d.ts +1 -1
  429. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  430. package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  431. package/cjs/internal/ThemePlayground/SelectPlayground.js +6 -0
  432. package/cjs/internal/ThemePlayground/SelectPlayground.js.map +1 -1
  433. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  434. package/cjs/internal/ThemePlayground/SizesGroup.js +2 -0
  435. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  436. package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  437. package/cjs/internal/ThemePlayground/SwitcherPlayground.js +6 -1
  438. package/cjs/internal/ThemePlayground/SwitcherPlayground.js.map +1 -1
  439. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -4
  440. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  441. package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  442. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  443. package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  444. package/cjs/internal/ThemePlayground/TogglePlayground.js +4 -10
  445. package/cjs/internal/ThemePlayground/TogglePlayground.js.map +1 -1
  446. package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  447. package/cjs/internal/ThemePlayground/TokenInputPlayground.js +3 -0
  448. package/cjs/internal/ThemePlayground/TokenInputPlayground.js.map +1 -1
  449. package/cjs/internal/ThemePlayground/VariableValue.d.ts +6 -8
  450. package/cjs/internal/ThemePlayground/VariableValue.js +6 -1
  451. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  452. package/cjs/internal/ThemePlayground/helpers.d.ts +1 -1
  453. package/cjs/internal/ThemePlayground/helpers.js +4 -2
  454. package/cjs/internal/ThemePlayground/helpers.js.map +1 -1
  455. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  456. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  457. package/cjs/internal/ZIndex/ZIndex.d.ts +22 -12
  458. package/cjs/internal/ZIndex/ZIndex.js +54 -13
  459. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  460. package/cjs/internal/icons/16px/index.js +2 -1
  461. package/cjs/internal/icons/16px/index.js.map +1 -1
  462. package/cjs/internal/icons/20px/svg.js +2 -1
  463. package/cjs/internal/icons/20px/svg.js.map +1 -1
  464. package/cjs/internal/icons/CloudIcon.js +1 -1
  465. package/cjs/internal/icons/CloudIcon.js.map +1 -1
  466. package/cjs/internal/icons/CrossIcon.js +2 -1
  467. package/cjs/internal/icons/CrossIcon.js.map +1 -1
  468. package/cjs/internal/icons/SpinnerIcon.js +3 -1
  469. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  470. package/cjs/internal/themes/DarkTheme.d.ts +1 -0
  471. package/cjs/internal/themes/DarkTheme.js +2 -1
  472. package/cjs/internal/themes/DarkTheme.js.map +1 -1
  473. package/cjs/internal/themes/DefaultTheme.d.ts +43 -3
  474. package/cjs/internal/themes/DefaultTheme.js +106 -10
  475. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  476. package/cjs/internal/themes/Theme2022.d.ts +1 -0
  477. package/cjs/internal/themes/Theme2022.js +1 -0
  478. package/cjs/internal/themes/Theme2022.js.map +1 -1
  479. package/cjs/lib/ConditionalHandler.js.map +1 -1
  480. package/cjs/lib/InstanceWithAnchorElement.d.ts +1 -1
  481. package/cjs/lib/InstanceWithAnchorElement.js.map +1 -1
  482. package/cjs/lib/ModalStack.js +2 -2
  483. package/cjs/lib/ModalStack.js.map +1 -1
  484. package/cjs/lib/SSRSafe.d.ts +3 -1
  485. package/cjs/lib/SSRSafe.js +15 -1
  486. package/cjs/lib/SSRSafe.js.map +1 -1
  487. package/cjs/lib/Upgrades.js +5 -0
  488. package/cjs/lib/Upgrades.js.map +1 -1
  489. package/cjs/lib/animation/index.js +1 -0
  490. package/cjs/lib/animation/index.js.map +1 -1
  491. package/cjs/lib/callChildRef/callChildRef.js +1 -1
  492. package/cjs/lib/callChildRef/callChildRef.js.map +1 -1
  493. package/cjs/lib/createPropsGetter.d.ts +2 -1
  494. package/cjs/lib/createPropsGetter.js +3 -0
  495. package/cjs/lib/createPropsGetter.js.map +1 -1
  496. package/cjs/lib/currentEnvironment.js +33 -12
  497. package/cjs/lib/currentEnvironment.js.map +1 -1
  498. package/cjs/lib/date/InternalDateCalculator.d.ts +1 -1
  499. package/cjs/lib/date/InternalDateCalculator.js +1 -1
  500. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  501. package/cjs/lib/date/InternalDateValidator.d.ts +1 -1
  502. package/cjs/lib/date/InternalDateValidator.js +9 -2
  503. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  504. package/cjs/lib/extractKeyboardAction.d.ts +1 -1
  505. package/cjs/lib/extractKeyboardAction.js.map +1 -1
  506. package/cjs/lib/filterProps.js +0 -1
  507. package/cjs/lib/filterProps.js.map +1 -1
  508. package/cjs/lib/listenFocusOutside.d.ts +1 -1
  509. package/cjs/lib/listenFocusOutside.js.map +1 -1
  510. package/cjs/lib/locale/LOCALECONTEXT.md +1 -0
  511. package/cjs/lib/locale/useLocaleForControl.d.ts +1 -1
  512. package/cjs/lib/locale/useLocaleForControl.js.map +1 -1
  513. package/cjs/lib/memo.d.ts +3 -1
  514. package/cjs/lib/memo.js +3 -3
  515. package/cjs/lib/memo.js.map +1 -1
  516. package/cjs/lib/net/fetch.js +2 -2
  517. package/cjs/lib/net/fetch.js.map +1 -1
  518. package/cjs/lib/reactGetTextContent.js +0 -1
  519. package/cjs/lib/reactGetTextContent.js.map +1 -1
  520. package/cjs/lib/rootNode/getRootNode.d.ts +3 -3
  521. package/cjs/lib/rootNode/getRootNode.js +40 -15
  522. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  523. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  524. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  525. package/cjs/lib/styles/ColorFactory.js +2 -2
  526. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  527. package/cjs/lib/styles/ColorFunctions.js.map +1 -1
  528. package/cjs/lib/theming/AnimationKeyframes.d.ts +3 -5
  529. package/cjs/lib/theming/AnimationKeyframes.js +8 -22
  530. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  531. package/cjs/lib/theming/Emotion.js +1 -0
  532. package/cjs/lib/theming/Emotion.js.map +1 -1
  533. package/cjs/lib/theming/ThemeContext.md +26 -18
  534. package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
  535. package/cjs/lib/theming/ThemeFactory.js +10 -1
  536. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  537. package/cjs/lib/theming/ThemeHelpers.d.ts +13 -4
  538. package/cjs/lib/theming/ThemeHelpers.js +25 -6
  539. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  540. package/cjs/lib/theming/themes/DarkTheme.js +1 -1
  541. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  542. package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -1
  543. package/cjs/lib/theming/themes/Theme2022Dark.js +4 -3
  544. package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -1
  545. package/cjs/lib/utils.d.ts +6 -5
  546. package/cjs/lib/utils.js +8 -7
  547. package/cjs/lib/utils.js.map +1 -1
  548. package/cjs/lib/withClassWrapper.js +1 -4
  549. package/cjs/lib/withClassWrapper.js.map +1 -1
  550. package/cjs/typings/event-types.d.ts +2 -2
  551. package/cjs/typings/{html-props.d.ts → html.d.ts} +2 -2
  552. package/components/Autocomplete/Autocomplete/Autocomplete.js +53 -17
  553. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  554. package/components/Autocomplete/Autocomplete.d.ts +13 -18
  555. package/components/Autocomplete/Autocomplete.md +15 -1
  556. package/components/Autocomplete/locale/index/index.js +8 -0
  557. package/components/Autocomplete/locale/index/index.js.map +1 -0
  558. package/components/Autocomplete/locale/index/package.json +6 -0
  559. package/components/Autocomplete/locale/index.d.ts +4 -0
  560. package/components/Autocomplete/locale/locales/en/en.js +5 -0
  561. package/components/Autocomplete/locale/locales/en/en.js.map +1 -0
  562. package/components/Autocomplete/locale/locales/en/package.json +6 -0
  563. package/components/Autocomplete/locale/locales/en.d.ts +2 -0
  564. package/components/Autocomplete/locale/locales/ru/package.json +6 -0
  565. package/components/Autocomplete/locale/locales/ru/ru.js +5 -0
  566. package/components/Autocomplete/locale/locales/ru/ru.js.map +1 -0
  567. package/components/Autocomplete/locale/locales/ru.d.ts +2 -0
  568. package/components/Autocomplete/locale/package.json +6 -0
  569. package/components/Autocomplete/locale/types/package.json +6 -0
  570. package/components/Autocomplete/locale/types/types.js +1 -0
  571. package/components/Autocomplete/locale/types/types.js.map +1 -0
  572. package/components/Autocomplete/locale/types.d.ts +5 -0
  573. package/components/Button/Button/Button.js +16 -7
  574. package/components/Button/Button/Button.js.map +1 -1
  575. package/components/Button/Button.d.ts +9 -6
  576. package/components/Button/Button.mixins/Button.mixins.js +1 -1
  577. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  578. package/components/Button/Button.styles/Button.styles.js +18 -18
  579. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  580. package/components/Center/Center/Center.js +7 -5
  581. package/components/Center/Center/Center.js.map +1 -1
  582. package/components/Center/Center.d.ts +4 -3
  583. package/components/Checkbox/Checkbox/Checkbox.js +10 -4
  584. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  585. package/components/Checkbox/Checkbox.d.ts +5 -1
  586. package/components/Checkbox/Checkbox.md +49 -1
  587. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
  588. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  589. package/components/Checkbox/Checkbox.styles.d.ts +1 -1
  590. package/components/ComboBox/ComboBox/ComboBox.js +3 -1
  591. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  592. package/components/ComboBox/ComboBox.d.ts +30 -15
  593. package/components/ComboBox/ComboBox.md +84 -1
  594. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +3 -3
  595. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  596. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +43 -22
  597. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  598. package/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  599. package/components/CurrencyInput/CurrencyInput.md +13 -0
  600. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js +4 -2
  601. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js.map +1 -1
  602. package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  603. package/components/CurrencyInput/constants/constants.js +4 -1
  604. package/components/CurrencyInput/constants/constants.js.map +1 -1
  605. package/components/CurrencyInput/constants.d.ts +3 -0
  606. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +25 -16
  607. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  608. package/components/CurrencyLabel/CurrencyLabel.d.ts +5 -9
  609. package/components/CurrencyLabel/CurrencyLabel.md +6 -0
  610. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +11 -1
  611. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  612. package/components/DateInput/DateFragmentsView.d.ts +1 -1
  613. package/components/DateInput/DateInput/DateInput.js +18 -5
  614. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  615. package/components/DateInput/DateInput.d.ts +9 -12
  616. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +0 -1
  617. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
  618. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +2 -2
  619. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
  620. package/components/DatePicker/DatePicker/DatePicker.js +26 -21
  621. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  622. package/components/DatePicker/DatePicker.d.ts +14 -16
  623. package/components/DatePicker/DatePicker.md +18 -0
  624. package/components/DatePicker/Picker/Picker.js +5 -1
  625. package/components/DatePicker/Picker/Picker.js.map +1 -1
  626. package/components/Dropdown/Dropdown/Dropdown.js +21 -6
  627. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  628. package/components/Dropdown/Dropdown.d.ts +8 -2
  629. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +8 -2
  630. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  631. package/components/DropdownMenu/DropdownMenu.d.ts +7 -7
  632. package/components/DropdownMenu/DropdownMenu.md +68 -1
  633. package/components/FileUploader/FileUploader/FileUploader.js +62 -23
  634. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  635. package/components/FileUploader/FileUploader.d.ts +11 -2
  636. package/components/FileUploader/FileUploader.md +13 -1
  637. package/components/FileUploader/FileUploader.mixins/FileUploader.mixins.js +8 -0
  638. package/components/FileUploader/FileUploader.mixins/FileUploader.mixins.js.map +1 -0
  639. package/components/FileUploader/FileUploader.mixins/package.json +6 -0
  640. package/components/FileUploader/FileUploader.mixins.d.ts +1 -0
  641. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +51 -17
  642. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  643. package/components/FileUploader/FileUploader.styles.d.ts +12 -1
  644. package/components/FxInput/FxInput/FxInput.js +15 -10
  645. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  646. package/components/FxInput/FxInput.d.ts +6 -6
  647. package/components/FxInput/FxInput.md +13 -0
  648. package/components/Gapped/Gapped/Gapped.js +17 -8
  649. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  650. package/components/Gapped/Gapped.d.ts +7 -8
  651. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +35 -16
  652. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  653. package/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  654. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  655. package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  656. package/components/Group/Group/Group.js +5 -5
  657. package/components/Group/Group/Group.js.map +1 -1
  658. package/components/Group/Group.d.ts +1 -0
  659. package/components/Hint/Hint/Hint.js +42 -39
  660. package/components/Hint/Hint/Hint.js.map +1 -1
  661. package/components/Hint/Hint.d.ts +9 -15
  662. package/components/Hint/Hint.md +43 -0
  663. package/components/Hint/Hint.styles/Hint.styles.js +2 -5
  664. package/components/Hint/Hint.styles/Hint.styles.js.map +1 -1
  665. package/components/Hint/Hint.styles.d.ts +0 -1
  666. package/components/Input/Input/Input.js +36 -16
  667. package/components/Input/Input/Input.js.map +1 -1
  668. package/components/Input/Input.d.ts +9 -4
  669. package/components/Input/Input.md +17 -1
  670. package/components/Input/Input.styles/Input.styles.js +13 -10
  671. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  672. package/components/Input/Input.styles.d.ts +1 -0
  673. package/components/Kebab/Kebab/Kebab.js +21 -9
  674. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  675. package/components/Kebab/Kebab.d.ts +13 -16
  676. package/components/Link/Link/Link.js +10 -7
  677. package/components/Link/Link/Link.js.map +1 -1
  678. package/components/Link/Link.d.ts +5 -7
  679. package/components/Loader/Loader/Loader.js +24 -17
  680. package/components/Loader/Loader/Loader.js.map +1 -1
  681. package/components/Loader/Loader.d.ts +20 -7
  682. package/components/Loader/Loader.md +30 -23
  683. package/components/Loader/__stories__/LoaderAndButton/LoaderAndButton.js.map +1 -1
  684. package/components/MenuHeader/MenuHeader/MenuHeader.js +1 -1
  685. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  686. package/components/MenuHeader/MenuHeader.d.ts +1 -1
  687. package/components/MenuItem/MenuItem/MenuItem.js +51 -15
  688. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  689. package/components/MenuItem/MenuItem.d.ts +19 -3
  690. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +31 -9
  691. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  692. package/components/MenuItem/MenuItem.styles.d.ts +5 -0
  693. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +11 -4
  694. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  695. package/components/MenuSeparator/MenuSeparator.d.ts +1 -1
  696. package/components/MenuSeparator/MenuSeparator.styles/MenuSeparator.styles.js +4 -1
  697. package/components/MenuSeparator/MenuSeparator.styles/MenuSeparator.styles.js.map +1 -1
  698. package/components/MenuSeparator/MenuSeparator.styles.d.ts +1 -0
  699. package/components/Modal/Modal/Modal.js +5 -3
  700. package/components/Modal/Modal/Modal.js.map +1 -1
  701. package/components/Modal/Modal.d.ts +4 -3
  702. package/components/Modal/Modal.styles/Modal.styles.js +3 -3
  703. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  704. package/components/Modal/Modal.styles.d.ts +2 -2
  705. package/components/Modal/ModalBody/ModalBody.js +2 -2
  706. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  707. package/components/Modal/ModalFooter/ModalFooter.js +9 -3
  708. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  709. package/components/Modal/ModalFooter.d.ts +14 -0
  710. package/components/Modal/ModalHeader/ModalHeader.js +2 -2
  711. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  712. package/components/Paging/Paging/Paging.js +36 -23
  713. package/components/Paging/Paging/Paging.js.map +1 -1
  714. package/components/Paging/Paging.d.ts +7 -10
  715. package/components/Paging/Paging.md +13 -0
  716. package/components/Paging/Paging.styles/Paging.styles.js +27 -15
  717. package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
  718. package/components/Paging/Paging.styles.d.ts +6 -2
  719. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  720. package/components/Paging/PagingDefaultComponent.d.ts +3 -3
  721. package/components/PasswordInput/PasswordInput/PasswordInput.js +14 -13
  722. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  723. package/components/PasswordInput/PasswordInput.d.ts +4 -3
  724. package/components/Radio/Radio/Radio.js +11 -6
  725. package/components/Radio/Radio/Radio.js.map +1 -1
  726. package/components/Radio/Radio.d.ts +4 -3
  727. package/components/RadioGroup/RadioGroup/RadioGroup.js +21 -28
  728. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  729. package/components/RadioGroup/RadioGroup.d.ts +7 -19
  730. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -8
  731. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  732. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  733. package/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  734. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +20 -12
  735. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  736. package/components/ResponsiveLayout/decorator.d.ts +1 -1
  737. package/components/ResponsiveLayout/types.d.ts +9 -1
  738. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +42 -17
  739. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  740. package/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  741. package/components/ScrollContainer/ScrollBar/ScrollBar.js +67 -10
  742. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  743. package/components/ScrollContainer/ScrollBar.d.ts +12 -2
  744. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +34 -12
  745. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  746. package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js +3 -2
  747. package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js.map +1 -1
  748. package/components/ScrollContainer/ScrollContainer.d.ts +29 -8
  749. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +8 -5
  750. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -1
  751. package/components/ScrollContainer/ScrollContainer.md +52 -0
  752. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +30 -7
  753. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  754. package/components/ScrollContainer/ScrollContainer.styles.d.ts +9 -0
  755. package/components/Select/Item/Item.js.map +1 -1
  756. package/components/Select/Item.d.ts +4 -2
  757. package/components/Select/Select/Select.js +35 -54
  758. package/components/Select/Select/Select.js.map +1 -1
  759. package/components/Select/Select.d.ts +13 -38
  760. package/components/Select/Select.md +14 -0
  761. package/components/Select/Select.styles/Select.styles.js +4 -4
  762. package/components/Select/Select.styles/Select.styles.js.map +1 -1
  763. package/components/Select/selectTheme/selectTheme.js +1 -0
  764. package/components/Select/selectTheme/selectTheme.js.map +1 -1
  765. package/components/SidePage/SidePage/SidePage.js +14 -6
  766. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  767. package/components/SidePage/SidePage.d.ts +9 -6
  768. package/components/SidePage/SidePageFooter/SidePageFooter.js +6 -1
  769. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  770. package/components/SidePage/SidePageFooter.d.ts +15 -5
  771. package/components/SidePage/SidePageHeader/SidePageHeader.js +1 -1
  772. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  773. package/components/SidePage/SidePageHeader.d.ts +1 -1
  774. package/components/Spinner/Spinner/Spinner.js +8 -6
  775. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  776. package/components/Spinner/Spinner.d.ts +15 -4
  777. package/components/Spinner/Spinner.styles/Spinner.styles.js +3 -3
  778. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  779. package/components/Spinner/Spinner.styles.d.ts +1 -1
  780. package/components/Sticky/Sticky/Sticky.js +8 -5
  781. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  782. package/components/Sticky/Sticky.d.ts +7 -6
  783. package/components/Switcher/Switcher/Switcher.js +77 -38
  784. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  785. package/components/Switcher/Switcher.d.ts +12 -3
  786. package/components/Switcher/Switcher.md +97 -0
  787. package/components/Switcher/helpers/helpers.js +3 -0
  788. package/components/Switcher/helpers/helpers.js.map +1 -0
  789. package/components/Switcher/helpers/package.json +6 -0
  790. package/components/Switcher/helpers.d.ts +1 -0
  791. package/components/Tabs/Indicator/Indicator.js +1 -1
  792. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  793. package/components/Tabs/Indicator.d.ts +1 -1
  794. package/components/Tabs/Tab/Tab.js +18 -15
  795. package/components/Tabs/Tab/Tab.js.map +1 -1
  796. package/components/Tabs/Tab.d.ts +9 -13
  797. package/components/Tabs/Tabs/Tabs.js +15 -18
  798. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  799. package/components/Tabs/Tabs.d.ts +9 -13
  800. package/components/Textarea/Textarea/Textarea.js +25 -16
  801. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  802. package/components/Textarea/Textarea.d.ts +9 -10
  803. package/components/Textarea/Textarea.md +19 -0
  804. package/components/Textarea/TextareaCounter/TextareaCounter.js +2 -1
  805. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  806. package/components/Textarea/TextareaCounter.d.ts +2 -2
  807. package/components/Toast/Toast/Toast.js +16 -9
  808. package/components/Toast/Toast/Toast.js.map +1 -1
  809. package/components/Toast/Toast.d.ts +6 -3
  810. package/components/Toast/Toast.md +129 -0
  811. package/components/Toast/ToastStatic/ToastStatic.js +5 -5
  812. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  813. package/components/Toast/ToastStatic.d.ts +3 -2
  814. package/components/Toggle/Toggle/Toggle.js +17 -9
  815. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  816. package/components/Toggle/Toggle.d.ts +10 -7
  817. package/components/Token/Token/Token.js +6 -2
  818. package/components/Token/Token/Token.js.map +1 -1
  819. package/components/Token/Token.d.ts +6 -1
  820. package/components/Token/Token.styles/Token.styles.js +1 -1
  821. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  822. package/components/TokenInput/TokenInput/TokenInput.js +180 -132
  823. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  824. package/components/TokenInput/TokenInput.d.ts +27 -17
  825. package/components/TokenInput/TokenInput.md +26 -0
  826. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  827. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  828. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -1
  829. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  830. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  831. package/components/Tooltip/Tooltip/Tooltip.js +65 -70
  832. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  833. package/components/Tooltip/Tooltip.d.ts +14 -21
  834. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +15 -13
  835. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  836. package/components/TooltipMenu/TooltipMenu.d.ts +8 -7
  837. package/components/TooltipMenu/TooltipMenu.md +28 -1
  838. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +2 -2
  839. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -1
  840. package/hooks/useEffectWithoutInitCall.d.ts +2 -2
  841. package/hooks/useMemoObject/useMemoObject.js.map +1 -1
  842. package/hooks/useMemoObject.d.ts +2 -1
  843. package/index.d.ts +2 -0
  844. package/index.js +3 -1
  845. package/index.js.map +1 -1
  846. package/internal/BGRuler/BGRuler.js +11 -6
  847. package/internal/BGRuler/BGRuler.js.map +1 -1
  848. package/internal/BGRuler.d.ts +13 -15
  849. package/internal/Calendar/Calendar/Calendar.js +11 -5
  850. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  851. package/internal/Calendar/Calendar.d.ts +4 -13
  852. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js +1 -1
  853. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  854. package/internal/Calendar/Month/Month.js +20 -11
  855. package/internal/Calendar/Month/Month.js.map +1 -1
  856. package/internal/Calendar/MonthViewModel.d.ts +1 -1
  857. package/internal/Calendar/config.d.ts +1 -8
  858. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
  859. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  860. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  861. package/internal/ComponentCombinator/ComponentCombinator.js +8 -5
  862. package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
  863. package/internal/ComponentCombinator.d.ts +6 -8
  864. package/internal/ComponentTable/ComponentTable.js +16 -4
  865. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  866. package/internal/ComponentTable.d.ts +7 -8
  867. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +30 -35
  868. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  869. package/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -6
  870. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +32 -15
  871. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  872. package/internal/CustomComboBox/ComboBoxView.d.ts +9 -14
  873. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +3 -0
  874. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  875. package/internal/CustomComboBox/CustomComboBox.d.ts +5 -2
  876. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +9 -6
  877. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  878. package/internal/DataTids/DataTids/DataTids.js.map +1 -1
  879. package/internal/DataTids/DataTids.d.ts +5 -5
  880. package/internal/DateSelect/DateSelect/DateSelect.js +15 -12
  881. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  882. package/internal/DateSelect/DateSelect.d.ts +4 -6
  883. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +23 -14
  884. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  885. package/internal/DropdownContainer/DropdownContainer.d.ts +8 -7
  886. package/internal/DropdownContainer/getManualPosition/getManualPosition.js +36 -0
  887. package/internal/DropdownContainer/getManualPosition/getManualPosition.js.map +1 -0
  888. package/internal/DropdownContainer/getManualPosition/package.json +6 -0
  889. package/internal/DropdownContainer/getManualPosition.d.ts +19 -0
  890. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +1 -1
  891. package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +2 -0
  892. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +7 -1
  893. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  894. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +40 -13
  895. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  896. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -0
  897. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +26 -5
  898. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +1 -1
  899. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +7 -0
  900. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +13 -3
  901. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  902. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -0
  903. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +10 -1
  904. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +1 -1
  905. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +3 -0
  906. package/internal/FileUploaderControl/hooks/useFileUploaderSize/package.json +6 -0
  907. package/internal/FileUploaderControl/hooks/useFileUploaderSize/useFileUploaderSize.js +21 -0
  908. package/internal/FileUploaderControl/hooks/useFileUploaderSize/useFileUploaderSize.js.map +1 -0
  909. package/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -0
  910. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  911. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  912. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  913. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  914. package/internal/InputLikeText/InputLikeText/InputLikeText.js +17 -7
  915. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  916. package/internal/InputLikeText/InputLikeText.d.ts +5 -3
  917. package/internal/InternalMenu/InternalMenu/InternalMenu.js +62 -23
  918. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  919. package/internal/InternalMenu/InternalMenu.d.ts +4 -9
  920. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +13 -10
  921. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  922. package/internal/InternalMenu/InternalMenu.styles.d.ts +5 -4
  923. package/internal/MaskedInput/MaskedInput/MaskedInput.js +16 -7
  924. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  925. package/internal/MaskedInput/MaskedInput.d.ts +5 -2
  926. package/internal/Menu/Menu/Menu.js +24 -10
  927. package/internal/Menu/Menu/Menu.js.map +1 -1
  928. package/internal/Menu/Menu.d.ts +5 -7
  929. package/internal/Menu/Menu.styles/Menu.styles.js +13 -7
  930. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  931. package/internal/Menu/Menu.styles.d.ts +2 -0
  932. package/internal/MenuMessage/MenuMessage/MenuMessage.js +31 -0
  933. package/internal/MenuMessage/MenuMessage/MenuMessage.js.map +1 -0
  934. package/internal/MenuMessage/MenuMessage/package.json +6 -0
  935. package/internal/MenuMessage/MenuMessage.d.ts +10 -0
  936. package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js +23 -0
  937. package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js.map +1 -0
  938. package/internal/MenuMessage/MenuMessage.styles/package.json +6 -0
  939. package/internal/MenuMessage/MenuMessage.styles.d.ts +5 -0
  940. package/internal/MenuMessage/index/index.js +1 -0
  941. package/internal/MenuMessage/index/index.js.map +1 -0
  942. package/internal/MenuMessage/index/package.json +6 -0
  943. package/internal/MenuMessage/index.d.ts +1 -0
  944. package/internal/MenuMessage/package.json +6 -0
  945. package/internal/MobilePopup/MobilePopup/MobilePopup.js +23 -53
  946. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  947. package/internal/MobilePopup/MobilePopup.d.ts +13 -12
  948. package/internal/MobilePopup/MobilePopup.styles/MobilePopup.styles.js +11 -11
  949. package/internal/MobilePopup/MobilePopup.styles/MobilePopup.styles.js.map +1 -1
  950. package/internal/MobilePopup/MobilePopup.styles.d.ts +3 -3
  951. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +11 -35
  952. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  953. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +3 -4
  954. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles/MobilePopupHeader.styles.js +6 -12
  955. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles/MobilePopupHeader.styles.js.map +1 -1
  956. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +2 -4
  957. package/internal/PerformanceMetrics/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  958. package/internal/Popup/Popup/Popup.js +69 -38
  959. package/internal/Popup/Popup/Popup.js.map +1 -1
  960. package/internal/Popup/Popup.d.ts +18 -18
  961. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  962. package/internal/Popup/PopupHelper.d.ts +1 -1
  963. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  964. package/internal/Popup/PopupPin.d.ts +1 -1
  965. package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -4
  966. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  967. package/internal/PopupMenu/PopupMenu.d.ts +8 -11
  968. package/internal/RenderLayer/RenderLayer/RenderLayer.js +10 -6
  969. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  970. package/internal/RenderLayer/RenderLayer.d.ts +5 -4
  971. package/internal/ThemePlayground/AnotherInputsPlayground/AnotherInputsPlayground.js.map +1 -1
  972. package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  973. package/internal/ThemePlayground/CurrencyInputPlayground/CurrencyInputPlayground.js.map +1 -1
  974. package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  975. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js +10 -6
  976. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
  977. package/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  978. package/internal/ThemePlayground/HintPlayground/HintPlayground.js.map +1 -1
  979. package/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  980. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js +2 -2
  981. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js.map +1 -1
  982. package/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  983. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  984. package/internal/ThemePlayground/Playground.d.ts +1 -1
  985. package/internal/ThemePlayground/SelectPlayground/SelectPlayground.js.map +1 -1
  986. package/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  987. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  988. package/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  989. package/internal/ThemePlayground/SwitcherPlayground/SwitcherPlayground.js.map +1 -1
  990. package/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  991. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +13 -3
  992. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  993. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  994. package/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  995. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js +5 -17
  996. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js.map +1 -1
  997. package/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  998. package/internal/ThemePlayground/TokenInputPlayground/TokenInputPlayground.js.map +1 -1
  999. package/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  1000. package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -2
  1001. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  1002. package/internal/ThemePlayground/VariableValue.d.ts +6 -8
  1003. package/internal/ThemePlayground/helpers/helpers.js +0 -1
  1004. package/internal/ThemePlayground/helpers/helpers.js.map +1 -1
  1005. package/internal/ThemePlayground/helpers.d.ts +1 -1
  1006. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  1007. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  1008. package/internal/ZIndex/ZIndex/ZIndex.js +48 -24
  1009. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  1010. package/internal/ZIndex/ZIndex.d.ts +22 -12
  1011. package/internal/icons/16px/index/index.js +2 -1
  1012. package/internal/icons/16px/index/index.js.map +1 -1
  1013. package/internal/icons/20px/svg/svg.js +2 -1
  1014. package/internal/icons/20px/svg/svg.js.map +1 -1
  1015. package/internal/icons/CloudIcon/CloudIcon.js +3 -1
  1016. package/internal/icons/CloudIcon/CloudIcon.js.map +1 -1
  1017. package/internal/icons/CrossIcon/CrossIcon.js +2 -1
  1018. package/internal/icons/CrossIcon/CrossIcon.js.map +1 -1
  1019. package/internal/icons/SpinnerIcon/SpinnerIcon.js +3 -1
  1020. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  1021. package/internal/themes/DarkTheme/DarkTheme.js +1 -0
  1022. package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
  1023. package/internal/themes/DarkTheme.d.ts +1 -0
  1024. package/internal/themes/DefaultTheme/DefaultTheme.js +166 -17
  1025. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  1026. package/internal/themes/DefaultTheme.d.ts +43 -3
  1027. package/internal/themes/Theme2022/Theme2022.js +1 -0
  1028. package/internal/themes/Theme2022/Theme2022.js.map +1 -1
  1029. package/internal/themes/Theme2022.d.ts +1 -0
  1030. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  1031. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -1
  1032. package/lib/InstanceWithAnchorElement.d.ts +1 -1
  1033. package/lib/ModalStack/ModalStack.js +2 -2
  1034. package/lib/ModalStack/ModalStack.js.map +1 -1
  1035. package/lib/SSRSafe/SSRSafe.js +12 -0
  1036. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  1037. package/lib/SSRSafe.d.ts +3 -1
  1038. package/lib/Upgrades/Upgrades.js +4 -1
  1039. package/lib/Upgrades/Upgrades.js.map +1 -1
  1040. package/lib/animation/index/index.js +1 -1
  1041. package/lib/animation/index/index.js.map +1 -1
  1042. package/lib/callChildRef/callChildRef/callChildRef.js +1 -1
  1043. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -1
  1044. package/lib/createPropsGetter/createPropsGetter.js +1 -0
  1045. package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
  1046. package/lib/createPropsGetter.d.ts +2 -1
  1047. package/lib/currentEnvironment/currentEnvironment.js +34 -14
  1048. package/lib/currentEnvironment/currentEnvironment.js.map +1 -1
  1049. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +1 -2
  1050. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  1051. package/lib/date/InternalDateCalculator.d.ts +1 -1
  1052. package/lib/date/InternalDateValidator/InternalDateValidator.js +8 -2
  1053. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  1054. package/lib/date/InternalDateValidator.d.ts +1 -1
  1055. package/lib/extractKeyboardAction/extractKeyboardAction.js.map +1 -1
  1056. package/lib/extractKeyboardAction.d.ts +1 -1
  1057. package/lib/filterProps/filterProps.js +0 -1
  1058. package/lib/filterProps/filterProps.js.map +1 -1
  1059. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  1060. package/lib/listenFocusOutside.d.ts +1 -1
  1061. package/lib/locale/LOCALECONTEXT.md +1 -0
  1062. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -1
  1063. package/lib/locale/useLocaleForControl.d.ts +1 -1
  1064. package/lib/memo/memo.js +2 -4
  1065. package/lib/memo/memo.js.map +1 -1
  1066. package/lib/memo.d.ts +3 -1
  1067. package/lib/net/fetch/fetch.js +2 -2
  1068. package/lib/net/fetch/fetch.js.map +1 -1
  1069. package/lib/reactGetTextContent/reactGetTextContent.js +0 -1
  1070. package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
  1071. package/lib/rootNode/getRootNode/getRootNode.js +32 -14
  1072. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  1073. package/lib/rootNode/getRootNode.d.ts +3 -3
  1074. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  1075. package/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  1076. package/lib/styles/ColorFactory/ColorFactory.js +3 -1
  1077. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  1078. package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
  1079. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +8 -14
  1080. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  1081. package/lib/theming/AnimationKeyframes.d.ts +3 -5
  1082. package/lib/theming/Emotion/Emotion.js.map +1 -1
  1083. package/lib/theming/ThemeContext.md +26 -18
  1084. package/lib/theming/ThemeFactory/ThemeFactory.js +11 -2
  1085. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  1086. package/lib/theming/ThemeFactory.d.ts +1 -1
  1087. package/lib/theming/ThemeHelpers/ThemeHelpers.js +19 -5
  1088. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  1089. package/lib/theming/ThemeHelpers.d.ts +13 -4
  1090. package/lib/theming/themes/DarkTheme/DarkTheme.js +2 -2
  1091. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  1092. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +2 -1
  1093. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
  1094. package/lib/theming/themes/Theme2022Dark.d.ts +1 -1
  1095. package/lib/utils/utils.js +2 -3
  1096. package/lib/utils/utils.js.map +1 -1
  1097. package/lib/utils.d.ts +6 -5
  1098. package/lib/withClassWrapper/withClassWrapper.js +1 -4
  1099. package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
  1100. package/package.json +9 -25
  1101. package/typings/event-types.d.ts +2 -2
  1102. package/typings/{html-props.d.ts → html.d.ts} +2 -2
@@ -1,4 +1,6 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.CurrencyInputDataTids = exports.CurrencyInput = void 0;var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.CurrencyInputDataTids = exports.CurrencyInput = void 0;var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
2
+
3
+ var _react = _interopRequireDefault(require("react"));
2
4
  var _propTypes = _interopRequireDefault(require("prop-types"));
3
5
  var _warning = _interopRequireDefault(require("warning"));
4
6
  var _lodash = _interopRequireDefault(require("lodash.debounce"));
@@ -9,6 +11,7 @@ var _Input = require("../Input");
9
11
 
10
12
  var _CommonWrapper = require("../../internal/CommonWrapper");
11
13
  var _rootNode = require("../../lib/rootNode");
14
+ var _createPropsGetter = require("../../lib/createPropsGetter");
12
15
 
13
16
  var _constants = require("./constants");
14
17
  var _SelectionHelper = require("./SelectionHelper");
@@ -48,7 +51,11 @@ var _CurrencyInputKeyboardActions = require("./CurrencyInputKeyboardActions");va
48
51
 
49
52
 
50
53
  var CurrencyInputDataTids = {
51
- root: 'CurrencyInput__root' };
54
+ root: 'CurrencyInput__root' };exports.CurrencyInputDataTids = CurrencyInputDataTids;
55
+
56
+
57
+
58
+
52
59
 
53
60
 
54
61
  /**
@@ -58,7 +65,7 @@ var CurrencyInputDataTids = {
58
65
  * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).
59
66
  * <br/>
60
67
  * Если `fractionDigits=15`, то в целой части допускается **0**.
61
- */exports.CurrencyInputDataTids = CurrencyInputDataTids;var
68
+ */var
62
69
 
63
70
  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
71
 
@@ -96,9 +103,11 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
96
103
 
97
104
 
98
105
 
106
+
107
+ getProps = (0, _createPropsGetter.createPropsGetter)(CurrencyInput.defaultProps);_this.
99
108
 
100
109
  state = (0, _extends2.default)({},
101
- _this.getState(_this.props.value, _this.props.fractionDigits, _this.props.hideTrailingZeros), {
110
+ _this.getState(_this.getProps().value, _this.getProps().fractionDigits, _this.getProps().hideTrailingZeros), {
102
111
  focused: false });_this.
103
112
 
104
113
 
@@ -140,6 +149,10 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
140
149
 
141
150
 
142
151
 
152
+
153
+
154
+
155
+
143
156
 
144
157
 
145
158
 
@@ -152,6 +165,7 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
152
165
  _react.default.createElement(_Input.Input, (0, _extends2.default)({
153
166
  "data-tid": CurrencyInputDataTids.root },
154
167
  rest, {
168
+ align: _this.getProps().align,
155
169
  value: _this.state.formatted,
156
170
  onBlur: _this.handleBlur,
157
171
  onFocus: _this.handleFocus,
@@ -292,6 +306,10 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
292
306
  selection: _SelectionHelper.SelectionHelper.forward(selection.start, inputEnd) });
293
307
 
294
308
  return;
309
+ }
310
+ case _CurrencyInputKeyboardActions.CURRENCY_INPUT_ACTIONS.Comma:{
311
+ _this.inputValue(selection.start, selection.end, ',');
312
+ return;
295
313
  }}
296
314
 
297
315
  };_this.
@@ -343,7 +361,7 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
343
361
  inputValue = function (start, end, value) {
344
362
  var result = _CurrencyInputHelper.CurrencyInputHelper.safeInsert(_this.state.formatted, start, end, value, {
345
363
  integerDigits: _this.props.integerDigits,
346
- fractionDigits: _this.props.fractionDigits,
364
+ fractionDigits: _this.getProps().fractionDigits,
347
365
  unsigned: !_this.props.signed });
348
366
 
349
367
  if (result) {
@@ -435,7 +453,7 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
435
453
  var value = _CurrencyHelper.CurrencyHelper.parse(_this.state.formatted);
436
454
 
437
455
  _this.setState((0, _extends2.default)({},
438
- _this.getState(value, _this.props.fractionDigits, _this.props.hideTrailingZeros), {
456
+ _this.getState(value, _this.getProps().fractionDigits, _this.getProps().hideTrailingZeros), {
439
457
  focused: false }));
440
458
 
441
459
 
@@ -446,17 +464,17 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
446
464
 
447
465
  refInput = function (element) {
448
466
  _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
450
- ;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;
467
+ };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 ((0, _utils.isNonNullable)(prevProps.value) && (0, _utils.isNullable)(value)) {this.setState({ formatted: '' });}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
468
+ ;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
469
 
452
- function getInputSelectionFromEvent(input) {
470
+ function getInputSelectionFromEvent(input) {var _input$selectionStart, _input$selectionEnd;
453
471
  if (!(input instanceof HTMLInputElement)) {
454
472
  throw new Error('input is not HTMLInputElement');
455
473
  }
456
474
 
457
475
  return {
458
- start: input.selectionStart,
459
- end: input.selectionEnd,
476
+ start: (_input$selectionStart = input.selectionStart) != null ? _input$selectionStart : 0,
477
+ end: (_input$selectionEnd = input.selectionEnd) != null ? _input$selectionEnd : 0,
460
478
  direction: input.selectionDirection };
461
479
 
462
480
  }
@@ -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","Comma","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":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport 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 (isNonNullable(prevProps.value) && isNullable(value)) {\n this.setState({ formatted: '' });\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 case CURRENCY_INPUT_ACTIONS.Comma: {\n this.inputValue(selection.start, selection.end, ',');\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 ?? 0,\n end: input.selectionEnd ?? 0,\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"]}
@@ -4,6 +4,19 @@ const [value, setValue] = React.useState();
4
4
  <CurrencyInput value={value} fractionDigits={3} onValueChange={setValue} />
5
5
  ```
6
6
 
7
+ Очистить значение в `CurrencyInput` можно с помощью `null` или `undefined`
8
+ ```jsx harmony
9
+ import { Button, Group } from '@skbkontur/react-ui';
10
+
11
+ const [value, setValue] = React.useState();
12
+
13
+ <Group>
14
+ <CurrencyInput value={value} onValueChange={setValue} />
15
+ <Button onClick={() => setValue(null)}>Null</Button>
16
+ <Button onClick={() => setValue(undefined)}>Undefined</Button>
17
+ </Group>
18
+ ```
19
+
7
20
  `fractionDigits={15}`
8
21
 
9
22
  ```jsx harmony
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ export declare const commaAliases: ((e: KeyboardEvent | import("react").KeyboardEvent<HTMLElement>) => boolean)[];
2
3
  export declare const CURRENCY_INPUT_ACTIONS: {
3
4
  Unknown: number;
4
5
  Ignore: number;
@@ -14,5 +15,6 @@ export declare const CURRENCY_INPUT_ACTIONS: {
14
15
  Backspace: number;
15
16
  Delete: number;
16
17
  Submit: number;
18
+ Comma: number;
17
19
  };
18
- export declare const extractAction: (x0: import("react").KeyboardEvent<HTMLElement>) => unknown;
20
+ export declare const extractAction: (x0: import("react").KeyboardEvent<HTMLElement>) => number;
@@ -1,6 +1,15 @@
1
- "use strict";exports.__esModule = true;exports.extractAction = exports.CURRENCY_INPUT_ACTIONS = void 0;var Keyboard = _interopRequireWildcard(require("../../lib/events/keyboard/identifiers"));
1
+ "use strict";exports.__esModule = true;exports.extractAction = exports.commaAliases = exports.CURRENCY_INPUT_ACTIONS = void 0;var Keyboard = _interopRequireWildcard(require("../../lib/events/keyboard/identifiers"));
2
2
  var _extractKeyboardAction = require("../../lib/extractKeyboardAction");function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}
3
3
 
4
+ var commaAliases = [
5
+ Keyboard.isCodeComma,
6
+ Keyboard.isCodePeriod,
7
+ Keyboard.isCodeSlash,
8
+ Keyboard.isCodeBackslash,
9
+ Keyboard.isCodeIntlBackslash,
10
+ Keyboard.isCodeNumpadDivide];exports.commaAliases = commaAliases;
11
+
12
+
4
13
  var CURRENCY_INPUT_ACTIONS = {
5
14
  Unknown: 0,
6
15
  Ignore: 1,
@@ -18,7 +27,9 @@ var CURRENCY_INPUT_ACTIONS = {
18
27
 
19
28
  Backspace: 31,
20
29
  Delete: 32,
21
- Submit: 33 };exports.CURRENCY_INPUT_ACTIONS = CURRENCY_INPUT_ACTIONS;
30
+ Submit: 33,
31
+
32
+ Comma: 34 };exports.CURRENCY_INPUT_ACTIONS = CURRENCY_INPUT_ACTIONS;
22
33
 
23
34
 
24
35
  var extractAction = new _extractKeyboardAction.KeyboardActionExctracterBuilder().
@@ -35,4 +46,5 @@ add(CURRENCY_INPUT_ACTIONS.End, Keyboard.isUnmodified(Keyboard.isKeyEnd)).
35
46
  add(CURRENCY_INPUT_ACTIONS.Backspace, Keyboard.isKeyBackspace).
36
47
  add(CURRENCY_INPUT_ACTIONS.Delete, Keyboard.isKeyDelete).
37
48
  add(CURRENCY_INPUT_ACTIONS.Ignore, function (e) {return Keyboard.isModified()(e) || Keyboard.isKeyTab(e);}).
49
+ add(CURRENCY_INPUT_ACTIONS.Comma, Keyboard.someKeys.apply(Keyboard, commaAliases)).
38
50
  build(CURRENCY_INPUT_ACTIONS.Unknown);exports.extractAction = extractAction;
@@ -1 +1 @@
1
- {"version":3,"sources":["CurrencyInputKeyboardActions.tsx"],"names":["CURRENCY_INPUT_ACTIONS","Unknown","Ignore","MoveCursorLeft","MoveCursorRight","Home","End","ExtendSelectionLeft","ExtendSelectionRight","FullSelection","ExtendSelectionToStart","ExtendSelectionToEnd","Backspace","Delete","Submit","extractAction","KeyboardActionExctracterBuilder","add","Keyboard","isKeyEnter","isModShift","isKeyArrowLeft","isKeyArrowRight","isShortcutSelectAll","isKeyHome","isKeyEnd","isUnmodified","isKeyBackspace","isKeyDelete","e","isModified","isKeyTab","build"],"mappings":"uGAAA;AACA,wE;;AAEO,IAAMA,sBAAsB,GAAG;AACpCC,EAAAA,OAAO,EAAE,CAD2B;AAEpCC,EAAAA,MAAM,EAAE,CAF4B;;AAIpCC,EAAAA,cAAc,EAAE,EAJoB;AAKpCC,EAAAA,eAAe,EAAE,EALmB;AAMpCC,EAAAA,IAAI,EAAE,EAN8B;AAOpCC,EAAAA,GAAG,EAAE,EAP+B;;AASpCC,EAAAA,mBAAmB,EAAE,EATe;AAUpCC,EAAAA,oBAAoB,EAAE,EAVc;AAWpCC,EAAAA,aAAa,EAAE,EAXqB;AAYpCC,EAAAA,sBAAsB,EAAE,EAZY;AAapCC,EAAAA,oBAAoB,EAAE,EAbc;;AAepCC,EAAAA,SAAS,EAAE,EAfyB;AAgBpCC,EAAAA,MAAM,EAAE,EAhB4B;AAiBpCC,EAAAA,MAAM,EAAE,EAjB4B,EAA/B,C;;;AAoBA,IAAMC,aAAa,GAAG,IAAIC,sDAAJ;AAC1BC,GAD0B,CACtBjB,sBAAsB,CAACc,MADD,EACSI,QAAQ,CAACC,UADlB;AAE1BF,GAF0B,CAEtBjB,sBAAsB,CAACO,mBAFD,EAEsBW,QAAQ,CAACE,UAAT,CAAoBF,QAAQ,CAACG,cAA7B,CAFtB;AAG1BJ,GAH0B,CAGtBjB,sBAAsB,CAACQ,oBAHD,EAGuBU,QAAQ,CAACE,UAAT,CAAoBF,QAAQ,CAACI,eAA7B,CAHvB;AAI1BL,GAJ0B,CAItBjB,sBAAsB,CAACS,aAJD,EAIgBS,QAAQ,CAACK,mBAJzB;AAK1BN,GAL0B,CAKtBjB,sBAAsB,CAACU,sBALD,EAKyBQ,QAAQ,CAACE,UAAT,CAAoBF,QAAQ,CAACM,SAA7B,CALzB;AAM1BP,GAN0B,CAMtBjB,sBAAsB,CAACW,oBAND,EAMuBO,QAAQ,CAACE,UAAT,CAAoBF,QAAQ,CAACO,QAA7B,CANvB;AAO1BR,GAP0B,CAOtBjB,sBAAsB,CAACG,cAPD,EAOiBe,QAAQ,CAACG,cAP1B;AAQ1BJ,GAR0B,CAQtBjB,sBAAsB,CAACI,eARD,EAQkBc,QAAQ,CAACI,eAR3B;AAS1BL,GAT0B,CAStBjB,sBAAsB,CAACK,IATD,EASOa,QAAQ,CAACQ,YAAT,CAAsBR,QAAQ,CAACM,SAA/B,CATP;AAU1BP,GAV0B,CAUtBjB,sBAAsB,CAACM,GAVD,EAUMY,QAAQ,CAACQ,YAAT,CAAsBR,QAAQ,CAACO,QAA/B,CAVN;AAW1BR,GAX0B,CAWtBjB,sBAAsB,CAACY,SAXD,EAWYM,QAAQ,CAACS,cAXrB;AAY1BV,GAZ0B,CAYtBjB,sBAAsB,CAACa,MAZD,EAYSK,QAAQ,CAACU,WAZlB;AAa1BX,GAb0B,CAatBjB,sBAAsB,CAACE,MAbD,EAaS,UAAC2B,CAAD,UAAOX,QAAQ,CAACY,UAAT,GAAsBD,CAAtB,KAA4BX,QAAQ,CAACa,QAAT,CAAkBF,CAAlB,CAAnC,EAbT;AAc1BG,KAd0B,CAcpBhC,sBAAsB,CAACC,OAdH,CAAtB,C","sourcesContent":["import * as Keyboard from '../../lib/events/keyboard/identifiers';\nimport { KeyboardActionExctracterBuilder } from '../../lib/extractKeyboardAction';\n\nexport const CURRENCY_INPUT_ACTIONS = {\n Unknown: 0,\n Ignore: 1,\n\n MoveCursorLeft: 11,\n MoveCursorRight: 12,\n Home: 13,\n End: 14,\n\n ExtendSelectionLeft: 21,\n ExtendSelectionRight: 22,\n FullSelection: 23,\n ExtendSelectionToStart: 24,\n ExtendSelectionToEnd: 25,\n\n Backspace: 31,\n Delete: 32,\n Submit: 33,\n};\n\nexport const extractAction = new KeyboardActionExctracterBuilder()\n .add(CURRENCY_INPUT_ACTIONS.Submit, Keyboard.isKeyEnter)\n .add(CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft, Keyboard.isModShift(Keyboard.isKeyArrowLeft))\n .add(CURRENCY_INPUT_ACTIONS.ExtendSelectionRight, Keyboard.isModShift(Keyboard.isKeyArrowRight))\n .add(CURRENCY_INPUT_ACTIONS.FullSelection, Keyboard.isShortcutSelectAll)\n .add(CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart, Keyboard.isModShift(Keyboard.isKeyHome))\n .add(CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd, Keyboard.isModShift(Keyboard.isKeyEnd))\n .add(CURRENCY_INPUT_ACTIONS.MoveCursorLeft, Keyboard.isKeyArrowLeft)\n .add(CURRENCY_INPUT_ACTIONS.MoveCursorRight, Keyboard.isKeyArrowRight)\n .add(CURRENCY_INPUT_ACTIONS.Home, Keyboard.isUnmodified(Keyboard.isKeyHome))\n .add(CURRENCY_INPUT_ACTIONS.End, Keyboard.isUnmodified(Keyboard.isKeyEnd))\n .add(CURRENCY_INPUT_ACTIONS.Backspace, Keyboard.isKeyBackspace)\n .add(CURRENCY_INPUT_ACTIONS.Delete, Keyboard.isKeyDelete)\n .add(CURRENCY_INPUT_ACTIONS.Ignore, (e) => Keyboard.isModified()(e) || Keyboard.isKeyTab(e))\n .build(CURRENCY_INPUT_ACTIONS.Unknown);\n"]}
1
+ {"version":3,"sources":["CurrencyInputKeyboardActions.tsx"],"names":["commaAliases","Keyboard","isCodeComma","isCodePeriod","isCodeSlash","isCodeBackslash","isCodeIntlBackslash","isCodeNumpadDivide","CURRENCY_INPUT_ACTIONS","Unknown","Ignore","MoveCursorLeft","MoveCursorRight","Home","End","ExtendSelectionLeft","ExtendSelectionRight","FullSelection","ExtendSelectionToStart","ExtendSelectionToEnd","Backspace","Delete","Submit","Comma","extractAction","KeyboardActionExctracterBuilder","add","isKeyEnter","isModShift","isKeyArrowLeft","isKeyArrowRight","isShortcutSelectAll","isKeyHome","isKeyEnd","isUnmodified","isKeyBackspace","isKeyDelete","e","isModified","isKeyTab","someKeys","build"],"mappings":"8HAAA;AACA,wE;;AAEO,IAAMA,YAAY,GAAG;AAC1BC,QAAQ,CAACC,WADiB;AAE1BD,QAAQ,CAACE,YAFiB;AAG1BF,QAAQ,CAACG,WAHiB;AAI1BH,QAAQ,CAACI,eAJiB;AAK1BJ,QAAQ,CAACK,mBALiB;AAM1BL,QAAQ,CAACM,kBANiB,CAArB,C;;;AASA,IAAMC,sBAAsB,GAAG;AACpCC,EAAAA,OAAO,EAAE,CAD2B;AAEpCC,EAAAA,MAAM,EAAE,CAF4B;;AAIpCC,EAAAA,cAAc,EAAE,EAJoB;AAKpCC,EAAAA,eAAe,EAAE,EALmB;AAMpCC,EAAAA,IAAI,EAAE,EAN8B;AAOpCC,EAAAA,GAAG,EAAE,EAP+B;;AASpCC,EAAAA,mBAAmB,EAAE,EATe;AAUpCC,EAAAA,oBAAoB,EAAE,EAVc;AAWpCC,EAAAA,aAAa,EAAE,EAXqB;AAYpCC,EAAAA,sBAAsB,EAAE,EAZY;AAapCC,EAAAA,oBAAoB,EAAE,EAbc;;AAepCC,EAAAA,SAAS,EAAE,EAfyB;AAgBpCC,EAAAA,MAAM,EAAE,EAhB4B;AAiBpCC,EAAAA,MAAM,EAAE,EAjB4B;;AAmBpCC,EAAAA,KAAK,EAAE,EAnB6B,EAA/B,C;;;AAsBA,IAAMC,aAAa,GAAG,IAAIC,sDAAJ;AAC1BC,GAD0B,CACtBlB,sBAAsB,CAACc,MADD,EACSrB,QAAQ,CAAC0B,UADlB;AAE1BD,GAF0B,CAEtBlB,sBAAsB,CAACO,mBAFD,EAEsBd,QAAQ,CAAC2B,UAAT,CAAoB3B,QAAQ,CAAC4B,cAA7B,CAFtB;AAG1BH,GAH0B,CAGtBlB,sBAAsB,CAACQ,oBAHD,EAGuBf,QAAQ,CAAC2B,UAAT,CAAoB3B,QAAQ,CAAC6B,eAA7B,CAHvB;AAI1BJ,GAJ0B,CAItBlB,sBAAsB,CAACS,aAJD,EAIgBhB,QAAQ,CAAC8B,mBAJzB;AAK1BL,GAL0B,CAKtBlB,sBAAsB,CAACU,sBALD,EAKyBjB,QAAQ,CAAC2B,UAAT,CAAoB3B,QAAQ,CAAC+B,SAA7B,CALzB;AAM1BN,GAN0B,CAMtBlB,sBAAsB,CAACW,oBAND,EAMuBlB,QAAQ,CAAC2B,UAAT,CAAoB3B,QAAQ,CAACgC,QAA7B,CANvB;AAO1BP,GAP0B,CAOtBlB,sBAAsB,CAACG,cAPD,EAOiBV,QAAQ,CAAC4B,cAP1B;AAQ1BH,GAR0B,CAQtBlB,sBAAsB,CAACI,eARD,EAQkBX,QAAQ,CAAC6B,eAR3B;AAS1BJ,GAT0B,CAStBlB,sBAAsB,CAACK,IATD,EASOZ,QAAQ,CAACiC,YAAT,CAAsBjC,QAAQ,CAAC+B,SAA/B,CATP;AAU1BN,GAV0B,CAUtBlB,sBAAsB,CAACM,GAVD,EAUMb,QAAQ,CAACiC,YAAT,CAAsBjC,QAAQ,CAACgC,QAA/B,CAVN;AAW1BP,GAX0B,CAWtBlB,sBAAsB,CAACY,SAXD,EAWYnB,QAAQ,CAACkC,cAXrB;AAY1BT,GAZ0B,CAYtBlB,sBAAsB,CAACa,MAZD,EAYSpB,QAAQ,CAACmC,WAZlB;AAa1BV,GAb0B,CAatBlB,sBAAsB,CAACE,MAbD,EAaS,UAAC2B,CAAD,UAAOpC,QAAQ,CAACqC,UAAT,GAAsBD,CAAtB,KAA4BpC,QAAQ,CAACsC,QAAT,CAAkBF,CAAlB,CAAnC,EAbT;AAc1BX,GAd0B,CActBlB,sBAAsB,CAACe,KAdD,EAcQtB,QAAQ,CAACuC,QAAT,OAAAvC,QAAQ,EAAaD,YAAb,CAdhB;AAe1ByC,KAf0B,CAepBjC,sBAAsB,CAACC,OAfH,CAAtB,C","sourcesContent":["import * as Keyboard from '../../lib/events/keyboard/identifiers';\nimport { KeyboardActionExctracterBuilder } from '../../lib/extractKeyboardAction';\n\nexport const commaAliases = [\n Keyboard.isCodeComma,\n Keyboard.isCodePeriod,\n Keyboard.isCodeSlash,\n Keyboard.isCodeBackslash,\n Keyboard.isCodeIntlBackslash,\n Keyboard.isCodeNumpadDivide,\n];\n\nexport const CURRENCY_INPUT_ACTIONS = {\n Unknown: 0,\n Ignore: 1,\n\n MoveCursorLeft: 11,\n MoveCursorRight: 12,\n Home: 13,\n End: 14,\n\n ExtendSelectionLeft: 21,\n ExtendSelectionRight: 22,\n FullSelection: 23,\n ExtendSelectionToStart: 24,\n ExtendSelectionToEnd: 25,\n\n Backspace: 31,\n Delete: 32,\n Submit: 33,\n\n Comma: 34,\n};\n\nexport const extractAction = new KeyboardActionExctracterBuilder()\n .add(CURRENCY_INPUT_ACTIONS.Submit, Keyboard.isKeyEnter)\n .add(CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft, Keyboard.isModShift(Keyboard.isKeyArrowLeft))\n .add(CURRENCY_INPUT_ACTIONS.ExtendSelectionRight, Keyboard.isModShift(Keyboard.isKeyArrowRight))\n .add(CURRENCY_INPUT_ACTIONS.FullSelection, Keyboard.isShortcutSelectAll)\n .add(CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart, Keyboard.isModShift(Keyboard.isKeyHome))\n .add(CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd, Keyboard.isModShift(Keyboard.isKeyEnd))\n .add(CURRENCY_INPUT_ACTIONS.MoveCursorLeft, Keyboard.isKeyArrowLeft)\n .add(CURRENCY_INPUT_ACTIONS.MoveCursorRight, Keyboard.isKeyArrowRight)\n .add(CURRENCY_INPUT_ACTIONS.Home, Keyboard.isUnmodified(Keyboard.isKeyHome))\n .add(CURRENCY_INPUT_ACTIONS.End, Keyboard.isUnmodified(Keyboard.isKeyEnd))\n .add(CURRENCY_INPUT_ACTIONS.Backspace, Keyboard.isKeyBackspace)\n .add(CURRENCY_INPUT_ACTIONS.Delete, Keyboard.isKeyDelete)\n .add(CURRENCY_INPUT_ACTIONS.Ignore, (e) => Keyboard.isModified()(e) || Keyboard.isKeyTab(e))\n .add(CURRENCY_INPUT_ACTIONS.Comma, Keyboard.someKeys(...commaAliases))\n .build(CURRENCY_INPUT_ACTIONS.Unknown);\n"]}
@@ -1,2 +1,5 @@
1
1
  export declare const MAX_SAFE_DIGITS = 15;
2
2
  export declare const MAX_ALLOWED_CHARS: number;
3
+ export declare const THIN_SPACE: string;
4
+ export declare const SPACE: string;
5
+ export declare const MINUS_SIGN: string;
@@ -1,7 +1,11 @@
1
- "use strict";exports.__esModule = true;exports.MAX_SAFE_DIGITS = exports.MAX_ALLOWED_CHARS = void 0; // https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15
1
+ "use strict";exports.__esModule = true;exports.THIN_SPACE = exports.SPACE = exports.MINUS_SIGN = exports.MAX_SAFE_DIGITS = exports.MAX_ALLOWED_CHARS = void 0; // https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15
2
2
  var MAX_SAFE_DIGITS = 15;
3
3
 
4
4
  // + десятичный разделитель
5
5
  // + целая часть равная нулю
6
6
  // + знак '-'
7
- exports.MAX_SAFE_DIGITS = MAX_SAFE_DIGITS;var MAX_ALLOWED_CHARS = MAX_SAFE_DIGITS + 3;exports.MAX_ALLOWED_CHARS = MAX_ALLOWED_CHARS;
7
+ exports.MAX_SAFE_DIGITS = MAX_SAFE_DIGITS;var MAX_ALLOWED_CHARS = MAX_SAFE_DIGITS + 3;exports.MAX_ALLOWED_CHARS = MAX_ALLOWED_CHARS;
8
+
9
+ var THIN_SPACE = String.fromCharCode(0x2009);exports.THIN_SPACE = THIN_SPACE;
10
+ var SPACE = String.fromCharCode(0x0020);exports.SPACE = SPACE;
11
+ var MINUS_SIGN = String.fromCharCode(0x2212);exports.MINUS_SIGN = MINUS_SIGN;
@@ -1 +1 @@
1
- {"version":3,"sources":["constants.ts"],"names":["MAX_SAFE_DIGITS","MAX_ALLOWED_CHARS"],"mappings":"qGAAA;AACO,IAAMA,eAAe,GAAG,EAAxB;;AAEP;AACA;AACA;0CACO,IAAMC,iBAAiB,GAAGD,eAAe,GAAG,CAA5C,C","sourcesContent":["// https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15\nexport const MAX_SAFE_DIGITS = 15;\n\n// + десятичный разделитель\n// + целая часть равная нулю\n// + знак '-'\nexport const MAX_ALLOWED_CHARS = MAX_SAFE_DIGITS + 3;\n"]}
1
+ {"version":3,"sources":["constants.ts"],"names":["MAX_SAFE_DIGITS","MAX_ALLOWED_CHARS","THIN_SPACE","String","fromCharCode","SPACE","MINUS_SIGN"],"mappings":"+JAAA;AACO,IAAMA,eAAe,GAAG,EAAxB;;AAEP;AACA;AACA;0CACO,IAAMC,iBAAiB,GAAGD,eAAe,GAAG,CAA5C,C;;AAEA,IAAME,UAAU,GAAGC,MAAM,CAACC,YAAP,CAAoB,MAApB,CAAnB,C;AACA,IAAMC,KAAK,GAAGF,MAAM,CAACC,YAAP,CAAoB,MAApB,CAAd,C;AACA,IAAME,UAAU,GAAGH,MAAM,CAACC,YAAP,CAAoB,MAApB,CAAnB,C","sourcesContent":["// https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15\nexport const MAX_SAFE_DIGITS = 15;\n\n// + десятичный разделитель\n// + целая часть равная нулю\n// + знак '-'\nexport const MAX_ALLOWED_CHARS = MAX_SAFE_DIGITS + 3;\n\nexport const THIN_SPACE = String.fromCharCode(0x2009);\nexport const SPACE = String.fromCharCode(0x0020);\nexport const MINUS_SIGN = String.fromCharCode(0x2212);\n"]}
@@ -5,23 +5,19 @@ 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
+ /** Убрать лишние нули после запятой */
12
+ hideTrailingZeros?: boolean;
11
13
  }
12
- export declare const defaultProps: {
13
- fractionDigits: number;
14
- };
15
14
  export declare const CurrencyLabelDataTids: {
16
15
  readonly root: "CurrencyLabel__root";
17
16
  };
18
17
  export declare const CurrencyLabel: {
19
- (props: CurrencyLabelProps): JSX.Element;
18
+ ({ value, fractionDigits, currencySymbol, hideTrailingZeros, ...rest }: CurrencyLabelProps): JSX.Element;
20
19
  __KONTUR_REACT_UI__: string;
21
- defaultProps: {
22
- fractionDigits: number;
23
- };
24
20
  propTypes: {
25
- fractionDigits: (props: CurrencyLabelProps & typeof defaultProps) => Error | null;
21
+ fractionDigits: ({ fractionDigits, value }: CurrencyLabelProps) => Error | null;
26
22
  };
27
23
  };
@@ -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", "hideTrailingZeros"];
6
6
 
7
7
 
8
8
 
@@ -14,20 +14,25 @@ var _CommonWrapper = require("../../internal/CommonWrapper");
14
14
 
15
15
 
16
16
 
17
- var defaultProps = {
18
- fractionDigits: 2 };exports.defaultProps = defaultProps;
19
17
 
20
18
 
19
+ var FRACTION_DIGITS_DEFAULT = 2;
20
+
21
21
  var CurrencyLabelDataTids = {
22
22
  root: 'CurrencyLabel__root' };exports.CurrencyLabelDataTids = CurrencyLabelDataTids;
23
23
 
24
24
 
25
- var CurrencyLabel = function CurrencyLabel(props) {
26
- var value = props.value,fractionDigits = props.fractionDigits,currencySymbol = props.currencySymbol;
25
+ var CurrencyLabel = function CurrencyLabel(_ref)
26
+
27
+
28
+
29
+
30
+
31
+ {var value = _ref.value,_ref$fractionDigits = _ref.fractionDigits,fractionDigits = _ref$fractionDigits === void 0 ? FRACTION_DIGITS_DEFAULT : _ref$fractionDigits,currencySymbol = _ref.currencySymbol,_ref$hideTrailingZero = _ref.hideTrailingZeros,hideTrailingZeros = _ref$hideTrailingZero === void 0 ? false : _ref$hideTrailingZero,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
27
32
  return /*#__PURE__*/(
28
- _react.default.createElement(_CommonWrapper.CommonWrapper, props, /*#__PURE__*/
33
+ _react.default.createElement(_CommonWrapper.CommonWrapper, rest, /*#__PURE__*/
29
34
  _react.default.createElement("span", { "data-tid": CurrencyLabelDataTids.root },
30
- _CurrencyHelper.CurrencyHelper.format(value, { fractionDigits: fractionDigits }),
35
+ _CurrencyHelper.CurrencyHelper.format(value, { fractionDigits: fractionDigits, hideTrailingZeros: hideTrailingZeros }),
31
36
  currencySymbol && String.fromCharCode(0xa0) /* &nbsp; */,
32
37
  currencySymbol)));
33
38
 
@@ -37,26 +42,24 @@ var CurrencyLabel = function CurrencyLabel(props) {
37
42
 
38
43
  CurrencyLabel.__KONTUR_REACT_UI__ = 'CurrencyLabel';
39
44
 
40
- CurrencyLabel.defaultProps = defaultProps;
41
-
42
45
  CurrencyLabel.propTypes = {
43
- fractionDigits: function fractionDigits(props) {
44
- if (props.fractionDigits > _constants.MAX_SAFE_DIGITS) {
46
+ fractionDigits: function fractionDigits(_ref2) {var _ref2$fractionDigits = _ref2.fractionDigits,_fractionDigits = _ref2$fractionDigits === void 0 ? FRACTION_DIGITS_DEFAULT : _ref2$fractionDigits,value = _ref2.value;
47
+ if (_fractionDigits > _constants.MAX_SAFE_DIGITS) {
45
48
  return new Error(
46
49
  "[CurrencyLabel]: Prop 'fractionDigits' exceeds " + _constants.MAX_SAFE_DIGITS + "." + "\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15");
47
50
 
48
51
 
49
52
  }
50
53
 
51
- var _ref = _CurrencyHelper.CurrencyHelper.destructString(String(props.value)) || { fraction: '' },fraction = _ref.fraction;
52
- if (fraction.length > props.fractionDigits) {
54
+ var _ref3 = _CurrencyHelper.CurrencyHelper.destructString(String(value)) || { fraction: '' },fraction = _ref3.fraction;
55
+ if (fraction.length > _fractionDigits) {
53
56
  return new Error(
54
57
  "[CurrencyLabel]: Prop 'fractionDigits' less than fractional part of the 'value' property," + "'value' will not be cutted");
55
58
 
56
59
 
57
60
  }
58
61
 
59
- if (!Number.isInteger(props.fractionDigits)) {
62
+ if (!Number.isInteger(_fractionDigits)) {
60
63
  return new Error("[CurrencyLabel]: Prop 'fractionDigits' is not integer, fraction part of these property will not be used");
61
64
 
62
65
 
@@ -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","hideTrailingZeros","rest","CurrencyHelper","format","String","fromCharCode","__KONTUR_REACT_UI__","propTypes","MAX_SAFE_DIGITS","Error","destructString","fraction","length","Number","isInteger"],"mappings":"uTAAA;;AAEA;AACA;AACA,6D;;;;;;;;;;;;;;AAcA,IAAMA,uBAAuB,GAAG,CAAhC;;AAEO,IAAMC,qBAAqB,GAAG;AACnCC,EAAAA,IAAI,EAAE,qBAD6B,EAA9B,C;;;AAIA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB;;;;;;AAMU,KALrCC,KAKqC,QALrCA,KAKqC,4BAJrCC,cAIqC,CAJrCA,cAIqC,oCAJpBL,uBAIoB,uBAHrCM,cAGqC,QAHrCA,cAGqC,8BAFrCC,iBAEqC,CAFrCA,iBAEqC,sCAFjB,KAEiB,yBADlCC,IACkC;AACrC;AACE,iCAAC,4BAAD,EAAmBA,IAAnB;AACE,2CAAM,YAAUP,qBAAqB,CAACC,IAAtC;AACGO,mCAAeC,MAAf,CAAsBN,KAAtB,EAA6B,EAAEC,cAAc,EAAdA,cAAF,EAAkBE,iBAAiB,EAAjBA,iBAAlB,EAA7B,CADH;AAEGD,IAAAA,cAAc,IAAIK,MAAM,CAACC,YAAP,CAAoB,IAApB,CAFrB,CAE+C,YAF/C;AAGGN,IAAAA,cAHH,CADF,CADF;;;;AASD,CAhBM,C;;AAkBPH,aAAa,CAACU,mBAAd,GAAoC,eAApC;;AAEAV,aAAa,CAACW,SAAd,GAA0B;AACxBT,EAAAA,cAAc,EAAE,+BAA6E,kCAA1EA,cAA0E,CAA1EA,eAA0E,qCAAzDL,uBAAyD,wBAAhCI,KAAgC,SAAhCA,KAAgC;AAC3F,QAAIC,eAAc,GAAGU,0BAArB,EAAsC;AACpC,aAAO,IAAIC,KAAJ;AACL,0DAAkDD,0BAAlD,4EADK,CAAP;;;AAID;;AAED,gBAAqBN,+BAAeQ,cAAf,CAA8BN,MAAM,CAACP,KAAD,CAApC,KAAgD,EAAEc,QAAQ,EAAE,EAAZ,EAArE,CAAQA,QAAR,SAAQA,QAAR;AACA,QAAIA,QAAQ,CAACC,MAAT,GAAkBd,eAAtB,EAAsC;AACpC,aAAO,IAAIW,KAAJ;AACL,gIADK,CAAP;;;AAID;;AAED,QAAI,CAACI,MAAM,CAACC,SAAP,CAAiBhB,eAAjB,CAAL,EAAuC;AACrC,aAAO,IAAIW,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 hideTrailingZeros?: boolean;\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 hideTrailingZeros = false,\n ...rest\n}: CurrencyLabelProps): JSX.Element => {\n return (\n <CommonWrapper {...rest}>\n <span data-tid={CurrencyLabelDataTids.root}>\n {CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros })}\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"]}
@@ -21,3 +21,9 @@ Count of fraction digits can be changed
21
21
  ```jsx
22
22
  <CurrencyLabel value={3562001.1} fractionDigits={3} currencySymbol={'₽'} />
23
23
  ```
24
+
25
+ Can hide trailing zeros
26
+
27
+ ```jsx
28
+ <CurrencyLabel value={356.167} fractionDigits={5} hideTrailingZeros />
29
+ ```
@@ -6,7 +6,7 @@ interface DateFragmentViewProps {
6
6
  inputMode: boolean;
7
7
  onSelectDateComponent: (type: InternalDateComponentType, e: React.MouseEvent<HTMLSpanElement>) => void;
8
8
  }
9
- export declare class DateFragmentsView extends React.Component<DateFragmentViewProps, {}> {
9
+ export declare class DateFragmentsView extends React.Component<DateFragmentViewProps> {
10
10
  private theme;
11
11
  private rootNode;
12
12
  isFragment: (el: HTMLElement | EventTarget) => boolean;
@@ -86,6 +86,15 @@ DateFragmentsView = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose
86
86
 
87
87
 
88
88
 
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
89
98
 
90
99
 
91
100
 
@@ -98,4 +107,4 @@ DateFragmentsView = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose
98
107
 
99
108
  rootRef = function (el) {
100
109
  _this.rootNode = el;
101
- };return _this;}var _proto = DateFragmentsView.prototype;_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 _this3 = this;return /*#__PURE__*/_react.default.createElement("span", { ref: this.rootRef, className: _DateFragmentsView.styles.root(this.theme) }, this.props.fragments.map(function (fragment, index) {return fragment.type === _types.InternalDateComponentType.Separator ? _this3.renderSeparator(fragment, index) : _this3.renderDateComponent(fragment, index);}));};_proto.renderSeparator = function renderSeparator(fragment, index) {var _cx;var separatorClassName = (0, _Emotion.cx)((_cx = {}, _cx[_DateFragmentsView.styles.mask(this.theme)] = true, _cx[_DateFragmentsView.styles.delimiterFilled()] = this.props.fragments[index + 1].value !== null, _cx));return /*#__PURE__*/_react.default.createElement("span", { key: index, className: separatorClassName }, fragment.value);};_proto.renderDateComponent = function renderDateComponent(fragment, index) {var _this$props = this.props,inputMode = _this$props.inputMode,onSelectDateComponent = _this$props.onSelectDateComponent,selected = _this$props.selected;var type = fragment.type,value = fragment.value,length = fragment.length,valueWithPad = fragment.valueWithPad;var valueMask = value === null || selected === type && inputMode ? value : valueWithPad || value;var lengthMask = _InternalDateValidator.InternalDateValidator.testParseToNumber(valueMask) ? Math.max(length - valueMask.toString().length, 0) : length;var handleMouseUp = function handleMouseUp(e) {if (document.activeElement && document.activeElement.contains(e.currentTarget)) {onSelectDateComponent(type, e);}};return /*#__PURE__*/_react.default.createElement("span", { key: index, "data-fragment": "", onMouseUp: handleMouseUp }, valueMask, /*#__PURE__*/_react.default.createElement("span", { className: _DateFragmentsView.styles.mask(this.theme) }, Array(lengthMask).fill('').map(function (_, i) {return /*#__PURE__*/_react.default.createElement(_MaskCharLowLine.MaskCharLowLine, { key: i });})));};return DateFragmentsView;}(_react.default.Component);exports.DateFragmentsView = DateFragmentsView;
110
+ };return _this;}var _proto = DateFragmentsView.prototype;_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 _this3 = this;return /*#__PURE__*/_react.default.createElement("span", { ref: this.rootRef, className: _DateFragmentsView.styles.root(this.theme) }, this.props.fragments.map(function (fragment, index) {return fragment.type === _types.InternalDateComponentType.Separator ? _this3.renderSeparator(fragment, index) : _this3.renderDateComponent(fragment, index);}));};_proto.renderSeparator = function renderSeparator(fragment, index) {var _cx;var separatorClassName = (0, _Emotion.cx)((_cx = {}, _cx[_DateFragmentsView.styles.mask(this.theme)] = true, _cx[_DateFragmentsView.styles.delimiterFilled()] = this.props.fragments[index + 1].value !== null, _cx));return /*#__PURE__*/_react.default.createElement("span", { key: index, className: separatorClassName }, fragment.value);};_proto.renderDateComponent = function renderDateComponent(fragment, index) {var _this$props = this.props,inputMode = _this$props.inputMode,onSelectDateComponent = _this$props.onSelectDateComponent,selected = _this$props.selected;var type = fragment.type,value = fragment.value,length = fragment.length,valueWithPad = fragment.valueWithPad;var getValueMask = function getValueMask() {if (value === null || selected === type && inputMode) {return value;}return valueWithPad || value;};var valueMask = getValueMask();var lengthMask = _InternalDateValidator.InternalDateValidator.testParseToNumber(valueMask) ? Math.max(length - valueMask.toString().length, 0) : length;var handleMouseUp = function handleMouseUp(e) {if (document.activeElement && document.activeElement.contains(e.currentTarget)) {onSelectDateComponent(type, e);}};return /*#__PURE__*/_react.default.createElement("span", { key: index, "data-fragment": "", onMouseUp: handleMouseUp }, valueMask, /*#__PURE__*/_react.default.createElement("span", { "data-tid": "DateFragmentsView__placeholder", className: _DateFragmentsView.styles.mask(this.theme) }, Array(lengthMask).fill('').map(function (_, i) {return /*#__PURE__*/_react.default.createElement(_MaskCharLowLine.MaskCharLowLine, { key: i });})));};return DateFragmentsView;}(_react.default.Component);exports.DateFragmentsView = DateFragmentsView;