@skbkontur/react-ui 6.0.2 → 6.0.4-46247.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +6 -8
  3. package/components/Autocomplete/Autocomplete.d.ts +2 -2
  4. package/components/Autocomplete/Autocomplete.js +16 -16
  5. package/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/components/Autocomplete/getAutocompleteTheme.js.map +1 -1
  7. package/components/Autocomplete/locale/index.js.map +1 -1
  8. package/components/Button/Button.d.ts +3 -3
  9. package/components/Button/Button.js +9 -9
  10. package/components/Button/Button.js.map +1 -1
  11. package/components/Button/Button.styles.js +2 -2
  12. package/components/Button/Button.styles.js.map +1 -1
  13. package/components/Button/ButtonArrow.d.ts +1 -1
  14. package/components/Button/ButtonArrow.js +2 -2
  15. package/components/Button/ButtonArrow.js.map +1 -1
  16. package/components/Button/ButtonIcon.js +1 -1
  17. package/components/Button/ButtonIcon.js.map +1 -1
  18. package/components/Button/LoadingButtonIcon.js +1 -1
  19. package/components/Button/LoadingButtonIcon.js.map +1 -1
  20. package/components/Button/getInnerLinkTheme.js.map +1 -1
  21. package/components/Calendar/Calendar.d.ts +2 -2
  22. package/components/Calendar/Calendar.js +13 -13
  23. package/components/Calendar/Calendar.js.map +1 -1
  24. package/components/Calendar/CalendarContext.d.ts +1 -1
  25. package/components/Calendar/CalendarContext.js.map +1 -1
  26. package/components/Calendar/CalendarDay.d.ts +1 -2
  27. package/components/Calendar/CalendarDay.js +7 -7
  28. package/components/Calendar/CalendarDay.js.map +1 -1
  29. package/components/Calendar/CalendarUtils.d.ts +2 -2
  30. package/components/Calendar/CalendarUtils.js +1 -1
  31. package/components/Calendar/CalendarUtils.js.map +1 -1
  32. package/components/Calendar/DayCellView.js +2 -2
  33. package/components/Calendar/DayCellView.js.map +1 -1
  34. package/components/Calendar/DayCellView.styles.js +1 -1
  35. package/components/Calendar/DayCellView.styles.js.map +1 -1
  36. package/components/Calendar/Month.js +4 -4
  37. package/components/Calendar/Month.js.map +1 -1
  38. package/components/Calendar/MonthView.js +5 -5
  39. package/components/Calendar/MonthView.js.map +1 -1
  40. package/components/Calendar/MonthViewModel.js.map +1 -1
  41. package/components/Calendar/config.js.map +1 -1
  42. package/components/Center/Center.d.ts +1 -1
  43. package/components/Center/Center.js +1 -1
  44. package/components/Center/Center.js.map +1 -1
  45. package/components/Checkbox/Checkbox.d.ts +1 -1
  46. package/components/Checkbox/Checkbox.js +5 -5
  47. package/components/Checkbox/Checkbox.js.map +1 -1
  48. package/components/Checkbox/Checkbox.styles.js.map +1 -1
  49. package/components/Checkbox/CheckedIcon.js +1 -1
  50. package/components/Checkbox/CheckedIcon.js.map +1 -1
  51. package/components/ComboBox/ComboBox.d.ts +3 -3
  52. package/components/ComboBox/ComboBox.js +1 -1
  53. package/components/ComboBox/ComboBox.js.map +1 -1
  54. package/components/CurrencyInput/CurrencyHelper.js +1 -1
  55. package/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  56. package/components/CurrencyInput/CurrencyInput.d.ts +2 -2
  57. package/components/CurrencyInput/CurrencyInput.js +6 -6
  58. package/components/CurrencyInput/CurrencyInput.js.map +1 -1
  59. package/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  60. package/components/CurrencyLabel/CurrencyLabel.js +2 -2
  61. package/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  62. package/components/DateInput/DateFragmentsView.d.ts +1 -1
  63. package/components/DateInput/DateFragmentsView.js +1 -1
  64. package/components/DateInput/DateFragmentsView.js.map +1 -1
  65. package/components/DateInput/DateInput.d.ts +1 -1
  66. package/components/DateInput/DateInput.js +8 -8
  67. package/components/DateInput/DateInput.js.map +1 -1
  68. package/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  69. package/components/DatePicker/DatePicker.d.ts +2 -2
  70. package/components/DatePicker/DatePicker.js +16 -16
  71. package/components/DatePicker/DatePicker.js.map +1 -1
  72. package/components/DatePicker/DatePicker.styles.js.map +1 -1
  73. package/components/DatePicker/MobilePicker.js +6 -6
  74. package/components/DatePicker/MobilePicker.js.map +1 -1
  75. package/components/DatePicker/getMobilePickerTheme.js.map +1 -1
  76. package/components/DatePicker/locale/index.js.map +1 -1
  77. package/components/DatePicker/locale/locales/en.js +1 -1
  78. package/components/DatePicker/locale/locales/en.js.map +1 -1
  79. package/components/DatePicker/locale/locales/ru.js +1 -1
  80. package/components/DatePicker/locale/locales/ru.js.map +1 -1
  81. package/components/DateRangePicker/DateRangePicker.d.ts +19 -19
  82. package/components/DateRangePicker/DateRangePicker.js +17 -17
  83. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  84. package/components/DateRangePicker/DateRangePicker.styles.d.ts +1 -1
  85. package/components/DateRangePicker/DateRangePicker.styles.js.map +1 -1
  86. package/components/DateRangePicker/DateRangePickerContext.d.ts +1 -1
  87. package/components/DateRangePicker/DateRangePickerContext.js.map +1 -1
  88. package/components/DateRangePicker/DateRangePickerInput.d.ts +1 -1
  89. package/components/DateRangePicker/DateRangePickerInput.js +3 -3
  90. package/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  91. package/components/DateRangePicker/DateRangePickerTheme.js.map +1 -1
  92. package/components/DateRangePicker/helpers/getStateForValue.js +2 -2
  93. package/components/DateRangePicker/helpers/getStateForValue.js.map +1 -1
  94. package/components/DateRangePicker/helpers/validateDateRangePicker.js +3 -3
  95. package/components/DateRangePicker/helpers/validateDateRangePicker.js.map +1 -1
  96. package/components/DateRangePicker/locale/index.js.map +1 -1
  97. package/components/DateRangePicker/locale/locales/en.js.map +1 -1
  98. package/components/DateRangePicker/locale/locales/ru.js.map +1 -1
  99. package/components/Dropdown/Dropdown.d.ts +2 -2
  100. package/components/Dropdown/Dropdown.js +3 -3
  101. package/components/Dropdown/Dropdown.js.map +1 -1
  102. package/components/Dropdown/getDropdownTheme.js.map +1 -1
  103. package/components/DropdownMenu/DropdownMenu.d.ts +2 -2
  104. package/components/DropdownMenu/DropdownMenu.js +3 -3
  105. package/components/DropdownMenu/DropdownMenu.js.map +1 -1
  106. package/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
  107. package/components/FileUploader/FileUploader.d.ts +5 -5
  108. package/components/FileUploader/FileUploader.js +22 -20
  109. package/components/FileUploader/FileUploader.js.map +1 -1
  110. package/components/FileUploader/FileUploader.styles.js.map +1 -1
  111. package/components/FileUploader/FileUploaderControlContext.d.ts +1 -1
  112. package/components/FileUploader/FileUploaderControlContext.js.map +1 -1
  113. package/components/FileUploader/FileUploaderControlProvider.d.ts +1 -1
  114. package/components/FileUploader/FileUploaderControlProvider.js +3 -3
  115. package/components/FileUploader/FileUploaderControlProvider.js.map +1 -1
  116. package/components/FileUploader/FileUploaderFile.js +11 -11
  117. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  118. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.d.ts +1 -1
  119. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js +5 -5
  120. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  121. package/components/FileUploader/FileUploaderFileStatusIcon.js +3 -3
  122. package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
  123. package/components/FileUploader/FileUploaderFileTypeIcon.js +4 -4
  124. package/components/FileUploader/FileUploaderFileTypeIcon.js.map +1 -1
  125. package/components/FileUploader/fileUtils.js.map +1 -1
  126. package/components/FileUploader/hooks/useUpload.js +1 -1
  127. package/components/FileUploader/hooks/useUpload.js.map +1 -1
  128. package/components/FileUploader/icons/UploadIcon.js +1 -1
  129. package/components/FileUploader/icons/UploadIcon.js.map +1 -1
  130. package/components/FileUploader/icons/row/ArchiveIcon.js +1 -1
  131. package/components/FileUploader/icons/row/ArchiveIcon.js.map +1 -1
  132. package/components/FileUploader/icons/row/DocTextIcon.js +1 -1
  133. package/components/FileUploader/icons/row/DocTextIcon.js.map +1 -1
  134. package/components/FileUploader/icons/row/FolderIcon.js +1 -1
  135. package/components/FileUploader/icons/row/FolderIcon.js.map +1 -1
  136. package/components/FileUploader/icons/row/MarkupIcon.js +1 -1
  137. package/components/FileUploader/icons/row/MarkupIcon.js.map +1 -1
  138. package/components/FileUploader/icons/row/PdfIcon.js +1 -1
  139. package/components/FileUploader/icons/row/PdfIcon.js.map +1 -1
  140. package/components/FileUploader/icons/row/PictureIcon.js +1 -1
  141. package/components/FileUploader/icons/row/PictureIcon.js.map +1 -1
  142. package/components/FileUploader/icons/row/PresentationIcon.js +1 -1
  143. package/components/FileUploader/icons/row/PresentationIcon.js.map +1 -1
  144. package/components/FileUploader/icons/row/TableIcon.js +1 -1
  145. package/components/FileUploader/icons/row/TableIcon.js.map +1 -1
  146. package/components/FileUploader/icons/row/TextIcon.js +1 -1
  147. package/components/FileUploader/icons/row/TextIcon.js.map +1 -1
  148. package/components/FileUploader/icons/tile/ArchiveIcon.js +1 -1
  149. package/components/FileUploader/icons/tile/ArchiveIcon.js.map +1 -1
  150. package/components/FileUploader/icons/tile/DocTextIcon.js +1 -1
  151. package/components/FileUploader/icons/tile/DocTextIcon.js.map +1 -1
  152. package/components/FileUploader/icons/tile/FolderIcon.js +1 -1
  153. package/components/FileUploader/icons/tile/FolderIcon.js.map +1 -1
  154. package/components/FileUploader/icons/tile/MarkupIcon.js +1 -1
  155. package/components/FileUploader/icons/tile/MarkupIcon.js.map +1 -1
  156. package/components/FileUploader/icons/tile/PdfIcon.js +1 -1
  157. package/components/FileUploader/icons/tile/PdfIcon.js.map +1 -1
  158. package/components/FileUploader/icons/tile/PictureIcon.js +1 -1
  159. package/components/FileUploader/icons/tile/PictureIcon.js.map +1 -1
  160. package/components/FileUploader/icons/tile/PresentationIcon.js +1 -1
  161. package/components/FileUploader/icons/tile/PresentationIcon.js.map +1 -1
  162. package/components/FileUploader/icons/tile/TableIcon.js +1 -1
  163. package/components/FileUploader/icons/tile/TableIcon.js.map +1 -1
  164. package/components/FileUploader/icons/tile/TextIcon.js +1 -1
  165. package/components/FileUploader/icons/tile/TextIcon.js.map +1 -1
  166. package/components/FileUploader/locale/index.js.map +1 -1
  167. package/components/FileUploader/withFileUploaderControlProvider.js.map +1 -1
  168. package/components/FxInput/FxInput.d.ts +6 -6
  169. package/components/FxInput/FxInput.js +6 -6
  170. package/components/FxInput/FxInput.js.map +1 -1
  171. package/components/FxInput/FxInputRestoreBtn.d.ts +1 -1
  172. package/components/FxInput/FxInputRestoreBtn.js +1 -1
  173. package/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  174. package/components/FxInput/UndoIcon.js +2 -2
  175. package/components/FxInput/UndoIcon.js.map +1 -1
  176. package/components/Gapped/Gapped.js +2 -2
  177. package/components/Gapped/Gapped.js.map +1 -1
  178. package/components/GlobalLoader/GlobalLoader.js +3 -3
  179. package/components/GlobalLoader/GlobalLoader.js.map +1 -1
  180. package/components/GlobalLoader/GlobalLoaderView.js +2 -2
  181. package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  182. package/components/GlobalLoader/useParams.js.map +1 -1
  183. package/components/Group/Group.js +2 -2
  184. package/components/Group/Group.js.map +1 -1
  185. package/components/Hint/Hint.d.ts +4 -4
  186. package/components/Hint/Hint.js +5 -5
  187. package/components/Hint/Hint.js.map +1 -1
  188. package/components/Hint/Hint.styles.js.map +1 -1
  189. package/components/Input/Input.d.ts +1 -1
  190. package/components/Input/Input.js +7 -8
  191. package/components/Input/Input.js.map +1 -1
  192. package/components/Input/Input.styles.js +1 -1
  193. package/components/Input/Input.styles.js.map +1 -1
  194. package/components/Input/InputLayout/InputLayout.d.ts +1 -1
  195. package/components/Input/InputLayout/InputLayout.js +4 -4
  196. package/components/Input/InputLayout/InputLayout.js.map +1 -1
  197. package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  198. package/components/Input/InputLayout/InputLayoutAsideIcon.js +2 -2
  199. package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  200. package/components/Input/InputLayout/InputLayoutAsideText.js +1 -1
  201. package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
  202. package/components/Kebab/Kebab.d.ts +3 -3
  203. package/components/Kebab/Kebab.js +11 -11
  204. package/components/Kebab/Kebab.js.map +1 -1
  205. package/components/Link/Link.d.ts +3 -3
  206. package/components/Link/Link.js +6 -6
  207. package/components/Link/Link.js.map +1 -1
  208. package/components/Link/Link.styles.js +1 -1
  209. package/components/Link/Link.styles.js.map +1 -1
  210. package/components/Link/LinkIcon.js.map +1 -1
  211. package/components/Loader/Loader.d.ts +2 -2
  212. package/components/Loader/Loader.js +10 -10
  213. package/components/Loader/Loader.js.map +1 -1
  214. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +4 -4
  215. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  216. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js +1 -1
  217. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +1 -1
  218. package/components/MaskedInput/FixedIMaskInput.js +2 -2
  219. package/components/MaskedInput/FixedIMaskInput.js.map +1 -1
  220. package/components/MaskedInput/MaskedInput.js +5 -5
  221. package/components/MaskedInput/MaskedInput.js.map +1 -1
  222. package/components/MaskedInput/MaskedInput.styles.js +1 -1
  223. package/components/MaskedInput/MaskedInput.styles.js.map +1 -1
  224. package/components/MenuFooter/MenuFooter.js +2 -2
  225. package/components/MenuFooter/MenuFooter.js.map +1 -1
  226. package/components/MenuFooter/MenuFooter.styles.js.map +1 -1
  227. package/components/MenuHeader/MenuHeader.js +2 -2
  228. package/components/MenuHeader/MenuHeader.js.map +1 -1
  229. package/components/MenuHeader/MenuHeader.styles.js.map +1 -1
  230. package/components/MenuItem/MenuItem.d.ts +1 -1
  231. package/components/MenuItem/MenuItem.js +6 -6
  232. package/components/MenuItem/MenuItem.js.map +1 -1
  233. package/components/MenuItem/MenuItem.styles.js +1 -1
  234. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  235. package/components/MenuSeparator/MenuSeparator.js +2 -2
  236. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  237. package/components/MiniModal/MiniModal.d.ts +2 -2
  238. package/components/MiniModal/MiniModal.js +3 -3
  239. package/components/MiniModal/MiniModal.js.map +1 -1
  240. package/components/MiniModal/MiniModalBody.js +2 -2
  241. package/components/MiniModal/MiniModalBody.js.map +1 -1
  242. package/components/MiniModal/MiniModalFooter.js +3 -3
  243. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  244. package/components/MiniModal/MiniModalHeader.js +4 -4
  245. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  246. package/components/MiniModal/MiniModalIndent.js +2 -2
  247. package/components/MiniModal/MiniModalIndent.js.map +1 -1
  248. package/components/MiniModal/getMiniModalTheme.js.map +1 -1
  249. package/components/Modal/Modal.d.ts +2 -2
  250. package/components/Modal/Modal.js +15 -15
  251. package/components/Modal/Modal.js.map +1 -1
  252. package/components/Modal/Modal.styles.js +1 -1
  253. package/components/Modal/Modal.styles.js.map +1 -1
  254. package/components/Modal/ModalBody.js +7 -7
  255. package/components/Modal/ModalBody.js.map +1 -1
  256. package/components/Modal/ModalClose.js +6 -6
  257. package/components/Modal/ModalClose.js.map +1 -1
  258. package/components/Modal/ModalFooter.d.ts +1 -1
  259. package/components/Modal/ModalFooter.js +5 -5
  260. package/components/Modal/ModalFooter.js.map +1 -1
  261. package/components/Modal/ModalHeader.d.ts +1 -1
  262. package/components/Modal/ModalHeader.js +2 -2
  263. package/components/Modal/ModalHeader.js.map +1 -1
  264. package/components/Modal/ModalSeparator.js.map +1 -1
  265. package/components/Modal/getModalBodyTheme.js.map +1 -1
  266. package/components/Modal/getModalTheme.js.map +1 -1
  267. package/components/Modal/locale/index.js.map +1 -1
  268. package/components/Paging/DotsIcon.js +1 -1
  269. package/components/Paging/DotsIcon.js.map +1 -1
  270. package/components/Paging/Paging.d.ts +1 -1
  271. package/components/Paging/Paging.js +13 -13
  272. package/components/Paging/Paging.js.map +1 -1
  273. package/components/Paging/PagingDefaultComponent.js.map +1 -1
  274. package/components/Paging/locale/index.js.map +1 -1
  275. package/components/PasswordInput/ClosedIcon.js +1 -1
  276. package/components/PasswordInput/ClosedIcon.js.map +1 -1
  277. package/components/PasswordInput/OpenedIcon.js +1 -1
  278. package/components/PasswordInput/OpenedIcon.js.map +1 -1
  279. package/components/PasswordInput/PasswordInput.d.ts +1 -1
  280. package/components/PasswordInput/PasswordInput.js +8 -8
  281. package/components/PasswordInput/PasswordInput.js.map +1 -1
  282. package/components/PasswordInput/PasswordInput.styles.js.map +1 -1
  283. package/components/PasswordInput/PasswordInputIcon.js.map +1 -1
  284. package/components/PasswordInput/locale/index.js.map +1 -1
  285. package/components/Radio/Radio.d.ts +2 -2
  286. package/components/Radio/Radio.js +6 -6
  287. package/components/Radio/Radio.js.map +1 -1
  288. package/components/Radio/Radio.mixins.js +1 -1
  289. package/components/Radio/Radio.mixins.js.map +1 -1
  290. package/components/Radio/Radio.styles.js.map +1 -1
  291. package/components/RadioGroup/RadioGroup.js +7 -7
  292. package/components/RadioGroup/RadioGroup.js.map +1 -1
  293. package/components/ResponsiveLayout/ResponsiveLayout.js +2 -2
  294. package/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  295. package/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  296. package/components/ScrollContainer/ScrollBar.js +2 -2
  297. package/components/ScrollContainer/ScrollBar.js.map +1 -1
  298. package/components/ScrollContainer/ScrollContainer.d.ts +1 -1
  299. package/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
  300. package/components/ScrollContainer/ScrollContainer.js +8 -8
  301. package/components/ScrollContainer/ScrollContainer.js.map +1 -1
  302. package/components/Select/Select.d.ts +4 -4
  303. package/components/Select/Select.js +17 -17
  304. package/components/Select/Select.js.map +1 -1
  305. package/components/Select/locale/index.js.map +1 -1
  306. package/components/Select/selectTheme.js.map +1 -1
  307. package/components/SidePage/SidePage.js +11 -11
  308. package/components/SidePage/SidePage.js.map +1 -1
  309. package/components/SidePage/SidePage.styles.js +1 -1
  310. package/components/SidePage/SidePage.styles.js.map +1 -1
  311. package/components/SidePage/SidePageBody.js +2 -2
  312. package/components/SidePage/SidePageBody.js.map +1 -1
  313. package/components/SidePage/SidePageCloseButton.js +5 -5
  314. package/components/SidePage/SidePageCloseButton.js.map +1 -1
  315. package/components/SidePage/SidePageContainer.js +3 -3
  316. package/components/SidePage/SidePageContainer.js.map +1 -1
  317. package/components/SidePage/SidePageFooter.js +6 -6
  318. package/components/SidePage/SidePageFooter.js.map +1 -1
  319. package/components/SidePage/SidePageHeader.js +7 -7
  320. package/components/SidePage/SidePageHeader.js.map +1 -1
  321. package/components/SidePage/locale/index.js.map +1 -1
  322. package/components/SingleToast/SingleToast.js +1 -1
  323. package/components/SingleToast/SingleToast.js.map +1 -1
  324. package/components/Spinner/Spinner.js +3 -3
  325. package/components/Spinner/Spinner.js.map +1 -1
  326. package/components/Spinner/Spinner.styles.js +1 -1
  327. package/components/Spinner/Spinner.styles.js.map +1 -1
  328. package/components/Sticky/Sticky.d.ts +1 -1
  329. package/components/Sticky/Sticky.js +5 -5
  330. package/components/Sticky/Sticky.js.map +1 -1
  331. package/components/Switcher/Switcher.d.ts +2 -2
  332. package/components/Switcher/Switcher.js +6 -6
  333. package/components/Switcher/Switcher.js.map +1 -1
  334. package/components/Switcher/switcherTheme.js.map +1 -1
  335. package/components/Tabs/Indicator.js +5 -5
  336. package/components/Tabs/Indicator.js.map +1 -1
  337. package/components/Tabs/Tab.d.ts +1 -1
  338. package/components/Tabs/Tab.js +8 -8
  339. package/components/Tabs/Tab.js.map +1 -1
  340. package/components/Tabs/Tab.styles.js +1 -1
  341. package/components/Tabs/Tab.styles.js.map +1 -1
  342. package/components/Tabs/Tabs.js +4 -4
  343. package/components/Tabs/Tabs.js.map +1 -1
  344. package/components/Tabs/Tabs.styles.js.map +1 -1
  345. package/components/Tabs/TabsContext.js.map +1 -1
  346. package/components/Textarea/Textarea.d.ts +1 -1
  347. package/components/Textarea/Textarea.js +9 -9
  348. package/components/Textarea/Textarea.js.map +1 -1
  349. package/components/Textarea/Textarea.styles.js.map +1 -1
  350. package/components/Textarea/TextareaCounter.js +3 -3
  351. package/components/Textarea/TextareaCounter.js.map +1 -1
  352. package/components/Toast/Toast.d.ts +2 -2
  353. package/components/Toast/Toast.js +4 -4
  354. package/components/Toast/Toast.js.map +1 -1
  355. package/components/Toast/ToastView.d.ts +1 -1
  356. package/components/Toast/ToastView.js +7 -7
  357. package/components/Toast/ToastView.js.map +1 -1
  358. package/components/Toast/locale/index.js.map +1 -1
  359. package/components/Toggle/Toggle.d.ts +1 -1
  360. package/components/Toggle/Toggle.js +5 -5
  361. package/components/Toggle/Toggle.js.map +1 -1
  362. package/components/Toggle/Toggle.mixins.js.map +1 -1
  363. package/components/Toggle/Toggle.styles.js.map +1 -1
  364. package/components/Token/Token.js +7 -7
  365. package/components/Token/Token.js.map +1 -1
  366. package/components/Token/Token.styles.js.map +1 -1
  367. package/components/Token/TokenView.d.ts +1 -1
  368. package/components/Token/TokenView.js +2 -2
  369. package/components/Token/TokenView.js.map +1 -1
  370. package/components/Token/locale/index.js.map +1 -1
  371. package/components/TokenInput/TextWidthHelper.js +2 -2
  372. package/components/TokenInput/TextWidthHelper.js.map +1 -1
  373. package/components/TokenInput/TokenInput.d.ts +2 -2
  374. package/components/TokenInput/TokenInput.js +13 -13
  375. package/components/TokenInput/TokenInput.js.map +1 -1
  376. package/components/TokenInput/TokenInput.styles.js +2 -2
  377. package/components/TokenInput/TokenInput.styles.js.map +1 -1
  378. package/components/TokenInput/TokenInputMenu.d.ts +2 -2
  379. package/components/TokenInput/TokenInputMenu.js +2 -2
  380. package/components/TokenInput/TokenInputMenu.js.map +1 -1
  381. package/components/TokenInput/TokenInputReducer.js.map +1 -1
  382. package/components/TokenInput/locale/index.js.map +1 -1
  383. package/components/Tooltip/Tooltip.d.ts +3 -3
  384. package/components/Tooltip/Tooltip.js +12 -13
  385. package/components/Tooltip/Tooltip.js.map +1 -1
  386. package/components/TooltipMenu/TooltipMenu.d.ts +4 -4
  387. package/components/TooltipMenu/TooltipMenu.js +4 -4
  388. package/components/TooltipMenu/TooltipMenu.js.map +1 -1
  389. package/hooks/useDrop.js.map +1 -1
  390. package/hooks/useEffectWithoutInitCall.js.map +1 -1
  391. package/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -1
  392. package/internal/ClearCrossIcon/ClearCrossIcon.js +1 -1
  393. package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  394. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js +1 -1
  395. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
  396. package/internal/CloseButtonIcon/CloseButtonIcon.js +2 -2
  397. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  398. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js +1 -1
  399. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -1
  400. package/internal/CommonWrapper/CommonWrapper.js +2 -2
  401. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  402. package/internal/CommonWrapper/utils/extractCommonProps.d.ts +1 -1
  403. package/internal/CommonWrapper/utils/extractCommonProps.js.map +1 -1
  404. package/internal/CustomComboBox/ComboBoxMenu.d.ts +3 -3
  405. package/internal/CustomComboBox/ComboBoxMenu.js +7 -7
  406. package/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  407. package/internal/CustomComboBox/ComboBoxView.d.ts +6 -6
  408. package/internal/CustomComboBox/ComboBoxView.js +15 -15
  409. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  410. package/internal/CustomComboBox/CustomComboBox.d.ts +6 -6
  411. package/internal/CustomComboBox/CustomComboBox.js +6 -6
  412. package/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  413. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +1 -1
  414. package/internal/CustomComboBox/CustomComboBoxReducer.js +1 -1
  415. package/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  416. package/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
  417. package/internal/CustomComboBox/locale/index.js.map +1 -1
  418. package/internal/DateSelect/DateSelect.js +7 -7
  419. package/internal/DateSelect/DateSelect.js.map +1 -1
  420. package/internal/DateSelect/locale/index.js.map +1 -1
  421. package/internal/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
  422. package/internal/FocusControlWrapper/useFocusControl.js.map +1 -1
  423. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  424. package/internal/FocusTrap/FocusTrap.js +7 -7
  425. package/internal/FocusTrap/FocusTrap.js.map +1 -1
  426. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -2
  427. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  428. package/internal/InputLikeText/InputLikeText.d.ts +2 -2
  429. package/internal/InputLikeText/InputLikeText.js +14 -14
  430. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  431. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +6 -6
  432. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  433. package/internal/MaskCharLowLine/MaskCharLowLine.js.map +1 -1
  434. package/internal/Menu/Menu.js +10 -10
  435. package/internal/Menu/Menu.js.map +1 -1
  436. package/internal/Menu/MenuContext.js.map +1 -1
  437. package/internal/Menu/MenuNavigation.d.ts +1 -1
  438. package/internal/Menu/MenuNavigation.js.map +1 -1
  439. package/internal/MenuMessage/MenuMessage.d.ts +1 -1
  440. package/internal/MenuMessage/MenuMessage.js +2 -2
  441. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  442. package/internal/MenuMessage/MenuMessage.styles.js +1 -1
  443. package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
  444. package/internal/MobilePopup/MobilePopup.js +5 -5
  445. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  446. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +1 -1
  447. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  448. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +2 -2
  449. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  450. package/internal/NativeDateInput/NativeDateInput.js +1 -1
  451. package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  452. package/internal/NativeDateInput/utils.d.ts +1 -1
  453. package/internal/NativeDateInput/utils.js.map +1 -1
  454. package/internal/Popup/Popup.d.ts +5 -3
  455. package/internal/Popup/Popup.js +69 -40
  456. package/internal/Popup/Popup.js.map +1 -1
  457. package/internal/Popup/PopupHelper.d.ts +5 -3
  458. package/internal/Popup/PopupHelper.js +14 -8
  459. package/internal/Popup/PopupHelper.js.map +1 -1
  460. package/internal/Popup/PopupPin.js +1 -1
  461. package/internal/Popup/PopupPin.js.map +1 -1
  462. package/internal/Popup/types.js.map +1 -1
  463. package/internal/PopupMenu/PopupMenu.d.ts +2 -2
  464. package/internal/PopupMenu/PopupMenu.js +8 -8
  465. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  466. package/internal/PopupMenu/validatePositions.js.map +1 -1
  467. package/internal/RenderContainer/RenderContainer.d.ts +9 -1
  468. package/internal/RenderContainer/RenderContainer.js +85 -6
  469. package/internal/RenderContainer/RenderContainer.js.map +1 -1
  470. package/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  471. package/internal/RenderLayer/RenderLayer.d.ts +2 -1
  472. package/internal/RenderLayer/RenderLayer.js +7 -9
  473. package/internal/RenderLayer/RenderLayer.js.map +1 -1
  474. package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  475. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  476. package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  477. package/internal/ZIndex/ZIndex.js +6 -6
  478. package/internal/ZIndex/ZIndex.js.map +1 -1
  479. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.js.map +1 -1
  480. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.js.map +1 -1
  481. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.js.map +1 -1
  482. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.js.map +1 -1
  483. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.js.map +1 -1
  484. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.js.map +1 -1
  485. package/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.js.map +1 -1
  486. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.js.map +1 -1
  487. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.js.map +1 -1
  488. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.js.map +1 -1
  489. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.js.map +1 -1
  490. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.js.map +1 -1
  491. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.js.map +1 -1
  492. package/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.js.map +1 -1
  493. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.js.map +1 -1
  494. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.js.map +1 -1
  495. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.js.map +1 -1
  496. package/internal/icons2022/BaseIcon.js +1 -1
  497. package/internal/icons2022/BaseIcon.js.map +1 -1
  498. package/internal/icons2022/CalendarIcon/CalendarIcon16Light.js.map +1 -1
  499. package/internal/icons2022/CalendarIcon/CalendarIcon20Light.js.map +1 -1
  500. package/internal/icons2022/CalendarIcon/CalendarIcon24Regular.js.map +1 -1
  501. package/internal/icons2022/CheckAIcon/CheckAIcon16Solid.js.map +1 -1
  502. package/internal/icons2022/CheckAIcon/CheckAIcon20Solid.js.map +1 -1
  503. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.js.map +1 -1
  504. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.js.map +1 -1
  505. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.js.map +1 -1
  506. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.js.map +1 -1
  507. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.js.map +1 -1
  508. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.js.map +1 -1
  509. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon16Solid.js.map +1 -1
  510. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon20Solid.js.map +1 -1
  511. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon24Regular.js.map +1 -1
  512. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon24Solid.js.map +1 -1
  513. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon32Regular.js.map +1 -1
  514. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon64Regular.js.map +1 -1
  515. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon16Solid.js.map +1 -1
  516. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon20Solid.js.map +1 -1
  517. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon24Regular.js.map +1 -1
  518. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon24Solid.js.map +1 -1
  519. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon32Regular.js.map +1 -1
  520. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon64Regular.js.map +1 -1
  521. package/internal/icons2022/FileTypeFolderIcon/FolderIcon16Solid.js.map +1 -1
  522. package/internal/icons2022/FileTypeFolderIcon/FolderIcon20Solid.js.map +1 -1
  523. package/internal/icons2022/FileTypeFolderIcon/FolderIcon24Regular.js.map +1 -1
  524. package/internal/icons2022/FileTypeFolderIcon/FolderIcon24Solid.js.map +1 -1
  525. package/internal/icons2022/FileTypeFolderIcon/FolderIcon32Regular.js.map +1 -1
  526. package/internal/icons2022/FileTypeFolderIcon/FolderIcon64Regular.js.map +1 -1
  527. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon16Solid.js.map +1 -1
  528. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon20Solid.js.map +1 -1
  529. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon24Regular.js.map +1 -1
  530. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon24Solid.js.map +1 -1
  531. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon32Regular.js.map +1 -1
  532. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon64Regular.js.map +1 -1
  533. package/internal/icons2022/FileTypePdfIcon/PdfIcon16Solid.js.map +1 -1
  534. package/internal/icons2022/FileTypePdfIcon/PdfIcon20Solid.js.map +1 -1
  535. package/internal/icons2022/FileTypePdfIcon/PdfIcon24Regular.js.map +1 -1
  536. package/internal/icons2022/FileTypePdfIcon/PdfIcon24Solid.js.map +1 -1
  537. package/internal/icons2022/FileTypePdfIcon/PdfIcon32Regular.js.map +1 -1
  538. package/internal/icons2022/FileTypePdfIcon/PdfIcon64Regular.js.map +1 -1
  539. package/internal/icons2022/FileTypePictureIcon/PictureIcon16Solid.js.map +1 -1
  540. package/internal/icons2022/FileTypePictureIcon/PictureIcon20Solid.js.map +1 -1
  541. package/internal/icons2022/FileTypePictureIcon/PictureIcon24Regular.js.map +1 -1
  542. package/internal/icons2022/FileTypePictureIcon/PictureIcon24Solid.js.map +1 -1
  543. package/internal/icons2022/FileTypePictureIcon/PictureIcon32Regular.js.map +1 -1
  544. package/internal/icons2022/FileTypePictureIcon/PictureIcon64Regular.js.map +1 -1
  545. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon16Solid.js.map +1 -1
  546. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon20Solid.js.map +1 -1
  547. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon24Regular.js.map +1 -1
  548. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon24Solid.js.map +1 -1
  549. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon32Regular.js.map +1 -1
  550. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon64Regular.js.map +1 -1
  551. package/internal/icons2022/FileTypeTableIcon/TableIcon16Solid.js.map +1 -1
  552. package/internal/icons2022/FileTypeTableIcon/TableIcon20Solid.js.map +1 -1
  553. package/internal/icons2022/FileTypeTableIcon/TableIcon24Regular.js.map +1 -1
  554. package/internal/icons2022/FileTypeTableIcon/TableIcon24Solid.js.map +1 -1
  555. package/internal/icons2022/FileTypeTableIcon/TableIcon32Regular.js.map +1 -1
  556. package/internal/icons2022/FileTypeTableIcon/TableIcon64Regular.js.map +1 -1
  557. package/internal/icons2022/FileTypeTextIcon/TextIcon16Solid.js.map +1 -1
  558. package/internal/icons2022/FileTypeTextIcon/TextIcon20Solid.js.map +1 -1
  559. package/internal/icons2022/FileTypeTextIcon/TextIcon24Regular.js.map +1 -1
  560. package/internal/icons2022/FileTypeTextIcon/TextIcon24Solid.js.map +1 -1
  561. package/internal/icons2022/FileTypeTextIcon/TextIcon32Regular.js.map +1 -1
  562. package/internal/icons2022/FileTypeTextIcon/TextIcon64Regular.js.map +1 -1
  563. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js.map +1 -1
  564. package/internal/icons2022/LoadingIcon.js +1 -1
  565. package/internal/icons2022/LoadingIcon.js.map +1 -1
  566. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.js.map +1 -1
  567. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.js.map +1 -1
  568. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.js.map +1 -1
  569. package/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.js.map +1 -1
  570. package/internal/icons2022/NetUploadIcon/NetUploadIcon20Regular.js.map +1 -1
  571. package/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.js.map +1 -1
  572. package/internal/icons2022/NetUploadIcon/NetUploadIcon32Regular.js.map +1 -1
  573. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.js.map +1 -1
  574. package/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.js.map +1 -1
  575. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -1
  576. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.js.map +1 -1
  577. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.js.map +1 -1
  578. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.js.map +1 -1
  579. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon16Solid.js.map +1 -1
  580. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon20Solid.js.map +1 -1
  581. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon24Regular.js.map +1 -1
  582. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon24Solid.js.map +1 -1
  583. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon32Regular.js.map +1 -1
  584. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon64Regular.js.map +1 -1
  585. package/internal/icons2022/XCircleIcon/XCircleIcon16Solid.js.map +1 -1
  586. package/internal/icons2022/XCircleIcon/XCircleIcon20Solid.js.map +1 -1
  587. package/internal/icons2022/XCircleIcon/XCircleIcon24Regular.js.map +1 -1
  588. package/internal/icons2022/XCircleIcon/XCircleIcon24Solid.js.map +1 -1
  589. package/internal/icons2022/XCircleIcon/XCircleIcon32Regular.js.map +1 -1
  590. package/internal/icons2022/XCircleIcon/XCircleIcon64Regular.js.map +1 -1
  591. package/internal/icons2022/XIcon/XIcon16Light.js.map +1 -1
  592. package/internal/icons2022/XIcon/XIcon20Light.js.map +1 -1
  593. package/internal/icons2022/XIcon/XIcon20Regular.js.map +1 -1
  594. package/internal/icons2022/XIcon/XIcon24Regular.js.map +1 -1
  595. package/internal/icons2022/iconSizer.js.map +1 -1
  596. package/internal/react-focus-lock/Lock.js +1 -1
  597. package/internal/react-focus-lock/Lock.js.map +1 -1
  598. package/internal/react-focus-lock/Trap.js +2 -2
  599. package/internal/react-focus-lock/Trap.js.map +1 -1
  600. package/internal/themes/DarkTheme6_0.js +1 -1
  601. package/internal/themes/DarkTheme6_0.js.map +1 -1
  602. package/internal/themes/LightTheme6_0.js.map +1 -1
  603. package/lib/ModalStack.d.ts +1 -1
  604. package/lib/ModalStack.js.map +1 -1
  605. package/lib/animation/index.js.map +1 -1
  606. package/lib/date/InternalDate.js.map +1 -1
  607. package/lib/date/InternalDateGetter.d.ts +1 -1
  608. package/lib/date/InternalDateGetter.js.map +1 -1
  609. package/lib/date/InternalDateSetter.d.ts +1 -1
  610. package/lib/date/InternalDateSetter.js.map +1 -1
  611. package/lib/date/InternalDateTransformer.js +1 -1
  612. package/lib/date/InternalDateTransformer.js.map +1 -1
  613. package/lib/date/InternalDateValidator.js +1 -1
  614. package/lib/date/InternalDateValidator.js.map +1 -1
  615. package/lib/date/comparison.js.map +1 -1
  616. package/lib/date/localeSets.js.map +1 -1
  617. package/lib/dom/scrollYCenterIntoNearestScrollable.js.map +1 -1
  618. package/lib/dom/selectionHelpers.js +3 -3
  619. package/lib/dom/selectionHelpers.js.map +1 -1
  620. package/lib/dom/tabbableHelpers.js +1 -1
  621. package/lib/dom/tabbableHelpers.js.map +1 -1
  622. package/lib/events/fixFirefoxModifiedClickOnLabel.js +1 -1
  623. package/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  624. package/lib/events/keyListener.js.map +1 -1
  625. package/lib/events/keyboard/extractCode.js.map +1 -1
  626. package/lib/events/keyboard/identifiers.js.map +1 -1
  627. package/lib/forwardRefAndName.js.map +1 -1
  628. package/lib/listenFocusOutside.d.ts +3 -1
  629. package/lib/listenFocusOutside.js +21 -4
  630. package/lib/listenFocusOutside.js.map +1 -1
  631. package/lib/locale/LocaleContext.js.map +1 -1
  632. package/lib/locale/types.d.ts +6 -6
  633. package/lib/locale/types.js.map +1 -1
  634. package/lib/locale/useLocaleForControl.d.ts +1 -1
  635. package/lib/locale/useLocaleForControl.js.map +1 -1
  636. package/lib/mergeRefs.js.map +1 -1
  637. package/lib/renderEnvironment/RenderEnvironmentContext.d.ts +17 -1
  638. package/lib/renderEnvironment/RenderEnvironmentContext.js +10 -10
  639. package/lib/renderEnvironment/RenderEnvironmentContext.js.map +1 -1
  640. package/lib/renderEnvironment/RenderEnvironmentDecorator.js.map +1 -1
  641. package/lib/rootNode/getRootNode.js.map +1 -1
  642. package/lib/rootNode/rootNodeDecorator.js.map +1 -1
  643. package/lib/shadowDom/isShadowRoot.d.ts +6 -0
  644. package/lib/shadowDom/isShadowRoot.js +17 -0
  645. package/lib/shadowDom/isShadowRoot.js.map +1 -0
  646. package/lib/size/SizeControlContext.js.map +1 -1
  647. package/lib/size/SizeDecorator.js +1 -1
  648. package/lib/size/SizeDecorator.js.map +1 -1
  649. package/lib/size/useSizeControl.js.map +1 -1
  650. package/lib/styles/ColorFunctions.js +2 -2
  651. package/lib/styles/ColorFunctions.js.map +1 -1
  652. package/lib/theming/AnimationKeyframes.js.map +1 -1
  653. package/lib/theming/Emotion.d.ts +17 -1
  654. package/lib/theming/Emotion.js +16 -5
  655. package/lib/theming/Emotion.js.map +1 -1
  656. package/lib/theming/ThemeFactory.js +1 -1
  657. package/lib/theming/ThemeFactory.js.map +1 -1
  658. package/lib/theming/ThemeHelpers.js.map +1 -1
  659. package/lib/theming/useTheme.js.map +1 -1
  660. package/lib/types/polymorphic-component.d.ts +1 -1
  661. package/lib/types/polymorphic-component.js.map +1 -1
  662. package/lib/utils.d.ts +8 -8
  663. package/lib/utils.js.map +1 -1
  664. package/package.json +14 -23
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.styles.js","sourceRoot":"","sources":["../../../components/Checkbox/Checkbox.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles, prefix } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nimport { boxWrapperSizeMixin, checkboxSizeMixin } from './Checkbox.mixins.js';\n\nexport const globalClasses = prefix('checkbox')({\n box: 'box',\n});\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root(t: Theme) {\n return css`\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\\\00A0';\n display: inline-block;\n flex: 0 0 auto;\n }\n\n .${globalClasses.box} {\n transition:\n background ${t.transitionDuration} ${t.transitionTimingFunction},\n box-shadow ${t.transitionDuration} ${t.transitionTimingFunction};\n }\n\n &:hover .${globalClasses.box} {\n background: ${t.checkboxHoverBg};\n box-shadow: ${t.checkboxShadowHover};\n }\n\n &:active .${globalClasses.box} {\n box-shadow: ${t.checkboxShadowActive};\n background: ${t.checkboxActiveBg};\n }\n `;\n },\n\n rootSmall(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeSmall,\n t.checkboxLineHeightSmall,\n t.checkboxPaddingYSmall,\n t.checkboxBoxSizeSmall,\n t.checkboxPaddingXSmall,\n )};\n `;\n },\n\n rootMedium(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeMedium,\n t.checkboxLineHeightMedium,\n t.checkboxPaddingYMedium,\n t.checkboxBoxSizeMedium,\n t.checkboxPaddingXMedium,\n )};\n `;\n },\n\n rootLarge(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeLarge,\n t.checkboxLineHeightLarge,\n t.checkboxPaddingYLarge,\n t.checkboxBoxSizeLarge,\n t.checkboxPaddingXLarge,\n )};\n `;\n },\n\n rootDisableTextSelect() {\n return css`\n user-select: none;\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.box} {\n box-shadow: ${t.checkboxCheckedHoverShadow};\n background: ${t.checkboxCheckedHoverBg};\n }\n\n &:active .${globalClasses.box} {\n background: ${t.checkboxCheckedActiveBg};\n box-shadow: ${t.checkboxCheckedActiveShadow};\n }\n `;\n },\n\n boxWrapper(t: Theme) {\n return css`\n position: absolute;\n box-sizing: border-box;\n padding: ${t.checkboxBorderWidth};\n\n display: inline-block; \n )};\n `;\n },\n\n boxWrapperSmall(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeSmall,\n t.checkboxBoxSizeSmall,\n t.checkboxBoxOffsetY,\n t.checkboxPaddingXSmall,\n )};\n `;\n },\n\n boxWrapperMedium(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeMedium,\n t.checkboxBoxSizeMedium,\n t.checkboxBoxOffsetY,\n t.checkboxPaddingXMedium,\n )};\n `;\n },\n\n boxWrapperLarge(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeLarge,\n t.checkboxBoxSizeLarge,\n t.checkboxBoxOffsetY,\n t.checkboxPaddingXLarge,\n )};\n `;\n },\n\n box(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n box-shadow: ${t.checkboxShadow};\n background: ${t.checkboxBg};\n border-radius: ${t.checkboxBorderRadius};\n height: 100%;\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n boxWarning(t: Theme) {\n return css`\n box-shadow:\n inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorWarning} !important; // override hover and active\n `;\n },\n\n boxError(t: Theme) {\n return css`\n box-shadow:\n inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorError} !important; // override hover and active\n `;\n },\n\n boxChecked(t: Theme) {\n return css`\n background: ${t.checkboxCheckedBg};\n color: ${t.checkboxCheckedColor};\n box-shadow: ${t.checkboxCheckedShadow};\n `;\n },\n\n boxFocus(t: Theme) {\n return css`\n box-shadow:\n inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorFocus} !important; // override hover and active\n `;\n },\n\n boxDisabled(t: Theme) {\n return css`\n box-shadow: ${t.checkboxShadowDisabled} !important; // override hover and active\n background: ${t.checkboxBgDisabled} !important; // override hover and active\n color: ${t.checkboxTextColorDisabled};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDisabled};\n cursor: default;\n `;\n },\n\n icon() {\n return css`\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n `;\n },\n\n iconUnchecked() {\n return css`\n color: transparent;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n padding-left: ${t.checkboxCaptionGap};\n `;\n },\n}));\n"]}
1
+ {"version":3,"file":"Checkbox.styles.js","sourceRoot":"","sources":["../../../components/Checkbox/Checkbox.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles, prefix } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { boxWrapperSizeMixin, checkboxSizeMixin } from './Checkbox.mixins.js';\n\nexport const globalClasses = prefix('checkbox')({\n box: 'box',\n});\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root(t: Theme) {\n return css`\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\\\00A0';\n display: inline-block;\n flex: 0 0 auto;\n }\n\n .${globalClasses.box} {\n transition:\n background ${t.transitionDuration} ${t.transitionTimingFunction},\n box-shadow ${t.transitionDuration} ${t.transitionTimingFunction};\n }\n\n &:hover .${globalClasses.box} {\n background: ${t.checkboxHoverBg};\n box-shadow: ${t.checkboxShadowHover};\n }\n\n &:active .${globalClasses.box} {\n box-shadow: ${t.checkboxShadowActive};\n background: ${t.checkboxActiveBg};\n }\n `;\n },\n\n rootSmall(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeSmall,\n t.checkboxLineHeightSmall,\n t.checkboxPaddingYSmall,\n t.checkboxBoxSizeSmall,\n t.checkboxPaddingXSmall,\n )};\n `;\n },\n\n rootMedium(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeMedium,\n t.checkboxLineHeightMedium,\n t.checkboxPaddingYMedium,\n t.checkboxBoxSizeMedium,\n t.checkboxPaddingXMedium,\n )};\n `;\n },\n\n rootLarge(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeLarge,\n t.checkboxLineHeightLarge,\n t.checkboxPaddingYLarge,\n t.checkboxBoxSizeLarge,\n t.checkboxPaddingXLarge,\n )};\n `;\n },\n\n rootDisableTextSelect() {\n return css`\n user-select: none;\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.box} {\n box-shadow: ${t.checkboxCheckedHoverShadow};\n background: ${t.checkboxCheckedHoverBg};\n }\n\n &:active .${globalClasses.box} {\n background: ${t.checkboxCheckedActiveBg};\n box-shadow: ${t.checkboxCheckedActiveShadow};\n }\n `;\n },\n\n boxWrapper(t: Theme) {\n return css`\n position: absolute;\n box-sizing: border-box;\n padding: ${t.checkboxBorderWidth};\n\n display: inline-block; \n )};\n `;\n },\n\n boxWrapperSmall(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeSmall,\n t.checkboxBoxSizeSmall,\n t.checkboxBoxOffsetY,\n t.checkboxPaddingXSmall,\n )};\n `;\n },\n\n boxWrapperMedium(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeMedium,\n t.checkboxBoxSizeMedium,\n t.checkboxBoxOffsetY,\n t.checkboxPaddingXMedium,\n )};\n `;\n },\n\n boxWrapperLarge(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeLarge,\n t.checkboxBoxSizeLarge,\n t.checkboxBoxOffsetY,\n t.checkboxPaddingXLarge,\n )};\n `;\n },\n\n box(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n box-shadow: ${t.checkboxShadow};\n background: ${t.checkboxBg};\n border-radius: ${t.checkboxBorderRadius};\n height: 100%;\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n boxWarning(t: Theme) {\n return css`\n box-shadow:\n inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorWarning} !important; // override hover and active\n `;\n },\n\n boxError(t: Theme) {\n return css`\n box-shadow:\n inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorError} !important; // override hover and active\n `;\n },\n\n boxChecked(t: Theme) {\n return css`\n background: ${t.checkboxCheckedBg};\n color: ${t.checkboxCheckedColor};\n box-shadow: ${t.checkboxCheckedShadow};\n `;\n },\n\n boxFocus(t: Theme) {\n return css`\n box-shadow:\n inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorFocus} !important; // override hover and active\n `;\n },\n\n boxDisabled(t: Theme) {\n return css`\n box-shadow: ${t.checkboxShadowDisabled} !important; // override hover and active\n background: ${t.checkboxBgDisabled} !important; // override hover and active\n color: ${t.checkboxTextColorDisabled};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDisabled};\n cursor: default;\n `;\n },\n\n icon() {\n return css`\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n `;\n },\n\n iconUnchecked() {\n return css`\n color: transparent;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n padding-left: ${t.checkboxCaptionGap};\n `;\n },\n}));\n"]}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { iconSizer } from '../../internal/icons2022/iconSizer.js';
3
2
  import { CheckAIcon16Solid } from '../../internal/icons2022/CheckAIcon/CheckAIcon16Solid.js';
4
3
  import { CheckAIcon20Solid } from '../../internal/icons2022/CheckAIcon/CheckAIcon20Solid.js';
4
+ import { iconSizer } from '../../internal/icons2022/iconSizer.js';
5
5
  export var CheckedIcon = iconSizer({
6
6
  small: function () { return React.createElement(CheckAIcon16Solid, { size: 12 }); },
7
7
  medium: function () { return React.createElement(CheckAIcon16Solid, null); },
@@ -1 +1 @@
1
- {"version":3,"file":"CheckedIcon.js","sourceRoot":"","sources":["../../../components/Checkbox/CheckedIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAC;AAE7F,MAAM,CAAC,IAAM,WAAW,GAAG,SAAS,CAClC;IACE,KAAK,EAAE,cAAM,OAAA,oBAAC,iBAAiB,IAAC,IAAI,EAAE,EAAE,GAAI,EAA/B,CAA+B;IAC5C,MAAM,EAAE,cAAM,OAAA,oBAAC,iBAAiB,OAAG,EAArB,CAAqB;IACnC,KAAK,EAAE,cAAM,OAAA,oBAAC,iBAAiB,OAAG,EAArB,CAAqB;CACnC,EACD,aAAa,CACd,CAAC","sourcesContent":["import React from 'react';\n\nimport { iconSizer } from '../../internal/icons2022/iconSizer.js';\nimport { CheckAIcon16Solid } from '../../internal/icons2022/CheckAIcon/CheckAIcon16Solid.js';\nimport { CheckAIcon20Solid } from '../../internal/icons2022/CheckAIcon/CheckAIcon20Solid.js';\n\nexport const CheckedIcon = iconSizer(\n {\n small: () => <CheckAIcon16Solid size={12} />,\n medium: () => <CheckAIcon16Solid />,\n large: () => <CheckAIcon20Solid />,\n },\n 'CheckedIcon',\n);\n"]}
1
+ {"version":3,"file":"CheckedIcon.js","sourceRoot":"","sources":["../../../components/Checkbox/CheckedIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAElE,MAAM,CAAC,IAAM,WAAW,GAAG,SAAS,CAClC;IACE,KAAK,EAAE,cAAM,OAAA,oBAAC,iBAAiB,IAAC,IAAI,EAAE,EAAE,GAAI,EAA/B,CAA+B;IAC5C,MAAM,EAAE,cAAM,OAAA,oBAAC,iBAAiB,OAAG,EAArB,CAAqB;IACnC,KAAK,EAAE,cAAM,OAAA,oBAAC,iBAAiB,OAAG,EAArB,CAAqB;CACnC,EACD,aAAa,CACd,CAAC","sourcesContent":["import React from 'react';\n\nimport { CheckAIcon16Solid } from '../../internal/icons2022/CheckAIcon/CheckAIcon16Solid.js';\nimport { CheckAIcon20Solid } from '../../internal/icons2022/CheckAIcon/CheckAIcon20Solid.js';\nimport { iconSizer } from '../../internal/icons2022/iconSizer.js';\n\nexport const CheckedIcon = iconSizer(\n {\n small: () => <CheckAIcon16Solid size={12} />,\n medium: () => <CheckAIcon16Solid />,\n large: () => <CheckAIcon20Solid />,\n },\n 'CheckedIcon',\n);\n"]}
@@ -1,12 +1,12 @@
1
1
  import type { AriaAttributes, HTMLAttributes } from 'react';
2
2
  import React from 'react';
3
- import type { Nullable } from '../../typings/utility-types.js';
4
- import type { MenuItemState } from '../MenuItem/MenuItem.js';
5
- import type { ShowClearIcon, InputIconType } from '../Input/Input.js';
6
3
  import type { CommonProps } from '../../internal/CommonWrapper/types.js';
7
4
  import type { TGetRootNode } from '../../lib/rootNode//rootNodeDecorator.js';
8
5
  import type { SizeProp } from '../../lib/types/props.js';
6
+ import type { Nullable } from '../../typings/utility-types.js';
7
+ import type { InputIconType, ShowClearIcon } from '../Input/Input.js';
9
8
  import type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../MaskedInput/MaskedInput.js';
9
+ import type { MenuItemState } from '../MenuItem/MenuItem.js';
10
10
  export type ComboBoxViewMode = 'singleline' | 'multiline' | 'multiline-editing';
11
11
  export interface ComboBoxProps<T> extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>>, CommonProps {
12
12
  /** Показывает иконку очистки значения в заполненном поле.
@@ -32,8 +32,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
32
32
  };
33
33
  import React from 'react';
34
34
  import { CustomComboBox } from '../../internal/CustomComboBox/index.js';
35
- import { rootNode } from '../../lib/rootNode/index.js';
36
35
  import { createPropsGetter } from '../../lib/createPropsGetter.js';
36
+ import { rootNode } from '../../lib/rootNode/index.js';
37
37
  /**
38
38
  * Комбобокс — поле ввода с выпадающим списком подсказок, из которых пользователь может выбрать нужное. Открыть выпадающий список можно ещё до начала ввода значения, нажав на поле. */
39
39
  var ComboBox = /** @class */ (function (_super) {
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../../../components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { CustomComboBox } from '../../internal/CustomComboBox/index.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { MenuItemState } from '../MenuItem/MenuItem.js';\nimport type { ShowClearIcon, InputIconType } from '../Input/Input.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/types.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode//rootNodeDecorator.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../MaskedInput/MaskedInput.js';\n\nexport type ComboBoxViewMode = 'singleline' | 'multiline' | 'multiline-editing';\n\nexport interface ComboBoxProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>>,\n CommonProps {\n /** Показывает иконку очистки значения в заполненном поле.\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 /** По умолчанию выпадающий список рендерится через [паттерн Portal](https://react.dev/reference/react-dom/createPortal). Проп отключает использование Portal и список рендерится как обычный блок с абсолютным позиционированием внутри компонента. */\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 * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToId`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Сравнивает полученные результаты с `value`. */\n itemToId?: (item: T) => string | number;\n\n /** Mаксимальная длина значения, которое пользователь может ввести в поле. */\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 *\n * **Не рекомендуется менять значение, передаваемое в проп `value`, внутри этой функции. Используйте для этих целей `onValueChange` или `onUnexpectedInput`. Иначе возможно неожиданное поведение компонента.**\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 /** Событие вставки значения в поле с маской. */\n onBeforePasteInMask?: MaskedInputOnBeforePasteValue;\n\n /** Режим отображения комбобокса:\n * - `\"singleline\"` — однострочное поле;\n * - `\"multiline\"` — многострочное поле;\n * - `\"multiline-editing\"` — поле становится многострочным только при редактировании.\n *\n * Многострочные режимы не работают, если указан проп `mask`. В таком случае будет отображаться однострочное поле.\n * @default singleline */\n viewMode?: ComboBoxViewMode;\n\n /** Максимальное количество отображаемых строк, если для поля добавлен проп многострочного режима — `\"multiline\"` или `\"multiline-editing\"`. */\n maxRows?: number;\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 | 'itemToId'\n | 'valueToString'\n | 'renderValue'\n | 'renderItem'\n | 'menuAlign'\n | 'searchOnFocus'\n | 'drawArrow'\n | 'showClearIcon'\n | 'viewMode'\n >\n>;\n\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 itemToId: (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 public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /** Программно устанавливает фокус на комбобокс.\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }): void {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /** Программно снимает фокус с комбобокса.\n * @public\n */\n public blur(): void {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /** Открывает список значений и запускает поиск.\n *\n * По умолчанию для поиска используется введенное в поле значение или результат `valueToString(value)`.\n *\n * @public\n * @param {string} [query] Текст поиска.`\n */\n public search(query?: string): void {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /** Отменяет текущий поиск — останавливает фильтрацию и очищает результаты поиска.\n * @public\n */\n public cancelSearch(): void {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /** Открывает выпадающий список.\n * @public\n */\n public open(): void {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /** Закрывает выпадающий список.\n * @public\n */\n public close(): void {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Переводит фокус в поле, если ещё не в фокусе, и выделяет весь текст в нём.\n * @public\n */\n public selectInputText(): void {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введённое пользователем значение без изменения `value`.\n * @public\n */\n public reset(): void {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render(): React.JSX.Element {\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"]}
1
+ {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../../../components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/types.js';\nimport { CustomComboBox } from '../../internal/CustomComboBox/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode//rootNodeDecorator.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { InputIconType, ShowClearIcon } from '../Input/Input.js';\nimport type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../MaskedInput/MaskedInput.js';\nimport type { MenuItemState } from '../MenuItem/MenuItem.js';\n\nexport type ComboBoxViewMode = 'singleline' | 'multiline' | 'multiline-editing';\n\nexport interface ComboBoxProps<T>\n extends\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>>,\n CommonProps {\n /** Показывает иконку очистки значения в заполненном поле.\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 /** По умолчанию выпадающий список рендерится через [паттерн Portal](https://react.dev/reference/react-dom/createPortal). Проп отключает использование Portal и список рендерится как обычный блок с абсолютным позиционированием внутри компонента. */\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 * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToId`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Сравнивает полученные результаты с `value`. */\n itemToId?: (item: T) => string | number;\n\n /** Mаксимальная длина значения, которое пользователь может ввести в поле. */\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 *\n * **Не рекомендуется менять значение, передаваемое в проп `value`, внутри этой функции. Используйте для этих целей `onValueChange` или `onUnexpectedInput`. Иначе возможно неожиданное поведение компонента.**\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 /** Событие вставки значения в поле с маской. */\n onBeforePasteInMask?: MaskedInputOnBeforePasteValue;\n\n /** Режим отображения комбобокса:\n * - `\"singleline\"` — однострочное поле;\n * - `\"multiline\"` — многострочное поле;\n * - `\"multiline-editing\"` — поле становится многострочным только при редактировании.\n *\n * Многострочные режимы не работают, если указан проп `mask`. В таком случае будет отображаться однострочное поле.\n * @default singleline */\n viewMode?: ComboBoxViewMode;\n\n /** Максимальное количество отображаемых строк, если для поля добавлен проп многострочного режима — `\"multiline\"` или `\"multiline-editing\"`. */\n maxRows?: number;\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 | 'itemToId'\n | 'valueToString'\n | 'renderValue'\n | 'renderItem'\n | 'menuAlign'\n | 'searchOnFocus'\n | 'drawArrow'\n | 'showClearIcon'\n | 'viewMode'\n >\n>;\n\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 itemToId: (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 public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /** Программно устанавливает фокус на комбобокс.\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }): void {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /** Программно снимает фокус с комбобокса.\n * @public\n */\n public blur(): void {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /** Открывает список значений и запускает поиск.\n *\n * По умолчанию для поиска используется введенное в поле значение или результат `valueToString(value)`.\n *\n * @public\n * @param {string} [query] Текст поиска.`\n */\n public search(query?: string): void {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /** Отменяет текущий поиск — останавливает фильтрацию и очищает результаты поиска.\n * @public\n */\n public cancelSearch(): void {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /** Открывает выпадающий список.\n * @public\n */\n public open(): void {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /** Закрывает выпадающий список.\n * @public\n */\n public close(): void {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Переводит фокус в поле, если ещё не в фокусе, и выделяет весь текст в нём.\n * @public\n */\n public selectInputText(): void {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введённое пользователем значение без изменения `value`.\n * @public\n */\n public reset(): void {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render(): React.JSX.Element {\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"]}
@@ -9,8 +9,8 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { isNonNullable, isNullable } from '../../lib/utils.js';
13
12
  import { isSafari } from '../../lib/client.js';
13
+ import { isNonNullable, isNullable } from '../../lib/utils.js';
14
14
  import { MAX_ALLOWED_CHARS, MAX_SAFE_DIGITS, MINUS_SIGN, SPACE, THIN_SPACE } from './constants.js';
15
15
  var CurrencyHelper = /** @class */ (function () {
16
16
  function CurrencyHelper() {
@@ -1 +1 @@
1
- {"version":3,"file":"CurrencyHelper.js","sourceRoot":"","sources":["../../../components/CurrencyInput/CurrencyHelper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { isNonNullable, isNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { isSafari } from '../../lib/client.js';\n\nimport type { DecimalOptions } from './CurrencyInputHelper.js';\nimport type { CursorMap } from './CursorHelper.js';\nimport { MAX_ALLOWED_CHARS, MAX_SAFE_DIGITS, MINUS_SIGN, SPACE, THIN_SPACE } from './constants.js';\n\nexport interface DecimalFormattingOptions {\n /** Устанавливает минимальное количество отображаемых знаков после запятой. */\n fractionDigits?: Nullable<number>;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Устанавливает разделители для тысячных разрядов. */\n thousandsDelimiter?: string;\n\n /** Устанавливает знак минуса. */\n minusSign?: string;\n}\n\ntype DecimalFormattingOptionsInternal = Required<DecimalFormattingOptions>;\n\nexport interface FormattingInfo {\n raw: string;\n formatted: string;\n cursorMap: CursorMap;\n}\n\nexport class CurrencyHelper {\n public static defaultOptions: DecimalFormattingOptionsInternal = {\n fractionDigits: null,\n hideTrailingZeros: false,\n thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,\n minusSign: MINUS_SIGN,\n };\n\n public static getOptions(options?: Nullable<DecimalFormattingOptions>): DecimalFormattingOptionsInternal {\n return { ...CurrencyHelper.defaultOptions, ...options };\n }\n\n public static getInfo(value: string, options?: Nullable<DecimalFormattingOptions>): FormattingInfo {\n const raw = CurrencyHelper.unformatString(value);\n const formatted = CurrencyHelper.formatString(value, options);\n const cursorMap = CurrencyHelper.getCursorMap(formatted, options);\n\n return { raw, formatted, cursorMap };\n }\n\n public static getCursorMap(formatted: string, formattingOptions?: Nullable<DecimalFormattingOptions>): CursorMap {\n const options = CurrencyHelper.getOptions(formattingOptions);\n const regexp = new RegExp(options.thousandsDelimiter);\n const cursorMap: CursorMap = [];\n\n let index = formatted.length;\n let cursor = formatted.length;\n let skip = 0;\n\n while (index >= 0) {\n cursorMap[index] = cursor;\n\n const ignoredSymbol = regexp.exec(formatted[index - 1]);\n if (ignoredSymbol) {\n ++skip;\n } else {\n cursor = cursor - skip - 1;\n skip = 0;\n }\n --index;\n }\n return cursorMap;\n }\n\n public static format(value: Nullable<number>, options?: Nullable<DecimalFormattingOptions>): string {\n if (isNullable(value)) {\n return '';\n }\n return CurrencyHelper.formatString(this.toDecimalString(value), options);\n }\n\n public static parse(value: string): Nullable<number> {\n const cleaned = CurrencyHelper.unformatString(value);\n if (!cleaned) {\n return null;\n }\n\n const destructed = CurrencyHelper.destructString(cleaned);\n if (!destructed) {\n return null;\n }\n\n const result =\n destructed.sign + (destructed.integer || '0') + (destructed.delimiter || '.') + (destructed.fraction || '0');\n\n return parseFloat(result);\n }\n\n public static unformatString(value: string): string {\n return value\n .replace(/\\s/g, '')\n .replace(',', '.')\n .replace(/[\\u2212\\u002D\\uFE63\\uFF0D\\u2012\\u2013\\u2014\\u2015]/g, '-');\n }\n\n public static formatForClipboard(value: string): string {\n return CurrencyHelper.unformatString(value).replace('.', ',');\n }\n\n public static formatString(value: string, formattingOptions?: Nullable<DecimalFormattingOptions>): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue) || {\n sign: '',\n integer: '',\n delimiter: '',\n fraction: '',\n };\n\n const { sign, integer, delimiter } = destructed;\n let fraction = destructed.fraction;\n let fractionDigits = fraction.length;\n\n const options = CurrencyHelper.getOptions(formattingOptions);\n if (options.hideTrailingZeros) {\n fraction = fraction.replace(/0+$/, '');\n fractionDigits = fraction.length;\n } else if (options.fractionDigits !== null) {\n fractionDigits = options.fractionDigits;\n }\n\n const parts = [];\n\n const blockSize = 3;\n const start = ((integer.length - 1) % blockSize) - blockSize + 1;\n for (let i = start; i < integer.length; i += blockSize) {\n parts.push(integer.substring(Math.max(i, 0), i + blockSize));\n }\n\n let result = parts.join(options.thousandsDelimiter);\n\n if (delimiter || fractionDigits) {\n result += ',';\n result += fraction.padEnd(Math.min(fractionDigits, MAX_SAFE_DIGITS), '0');\n }\n\n if (sign) {\n result = options.minusSign + result;\n }\n\n return result;\n }\n\n public static isValidString(value: string, options: DecimalOptions): boolean {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue);\n\n if (!destructed) {\n return false;\n }\n\n const { sign, integer, delimiter, fraction } = destructed;\n\n if (options.unsigned && sign) {\n return false;\n }\n\n if (options.fractionDigits === 0 && delimiter) {\n return false;\n }\n\n const integerDigits = integer === '0' ? 0 : integer.length;\n const fractionDigits = fraction.length;\n\n if (isNonNullable(options.integerDigits) && integerDigits > options.integerDigits) {\n return false;\n }\n\n if (isNullable(options.integerDigits) && integerDigits > MAX_SAFE_DIGITS - (options.fractionDigits || 0)) {\n return false;\n }\n\n if (isNonNullable(options.fractionDigits) && fractionDigits > options.fractionDigits) {\n return false;\n }\n\n return integerDigits + fractionDigits <= MAX_SAFE_DIGITS;\n }\n\n public static extractValid(value: string, options: DecimalOptions): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n\n const match = /[-.\\d]+/.exec(unformattedValue);\n\n if (!match) {\n return '';\n }\n\n const token = match[0].substr(0, MAX_ALLOWED_CHARS);\n\n for (let i = token.length; i >= 0; --i) {\n const result = token.substr(0, i);\n if (CurrencyHelper.isValidString(result, options)) {\n return result;\n }\n }\n\n return '';\n }\n\n public static destructString(value: string): {\n sign: string;\n integer: string;\n delimiter: string;\n fraction: string;\n exponent: string;\n } | null {\n const match = /^(-)?(\\d*)?(\\.)?(\\d*)?(e)?([-+]?\\d+)?$/.exec(value);\n if (!match) {\n return null;\n }\n const [, sign = '', integer = '', delimiter = '', fraction = '', , exponent = ''] = match;\n return { sign, integer, delimiter, fraction, exponent };\n }\n\n private static toDecimalString = (number: number) => {\n if (!number.toString().includes('e')) {\n return number.toString();\n }\n const destructed = this.destructString(number.toExponential());\n if (destructed === null) {\n return '';\n }\n const { sign = '', integer, fraction, exponent } = destructed;\n const intExponent = parseInt(exponent || '0');\n if (intExponent > 0) {\n return [sign, integer, fraction, '0'.repeat(intExponent - fraction.length)].join('');\n }\n return [sign, '0.', ' 0'.repeat(-intExponent - 1), integer, fraction].join('');\n };\n}\n"]}
1
+ {"version":3,"file":"CurrencyHelper.js","sourceRoot":"","sources":["../../../components/CurrencyInput/CurrencyHelper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { isSafari } from '../../lib/client.js';\nimport { isNonNullable, isNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { MAX_ALLOWED_CHARS, MAX_SAFE_DIGITS, MINUS_SIGN, SPACE, THIN_SPACE } from './constants.js';\nimport type { DecimalOptions } from './CurrencyInputHelper.js';\nimport type { CursorMap } from './CursorHelper.js';\n\nexport interface DecimalFormattingOptions {\n /** Устанавливает минимальное количество отображаемых знаков после запятой. */\n fractionDigits?: Nullable<number>;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Устанавливает разделители для тысячных разрядов. */\n thousandsDelimiter?: string;\n\n /** Устанавливает знак минуса. */\n minusSign?: string;\n}\n\ntype DecimalFormattingOptionsInternal = Required<DecimalFormattingOptions>;\n\nexport interface FormattingInfo {\n raw: string;\n formatted: string;\n cursorMap: CursorMap;\n}\n\nexport class CurrencyHelper {\n public static defaultOptions: DecimalFormattingOptionsInternal = {\n fractionDigits: null,\n hideTrailingZeros: false,\n thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,\n minusSign: MINUS_SIGN,\n };\n\n public static getOptions(options?: Nullable<DecimalFormattingOptions>): DecimalFormattingOptionsInternal {\n return { ...CurrencyHelper.defaultOptions, ...options };\n }\n\n public static getInfo(value: string, options?: Nullable<DecimalFormattingOptions>): FormattingInfo {\n const raw = CurrencyHelper.unformatString(value);\n const formatted = CurrencyHelper.formatString(value, options);\n const cursorMap = CurrencyHelper.getCursorMap(formatted, options);\n\n return { raw, formatted, cursorMap };\n }\n\n public static getCursorMap(formatted: string, formattingOptions?: Nullable<DecimalFormattingOptions>): CursorMap {\n const options = CurrencyHelper.getOptions(formattingOptions);\n const regexp = new RegExp(options.thousandsDelimiter);\n const cursorMap: CursorMap = [];\n\n let index = formatted.length;\n let cursor = formatted.length;\n let skip = 0;\n\n while (index >= 0) {\n cursorMap[index] = cursor;\n\n const ignoredSymbol = regexp.exec(formatted[index - 1]);\n if (ignoredSymbol) {\n ++skip;\n } else {\n cursor = cursor - skip - 1;\n skip = 0;\n }\n --index;\n }\n return cursorMap;\n }\n\n public static format(value: Nullable<number>, options?: Nullable<DecimalFormattingOptions>): string {\n if (isNullable(value)) {\n return '';\n }\n return CurrencyHelper.formatString(this.toDecimalString(value), options);\n }\n\n public static parse(value: string): Nullable<number> {\n const cleaned = CurrencyHelper.unformatString(value);\n if (!cleaned) {\n return null;\n }\n\n const destructed = CurrencyHelper.destructString(cleaned);\n if (!destructed) {\n return null;\n }\n\n const result =\n destructed.sign + (destructed.integer || '0') + (destructed.delimiter || '.') + (destructed.fraction || '0');\n\n return parseFloat(result);\n }\n\n public static unformatString(value: string): string {\n return value\n .replace(/\\s/g, '')\n .replace(',', '.')\n .replace(/[\\u2212\\u002D\\uFE63\\uFF0D\\u2012\\u2013\\u2014\\u2015]/g, '-');\n }\n\n public static formatForClipboard(value: string): string {\n return CurrencyHelper.unformatString(value).replace('.', ',');\n }\n\n public static formatString(value: string, formattingOptions?: Nullable<DecimalFormattingOptions>): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue) || {\n sign: '',\n integer: '',\n delimiter: '',\n fraction: '',\n };\n\n const { sign, integer, delimiter } = destructed;\n let fraction = destructed.fraction;\n let fractionDigits = fraction.length;\n\n const options = CurrencyHelper.getOptions(formattingOptions);\n if (options.hideTrailingZeros) {\n fraction = fraction.replace(/0+$/, '');\n fractionDigits = fraction.length;\n } else if (options.fractionDigits !== null) {\n fractionDigits = options.fractionDigits;\n }\n\n const parts = [];\n\n const blockSize = 3;\n const start = ((integer.length - 1) % blockSize) - blockSize + 1;\n for (let i = start; i < integer.length; i += blockSize) {\n parts.push(integer.substring(Math.max(i, 0), i + blockSize));\n }\n\n let result = parts.join(options.thousandsDelimiter);\n\n if (delimiter || fractionDigits) {\n result += ',';\n result += fraction.padEnd(Math.min(fractionDigits, MAX_SAFE_DIGITS), '0');\n }\n\n if (sign) {\n result = options.minusSign + result;\n }\n\n return result;\n }\n\n public static isValidString(value: string, options: DecimalOptions): boolean {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue);\n\n if (!destructed) {\n return false;\n }\n\n const { sign, integer, delimiter, fraction } = destructed;\n\n if (options.unsigned && sign) {\n return false;\n }\n\n if (options.fractionDigits === 0 && delimiter) {\n return false;\n }\n\n const integerDigits = integer === '0' ? 0 : integer.length;\n const fractionDigits = fraction.length;\n\n if (isNonNullable(options.integerDigits) && integerDigits > options.integerDigits) {\n return false;\n }\n\n if (isNullable(options.integerDigits) && integerDigits > MAX_SAFE_DIGITS - (options.fractionDigits || 0)) {\n return false;\n }\n\n if (isNonNullable(options.fractionDigits) && fractionDigits > options.fractionDigits) {\n return false;\n }\n\n return integerDigits + fractionDigits <= MAX_SAFE_DIGITS;\n }\n\n public static extractValid(value: string, options: DecimalOptions): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n\n const match = /[-.\\d]+/.exec(unformattedValue);\n\n if (!match) {\n return '';\n }\n\n const token = match[0].substr(0, MAX_ALLOWED_CHARS);\n\n for (let i = token.length; i >= 0; --i) {\n const result = token.substr(0, i);\n if (CurrencyHelper.isValidString(result, options)) {\n return result;\n }\n }\n\n return '';\n }\n\n public static destructString(value: string): {\n sign: string;\n integer: string;\n delimiter: string;\n fraction: string;\n exponent: string;\n } | null {\n const match = /^(-)?(\\d*)?(\\.)?(\\d*)?(e)?([-+]?\\d+)?$/.exec(value);\n if (!match) {\n return null;\n }\n const [, sign = '', integer = '', delimiter = '', fraction = '', , exponent = ''] = match;\n return { sign, integer, delimiter, fraction, exponent };\n }\n\n private static toDecimalString = (number: number) => {\n if (!number.toString().includes('e')) {\n return number.toString();\n }\n const destructed = this.destructString(number.toExponential());\n if (destructed === null) {\n return '';\n }\n const { sign = '', integer, fraction, exponent } = destructed;\n const intExponent = parseInt(exponent || '0');\n if (intExponent > 0) {\n return [sign, integer, fraction, '0'.repeat(intExponent - fraction.length)].join('');\n }\n return [sign, '0.', ' 0'.repeat(-intExponent - 1), integer, fraction].join('');\n };\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import type { AriaAttributes } from 'react';
2
2
  import React from 'react';
3
- import type { InputProps } from '../Input/index.js';
4
- import type { Nullable, Override } from '../../typings/utility-types.js';
5
3
  import type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';
6
4
  import type { TGetRootNode } from '../../lib/rootNode/index.js';
5
+ import type { Nullable, Override } from '../../typings/utility-types.js';
6
+ import type { InputProps } from '../Input/index.js';
7
7
  import type { Selection } from './SelectionHelper.js';
8
8
  export interface CurrencyInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Override<Omit<InputProps, 'showClearIcon' | 'maxLength'>, {
9
9
  /** Значение поля. */
@@ -43,20 +43,20 @@ var __rest = (this && this.__rest) || function (s, e) {
43
43
  };
44
44
  import React from 'react';
45
45
  import warning from 'warning';
46
- import { getOwnerGlobalObject } from '../../lib/globalObject.js';
47
- import { isNonNullable, isNullable, isElement } from '../../lib/utils.js';
48
- import { Input } from '../Input/index.js';
49
46
  import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
50
- import { rootNode } from '../../lib/rootNode/index.js';
47
+ import { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';
51
48
  import { createPropsGetter } from '../../lib/createPropsGetter.js';
49
+ import { getOwnerGlobalObject } from '../../lib/globalObject.js';
52
50
  import { isInstanceOf } from '../../lib/isInstanceOf.js';
51
+ import { rootNode } from '../../lib/rootNode/index.js';
53
52
  import { scrollInputCaretIntoView } from '../../lib/scrollInputCaretIntoView.js';
54
- import { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';
53
+ import { isElement, isNonNullable, isNullable } from '../../lib/utils.js';
54
+ import { Input } from '../Input/index.js';
55
55
  import { MAX_SAFE_DIGITS } from './constants.js';
56
- import { SelectionHelper } from './SelectionHelper.js';
57
56
  import { CurrencyHelper } from './CurrencyHelper.js';
58
57
  import { CurrencyInputHelper } from './CurrencyInputHelper.js';
59
58
  import { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions.js';
59
+ import { SelectionHelper } from './SelectionHelper.js';
60
60
  export var CurrencyInputDataTids = {
61
61
  root: 'CurrencyInput__root',
62
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CurrencyInput.js","sourceRoot":"","sources":["../../../components/CurrencyInput/CurrencyInput.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAsC1F,MAAM,CAAC,IAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,qBAAqB;CACnB,CAAC;AAMX,8BAA8B;AAE9B;IAAmC,iCAA2D;IAA9F;;QAYU,cAAQ,GAAG,iBAAiB,CAAC,eAAa,CAAC,YAAY,CAAC,CAAC;QAa1D,WAAK,yBACP,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAI,CAAC,QAAQ,EAAE,CAAC,cAAc,EAAE,KAAI,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,KAC1G,OAAO,EAAE,KAAK,IACd;QAGM,8BAAwB,GAAc,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAuCvE,gBAAU,GAAG,UAAC,KAAiD;YAC5D,IAAA,cAAc,GAAkE,KAAK,eAAvE,EAAE,MAAM,GAA0D,KAAK,OAA/D,EAAE,QAAQ,GAAgD,KAAK,SAArD,EAAE,aAAa,GAAiC,KAAK,cAAtC,EAAE,iBAAiB,GAAc,KAAK,kBAAnB,EAAK,IAAI,UAAK,KAAK,EAAvF,8EAA+E,CAAF,CAAW;YAE9F,OAAO,CACL,oBAAC,mBAAmB,IAAC,kBAAkB,EAAE,KAAI,CAAC,UAAU;gBACtD,oBAAC,KAAK,yBACM,qBAAqB,CAAC,IAAI,IAChC,IAAI,IACR,KAAK,EAAE,KAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAC5B,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,EAC3B,MAAM,EAAE,KAAI,CAAC,UAAU,EACvB,OAAO,EAAE,KAAI,CAAC,WAAW,EACzB,SAAS,EAAE,KAAI,CAAC,aAAa,EAC7B,SAAS,EAAE,KAAI,CAAC,aAAa,EAC7B,aAAa,EAAE,KAAI,CAAC,iBAAiB,EACrC,OAAO,EAAE,KAAI,CAAC,WAAW,EACzB,MAAM,EAAE,KAAI,CAAC,UAAU,EACvB,KAAK,EAAE,KAAI,CAAC,SAAS,gBACT,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EACpC,YAAY,EAAE,KAAI,CAAC,KAAK,CAAC,YAAY,EACrC,YAAY,EAAE,KAAI,CAAC,KAAK,CAAC,YAAY,EACrC,WAAW,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW,EACnC,GAAG,EAAE,KAAI,CAAC,QAAQ,EAClB,WAAW,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAC5D,CACkB,CACvB,CAAC;QACJ,CAAC,CAAC;QAEF;;;WAGG;QACI,WAAK,GAAG;YACb,IAAI,KAAI,CAAC,KAAK,EAAE,CAAC;gBACf,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;QAEF;;WAEG;QACI,UAAI,GAAG;YACZ,IAAI,KAAI,CAAC,KAAK,EAAE,CAAC;gBACf,KAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;QAeM,mBAAa,GAAG,UAAC,KAAyC;YAChE,KAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC;QAEM,mBAAa,GAAG,UAAC,KAA4C;YACnE,IAAM,SAAS,GAAG,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClD,KAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;YAE1C,IAAI,KAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACzB,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBAC3B,OAAO;gBACT,CAAC;YACH,CAAC;YAED,IAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAEpC,IAAI,MAAM,KAAK,sBAAsB,CAAC,MAAM,EAAE,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,IAAI,MAAM,KAAK,sBAAsB,CAAC,OAAO,EAAE,CAAC;gBAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,CAAC;YAED,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnC,IAAI,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;wBACxB,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACxB,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;oBACtC,KAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACxG,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnC,KAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC1G,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,cAAc,CAAC,CAAC,CAAC;oBAC3C,KAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC;oBAC5C,KAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;oBACjC,KAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC9D,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;oBAChC,IAAM,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;oBACxC,KAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChE,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,mBAAmB,CAAC,CAAC,CAAC;oBAChD,KAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,CAAC;oBACjD,KAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC;oBAC1C,KAAI,CAAC,QAAQ,CAAC;wBACZ,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;qBACnE,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBACnD,KAAI,CAAC,QAAQ,CAAC;wBACZ,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;qBACxD,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,CAAC;oBACjD,IAAM,QAAQ,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;oBAC7C,KAAI,CAAC,QAAQ,CAAC;wBACZ,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC;qBAC9D,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,KAAK,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClC,KAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBACrD,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEM,iBAAW,GAAG;;YACpB,IAAM,IAAI,GAAG,MAAA,KAAI,CAAC,KAAK,0CAAE,OAAO,EAAE,CAAC;YACnC,IAAI,IAAI,EAAE,CAAC;gBACT,wBAAwB,CAAC,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC;QAEM,kBAAY,GAAG,UAAC,KAAkB;YACxC,IAAM,SAAS,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;YACpD,OAAO;gBACL,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,SAAS,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS;aAC1C,CAAC;QACJ,CAAC,CAAC;QAEM,gBAAU,GAAG,UAAC,SAAoB,EAAE,IAAY;YACtD,IAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YACvF,KAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC;QAEM,qBAAe,GAAG,UAAC,SAAoB,EAAE,IAAY;YAC3D,IAAM,QAAQ,GAAG,mBAAmB,CAAC,eAAe,CAAC,KAAI,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC5F,KAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC;QAEM,gBAAU,GAAG,UAAC,KAAa,EAAE,GAAW,EAAE,KAAa;YAC7D,IAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;gBACrF,aAAa,EAAE,KAAI,CAAC,KAAK,CAAC,aAAa;gBACvC,cAAc,EAAE,KAAI,CAAC,QAAQ,EAAE,CAAC,cAAc;gBAC9C,QAAQ,EAAE,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM;aAC7B,CAAC,CAAC;YACH,IAAI,MAAM,EAAE,CAAC;gBACX,IAAM,WAAS,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC/B,IAAM,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAChE,KAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,aAAA,EAAE,SAAS,WAAA,EAAE,EAAE;oBACtC,IAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,WAAS,CAAC,CAAC;oBACpD,IAAI,KAAI,CAAC,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;wBACrC,KAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,KAAI,CAAC,KAAK,EAAE,CAAC;gBACf,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEM,sBAAgB,GAAG,UAAC,KAAa;YACvC,IAAM,SAAS,GAAG,KAAI,CAAC,wBAAwB,CAAC;YAChD,IAAM,QAAQ,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YACtC,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;gBACtC,OAAO,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5F,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEM,uBAAiB,GAAG,UAAC,KAAa;YACxC,IAAM,SAAS,GAAG,KAAI,CAAC,wBAAwB,CAAC;YAChD,IAAM,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBACpF,KAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;QAEM,iBAAW,GAAG,UAAC,KAA6C;;YAClE,IAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjD,IAAM,SAAS,GAAG,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClD,KAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,MAAA,MAAA,KAAI,CAAC,KAAK,EAAC,OAAO,mDAAG,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEM,gBAAU,GAAG,UAAC,KAA6C;YACjE,IAAM,SAAS,GAAG,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;gBACtC,IAAM,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;gBACjF,IAAM,IAAI,GAAG,cAAc,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAC1D,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5C,CAAC;YACD,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC,CAAC;QAEM,eAAS,GAAG,UAAC,KAA6C;YAChE,IAAM,SAAS,GAAG,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;gBACtC,IAAM,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;gBACjF,IAAM,IAAI,GAAG,cAAc,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAC1D,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC1C,KAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC,CAAC;QAEM,iBAAW,GAAG,UAAC,KAAyC;YACxD,IAAA,KAAuD,KAAK,CAAC,MAAM,EAAjE,cAAc,oBAAA,EAAE,YAAY,kBAAA,EAAE,kBAAkB,wBAAiB,CAAC;YAC1E,IAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAE9C,IAAM,SAAS,GAAG;gBAChB,KAAK,EAAE,cAAc,KAAK,YAAY,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,WAAW;gBAC5F,GAAG,EAAE,YAAY,KAAK,cAAc,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,WAAW;gBACtF,SAAS,EAAG,kBAAyC,IAAI,MAAM;aAChE,CAAC;YAEF,KAAI,CAAC,QAAQ,CAAC;gBACZ,OAAO,EAAE,IAAI;gBACb,SAAS,WAAA;aACV,CAAC,CAAC;YAEH,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACvB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;QAEM,gBAAU,GAAG;YACnB,IAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAEzD,KAAI,CAAC,QAAQ,uBACR,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAI,CAAC,QAAQ,EAAE,CAAC,cAAc,EAAE,KAAI,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,KAC1F,OAAO,EAAE,KAAK,IACd,CAAC;QACL,CAAC,CAAC;QAEM,gBAAU,GAAG,UAAC,KAAyC;;YAC7D,KAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAA,MAAA,KAAI,CAAC,KAAK,EAAC,MAAM,mDAAG,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEM,cAAQ,GAAG,UAAC,OAAwB;YAC1C,KAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACvB,CAAC,CAAC;;IACJ,CAAC;sBArWY,aAAa;IAahB,qCAAa,GAArB,UAAsB,KAAyB;QAC7C,OAAO,CACL,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EACjD,0EAA0E,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAChG,CAAC;QACF,OAAO,CACL,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,eAAe,EAC3E,+EAAwE,eAAe,MAAG;YACxF,mCAAmC,CACtC,CAAC;IACJ,CAAC;IAYM,yCAAiB,GAAxB;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtC,CAAC;IAEM,0CAAkB,GAAzB,UAA0B,SAA6B,EAAE,SAA6B;QAC9E,IAAA,KAA+C,IAAI,CAAC,QAAQ,EAAE,EAA5D,KAAK,WAAA,EAAE,cAAc,oBAAA,EAAE,iBAAiB,uBAAoB,CAAC;QACrE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEpC,IACE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACjF,SAAS,CAAC,cAAc,KAAK,cAAc,EAC3C,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAA,KAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAnC,KAAK,WAAA,EAAE,GAAG,SAAyB,CAAC;YAE5C,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACjD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEM,8BAAM,GAAb;QACE,OAAO,CACL,oBAAC,aAAa,aAAC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAM,IAAI,CAAC,QAAQ,EAAE,GAC9D,IAAI,CAAC,UAAU,CACF,CACjB,CAAC;IACJ,CAAC;IAkDO,gCAAQ,GAAhB,UAAiB,KAAuB,EAAE,cAAgC,EAAE,iBAA0B;QACpG,OAAO;YACL,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,cAAc,gBAAA,EAAE,iBAAiB,mBAAA,EAAE,CAAC;YAC9E,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;SAC3C,CAAC;IACJ,CAAC;IAEO,6CAAqB,GAA7B,UAA8B,KAAyC;QACrE,IAAM,SAAS,GAAG,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAM,UAAU,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3F,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3C,CAAC;;IAhIa,iCAAmB,GAAG,eAAe,AAAlB,CAAmB;IACtC,yBAAW,GAAG,eAAe,AAAlB,CAAmB;IAE9B,0BAAY,GAAiB;QACzC,KAAK,EAAE,OAAO;QACd,cAAc,EAAE,CAAC;QACjB,iBAAiB,EAAE,KAAK;QACxB,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,SAAS;KACrB,AANyB,CAMxB;IAVS,aAAa;QADzB,QAAQ;OACI,aAAa,CAqWzB;IAAD,oBAAC;CAAA,AArWD,CAAmC,KAAK,CAAC,aAAa,GAqWrD;SArWY,aAAa;AAuW1B,SAAS,0BAA0B,CAAC,KAAkB;;IACpD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC5F,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;QAEhD,OAAO;YACL,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,CAAC;YACN,SAAS,EAAE,MAAM;SAClB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAA,KAAK,CAAC,cAAc,mCAAI,CAAC;QAChC,GAAG,EAAE,MAAA,KAAK,CAAC,YAAY,mCAAI,CAAC;QAC5B,SAAS,EAAE,KAAK,CAAC,kBAAwC;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAe,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAe,CAAC,CAAC;AAC1E,CAAC;AAED,IAAM,cAAc,GAAG,UAAC,KAAyB;IAC/C,IAAI,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE;YAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,WAAW,CAAC;AAC3B,CAAC,CAAC","sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { getOwnerGlobalObject } from '../../lib/globalObject.js';\nimport { isNonNullable, isNullable, isElement } from '../../lib/utils.js';\nimport type { InputProps } from '../Input/index.js';\nimport { Input } from '../Input/index.js';\nimport type { Nullable, Override } from '../../typings/utility-types.js';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { isInstanceOf } from '../../lib/isInstanceOf.js';\nimport { scrollInputCaretIntoView } from '../../lib/scrollInputCaretIntoView.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\n\nimport { MAX_SAFE_DIGITS } from './constants.js';\nimport type { Selection, SelectionDirection } from './SelectionHelper.js';\nimport { SelectionHelper } from './SelectionHelper.js';\nimport { CurrencyHelper } from './CurrencyHelper.js';\nimport { CurrencyInputHelper } from './CurrencyInputHelper.js';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions.js';\n\nexport interface CurrencyInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n Omit<InputProps, 'showClearIcon' | 'maxLength'>,\n {\n /** Значение поля. */\n value?: Nullable<number>;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Устанавливает минимальное количество отображаемых знаков после запятой. Если fractionDigits=15, то в целой части допускается только **0**. */\n fractionDigits?: Nullable<number>;\n\n /** Разрешает вводить в поле символ минуса для отрицательных значений. */\n signed?: boolean;\n\n /** Допустимое количество цифр целой части до запятой.\n * Если передан **0**, то в целой части допускается только **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@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(\n isNumeric(props.value) || isNullable(props.value),\n '[CurrencyInput]: Prop `value` is not a valid number. Received value is `' + props.value + '`.',\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 CurrencyInput documentation`,\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 public getRootNode!: TGetRootNode;\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(): React.JSX.Element {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>): React.JSX.Element => {\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 * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus = (): void => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur = (): void => {\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 private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n this.setSelectionFromEvent(event);\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) {\n scrollInputCaretIntoView(node, this.state.selection);\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 this.props.onPaste?.(event);\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 (!isElement(input) || !isInstanceOf(input, getOwnerGlobalObject(input).HTMLInputElement)) {\n warning(false, 'input is not HTMLInputElement');\n\n return {\n start: 0,\n end: 0,\n direction: 'none',\n };\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"]}
1
+ {"version":3,"file":"CurrencyInput.js","sourceRoot":"","sources":["../../../components/CurrencyInput/CurrencyInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { getOwnerGlobalObject } from '../../lib/globalObject.js';\nimport { isInstanceOf } from '../../lib/isInstanceOf.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { scrollInputCaretIntoView } from '../../lib/scrollInputCaretIntoView.js';\nimport { isElement, isNonNullable, isNullable } from '../../lib/utils.js';\nimport type { Nullable, Override } from '../../typings/utility-types.js';\nimport { Input } from '../Input/index.js';\nimport type { InputProps } from '../Input/index.js';\nimport { MAX_SAFE_DIGITS } from './constants.js';\nimport { CurrencyHelper } from './CurrencyHelper.js';\nimport { CurrencyInputHelper } from './CurrencyInputHelper.js';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions.js';\nimport type { Selection, SelectionDirection } from './SelectionHelper.js';\nimport { SelectionHelper } from './SelectionHelper.js';\n\nexport interface CurrencyInputProps\n extends\n Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n Omit<InputProps, 'showClearIcon' | 'maxLength'>,\n {\n /** Значение поля. */\n value?: Nullable<number>;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Устанавливает минимальное количество отображаемых знаков после запятой. Если fractionDigits=15, то в целой части допускается только **0**. */\n fractionDigits?: Nullable<number>;\n\n /** Разрешает вводить в поле символ минуса для отрицательных значений. */\n signed?: boolean;\n\n /** Допустимое количество цифр целой части до запятой.\n * Если передан **0**, то в целой части допускается только **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@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(\n isNumeric(props.value) || isNullable(props.value),\n '[CurrencyInput]: Prop `value` is not a valid number. Received value is `' + props.value + '`.',\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 CurrencyInput documentation`,\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 public getRootNode!: TGetRootNode;\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(): React.JSX.Element {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>): React.JSX.Element => {\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 * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus = (): void => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur = (): void => {\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 private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n this.setSelectionFromEvent(event);\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) {\n scrollInputCaretIntoView(node, this.state.selection);\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 this.props.onPaste?.(event);\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 (!isElement(input) || !isInstanceOf(input, getOwnerGlobalObject(input).HTMLInputElement)) {\n warning(false, 'input is not HTMLInputElement');\n\n return {\n start: 0,\n end: 0,\n direction: 'none',\n };\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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CurrencyInputHelper.js","sourceRoot":"","sources":["../../../components/CurrencyInput/CurrencyInputHelper.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from '../../typings/utility-types.js';\n\nimport type { Selection } from './SelectionHelper.js';\nimport { CurrencyHelper } from './CurrencyHelper.js';\nimport { CursorHelper } from './CursorHelper.js';\n\nexport interface DecimalOptions {\n /** Задает допустимое количество цифр целой части. Если передан 0, или fractionDigits=15, то и в целой части допускается только 0. */\n integerDigits?: Nullable<number>;\n\n /** Устанавливает минимальное количество отображаемых знаков после запятой. */\n fractionDigits?: Nullable<number>;\n\n /** Определяет, является ли число беззнаковым. */\n unsigned?: boolean;\n}\n\nexport class CurrencyInputHelper {\n public static moveCursor(value: string, selection: Selection, step: number): number {\n if (selection.start === selection.end) {\n return CursorHelper.calculatePosition(CurrencyHelper.getInfo(value).cursorMap, selection.start, step);\n } else if (step < 0) {\n return selection.start;\n }\n\n return selection.end;\n }\n\n public static extendSelection(value: string, selection: Selection, step: number): Selection {\n const info = CurrencyHelper.getInfo(value);\n return CursorHelper.extendSelection(info.cursorMap, selection, step);\n }\n\n public static normalizeSelection(value: string, selection: Selection): Selection {\n const info = CurrencyHelper.getInfo(value);\n return CursorHelper.normalizeSelection(info.cursorMap, selection);\n }\n\n public static safeInsert(\n value: string,\n start: number,\n end: number,\n input: string,\n options: DecimalOptions,\n ): { value: string; position: number } | null {\n if (input && start === 0 && end === value.length) {\n const extracted = CurrencyHelper.extractValid(input, options);\n if (!extracted) {\n return null;\n }\n return CurrencyInputHelper.insert(value, start, end, extracted);\n }\n\n const prefix = value.substring(0, start);\n const suffix = value.substring(end);\n\n const combined = prefix + input + suffix;\n if (CurrencyHelper.isValidString(combined, options)) {\n return CurrencyInputHelper.insert(value, start, end, input);\n }\n return null;\n }\n\n public static insert(\n value: string,\n start: number,\n end: number,\n input: string,\n ): { value: string; position: number } | null {\n const prefix = value.substring(0, start);\n const suffix = value.substring(end);\n\n const info = CurrencyHelper.getInfo(value);\n const raw = CursorHelper.toRawPosition(info.cursorMap, start);\n const info2 = CurrencyHelper.getInfo(prefix + input + suffix);\n const formattedPosition = CursorHelper.toFormattedPosition(info2.cursorMap, raw + input.length);\n\n return { value: info2.formatted, position: formattedPosition };\n }\n}\n"]}
1
+ {"version":3,"file":"CurrencyInputHelper.js","sourceRoot":"","sources":["../../../components/CurrencyInput/CurrencyInputHelper.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from '../../typings/utility-types.js';\nimport { CurrencyHelper } from './CurrencyHelper.js';\nimport { CursorHelper } from './CursorHelper.js';\nimport type { Selection } from './SelectionHelper.js';\n\nexport interface DecimalOptions {\n /** Задает допустимое количество цифр целой части. Если передан 0, или fractionDigits=15, то и в целой части допускается только 0. */\n integerDigits?: Nullable<number>;\n\n /** Устанавливает минимальное количество отображаемых знаков после запятой. */\n fractionDigits?: Nullable<number>;\n\n /** Определяет, является ли число беззнаковым. */\n unsigned?: boolean;\n}\n\nexport class CurrencyInputHelper {\n public static moveCursor(value: string, selection: Selection, step: number): number {\n if (selection.start === selection.end) {\n return CursorHelper.calculatePosition(CurrencyHelper.getInfo(value).cursorMap, selection.start, step);\n } else if (step < 0) {\n return selection.start;\n }\n\n return selection.end;\n }\n\n public static extendSelection(value: string, selection: Selection, step: number): Selection {\n const info = CurrencyHelper.getInfo(value);\n return CursorHelper.extendSelection(info.cursorMap, selection, step);\n }\n\n public static normalizeSelection(value: string, selection: Selection): Selection {\n const info = CurrencyHelper.getInfo(value);\n return CursorHelper.normalizeSelection(info.cursorMap, selection);\n }\n\n public static safeInsert(\n value: string,\n start: number,\n end: number,\n input: string,\n options: DecimalOptions,\n ): { value: string; position: number } | null {\n if (input && start === 0 && end === value.length) {\n const extracted = CurrencyHelper.extractValid(input, options);\n if (!extracted) {\n return null;\n }\n return CurrencyInputHelper.insert(value, start, end, extracted);\n }\n\n const prefix = value.substring(0, start);\n const suffix = value.substring(end);\n\n const combined = prefix + input + suffix;\n if (CurrencyHelper.isValidString(combined, options)) {\n return CurrencyInputHelper.insert(value, start, end, input);\n }\n return null;\n }\n\n public static insert(\n value: string,\n start: number,\n end: number,\n input: string,\n ): { value: string; position: number } | null {\n const prefix = value.substring(0, start);\n const suffix = value.substring(end);\n\n const info = CurrencyHelper.getInfo(value);\n const raw = CursorHelper.toRawPosition(info.cursorMap, start);\n const info2 = CurrencyHelper.getInfo(prefix + input + suffix);\n const formattedPosition = CursorHelper.toFormattedPosition(info2.cursorMap, raw + input.length);\n\n return { value: info2.formatted, position: formattedPosition };\n }\n}\n"]}
@@ -22,10 +22,10 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  };
23
23
  import React from 'react';
24
24
  import warning from 'warning';
25
- import { MAX_SAFE_DIGITS } from '../CurrencyInput/constants.js';
26
- import { CurrencyHelper } from '../CurrencyInput/CurrencyHelper.js';
27
25
  import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
28
26
  import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
27
+ import { MAX_SAFE_DIGITS } from '../CurrencyInput/constants.js';
28
+ import { CurrencyHelper } from '../CurrencyInput/CurrencyHelper.js';
29
29
  var FRACTION_DIGITS_DEFAULT = 2;
30
30
  export var CurrencyLabelDataTids = {
31
31
  root: 'CurrencyLabel__root',
@@ -1 +1 @@
1
- {"version":3,"file":"CurrencyLabel.js","sourceRoot":"","sources":["../../../components/CurrencyLabel/CurrencyLabel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAiBnE,IAAM,uBAAuB,GAAG,CAAC,CAAC;AAElC,MAAM,CAAC,IAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,qBAAqB;CACnB,CAAC;AAEX;;GAEG;AACH,IAAM,aAAa,GAAG,iBAAiB,CACrC,eAAe,EACf,SAAS,aAAa,CACpB,EAOqB,EACrB,GAA8B;IAP5B,IAAA,EAAE,QAAA,EACF,KAAK,WAAA,EACL,sBAAwC,EAAxC,cAAc,mBAAG,uBAAuB,KAAA,EACxC,cAAc,oBAAA,EACd,yBAAyB,EAAzB,iBAAiB,mBAAG,KAAK,KAAA,EACtB,IAAI,cANT,wEAOC,CADQ;IAIT,KAAK,CAAC,SAAS,CAAC;QACd,OAAO,CACL,cAAc,IAAI,eAAe,EACjC,yDAAkD,eAAe,uCAAoC,CACtG,CAAC;QAEM,IAAA,QAAQ,GAAK,CAAA,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA,SAArE,CAAsE;QACtF,OAAO,CACL,QAAQ,CAAC,MAAM,IAAI,cAAc,EACjC,2FAA2F;YACzF,4BAA4B,CAC/B,CAAC;QAEF,OAAO,CACL,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,EAChC,yGAAyG,CAC1G,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,oBAAC,aAAa,eAAK,IAAI;QACrB,8BAAM,EAAE,EAAE,EAAE,cAAY,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG;YACzD,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,cAAc,gBAAA,EAAE,iBAAiB,mBAAA,EAAE,CAAC;YACnE,cAAc,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY;YACxD,cAAc,CACV,CACO,CACjB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC","sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants.js';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/types.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\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 * Подпись для денежных сумм и других числовых значений.\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}.\\nSee CurrencyInput documentation`,\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"]}
1
+ {"version":3,"file":"CurrencyLabel.js","sourceRoot":"","sources":["../../../components/CurrencyLabel/CurrencyLabel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAiBpE,IAAM,uBAAuB,GAAG,CAAC,CAAC;AAElC,MAAM,CAAC,IAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,qBAAqB;CACnB,CAAC;AAEX;;GAEG;AACH,IAAM,aAAa,GAAG,iBAAiB,CACrC,eAAe,EACf,SAAS,aAAa,CACpB,EAOqB,EACrB,GAA8B;IAP5B,IAAA,EAAE,QAAA,EACF,KAAK,WAAA,EACL,sBAAwC,EAAxC,cAAc,mBAAG,uBAAuB,KAAA,EACxC,cAAc,oBAAA,EACd,yBAAyB,EAAzB,iBAAiB,mBAAG,KAAK,KAAA,EACtB,IAAI,cANT,wEAOC,CADQ;IAIT,KAAK,CAAC,SAAS,CAAC;QACd,OAAO,CACL,cAAc,IAAI,eAAe,EACjC,yDAAkD,eAAe,uCAAoC,CACtG,CAAC;QAEM,IAAA,QAAQ,GAAK,CAAA,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA,SAArE,CAAsE;QACtF,OAAO,CACL,QAAQ,CAAC,MAAM,IAAI,cAAc,EACjC,2FAA2F;YACzF,4BAA4B,CAC/B,CAAC;QAEF,OAAO,CACL,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,EAChC,yGAAyG,CAC1G,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,oBAAC,aAAa,eAAK,IAAI;QACrB,8BAAM,EAAE,EAAE,EAAE,cAAY,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG;YACzD,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,cAAc,gBAAA,EAAE,iBAAiB,mBAAA,EAAE,CAAC;YACnE,cAAc,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY;YACxD,cAAc,CACV,CACO,CACjB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC","sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/types.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants.js';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper.js';\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 * Подпись для денежных сумм и других числовых значений.\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}.\\nSee CurrencyInput documentation`,\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"]}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import type { InternalDateFragment } from '../../lib/date/types.js';
3
2
  import { InternalDateComponentType } from '../../lib/date/types.js';
3
+ import type { InternalDateFragment } from '../../lib/date/types.js';
4
4
  interface DateFragmentViewProps {
5
5
  selected: InternalDateComponentType | null;
6
6
  fragments: InternalDateFragment[];
@@ -23,8 +23,8 @@ import React from 'react';
23
23
  import { MaskCharLowLine } from '../../internal/MaskCharLowLine/index.js';
24
24
  import { InternalDateValidator } from '../../lib/date/InternalDateValidator.js';
25
25
  import { InternalDateComponentType } from '../../lib/date/types.js';
26
- import { ThemeContext } from '../../lib/theming/ThemeContext.js';
27
26
  import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
27
+ import { ThemeContext } from '../../lib/theming/ThemeContext.js';
28
28
  import { getStyles } from './DateFragmentsView.styles.js';
29
29
  var DateFragmentsView = /** @class */ (function (_super) {
30
30
  __extends(DateFragmentsView, _super);