@skbkontur/react-ui 0.0.0-66a28a30fb → 0.0.0-68e286f9fe

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 (504) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/README.md +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +0 -22
  4. package/cjs/components/Autocomplete/Autocomplete.js +2 -40
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.styles.js +2 -1
  7. package/cjs/components/Button/Button.styles.js.map +1 -1
  8. package/cjs/components/Calendar/CalendarDay.js +18 -2
  9. package/cjs/components/Calendar/CalendarDay.js.map +1 -1
  10. package/cjs/components/Calendar/DayCellView.js +7 -15
  11. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  12. package/cjs/components/Checkbox/Checkbox.d.ts +0 -12
  13. package/cjs/components/Checkbox/Checkbox.js +1 -14
  14. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  15. package/cjs/components/ComboBox/ComboBox.d.ts +7 -1
  16. package/cjs/components/ComboBox/ComboBox.js +8 -1
  17. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  18. package/cjs/components/ComboBox/ComboBox.md +2 -2
  19. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -24
  20. package/cjs/components/CurrencyInput/CurrencyInput.js +2 -29
  21. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  22. package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -27
  23. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  24. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  25. package/cjs/components/DateInput/DateInput.js +37 -14
  26. package/cjs/components/DateInput/DateInput.js.map +1 -1
  27. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +1 -1
  28. package/cjs/components/DateInput/helpers/InternalDateMediator.js +10 -1
  29. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  30. package/cjs/components/DatePicker/DatePicker.d.ts +4 -33
  31. package/cjs/components/DatePicker/DatePicker.js +5 -60
  32. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  33. package/cjs/components/DateRangePicker/DateRangePicker.d.ts +3 -1
  34. package/cjs/components/DateRangePicker/DateRangePicker.js +61 -23
  35. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  36. package/cjs/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
  37. package/cjs/components/DateRangePicker/DateRangePicker.styles.js +13 -18
  38. package/cjs/components/DateRangePicker/DateRangePicker.styles.js.map +1 -1
  39. package/cjs/components/DateRangePicker/DateRangePickerInput.js +4 -8
  40. package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  41. package/cjs/components/DateRangePicker/helpers/validateDateRangePicker.js +17 -17
  42. package/cjs/components/DateRangePicker/helpers/validateDateRangePicker.js.map +1 -1
  43. package/cjs/components/Dropdown/Dropdown.d.ts +0 -47
  44. package/cjs/components/Dropdown/Dropdown.js +2 -83
  45. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  46. package/cjs/components/DropdownMenu/DropdownMenu.md +8 -8
  47. package/cjs/components/FileUploader/FileUploader.js +14 -2
  48. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  49. package/cjs/components/FxInput/FxInput.d.ts +1 -6
  50. package/cjs/components/FxInput/FxInput.js +1 -7
  51. package/cjs/components/FxInput/FxInput.js.map +1 -1
  52. package/cjs/components/Gapped/Gapped.d.ts +0 -15
  53. package/cjs/components/Gapped/Gapped.js +1 -25
  54. package/cjs/components/Gapped/Gapped.js.map +1 -1
  55. package/cjs/components/Group/Group.d.ts +3 -4
  56. package/cjs/components/Group/Group.js +90 -40
  57. package/cjs/components/Group/Group.js.map +1 -1
  58. package/cjs/components/Group/Group.md +4 -4
  59. package/cjs/components/Group/Group.styles.d.ts +1 -0
  60. package/cjs/components/Group/Group.styles.js +12 -6
  61. package/cjs/components/Group/Group.styles.js.map +1 -1
  62. package/cjs/components/Input/Input.md +4 -5
  63. package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -0
  64. package/cjs/components/Input/InputLayout/InputLayout.js +4 -2
  65. package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
  66. package/cjs/components/Kebab/Kebab.d.ts +0 -1
  67. package/cjs/components/Kebab/Kebab.js +1 -26
  68. package/cjs/components/Kebab/Kebab.js.map +1 -1
  69. package/cjs/components/Kebab/Kebab.md +32 -32
  70. package/cjs/components/Link/Link.js +5 -0
  71. package/cjs/components/Link/Link.js.map +1 -1
  72. package/cjs/components/Link/Link.mixins.js +1 -2
  73. package/cjs/components/Link/Link.mixins.js.map +1 -1
  74. package/cjs/components/Link/Link.styles.js +3 -2
  75. package/cjs/components/Link/Link.styles.js.map +1 -1
  76. package/cjs/components/Loader/Loader.d.ts +4 -36
  77. package/cjs/components/Loader/Loader.js +3 -58
  78. package/cjs/components/Loader/Loader.js.map +1 -1
  79. package/cjs/components/MenuItem/MenuItem.d.ts +0 -12
  80. package/cjs/components/MenuItem/MenuItem.js +1 -22
  81. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  82. package/cjs/components/MenuItem/MenuItem.md +6 -6
  83. package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
  84. package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
  85. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
  86. package/cjs/components/MiniModal/MiniModalBody.js +17 -2
  87. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
  88. package/cjs/components/Modal/Modal.styles.d.ts +1 -1
  89. package/cjs/components/Modal/Modal.styles.js +6 -6
  90. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  91. package/cjs/components/Modal/ModalSeparator.js +1 -1
  92. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  93. package/cjs/components/Paging/Paging.d.ts +0 -1
  94. package/cjs/components/Paging/Paging.js +2 -28
  95. package/cjs/components/Paging/Paging.js.map +1 -1
  96. package/cjs/components/PasswordInput/PasswordInput.d.ts +0 -7
  97. package/cjs/components/PasswordInput/PasswordInput.js +1 -11
  98. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  99. package/cjs/components/RadioGroup/RadioGroup.d.ts +1 -0
  100. package/cjs/components/RadioGroup/RadioGroup.js +18 -1
  101. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  102. package/cjs/components/RadioGroup/RadioGroup.styles.d.ts +1 -0
  103. package/cjs/components/RadioGroup/RadioGroup.styles.js +10 -4
  104. package/cjs/components/RadioGroup/RadioGroup.styles.js.map +1 -1
  105. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +0 -9
  106. package/cjs/components/ScrollContainer/ScrollContainer.js +1 -11
  107. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  108. package/cjs/components/Select/Select.d.ts +3 -0
  109. package/cjs/components/Select/Select.js +4 -1
  110. package/cjs/components/Select/Select.js.map +1 -1
  111. package/cjs/components/Select/Select.md +3 -3
  112. package/cjs/components/SidePage/SidePage.js +1 -1
  113. package/cjs/components/SidePage/SidePage.js.map +1 -1
  114. package/cjs/components/SidePage/SidePageHeader.js +4 -1
  115. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  116. package/cjs/components/SingleToast/SingleToast.d.ts +3 -3
  117. package/cjs/components/SingleToast/SingleToast.js.map +1 -1
  118. package/cjs/components/Spinner/Spinner.d.ts +0 -18
  119. package/cjs/components/Spinner/Spinner.js +1 -32
  120. package/cjs/components/Spinner/Spinner.js.map +1 -1
  121. package/cjs/components/Sticky/Sticky.d.ts +3 -13
  122. package/cjs/components/Sticky/Sticky.js +12 -19
  123. package/cjs/components/Sticky/Sticky.js.map +1 -1
  124. package/cjs/components/Switcher/Switcher.d.ts +4 -21
  125. package/cjs/components/Switcher/Switcher.js +11 -21
  126. package/cjs/components/Switcher/Switcher.js.map +1 -1
  127. package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
  128. package/cjs/components/Switcher/Switcher.styles.js +17 -9
  129. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  130. package/cjs/components/Textarea/Textarea.d.ts +6 -45
  131. package/cjs/components/Textarea/Textarea.js +16 -58
  132. package/cjs/components/Textarea/Textarea.js.map +1 -1
  133. package/cjs/components/Textarea/Textarea.styles.js +2 -1
  134. package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
  135. package/cjs/components/Textarea/TextareaCounter.js +2 -13
  136. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  137. package/cjs/components/Toast/Toast.d.ts +8 -6
  138. package/cjs/components/Toast/Toast.js +18 -4
  139. package/cjs/components/Toast/Toast.js.map +1 -1
  140. package/cjs/components/Toast/ToastStatic.d.ts +3 -2
  141. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  142. package/cjs/components/Toast/ToastView.d.ts +1 -15
  143. package/cjs/components/Toast/ToastView.js +3 -23
  144. package/cjs/components/Toast/ToastView.js.map +1 -1
  145. package/cjs/components/Toggle/Toggle.d.ts +0 -10
  146. package/cjs/components/Toggle/Toggle.js +1 -12
  147. package/cjs/components/Toggle/Toggle.js.map +1 -1
  148. package/cjs/components/Token/Token.md +0 -83
  149. package/cjs/components/TokenInput/TokenInput.d.ts +2 -2
  150. package/cjs/components/TokenInput/TokenInput.js +2 -1
  151. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  152. package/cjs/components/TokenInput/TokenInput.md +2 -33
  153. package/cjs/components/TokenInput/TokenInputMenu.d.ts +12 -3
  154. package/cjs/components/TokenInput/TokenInputMenu.js +23 -1
  155. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  156. package/cjs/components/Tooltip/Tooltip.d.ts +2 -3
  157. package/cjs/components/Tooltip/Tooltip.js +7 -9
  158. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  159. package/cjs/components/Tooltip/Tooltip.md +8 -8
  160. package/cjs/components/TooltipMenu/TooltipMenu.md +12 -12
  161. package/cjs/index.d.ts +1 -0
  162. package/cjs/index.js.map +1 -1
  163. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
  164. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js +16 -7
  165. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  166. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
  167. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js +27 -9
  168. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
  169. package/cjs/internal/ComponentTable.js +2 -3
  170. package/cjs/internal/ComponentTable.js.map +1 -1
  171. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +6 -2
  172. package/cjs/internal/CustomComboBox/ComboBoxView.js +37 -2
  173. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  174. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +4 -2
  175. package/cjs/internal/CustomComboBox/CustomComboBox.js +4 -1
  176. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  177. package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
  178. package/cjs/internal/DateSelect/DateSelect.js +12 -18
  179. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  180. package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
  181. package/cjs/internal/InputLikeText/InputLikeText.styles.js +12 -4
  182. package/cjs/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
  183. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +36 -0
  184. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +233 -0
  185. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
  186. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  187. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +10 -0
  188. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -0
  189. package/cjs/internal/Popup/Popup.d.ts +41 -60
  190. package/cjs/internal/Popup/Popup.js +27 -78
  191. package/cjs/internal/Popup/Popup.js.map +1 -1
  192. package/cjs/internal/Popup/PopupPin.d.ts +23 -33
  193. package/cjs/internal/Popup/PopupPin.js +2 -35
  194. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  195. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  196. package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
  197. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  198. package/cjs/internal/RenderLayer/RenderLayer.d.ts +0 -3
  199. package/cjs/internal/RenderLayer/RenderLayer.js +2 -12
  200. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  201. package/cjs/internal/ThemePlayground/Playground.js +16 -16
  202. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  203. package/cjs/internal/ThemePlayground/SizesGroup.js +4 -4
  204. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  205. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +1 -1
  206. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  207. package/cjs/internal/ThemePlayground/VariableValue.js +4 -4
  208. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  209. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  210. package/cjs/internal/ZIndex/ZIndex.d.ts +1 -3
  211. package/cjs/internal/ZIndex/ZIndex.js +5 -2
  212. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  213. package/cjs/internal/themes/BasicTheme.d.ts +4 -0
  214. package/cjs/internal/themes/BasicTheme.js +6 -2
  215. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  216. package/cjs/internal/themes/DarkTheme5_2.js +1 -1
  217. package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
  218. package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
  219. package/cjs/internal/themes/DarkTheme5_3.js +13 -0
  220. package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
  221. package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
  222. package/cjs/internal/themes/LightTheme5_3.js +13 -0
  223. package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
  224. package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
  225. package/cjs/lib/date/InternalDateGetter.js +8 -1
  226. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  227. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  228. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  229. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +11 -1
  230. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  231. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  232. package/cjs/lib/forwardRefAndName.js +0 -1
  233. package/cjs/lib/forwardRefAndName.js.map +1 -1
  234. package/cjs/lib/getMenuPositions.d.ts +21 -1
  235. package/cjs/lib/getMenuPositions.js +45 -8
  236. package/cjs/lib/getMenuPositions.js.map +1 -1
  237. package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
  238. package/cjs/lib/theming/ThemeVersions.js.map +1 -1
  239. package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
  240. package/cjs/lib/theming/themes/DarkTheme.js +4 -2
  241. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  242. package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
  243. package/cjs/lib/theming/themes/LightTheme.js +4 -2
  244. package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
  245. package/cjs/lib/utils.d.ts +4 -0
  246. package/cjs/lib/utils.js +5 -1
  247. package/cjs/lib/utils.js.map +1 -1
  248. package/components/Autocomplete/Autocomplete/Autocomplete.js +3 -23
  249. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  250. package/components/Autocomplete/Autocomplete.d.ts +0 -22
  251. package/components/Button/Button.styles/Button.styles.js +1 -1
  252. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  253. package/components/Calendar/CalendarDay/CalendarDay.js +9 -2
  254. package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
  255. package/components/Calendar/DayCellView/DayCellView.js +6 -10
  256. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  257. package/components/Checkbox/Checkbox/Checkbox.js +0 -11
  258. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  259. package/components/Checkbox/Checkbox.d.ts +0 -12
  260. package/components/ComboBox/ComboBox/ComboBox.js +2 -1
  261. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  262. package/components/ComboBox/ComboBox.d.ts +7 -1
  263. package/components/ComboBox/ComboBox.md +2 -2
  264. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +9 -36
  265. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  266. package/components/CurrencyInput/CurrencyInput.d.ts +1 -24
  267. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
  268. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  269. package/components/DateInput/DateInput/DateInput.js +25 -16
  270. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  271. package/components/DateInput/DateInput.d.ts +1 -0
  272. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +2 -2
  273. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  274. package/components/DateInput/helpers/InternalDateMediator.d.ts +1 -1
  275. package/components/DatePicker/DatePicker/DatePicker.js +1 -32
  276. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  277. package/components/DatePicker/DatePicker.d.ts +4 -33
  278. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +41 -22
  279. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
  280. package/components/DateRangePicker/DateRangePicker.d.ts +3 -1
  281. package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js +12 -15
  282. package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js.map +1 -1
  283. package/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
  284. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +5 -8
  285. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
  286. package/components/DateRangePicker/helpers/validateDateRangePicker/validateDateRangePicker.js +16 -15
  287. package/components/DateRangePicker/helpers/validateDateRangePicker/validateDateRangePicker.js.map +1 -1
  288. package/components/Dropdown/Dropdown/Dropdown.js +1 -47
  289. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  290. package/components/Dropdown/Dropdown.d.ts +0 -47
  291. package/components/DropdownMenu/DropdownMenu.md +8 -8
  292. package/components/FileUploader/FileUploader/FileUploader.js +7 -2
  293. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  294. package/components/FxInput/FxInput/FxInput.js +1 -5
  295. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  296. package/components/FxInput/FxInput.d.ts +1 -6
  297. package/components/Gapped/Gapped/Gapped.js +1 -15
  298. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  299. package/components/Gapped/Gapped.d.ts +0 -15
  300. package/components/Group/Group/Group.js +64 -28
  301. package/components/Group/Group/Group.js.map +1 -1
  302. package/components/Group/Group.d.ts +3 -4
  303. package/components/Group/Group.md +4 -4
  304. package/components/Group/Group.styles/Group.styles.js +9 -6
  305. package/components/Group/Group.styles/Group.styles.js.map +1 -1
  306. package/components/Group/Group.styles.d.ts +1 -0
  307. package/components/Input/Input.md +4 -5
  308. package/components/Input/InputLayout/InputLayout/InputLayout.js +5 -2
  309. package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
  310. package/components/Input/InputLayout/InputLayout.d.ts +1 -0
  311. package/components/Kebab/Kebab/Kebab.js +2 -20
  312. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  313. package/components/Kebab/Kebab.d.ts +0 -1
  314. package/components/Kebab/Kebab.md +32 -32
  315. package/components/Link/Link/Link.js +4 -0
  316. package/components/Link/Link/Link.js.map +1 -1
  317. package/components/Link/Link.mixins/Link.mixins.js +1 -1
  318. package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
  319. package/components/Link/Link.styles/Link.styles.js +1 -1
  320. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  321. package/components/Loader/Loader/Loader.js +0 -33
  322. package/components/Loader/Loader/Loader.js.map +1 -1
  323. package/components/Loader/Loader.d.ts +4 -36
  324. package/components/MenuItem/MenuItem/MenuItem.js +1 -12
  325. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  326. package/components/MenuItem/MenuItem.d.ts +0 -12
  327. package/components/MenuItem/MenuItem.md +6 -6
  328. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
  329. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
  330. package/components/MiniModal/MiniModal.styles.d.ts +1 -0
  331. package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
  332. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
  333. package/components/Modal/Modal.styles/Modal.styles.js +3 -3
  334. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  335. package/components/Modal/Modal.styles.d.ts +1 -1
  336. package/components/Modal/ModalSeparator/ModalSeparator.js +1 -1
  337. package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
  338. package/components/Paging/Paging/Paging.js +1 -22
  339. package/components/Paging/Paging/Paging.js.map +1 -1
  340. package/components/Paging/Paging.d.ts +0 -1
  341. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
  342. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  343. package/components/PasswordInput/PasswordInput.d.ts +0 -7
  344. package/components/RadioGroup/RadioGroup/RadioGroup.js +23 -17
  345. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  346. package/components/RadioGroup/RadioGroup.d.ts +1 -0
  347. package/components/RadioGroup/RadioGroup.styles/RadioGroup.styles.js +7 -4
  348. package/components/RadioGroup/RadioGroup.styles/RadioGroup.styles.js.map +1 -1
  349. package/components/RadioGroup/RadioGroup.styles.d.ts +1 -0
  350. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
  351. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  352. package/components/ScrollContainer/ScrollContainer.d.ts +0 -9
  353. package/components/Select/Select/Select.js +3 -2
  354. package/components/Select/Select/Select.js.map +1 -1
  355. package/components/Select/Select.d.ts +3 -0
  356. package/components/Select/Select.md +3 -3
  357. package/components/SidePage/SidePage/SidePage.js +1 -1
  358. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  359. package/components/SidePage/SidePageHeader/SidePageHeader.js +6 -1
  360. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  361. package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
  362. package/components/SingleToast/SingleToast.d.ts +3 -3
  363. package/components/Spinner/Spinner/Spinner.js +1 -18
  364. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  365. package/components/Spinner/Spinner.d.ts +0 -18
  366. package/components/Sticky/Sticky/Sticky.js +10 -14
  367. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  368. package/components/Sticky/Sticky.d.ts +3 -13
  369. package/components/Switcher/Switcher/Switcher.js +19 -16
  370. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  371. package/components/Switcher/Switcher.d.ts +4 -21
  372. package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
  373. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  374. package/components/Switcher/Switcher.styles.d.ts +1 -0
  375. package/components/Textarea/Textarea/Textarea.js +12 -46
  376. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  377. package/components/Textarea/Textarea.d.ts +6 -45
  378. package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
  379. package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
  380. package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
  381. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  382. package/components/Toast/Toast/Toast.js +8 -10
  383. package/components/Toast/Toast/Toast.js.map +1 -1
  384. package/components/Toast/Toast.d.ts +8 -6
  385. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  386. package/components/Toast/ToastStatic.d.ts +3 -2
  387. package/components/Toast/ToastView/ToastView.js +3 -17
  388. package/components/Toast/ToastView/ToastView.js.map +1 -1
  389. package/components/Toast/ToastView.d.ts +1 -15
  390. package/components/Toggle/Toggle/Toggle.js +1 -10
  391. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  392. package/components/Toggle/Toggle.d.ts +0 -10
  393. package/components/Token/Token.md +0 -83
  394. package/components/TokenInput/TokenInput/TokenInput.js +2 -1
  395. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  396. package/components/TokenInput/TokenInput.d.ts +2 -2
  397. package/components/TokenInput/TokenInput.md +2 -33
  398. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +16 -6
  399. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  400. package/components/TokenInput/TokenInputMenu.d.ts +12 -3
  401. package/components/Tooltip/Tooltip/Tooltip.js +8 -7
  402. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  403. package/components/Tooltip/Tooltip.d.ts +2 -3
  404. package/components/Tooltip/Tooltip.md +8 -8
  405. package/components/TooltipMenu/TooltipMenu.md +12 -12
  406. package/index.d.ts +1 -0
  407. package/index.js +1 -0
  408. package/index.js.map +1 -1
  409. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js +21 -7
  410. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  411. package/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
  412. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js +14 -5
  413. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js.map +1 -1
  414. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
  415. package/internal/ComponentTable/ComponentTable.js +0 -2
  416. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  417. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +59 -27
  418. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  419. package/internal/CustomComboBox/ComboBoxView.d.ts +6 -2
  420. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +2 -1
  421. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  422. package/internal/CustomComboBox/CustomComboBox.d.ts +4 -2
  423. package/internal/DateSelect/DateSelect/DateSelect.js +3 -10
  424. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  425. package/internal/DateSelect/DateSelect.d.ts +0 -10
  426. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js +7 -4
  427. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js.map +1 -1
  428. package/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
  429. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +244 -0
  430. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
  431. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/package.json +6 -0
  432. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +36 -0
  433. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js +8 -0
  434. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js.map +1 -0
  435. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/package.json +6 -0
  436. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  437. package/internal/Popup/Popup/Popup.js +13 -66
  438. package/internal/Popup/Popup/Popup.js.map +1 -1
  439. package/internal/Popup/Popup.d.ts +41 -60
  440. package/internal/Popup/PopupPin/PopupPin.js +1 -34
  441. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  442. package/internal/Popup/PopupPin.d.ts +23 -33
  443. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
  444. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  445. package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  446. package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
  447. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  448. package/internal/RenderLayer/RenderLayer.d.ts +0 -3
  449. package/internal/ThemePlayground/Playground/Playground.js +13 -13
  450. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  451. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +4 -4
  452. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  453. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +2 -2
  454. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  455. package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -4
  456. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  457. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  458. package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
  459. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  460. package/internal/ZIndex/ZIndex.d.ts +1 -3
  461. package/internal/themes/BasicTheme/BasicTheme.js +4 -0
  462. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  463. package/internal/themes/BasicTheme.d.ts +4 -0
  464. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
  465. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
  466. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
  467. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
  468. package/internal/themes/DarkTheme5_3/package.json +6 -0
  469. package/internal/themes/DarkTheme5_3.d.ts +1 -0
  470. package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
  471. package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
  472. package/internal/themes/LightTheme5_3/package.json +6 -0
  473. package/internal/themes/LightTheme5_3.d.ts +1 -0
  474. package/lib/date/InternalDateGetter/InternalDateGetter.js +4 -1
  475. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  476. package/lib/date/InternalDateGetter.d.ts +1 -1
  477. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  478. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
  479. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  480. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  481. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  482. package/lib/forwardRefAndName.d.ts +1 -1
  483. package/lib/getMenuPositions/getMenuPositions.js +33 -4
  484. package/lib/getMenuPositions/getMenuPositions.js.map +1 -1
  485. package/lib/getMenuPositions.d.ts +21 -1
  486. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
  487. package/lib/theming/ThemeVersions.d.ts +1 -1
  488. package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
  489. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  490. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  491. package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
  492. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  493. package/lib/theming/themes/LightTheme.d.ts +1 -0
  494. package/lib/utils/utils.js +2 -0
  495. package/lib/utils/utils.js.map +1 -1
  496. package/lib/utils.d.ts +4 -0
  497. package/package.json +7 -11
  498. package/cjs/lib/SSRSafe.d.ts +0 -2
  499. package/cjs/lib/SSRSafe.js +0 -5
  500. package/cjs/lib/SSRSafe.js.map +0 -1
  501. package/lib/SSRSafe/SSRSafe.js +0 -4
  502. package/lib/SSRSafe/SSRSafe.js.map +0 -1
  503. package/lib/SSRSafe/package.json +0 -6
  504. package/lib/SSRSafe.d.ts +0 -2
@@ -184,6 +184,12 @@ var _createPropsGetter = require("../../lib/createPropsGetter");var _class, _Com
184
184
 
185
185
 
186
186
 
187
+
188
+
189
+
190
+
191
+
192
+
187
193
 
188
194
 
189
195
 
@@ -217,6 +223,7 @@ ComboBox = exports.ComboBox = (0, _rootNode.rootNode)(_class = (_ComboBox = /*#_
217
223
 
218
224
 
219
225
 
226
+
220
227
  getProps = (0, _createPropsGetter.createPropsGetter)(ComboBox.defaultProps);_this.
221
228
 
222
229
  comboboxElement = null;_this.
@@ -329,4 +336,4 @@ ComboBox = exports.ComboBox = (0, _rootNode.rootNode)(_class = (_ComboBox = /*#_
329
336
  */;_proto.selectInputText = function selectInputText() {if (this.comboboxElement) {this.comboboxElement.selectInputText();}} /**
330
337
  * Сбрасывает введенное пользователем значение
331
338
  * @public
332
- */;_proto.reset = function reset() {if (this.comboboxElement) {this.comboboxElement.reset();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CustomComboBox.CustomComboBox, (0, _extends2.default)({}, this.getProps(), { size: this.props.size, ref: this.customComboBoxRef }));};return ComboBox;}(_react.default.Component), _ComboBox.__KONTUR_REACT_UI__ = 'ComboBox', _ComboBox.displayName = 'ComboBox', _ComboBox.defaultProps = { itemToValue: function itemToValue(item) {return item.value;}, valueToString: function valueToString(item) {return item.label;}, renderValue: function renderValue(item) {return item.label;}, renderItem: function renderItem(item) {return item.label;}, menuAlign: 'left', searchOnFocus: true, drawArrow: true, showClearIcon: 'never' }, _ComboBox)) || _class;
339
+ */;_proto.reset = function reset() {if (this.comboboxElement) {this.comboboxElement.reset();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CustomComboBox.CustomComboBox, (0, _extends2.default)({}, this.getProps(), { size: this.props.size, ref: this.customComboBoxRef }));};return ComboBox;}(_react.default.Component), _ComboBox.__KONTUR_REACT_UI__ = 'ComboBox', _ComboBox.displayName = 'ComboBox', _ComboBox.defaultProps = { itemToValue: function itemToValue(item) {return item.value;}, valueToString: function valueToString(item) {return item.label;}, renderValue: function renderValue(item) {return item.label;}, renderItem: function renderItem(item) {return item.label;}, menuAlign: 'left', searchOnFocus: true, drawArrow: true, showClearIcon: 'never', viewMode: 'singleLine' }, _ComboBox)) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_CustomComboBox","_rootNode","_createPropsGetter","_class","_ComboBox","ComboBox","exports","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","comboboxElement","customComboBoxRef","element","setRootNode","_inheritsLoose2","default","_proto","prototype","focus","opts","blur","search","query","cancelSearch","open","close","selectInputText","reset","render","createElement","CustomComboBox","_extends2","size","props","ref","React","Component","__KONTUR_REACT_UI__","displayName","itemToValue","item","value","valueToString","label","renderValue","renderItem","menuAlign","searchOnFocus","drawArrow","showClearIcon"],"sources":["ComboBox.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { CustomComboBox } from '../../internal/CustomComboBox';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { MenuItemState } from '../MenuItem';\nimport type { ShowClearIcon, InputIconType } from '../Input';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\n\nexport interface ComboBoxProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает выравнивание контента. */\n align?: 'left' | 'center' | 'right';\n\n /** Вызывает функцию поиска getItems при фокусе и очистке поля ввода. */\n searchOnFocus?: boolean;\n\n /** Отображает справа иконку в виде стрелки. */\n drawArrow?: boolean;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Отключает использование портала для рендеринга меню.\n * См. https://github.com/skbkontur/retail-ui/issues/15 */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Задает функцию поиска элементов, которая должна возвращать Promise с массивом элементов.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToValue`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToValue?: (item: T) => string | number;\n\n /** Задает максимальную длину инпута. */\n maxLength?: number;\n\n /** Задает текущую позицию выпадающего окна вручную.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает функцию, которая вызывается при потере комбобоксом фокуса. */\n onBlur?: () => void;\n\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n\n /** Задает функцию, которая вызывается при получении комбобоксом фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода. */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /** Задает функцию для обработки ввода строки в инпут и последующей потерей фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат valueToString с этим элементом будет совпадать со значение в текстовом поле, то сработает onValueChange со значением данного элемента.\n * Сама функция также может вернуть значение, неравное undefined, с которым будет вызван onValueChange. Если возвращаемое значение будет равно null, то сработает очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает функцию отрисовки элементов результата поиска.\n * Не применяется если элемент является функцией или React-элементом\n * @default item => item.label\n * @param {T} item - элемент из результата поиска.\n * @param {MenuItemState} state? - состояние элемента.\n * @returns {React.ReactNode} React-элемент. */\n renderItem?: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /** Устанавливает компонент, заменяющий собой обёртку элементов результата поиска.\n * По умолчанию все элементы результата поиска оборачиваются в тег <button />.\n * @example\n * itemWrapper={(item) => {\n * if (item.value === 3) {\n * return (props) => {\n * return <a {...props} />\n * }\n * }\n * }}\n */\n itemWrapper?: (item: T) => React.ComponentType;\n\n /** Задает функцию, которая отображает сообщение о пустом результате поиска. При renderAddButton не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им \"оборачиваются\" элементы, возвращаемые getItems().\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранное значение.\n * @default item => item.label */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке. */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы renderTotalCount. */\n totalCount?: number;\n\n /** Устанавливает выбранное в комбобоксе значение. Тип `value` совпадает с типом элементов в массиве, возвращаемом в `getItems`. */\n value?: Nullable<T>;\n\n /** Задает функцию, которая возвращает строковое представление value. Необходимо при фокусировке. */\n valueToString?: (item: T) => string;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает длину комбобокса. */\n width?: string | number;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\nexport type ComboBoxExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxProps<T>,\n | 'itemToValue'\n | 'valueToString'\n | 'renderValue'\n | 'renderItem'\n | 'menuAlign'\n | 'searchOnFocus'\n | 'drawArrow'\n | 'showClearIcon'\n >\n>;\n\n/**\n * `ComboBox` — это поле ввода со списком подсказок.\n *\n * `ComboBox` используют:\n * * для выбора значения из справочника.\n * * для добавления своего значения в справочник.\n *\n * `ComboBox` может работать в двух режимах — обычном и в режиме автокомплита.\n * Основное их отличие в том, что в режиме автокомплита список вариантов появляется только после ввода первого символа или изменении уже введенного значения.\n */\n@rootNode\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n public static displayName = 'ComboBox';\n\n public static defaultProps: DefaultProps<any> = {\n itemToValue: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(ComboBox.defaultProps);\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }) {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /**\n * Открывает выпадающий список и запускает поиск элементов\n *\n * @public\n * @param {string} [query] Текст поиска. По умолчанию берется\n * текст из инпута или результат `valueToString(value)`\n */\n public search(query?: string) {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /**\n * @public Открывает выпадающий список\n */\n public open() {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /**\n * @public Закрывает выпадающий список\n */\n public close() {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Выделяет текст внутри input\n * @public\n */\n public selectInputText() {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render() {\n return <CustomComboBox {...this.getProps()} size={this.props.size} ref={this.customComboBoxRef} />;\n }\n\n private customComboBoxRef = (element: Nullable<CustomComboBox<T>>) => {\n this.setRootNode(element);\n this.comboboxElement = element;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_CustomComboBox","_rootNode","_createPropsGetter","_class","_ComboBox","ComboBox","exports","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","comboboxElement","customComboBoxRef","element","setRootNode","_inheritsLoose2","default","_proto","prototype","focus","opts","blur","search","query","cancelSearch","open","close","selectInputText","reset","render","createElement","CustomComboBox","_extends2","size","props","ref","React","Component","__KONTUR_REACT_UI__","displayName","itemToValue","item","value","valueToString","label","renderValue","renderItem","menuAlign","searchOnFocus","drawArrow","showClearIcon","viewMode"],"sources":["ComboBox.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { CustomComboBox } from '../../internal/CustomComboBox';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { MenuItemState } from '../MenuItem';\nimport type { ShowClearIcon, InputIconType } from '../Input';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { TextareaProps } from '../Textarea';\n\ntype MultiMode = 'multiline' | 'multilineEditing';\nexport type ComboBoxViewMode = 'singleLine' | MultiMode | ({ mode: MultiMode } & Pick<TextareaProps, 'maxRows'>);\n\nexport interface ComboBoxProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает выравнивание контента. */\n align?: 'left' | 'center' | 'right';\n\n /** Вызывает функцию поиска getItems при фокусе и очистке поля ввода. */\n searchOnFocus?: boolean;\n\n /** Отображает справа иконку в виде стрелки. */\n drawArrow?: boolean;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Отключает использование портала для рендеринга меню.\n * См. https://github.com/skbkontur/retail-ui/issues/15 */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Задает функцию поиска элементов, которая должна возвращать Promise с массивом элементов.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToValue`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToValue?: (item: T) => string | number;\n\n /** Задает максимальную длину инпута. */\n maxLength?: number;\n\n /** Задает текущую позицию выпадающего окна вручную.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает функцию, которая вызывается при потере комбобоксом фокуса. */\n onBlur?: () => void;\n\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n\n /** Задает функцию, которая вызывается при получении комбобоксом фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода. */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /** Задает функцию для обработки ввода строки в инпут и последующей потерей фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат valueToString с этим элементом будет совпадать со значение в текстовом поле, то сработает onValueChange со значением данного элемента.\n * Сама функция также может вернуть значение, неравное undefined, с которым будет вызван onValueChange. Если возвращаемое значение будет равно null, то сработает очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает функцию отрисовки элементов результата поиска.\n * Не применяется если элемент является функцией или React-элементом\n * @default item => item.label\n * @param {T} item - элемент из результата поиска.\n * @param {MenuItemState} state? - состояние элемента.\n * @returns {React.ReactNode} React-элемент. */\n renderItem?: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /** Устанавливает компонент, заменяющий собой обёртку элементов результата поиска.\n * По умолчанию все элементы результата поиска оборачиваются в тег <button />.\n * @example\n * itemWrapper={(item) => {\n * if (item.value === 3) {\n * return (props) => {\n * return <a {...props} />\n * }\n * }\n * }}\n */\n itemWrapper?: (item: T) => React.ComponentType;\n\n /** Задает функцию, которая отображает сообщение о пустом результате поиска. При renderAddButton не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им \"оборачиваются\" элементы, возвращаемые getItems().\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранное значение.\n * @default item => item.label */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке. */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы renderTotalCount. */\n totalCount?: number;\n\n /** Устанавливает выбранное в комбобоксе значение. Тип `value` совпадает с типом элементов в массиве, возвращаемом в `getItems`. */\n value?: Nullable<T>;\n\n /** Задает функцию, которая возвращает строковое представление value. Необходимо при фокусировке. */\n valueToString?: (item: T) => string;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает длину комбобокса. */\n width?: string | number;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n viewMode?: ComboBoxViewMode;\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\nexport type ComboBoxExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxProps<T>,\n | 'itemToValue'\n | 'valueToString'\n | 'renderValue'\n | 'renderItem'\n | 'menuAlign'\n | 'searchOnFocus'\n | 'drawArrow'\n | 'showClearIcon'\n | 'viewMode'\n >\n>;\n\n/**\n * `ComboBox` — это поле ввода со списком подсказок.\n *\n * `ComboBox` используют:\n * * для выбора значения из справочника.\n * * для добавления своего значения в справочник.\n *\n * `ComboBox` может работать в двух режимах — обычном и в режиме автокомплита.\n * Основное их отличие в том, что в режиме автокомплита список вариантов появляется только после ввода первого символа или изменении уже введенного значения.\n */\n@rootNode\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n public static displayName = 'ComboBox';\n\n public static defaultProps: DefaultProps<any> = {\n itemToValue: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n showClearIcon: 'never',\n viewMode: 'singleLine',\n };\n\n private getProps = createPropsGetter(ComboBox.defaultProps);\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }) {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /**\n * Открывает выпадающий список и запускает поиск элементов\n *\n * @public\n * @param {string} [query] Текст поиска. По умолчанию берется\n * текст из инпута или результат `valueToString(value)`\n */\n public search(query?: string) {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /**\n * @public Открывает выпадающий список\n */\n public open() {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /**\n * @public Закрывает выпадающий список\n */\n public close() {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Выделяет текст внутри input\n * @public\n */\n public selectInputText() {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render() {\n return <CustomComboBox {...this.getProps()} size={this.props.size} ref={this.customComboBoxRef} />;\n }\n\n private customComboBoxRef = (element: Nullable<CustomComboBox<T>>) => {\n this.setRootNode(element);\n this.comboboxElement = element;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -152,7 +152,7 @@ let renderItem = item => (
152
152
  ### Переопределение `renderValue`, `renderItem` и `itemWrapper`
153
153
 
154
154
  ```jsx harmony
155
- import OkIcon from '@skbkontur/react-icons/Ok';
155
+ import { CheckAIcon16Regular } from '@skbkontur/icons/icons/CheckAIcon/CheckAIcon16Regular';
156
156
  import { Tooltip } from '@skbkontur/react-ui';
157
157
 
158
158
  const delay = time => args => new Promise(resolve => setTimeout(resolve, time, args));
@@ -206,7 +206,7 @@ const customRenderItem = item => (
206
206
  minWidth: '20px',
207
207
  }}
208
208
  >
209
- {item.approved ? <OkIcon size={14} /> : null}
209
+ {item.approved ? <CheckAIcon16Regular size={14} /> : null}
210
210
  </span>
211
211
  <span
212
212
  style={{
@@ -1,6 +1,5 @@
1
1
  import type { AriaAttributes } from 'react';
2
2
  import React from 'react';
3
- import PropTypes from 'prop-types';
4
3
  import type { InputProps } from '../Input';
5
4
  import type { Nullable, Override } from '../../typings/utility-types';
6
5
  import type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';
@@ -45,31 +44,9 @@ type DefaultProps = Required<Pick<CurrencyInputProps, 'align' | 'fractionDigits'
45
44
  export declare class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {
46
45
  static __KONTUR_REACT_UI__: string;
47
46
  static displayName: string;
48
- static propTypes: {
49
- align: PropTypes.Requireable<string>;
50
- autoFocus: PropTypes.Requireable<boolean>;
51
- borderless: PropTypes.Requireable<boolean>;
52
- disabled: PropTypes.Requireable<boolean>;
53
- error: PropTypes.Requireable<boolean>;
54
- fractionDigits: PropTypes.Requireable<number>;
55
- hideTrailingZeros: PropTypes.Requireable<boolean>;
56
- leftIcon: PropTypes.Requireable<PropTypes.ReactElementLike>;
57
- placeholder: PropTypes.Requireable<string>;
58
- signed: PropTypes.Requireable<boolean>;
59
- size: PropTypes.Requireable<string>;
60
- value: (props: CurrencyInputProps) => void;
61
- warning: PropTypes.Requireable<boolean>;
62
- width: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
63
- onBlur: PropTypes.Requireable<(...args: any[]) => any>;
64
- onValueChange: PropTypes.Validator<(...args: any[]) => any>;
65
- onFocus: PropTypes.Requireable<(...args: any[]) => any>;
66
- onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
67
- onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
68
- onMouseOver: PropTypes.Requireable<(...args: any[]) => any>;
69
- onSubmit: PropTypes.Requireable<(...args: any[]) => any>;
70
- };
71
47
  static defaultProps: DefaultProps;
72
48
  private getProps;
49
+ private validateProps;
73
50
  state: CurrencyInputState;
74
51
  private input;
75
52
  private tempSelectionForOnChange;
@@ -1,6 +1,5 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;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
2
  var _react = _interopRequireDefault(require("react"));
3
- var _propTypes = _interopRequireDefault(require("prop-types"));
4
3
  var _warning = _interopRequireDefault(require("warning"));
5
4
  var _lodash = _interopRequireDefault(require("lodash.debounce"));
6
5
  var _globalObject = require("@skbkontur/global-object");
@@ -92,6 +91,7 @@ CurrencyInput = exports.CurrencyInput = (0, _rootNode.rootNode)(_class = (_Curre
92
91
 
93
92
 
94
93
 
94
+ getProps = (0, _createPropsGetter.createPropsGetter)(CurrencyInput.defaultProps);_this.
95
95
 
96
96
 
97
97
 
@@ -104,21 +104,6 @@ CurrencyInput = exports.CurrencyInput = (0, _rootNode.rootNode)(_class = (_Curre
104
104
 
105
105
 
106
106
 
107
-
108
-
109
-
110
-
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
-
120
-
121
- getProps = (0, _createPropsGetter.createPropsGetter)(CurrencyInput.defaultProps);_this.
122
107
 
123
108
  state = (0, _extends2.default)({},
124
109
  _this.getState(_this.getProps().value, _this.getProps().fractionDigits, _this.getProps().hideTrailingZeros), {
@@ -155,14 +140,6 @@ CurrencyInput = exports.CurrencyInput = (0, _rootNode.rootNode)(_class = (_Curre
155
140
 
156
141
 
157
142
 
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
143
 
167
144
 
168
145
 
@@ -482,7 +459,7 @@ CurrencyInput = exports.CurrencyInput = (0, _rootNode.rootNode)(_class = (_Curre
482
459
 
483
460
  refInput = function (element) {
484
461
  _this.input = element;
485
- };return _this;}(0, _inheritsLoose2.default)(CurrencyInput, _React$PureComponent);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.getProps()), 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 });};return CurrencyInput;}(_react.default.PureComponent), _CurrencyInput.__KONTUR_REACT_UI__ = 'CurrencyInput', _CurrencyInput.displayName = 'CurrencyInput', _CurrencyInput.propTypes = { align: _propTypes.default.oneOf(['left', 'center', 'right']), autoFocus: _propTypes.default.bool, borderless: _propTypes.default.bool, disabled: _propTypes.default.bool, error: _propTypes.default.bool, fractionDigits: _propTypes.default.number, hideTrailingZeros: _propTypes.default.bool, leftIcon: _propTypes.default.element, placeholder: _propTypes.default.string, signed: _propTypes.default.bool, size: _propTypes.default.oneOf(['small', 'medium', 'large']), value: 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 }, _CurrencyInput.defaultProps = { align: 'right', fractionDigits: 2, hideTrailingZeros: false, value: null, inputMode: 'decimal' }, _CurrencyInput)) || _class;
462
+ };return _this;}(0, _inheritsLoose2.default)(CurrencyInput, _React$PureComponent);var _proto = CurrencyInput.prototype;_proto.validateProps = function validateProps(props) {(0, _warning.default)(isNumeric(props.value), '[CurrencyInput]: Prop `value` is not a valid number');(0, _warning.default)(props.maxLength === undefined, "[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'");(0, _warning.default)((props.integerDigits || 0) + (props.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.componentDidMount = function componentDidMount() {this.validateProps(this.getProps());};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var _this$getProps = this.getProps(),value = _this$getProps.value,fractionDigits = _this$getProps.fractionDigits,hideTrailingZeros = _this$getProps.hideTrailingZeros;this.validateProps(this.getProps());if (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.getProps()), 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 });};return CurrencyInput;}(_react.default.PureComponent), _CurrencyInput.__KONTUR_REACT_UI__ = 'CurrencyInput', _CurrencyInput.displayName = 'CurrencyInput', _CurrencyInput.defaultProps = { align: 'right', fractionDigits: 2, hideTrailingZeros: false, value: null, inputMode: 'decimal' }, _CurrencyInput)) || _class;
486
463
 
487
464
 
488
465
  function getInputSelectionFromEvent(input) {var _input$selectionStart, _input$selectionEnd;
@@ -501,10 +478,6 @@ function isNumeric(value) {
501
478
  return !isNaN(parseFloat(value)) && isFinite(value);
502
479
  }
503
480
 
504
- function isValidNumber(value) {
505
- return !isNaN(Number(value));
506
- }
507
-
508
481
  var getPlaceholder = function getPlaceholder(props) {
509
482
  if ((0, _utils.isNullable)(props.placeholder)) {
510
483
  return _CurrencyHelper.CurrencyHelper.format(0, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_propTypes","_warning","_lodash","_globalObject","_utils","_client","_Input","_CommonWrapper","_rootNode","_createPropsGetter","_isInstanceOf","_FocusControlWrapper","_constants","_SelectionHelper","_CurrencyHelper","_CurrencyInputHelper","_CurrencyInputKeyboardActions","_excluded","_class","_CurrencyInput","CurrencyInputDataTids","exports","root","CurrencyInput","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","_extends2","default","getState","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","SelectionHelper","fromPosition","renderMain","props","signed","onSubmit","integerDigits","rest","_objectWithoutPropertiesLoose2","createElement","FocusControlWrapper","onBlurWhenDisabled","resetFocus","Input","align","formatted","onBlur","handleBlur","onFocus","handleFocus","onMouseUp","handleMouseUp","onKeyDown","handleKeyDown","onValueChange","handleValueChange","onPaste","handlePaste","onCopy","handleCopy","onCut","handleCut","onMouseEnter","onMouseLeave","onMouseOver","ref","refInput","placeholder","getPlaceholder","focus","input","blur","debouncedSetSelectionFromEvent","debounce","setSelectionFromEvent","event","isIE11","persist","selection","getSelection","target","defaultPrevented","action","extractAction","CURRENCY_INPUT_ACTIONS","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","CurrencyInputHelper","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","Comma","scrollInput","_this$input","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","blink","getOnChangeDelta","oldValue","substring","substr","delta","isNonNullable","data","clipboardData","getData","formatForClipboard","setData","_event$target","selectionStart","selectionEnd","selectionDirection","valueLength","element","_inheritsLoose2","_proto","prototype","componentDidMount","_this$props","maxLength","warning","undefined","MAX_SAFE_DIGITS","componentDidUpdate","prevProps","prevState","_this$getProps","isValidNumber","isNumeric","Number","isNullable","_this$state$selection","setSelectionRange","render","CommonWrapper","rootNodeRef","setRootNode","format","normilized","normalizeSelection","React","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","oneOf","autoFocus","bool","borderless","disabled","error","number","leftIcon","string","size","width","oneOfType","func","isRequired","inputMode","_input$selectionStart","_input$selectionEnd","isInstanceOf","globalObject","HTMLInputElement","Error","isNaN","parseFloat","isFinite"],"sources":["CurrencyInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport type { Selection, SelectionDirection } from './SelectionHelper';\nimport { SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n Omit<InputProps, 'showClearIcon'>,\n {\n /** Задает значение инпута. */\n value?: Nullable<number>;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Устанавливает минимальное количество отображаемых знаков после запятой. */\n fractionDigits?: Nullable<number>;\n\n /** Разрешает отрицательные значения. */\n signed?: boolean;\n\n /** Задает допустимое количество цифр целой части. Если передан **0**, или fractionDigits=15, то и в целой части допускается только **0**. */\n integerDigits?: Nullable<number>;\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange: (value: Nullable<number>) => void;\n\n /** Задает функцию, которая вызывается при отправке формы. */\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 * `CurrencyInput` — поле для денежных сумм (и других числовых значений).\n * Принимает любые свойства `Input`.\n *\n * Используйте такое поле, когда нужно вводить значение в рублях, долларах или другой валюте.\n * Оно форматирует введенное значение и помогает пользователю не ошибиться при вводе.\n *\n * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).\n *\n * Если `fractionDigits=15`, то в целой части допускается **0**.\n */\n@rootNode\nexport class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n public static displayName = '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.getProps()}>\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 <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\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 aria-label={this.props['aria-label']}\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 </FocusControlWrapper>\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 resetFocus = () => {\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\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(event);\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!isInstanceOf(input, globalObject.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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_warning","_lodash","_globalObject","_utils","_client","_Input","_CommonWrapper","_rootNode","_createPropsGetter","_isInstanceOf","_FocusControlWrapper","_constants","_SelectionHelper","_CurrencyHelper","_CurrencyInputHelper","_CurrencyInputKeyboardActions","_excluded","_class","_CurrencyInput","CurrencyInputDataTids","exports","root","CurrencyInput","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","_extends2","default","getState","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","SelectionHelper","fromPosition","renderMain","props","signed","onSubmit","integerDigits","rest","_objectWithoutPropertiesLoose2","createElement","FocusControlWrapper","onBlurWhenDisabled","resetFocus","Input","align","formatted","onBlur","handleBlur","onFocus","handleFocus","onMouseUp","handleMouseUp","onKeyDown","handleKeyDown","onValueChange","handleValueChange","onPaste","handlePaste","onCopy","handleCopy","onCut","handleCut","onMouseEnter","onMouseLeave","onMouseOver","ref","refInput","placeholder","getPlaceholder","focus","input","blur","debouncedSetSelectionFromEvent","debounce","setSelectionFromEvent","event","isIE11","persist","selection","getSelection","target","defaultPrevented","action","extractAction","CURRENCY_INPUT_ACTIONS","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","CurrencyInputHelper","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","Comma","scrollInput","_this$input","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","blink","getOnChangeDelta","oldValue","substring","substr","delta","isNonNullable","data","clipboardData","getData","formatForClipboard","setData","_event$target","selectionStart","selectionEnd","selectionDirection","valueLength","element","_inheritsLoose2","_proto","prototype","validateProps","warning","isNumeric","maxLength","undefined","MAX_SAFE_DIGITS","componentDidMount","componentDidUpdate","prevProps","prevState","_this$getProps","Number","isNullable","_this$state$selection","setSelectionRange","render","CommonWrapper","rootNodeRef","setRootNode","format","normilized","normalizeSelection","React","PureComponent","__KONTUR_REACT_UI__","displayName","inputMode","_input$selectionStart","_input$selectionEnd","isInstanceOf","globalObject","HTMLInputElement","Error","isNaN","parseFloat","isFinite"],"sources":["CurrencyInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport type { Selection, SelectionDirection } from './SelectionHelper';\nimport { SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n Omit<InputProps, 'showClearIcon'>,\n {\n /** Задает значение инпута. */\n value?: Nullable<number>;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Устанавливает минимальное количество отображаемых знаков после запятой. */\n fractionDigits?: Nullable<number>;\n\n /** Разрешает отрицательные значения. */\n signed?: boolean;\n\n /** Задает допустимое количество цифр целой части. Если передан **0**, или fractionDigits=15, то и в целой части допускается только **0**. */\n integerDigits?: Nullable<number>;\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange: (value: Nullable<number>) => void;\n\n /** Задает функцию, которая вызывается при отправке формы. */\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 * `CurrencyInput` — поле для денежных сумм (и других числовых значений).\n * Принимает любые свойства `Input`.\n *\n * Используйте такое поле, когда нужно вводить значение в рублях, долларах или другой валюте.\n * Оно форматирует введенное значение и помогает пользователю не ошибиться при вводе.\n *\n * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).\n *\n * Если `fractionDigits=15`, то в целой части допускается **0**.\n */\n@rootNode\nexport class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n public static displayName = 'CurrencyInput';\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 private validateProps(props: CurrencyInputProps): void {\n warning(isNumeric(props.value), '[CurrencyInput]: Prop `value` is not a valid number');\n warning(\n props.maxLength === undefined,\n `[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'`,\n );\n warning(\n (props.integerDigits || 0) + (props.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 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 this.validateProps(this.getProps());\n }\n\n public componentDidUpdate(prevProps: CurrencyInputProps, prevState: CurrencyInputState) {\n const { value, fractionDigits, hideTrailingZeros } = this.getProps();\n this.validateProps(this.getProps());\n\n if (\n (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.getProps()}>\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 <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\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 aria-label={this.props['aria-label']}\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 </FocusControlWrapper>\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 resetFocus = () => {\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\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(event);\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!isInstanceOf(input, globalObject.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\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"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.CurrencyLabelDataTids = exports.CurrencyLabel = void 0;var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
2
2
  var _react = _interopRequireDefault(require("react"));
3
+ var _warning = _interopRequireDefault(require("warning"));
3
4
 
4
5
  var _constants = require("../CurrencyInput/constants");
5
6
  var _CurrencyHelper = require("../CurrencyInput/CurrencyHelper");
@@ -44,41 +45,34 @@ var CurrencyLabel = exports.CurrencyLabel = (0, _forwardRefAndName.forwardRefAnd
44
45
 
45
46
  ref)
46
47
  {var id = _ref.id,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);
47
- return /*#__PURE__*/(
48
- _react.default.createElement(_CommonWrapper.CommonWrapper, rest, /*#__PURE__*/
49
- _react.default.createElement("span", { id: id, "data-tid": CurrencyLabelDataTids.root, ref: ref },
50
- _CurrencyHelper.CurrencyHelper.format(value, { fractionDigits: fractionDigits, hideTrailingZeros: hideTrailingZeros }),
51
- currencySymbol && String.fromCharCode(0xa0) /* &nbsp; */,
52
- currencySymbol
53
- )
54
- ));
55
-
56
- }
57
- );
58
-
59
- CurrencyLabel.propTypes = {
60
- // @ts-ignore
61
- fractionDigits: function fractionDigits(_ref2) {var _ref2$fractionDigits = _ref2.fractionDigits,_fractionDigits = _ref2$fractionDigits === void 0 ? FRACTION_DIGITS_DEFAULT : _ref2$fractionDigits,value = _ref2.value;
62
- if (_fractionDigits > _constants.MAX_SAFE_DIGITS) {
63
- return new Error(
48
+ _react.default.useEffect(function () {
49
+ (0, _warning.default)(
50
+ fractionDigits <= _constants.MAX_SAFE_DIGITS,
64
51
  "[CurrencyLabel]: Prop 'fractionDigits' exceeds " + _constants.MAX_SAFE_DIGITS + "." + "\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15"
65
52
 
66
53
  );
67
- }
68
54
 
69
- var _ref3 = _CurrencyHelper.CurrencyHelper.destructString(String(value)) || { fraction: '' },fraction = _ref3.fraction;
70
- if (fraction.length > _fractionDigits) {
71
- return new Error(
55
+ var _ref2 = _CurrencyHelper.CurrencyHelper.destructString(String(value)) || { fraction: '' },fraction = _ref2.fraction;
56
+ (0, _warning.default)(
57
+ fraction.length <= fractionDigits,
72
58
  "[CurrencyLabel]: Prop 'fractionDigits' less than fractional part of the 'value' property," + "'value' will not be cutted"
73
59
 
74
60
  );
75
- }
76
61
 
77
- if (!Number.isInteger(_fractionDigits)) {
78
- return new Error("[CurrencyLabel]: Prop 'fractionDigits' is not integer, fraction part of these property will not be used"
62
+ (0, _warning.default)(
63
+ Number.isInteger(fractionDigits), "[CurrencyLabel]: Prop 'fractionDigits' is not integer, fraction part of these property will not be used"
79
64
 
80
65
  );
81
- }
82
- return null;
66
+ }, [fractionDigits, value]);
67
+
68
+ return /*#__PURE__*/(
69
+ _react.default.createElement(_CommonWrapper.CommonWrapper, rest, /*#__PURE__*/
70
+ _react.default.createElement("span", { id: id, "data-tid": CurrencyLabelDataTids.root, ref: ref },
71
+ _CurrencyHelper.CurrencyHelper.format(value, { fractionDigits: fractionDigits, hideTrailingZeros: hideTrailingZeros }),
72
+ currencySymbol && String.fromCharCode(0xa0) /* &nbsp; */,
73
+ currencySymbol
74
+ )
75
+ ));
76
+
83
77
  }
84
- };
78
+ );
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_constants","_CurrencyHelper","_CommonWrapper","_forwardRefAndName","_excluded","FRACTION_DIGITS_DEFAULT","CurrencyLabelDataTids","exports","root","CurrencyLabel","forwardRefAndName","_ref","ref","id","value","_ref$fractionDigits","fractionDigits","currencySymbol","_ref$hideTrailingZero","hideTrailingZeros","rest","_objectWithoutPropertiesLoose2","default","createElement","CommonWrapper","CurrencyHelper","format","String","fromCharCode","propTypes","_ref2","_ref2$fractionDigits","MAX_SAFE_DIGITS","Error","_ref3","destructString","fraction","length","Number","isInteger"],"sources":["CurrencyLabel.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nexport interface CurrencyLabelProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Устанавливает минимальное количество отображаемых знаков после запятой.\n * @default 2 */\n fractionDigits?: number;\n\n /** Устанавливает значение. */\n value: number;\n\n /** Задает символ валюты. */\n currencySymbol?: React.ReactNode;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n}\n\nconst FRACTION_DIGITS_DEFAULT = 2;\n\nexport const CurrencyLabelDataTids = {\n root: 'CurrencyLabel__root',\n} as const;\n\n/**\n * `CurrencyLabel` — подпись для денежных сумм (и других числовых значений).\n */\nconst CurrencyLabel = forwardRefAndName(\n 'CurrencyLabel',\n function CurrencyLabel(\n {\n id,\n value,\n fractionDigits = FRACTION_DIGITS_DEFAULT,\n currencySymbol,\n hideTrailingZeros = false,\n ...rest\n }: CurrencyLabelProps,\n ref: React.Ref<HTMLDivElement>,\n ) {\n return (\n <CommonWrapper {...rest}>\n <span id={id} data-tid={CurrencyLabelDataTids.root} ref={ref}>\n {CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros })}\n {currencySymbol && String.fromCharCode(0xa0) /* &nbsp; */}\n {currencySymbol}\n </span>\n </CommonWrapper>\n );\n },\n);\n\nCurrencyLabel.propTypes = {\n // @ts-ignore\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 return null;\n },\n};\n\nexport { CurrencyLabel };\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;;AAEA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA,gCAAgE,IAAAK,SAAA;;;;;;;;;;;;;;;;;AAiBhE,IAAMC,uBAAuB,GAAG,CAAC;;AAE1B,IAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG;EACnCE,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA,IAAMC,aAAa,GAAAF,OAAA,CAAAE,aAAA,GAAG,IAAAC,oCAAiB;EACrC,eAAe;EACf,SAASD,aAAaA,CAAAE,IAAA;;;;;;;;;EASpBC,GAA8B;EAC9B,KAREC,EAAE,GAAAF,IAAA,CAAFE,EAAE,CACFC,KAAK,GAAAH,IAAA,CAALG,KAAK,CAAAC,mBAAA,GAAAJ,IAAA,CACLK,cAAc,CAAdA,cAAc,GAAAD,mBAAA,cAAGV,uBAAuB,GAAAU,mBAAA,CACxCE,cAAc,GAAAN,IAAA,CAAdM,cAAc,CAAAC,qBAAA,GAAAP,IAAA,CACdQ,iBAAiB,CAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CACtBE,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EAAAX,IAAA,EAAAP,SAAA;IAIT;MACEP,MAAA,CAAAyB,OAAA,CAAAC,aAAA,CAACrB,cAAA,CAAAsB,aAAa,EAAKJ,IAAI;MACrBvB,MAAA,CAAAyB,OAAA,CAAAC,aAAA,WAAMV,EAAE,EAAEA,EAAG,EAAC,YAAUP,qBAAqB,CAACE,IAAK,EAACI,GAAG,EAAEA,GAAI;MAC1Da,8BAAc,CAACC,MAAM,CAACZ,KAAK,EAAE,EAAEE,cAAc,EAAdA,cAAc,EAAEG,iBAAiB,EAAjBA,iBAAiB,CAAC,CAAC,CAAC;MACnEF,cAAc,IAAIU,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC5CX;MACG;MACO,CAAC;;EAEpB;AACF,CAAC;;AAEDR,aAAa,CAACoB,SAAS,GAAG;EACxB;EACAb,cAAc,EAAE,SAAAA,eAAAc,KAAA,EAA6E,KAAAC,oBAAA,GAAAD,KAAA,CAA1Ed,cAAc,CAAdA,eAAc,GAAAe,oBAAA,cAAG1B,uBAAuB,GAAA0B,oBAAA,CAAEjB,KAAK,GAAAgB,KAAA,CAALhB,KAAK;IAChE,IAAIE,eAAc,GAAGgB,0BAAe,EAAE;MACpC,OAAO,IAAIC,KAAK;QACd,oDAAkDD,0BAAe;;MAEnE,CAAC;IACH;;IAEA,IAAAE,KAAA,GAAqBT,8BAAc,CAACU,cAAc,CAACR,MAAM,CAACb,KAAK,CAAC,CAAC,IAAI,EAAEsB,QAAQ,EAAE,EAAE,CAAC,CAAC,CAA7EA,QAAQ,GAAAF,KAAA,CAARE,QAAQ;IAChB,IAAIA,QAAQ,CAACC,MAAM,GAAGrB,eAAc,EAAE;MACpC,OAAO,IAAIiB,KAAK;QACd;;MAEF,CAAC;IACH;;IAEA,IAAI,CAACK,MAAM,CAACC,SAAS,CAACvB,eAAc,CAAC,EAAE;MACrC,OAAO,IAAIiB,KAAK;;MAEhB,CAAC;IACH;IACA,OAAO,IAAI;EACb;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_warning","_constants","_CurrencyHelper","_CommonWrapper","_forwardRefAndName","_excluded","FRACTION_DIGITS_DEFAULT","CurrencyLabelDataTids","exports","root","CurrencyLabel","forwardRefAndName","_ref","ref","id","value","_ref$fractionDigits","fractionDigits","currencySymbol","_ref$hideTrailingZero","hideTrailingZeros","rest","_objectWithoutPropertiesLoose2","default","React","useEffect","warning","MAX_SAFE_DIGITS","_ref2","CurrencyHelper","destructString","String","fraction","length","Number","isInteger","createElement","CommonWrapper","format","fromCharCode"],"sources":["CurrencyLabel.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nexport interface CurrencyLabelProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Устанавливает минимальное количество отображаемых знаков после запятой.\n * @default 2 */\n fractionDigits?: number;\n\n /** Устанавливает значение. */\n value: number;\n\n /** Задает символ валюты. */\n currencySymbol?: React.ReactNode;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n}\n\nconst FRACTION_DIGITS_DEFAULT = 2;\n\nexport const CurrencyLabelDataTids = {\n root: 'CurrencyLabel__root',\n} as const;\n\n/**\n * `CurrencyLabel` — подпись для денежных сумм (и других числовых значений).\n */\nconst CurrencyLabel = forwardRefAndName(\n 'CurrencyLabel',\n function CurrencyLabel(\n {\n id,\n value,\n fractionDigits = FRACTION_DIGITS_DEFAULT,\n currencySymbol,\n hideTrailingZeros = false,\n ...rest\n }: CurrencyLabelProps,\n ref: React.Ref<HTMLDivElement>,\n ) {\n React.useEffect(() => {\n warning(\n fractionDigits <= MAX_SAFE_DIGITS,\n `[CurrencyLabel]: Prop 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n\n const { fraction } = CurrencyHelper.destructString(String(value)) || { fraction: '' };\n warning(\n fraction.length <= fractionDigits,\n `[CurrencyLabel]: Prop 'fractionDigits' less than fractional part of the 'value' property,` +\n `'value' will not be cutted`,\n );\n\n warning(\n Number.isInteger(fractionDigits),\n `[CurrencyLabel]: Prop 'fractionDigits' is not integer, fraction part of these property will not be used`,\n );\n }, [fractionDigits, value]);\n\n return (\n <CommonWrapper {...rest}>\n <span id={id} data-tid={CurrencyLabelDataTids.root} ref={ref}>\n {CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros })}\n {currencySymbol && String.fromCharCode(0xa0) /* &nbsp; */}\n {currencySymbol}\n </span>\n </CommonWrapper>\n );\n },\n);\n\nexport { CurrencyLabel };\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;;AAEA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;;AAEA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA,gCAAgE,IAAAM,SAAA;;;;;;;;;;;;;;;;;AAiBhE,IAAMC,uBAAuB,GAAG,CAAC;;AAE1B,IAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG;EACnCE,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA,IAAMC,aAAa,GAAAF,OAAA,CAAAE,aAAA,GAAG,IAAAC,oCAAiB;EACrC,eAAe;EACf,SAASD,aAAaA,CAAAE,IAAA;;;;;;;;;EASpBC,GAA8B;EAC9B,KAREC,EAAE,GAAAF,IAAA,CAAFE,EAAE,CACFC,KAAK,GAAAH,IAAA,CAALG,KAAK,CAAAC,mBAAA,GAAAJ,IAAA,CACLK,cAAc,CAAdA,cAAc,GAAAD,mBAAA,cAAGV,uBAAuB,GAAAU,mBAAA,CACxCE,cAAc,GAAAN,IAAA,CAAdM,cAAc,CAAAC,qBAAA,GAAAP,IAAA,CACdQ,iBAAiB,CAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CACtBE,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EAAAX,IAAA,EAAAP,SAAA;IAITmB,cAAK,CAACC,SAAS,CAAC,YAAM;MACpB,IAAAC,gBAAO;QACLT,cAAc,IAAIU,0BAAe;QACjC,oDAAkDA,0BAAe;;MAEnE,CAAC;;MAED,IAAAC,KAAA,GAAqBC,8BAAc,CAACC,cAAc,CAACC,MAAM,CAAChB,KAAK,CAAC,CAAC,IAAI,EAAEiB,QAAQ,EAAE,EAAE,CAAC,CAAC,CAA7EA,QAAQ,GAAAJ,KAAA,CAARI,QAAQ;MAChB,IAAAN,gBAAO;QACLM,QAAQ,CAACC,MAAM,IAAIhB,cAAc;QACjC;;MAEF,CAAC;;MAED,IAAAS,gBAAO;QACLQ,MAAM,CAACC,SAAS,CAAClB,cAAc,CAAC;;MAElC,CAAC;IACH,CAAC,EAAE,CAACA,cAAc,EAAEF,KAAK,CAAC,CAAC;;IAE3B;MACElB,MAAA,CAAA0B,OAAA,CAAAa,aAAA,CAACjC,cAAA,CAAAkC,aAAa,EAAKhB,IAAI;MACrBxB,MAAA,CAAA0B,OAAA,CAAAa,aAAA,WAAMtB,EAAE,EAAEA,EAAG,EAAC,YAAUP,qBAAqB,CAACE,IAAK,EAACI,GAAG,EAAEA,GAAI;MAC1DgB,8BAAc,CAACS,MAAM,CAACvB,KAAK,EAAE,EAAEE,cAAc,EAAdA,cAAc,EAAEG,iBAAiB,EAAjBA,iBAAiB,CAAC,CAAC,CAAC;MACnEF,cAAc,IAAIa,MAAM,CAACQ,YAAY,CAAC,IAAI,CAAC,CAAC;MAC5CrB;MACG;MACO,CAAC;;EAEpB;AACF,CAAC","ignoreList":[]}
@@ -66,6 +66,7 @@ export declare class DateInput extends React.Component<DateInputProps, DateInput
66
66
  private theme;
67
67
  private setRootNode;
68
68
  private conditionalHandler;
69
+ private featureFlags;
69
70
  constructor(props: DateInputProps);
70
71
  componentDidUpdate(prevProps: DateInputProps): void;
71
72
  selectNode: () => void;