@skbkontur/react-ui 6.0.0-beta.1 → 6.0.0-beta.3

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 (299) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/components/Calendar/Calendar.js +1 -27
  3. package/components/Calendar/Calendar.js.map +1 -1
  4. package/components/Calendar/CalendarDay.js +1 -1
  5. package/components/Calendar/CalendarDay.js.map +1 -1
  6. package/components/Checkbox/Checkbox.d.ts +2 -4
  7. package/components/Checkbox/Checkbox.js +9 -4
  8. package/components/Checkbox/Checkbox.js.map +1 -1
  9. package/components/CurrencyInput/CurrencyInput.js +3 -18
  10. package/components/CurrencyInput/CurrencyInput.js.map +1 -1
  11. package/components/Dropdown/Dropdown.d.ts +18 -19
  12. package/components/Dropdown/Dropdown.js +2 -2
  13. package/components/Dropdown/Dropdown.js.map +1 -1
  14. package/components/FileUploader/FileUploader.d.ts +4 -4
  15. package/components/FileUploader/FileUploader.js +10 -10
  16. package/components/FileUploader/FileUploader.js.map +1 -1
  17. package/components/FileUploader/FileUploaderControlContext.js.map +1 -0
  18. package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderControlProvider.d.ts +0 -4
  19. package/components/FileUploader/FileUploaderControlProvider.js.map +1 -0
  20. package/components/FileUploader/FileUploaderFile.d.ts +1 -1
  21. package/components/FileUploader/FileUploaderFile.js +5 -5
  22. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  23. package/{internal/FileUploaderControl/FileUploaderFile → components/FileUploader}/FileUploaderFile.styles.d.ts +4 -4
  24. package/{internal/FileUploaderControl/FileUploaderFile → components/FileUploader}/FileUploaderFile.styles.js +1 -1
  25. package/components/FileUploader/FileUploaderFile.styles.js.map +1 -0
  26. package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileList/FileUploaderFileList.d.ts +4 -6
  27. package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileList/FileUploaderFileList.js +3 -4
  28. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -0
  29. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -0
  30. package/{internal/FileUploaderControl/FileUploaderFile/icons → components/FileUploader}/FileUploaderFileStatusIcon.d.ts +2 -2
  31. package/{internal/FileUploaderControl/FileUploaderFile/icons → components/FileUploader}/FileUploaderFileStatusIcon.js +11 -12
  32. package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -0
  33. package/{internal/FileUploaderControl/FileUploaderFile/icons → components/FileUploader}/FileUploaderFileTypeIcon.d.ts +2 -2
  34. package/{internal/FileUploaderControl/FileUploaderFile/icons → components/FileUploader}/FileUploaderFileTypeIcon.js +23 -23
  35. package/components/FileUploader/FileUploaderFileTypeIcon.js.map +1 -0
  36. package/components/FileUploader/FileUploaderFileValidationResult.js.map +1 -0
  37. package/components/FileUploader/fileUtils.js.map +1 -0
  38. package/components/FileUploader/hooks/useControlLocale.d.ts +2 -0
  39. package/components/FileUploader/hooks/useControlLocale.js +6 -0
  40. package/components/FileUploader/hooks/useControlLocale.js.map +1 -0
  41. package/components/FileUploader/hooks/useFileUploaderSize.js.map +1 -0
  42. package/{internal/FileUploaderControl → components/FileUploader}/hooks/useUpload.d.ts +1 -1
  43. package/components/FileUploader/hooks/useUpload.js.map +1 -0
  44. package/components/FileUploader/icons/{TileUploadIcon.d.ts → DeleteIcon.d.ts} +1 -1
  45. package/components/FileUploader/icons/DeleteIcon.js +11 -0
  46. package/components/FileUploader/icons/DeleteIcon.js.map +1 -0
  47. package/components/FileUploader/{UploadIcon.d.ts → icons/UploadIcon.d.ts} +2 -2
  48. package/components/FileUploader/{UploadIcon.js → icons/UploadIcon.js} +2 -2
  49. package/components/FileUploader/icons/UploadIcon.js.map +1 -0
  50. package/components/FileUploader/icons/row/ArchiveIcon.d.ts +3 -0
  51. package/components/FileUploader/icons/row/ArchiveIcon.js +11 -0
  52. package/components/FileUploader/icons/row/ArchiveIcon.js.map +1 -0
  53. package/components/FileUploader/icons/row/DocTextIcon.d.ts +3 -0
  54. package/components/FileUploader/icons/row/DocTextIcon.js +11 -0
  55. package/components/FileUploader/icons/row/DocTextIcon.js.map +1 -0
  56. package/components/FileUploader/icons/row/FolderIcon.d.ts +3 -0
  57. package/components/FileUploader/icons/row/FolderIcon.js +11 -0
  58. package/components/FileUploader/icons/row/FolderIcon.js.map +1 -0
  59. package/components/FileUploader/icons/row/MarkupIcon.d.ts +3 -0
  60. package/components/FileUploader/icons/row/MarkupIcon.js +11 -0
  61. package/components/FileUploader/icons/row/MarkupIcon.js.map +1 -0
  62. package/components/FileUploader/icons/row/PdfIcon.d.ts +3 -0
  63. package/components/FileUploader/icons/row/PdfIcon.js +11 -0
  64. package/components/FileUploader/icons/row/PdfIcon.js.map +1 -0
  65. package/components/FileUploader/icons/row/PictureIcon.d.ts +3 -0
  66. package/components/FileUploader/icons/row/PictureIcon.js +11 -0
  67. package/components/FileUploader/icons/row/PictureIcon.js.map +1 -0
  68. package/components/FileUploader/icons/row/PresentationIcon.d.ts +3 -0
  69. package/components/FileUploader/icons/row/PresentationIcon.js +11 -0
  70. package/components/FileUploader/icons/row/PresentationIcon.js.map +1 -0
  71. package/components/FileUploader/icons/row/RowUploadIcon.d.ts +3 -0
  72. package/components/FileUploader/icons/row/RowUploadIcon.js +11 -0
  73. package/components/FileUploader/icons/row/RowUploadIcon.js.map +1 -0
  74. package/components/FileUploader/icons/row/TableIcon.d.ts +3 -0
  75. package/components/FileUploader/icons/row/TableIcon.js +11 -0
  76. package/components/FileUploader/icons/row/TableIcon.js.map +1 -0
  77. package/components/FileUploader/icons/row/TextIcon.d.ts +3 -0
  78. package/components/FileUploader/icons/row/TextIcon.js +11 -0
  79. package/components/FileUploader/icons/row/TextIcon.js.map +1 -0
  80. package/components/FileUploader/icons/row/ValidationErrorIcon.d.ts +3 -0
  81. package/components/FileUploader/icons/row/ValidationErrorIcon.js +11 -0
  82. package/components/FileUploader/icons/row/ValidationErrorIcon.js.map +1 -0
  83. package/components/FileUploader/icons/row/ValidationWarningIcon.d.ts +3 -0
  84. package/components/FileUploader/icons/row/ValidationWarningIcon.js +11 -0
  85. package/components/FileUploader/icons/row/ValidationWarningIcon.js.map +1 -0
  86. package/components/FileUploader/icons/tile/ArchiveIcon.d.ts +3 -0
  87. package/components/FileUploader/icons/tile/ArchiveIcon.js +11 -0
  88. package/components/FileUploader/icons/tile/ArchiveIcon.js.map +1 -0
  89. package/components/FileUploader/icons/tile/DocTextIcon.d.ts +3 -0
  90. package/components/FileUploader/icons/tile/DocTextIcon.js +11 -0
  91. package/components/FileUploader/icons/tile/DocTextIcon.js.map +1 -0
  92. package/components/FileUploader/icons/tile/FolderIcon.d.ts +3 -0
  93. package/components/FileUploader/icons/tile/FolderIcon.js +11 -0
  94. package/components/FileUploader/icons/tile/FolderIcon.js.map +1 -0
  95. package/components/FileUploader/icons/tile/MarkupIcon.d.ts +3 -0
  96. package/components/FileUploader/icons/tile/MarkupIcon.js +11 -0
  97. package/components/FileUploader/icons/tile/MarkupIcon.js.map +1 -0
  98. package/components/FileUploader/icons/tile/PdfIcon.d.ts +3 -0
  99. package/components/FileUploader/icons/tile/PdfIcon.js +11 -0
  100. package/components/FileUploader/icons/tile/PdfIcon.js.map +1 -0
  101. package/components/FileUploader/icons/tile/PictureIcon.d.ts +3 -0
  102. package/components/FileUploader/icons/tile/PictureIcon.js +11 -0
  103. package/components/FileUploader/icons/tile/PictureIcon.js.map +1 -0
  104. package/components/FileUploader/icons/tile/PresentationIcon.d.ts +3 -0
  105. package/components/FileUploader/icons/tile/PresentationIcon.js +11 -0
  106. package/components/FileUploader/icons/tile/PresentationIcon.js.map +1 -0
  107. package/components/FileUploader/icons/tile/TableIcon.d.ts +3 -0
  108. package/components/FileUploader/icons/tile/TableIcon.js +11 -0
  109. package/components/FileUploader/icons/tile/TableIcon.js.map +1 -0
  110. package/components/FileUploader/icons/tile/TextIcon.d.ts +3 -0
  111. package/components/FileUploader/icons/tile/TextIcon.js +11 -0
  112. package/components/FileUploader/icons/tile/TextIcon.js.map +1 -0
  113. package/components/FileUploader/icons/tile/TileUploadIcon.d.ts +3 -0
  114. package/components/FileUploader/icons/tile/TileUploadIcon.js +11 -0
  115. package/components/FileUploader/icons/tile/TileUploadIcon.js.map +1 -0
  116. package/components/FileUploader/icons/tile/ValidationErrorIcon.d.ts +3 -0
  117. package/components/FileUploader/icons/tile/ValidationErrorIcon.js +11 -0
  118. package/components/FileUploader/icons/tile/ValidationErrorIcon.js.map +1 -0
  119. package/components/FileUploader/icons/tile/ValidationWarningIcon.d.ts +3 -0
  120. package/components/FileUploader/icons/tile/ValidationWarningIcon.js +11 -0
  121. package/components/FileUploader/icons/tile/ValidationWarningIcon.js.map +1 -0
  122. package/components/FileUploader/index.d.ts +3 -3
  123. package/components/FileUploader/index.js +2 -2
  124. package/components/FileUploader/index.js.map +1 -1
  125. package/components/FileUploader/withFileUploaderControlProvider.js.map +1 -0
  126. package/components/FxInput/FxInput.js +3 -1
  127. package/components/FxInput/FxInput.js.map +1 -1
  128. package/components/GlobalLoader/GlobalLoader.d.ts +20 -23
  129. package/components/GlobalLoader/GlobalLoader.js +10 -13
  130. package/components/GlobalLoader/GlobalLoader.js.map +1 -1
  131. package/components/Kebab/Kebab.d.ts +10 -11
  132. package/components/Kebab/Kebab.js +1 -1
  133. package/components/Kebab/Kebab.js.map +1 -1
  134. package/components/Loader/Loader.d.ts +9 -9
  135. package/components/Loader/Loader.js +3 -3
  136. package/components/Loader/Loader.js.map +1 -1
  137. package/components/MaskedInput/FixedIMaskInput.js +11 -0
  138. package/components/MaskedInput/FixedIMaskInput.js.map +1 -1
  139. package/components/Modal/Modal.styles.js +1 -1
  140. package/components/Modal/Modal.styles.js.map +1 -1
  141. package/components/Paging/Paging.d.ts +23 -23
  142. package/components/Paging/Paging.js.map +1 -1
  143. package/components/PasswordInput/PasswordInput.js +1 -1
  144. package/components/PasswordInput/PasswordInput.js.map +1 -1
  145. package/components/Spinner/Spinner.d.ts +28 -16
  146. package/components/Spinner/Spinner.js +0 -5
  147. package/components/Spinner/Spinner.js.map +1 -1
  148. package/components/Tabs/Indicator.styles.d.ts +1 -0
  149. package/components/Tabs/Indicator.styles.js +4 -1
  150. package/components/Tabs/Indicator.styles.js.map +1 -1
  151. package/components/Tabs/Tab.d.ts +11 -10
  152. package/components/Tabs/Tab.js +3 -1
  153. package/components/Tabs/Tab.js.map +1 -1
  154. package/components/Tabs/Tabs.d.ts +7 -12
  155. package/components/Tabs/Tabs.js +1 -6
  156. package/components/Tabs/Tabs.js.map +1 -1
  157. package/components/Textarea/Textarea.styles.js +1 -1
  158. package/components/Textarea/Textarea.styles.js.map +1 -1
  159. package/components/Toast/Toast.d.ts +3 -3
  160. package/components/Toast/Toast.js.map +1 -1
  161. package/components/Tooltip/Tooltip.d.ts +1 -1
  162. package/components/Tooltip/Tooltip.js.map +1 -1
  163. package/internal/CommonWrapper/index.js.map +1 -1
  164. package/internal/CustomComboBox/index.js.map +1 -1
  165. package/internal/DateSelect/index.js.map +1 -1
  166. package/internal/FocusControlWrapper/index.js.map +1 -1
  167. package/internal/FocusTrap/index.js.map +1 -1
  168. package/internal/HideBodyVerticalScroll/index.js.map +1 -1
  169. package/internal/InputLikeText/index.js.map +1 -1
  170. package/internal/MaskCharLowLine/index.js.map +1 -1
  171. package/internal/Menu/Menu.d.ts +1 -2
  172. package/internal/Menu/Menu.js.map +1 -1
  173. package/internal/Popup/index.js.map +1 -1
  174. package/internal/PopupMenu/PopupMenu.d.ts +3 -7
  175. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  176. package/internal/PopupMenu/index.js.map +1 -1
  177. package/internal/RenderContainer/RenderContainer.d.ts +3 -0
  178. package/internal/RenderContainer/RenderContainer.js +4 -1
  179. package/internal/RenderContainer/RenderContainer.js.map +1 -1
  180. package/internal/RenderContainer/index.js.map +1 -1
  181. package/internal/ResizeDetector/index.js.map +1 -1
  182. package/internal/themes/BasicTheme.d.ts +1 -0
  183. package/internal/themes/BasicTheme.js +1 -0
  184. package/internal/themes/BasicTheme.js.map +1 -1
  185. package/lib/rootNode/getRootNode.js +0 -24
  186. package/lib/rootNode/getRootNode.js.map +1 -1
  187. package/lib/scrollInputCaretIntoView.d.ts +14 -0
  188. package/lib/scrollInputCaretIntoView.js +38 -0
  189. package/lib/scrollInputCaretIntoView.js.map +1 -0
  190. package/lib/utils.js +2 -2
  191. package/lib/utils.js.map +1 -1
  192. package/package.json +142 -143
  193. package/components/FileUploader/UploadIcon.js.map +0 -1
  194. package/components/FileUploader/icons/RowUploadIcon.d.ts +0 -3
  195. package/components/FileUploader/icons/RowUploadIcon.js +0 -11
  196. package/components/FileUploader/icons/RowUploadIcon.js.map +0 -1
  197. package/components/FileUploader/icons/TileUploadIcon.js +0 -11
  198. package/components/FileUploader/icons/TileUploadIcon.js.map +0 -1
  199. package/internal/FileUploaderControl/FileUploaderControlContext.js.map +0 -1
  200. package/internal/FileUploaderControl/FileUploaderControlProvider.js.map +0 -1
  201. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -1
  202. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +0 -2
  203. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +0 -1
  204. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +0 -1
  205. package/internal/FileUploaderControl/FileUploaderFile/icons/DeleteIcon.d.ts +0 -3
  206. package/internal/FileUploaderControl/FileUploaderFile/icons/DeleteIcon.js +0 -11
  207. package/internal/FileUploaderControl/FileUploaderFile/icons/DeleteIcon.js.map +0 -1
  208. package/internal/FileUploaderControl/FileUploaderFile/icons/FileUploaderFileStatusIcon.js.map +0 -1
  209. package/internal/FileUploaderControl/FileUploaderFile/icons/FileUploaderFileTypeIcon.js.map +0 -1
  210. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ArchiveIcon.d.ts +0 -3
  211. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ArchiveIcon.js +0 -11
  212. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ArchiveIcon.js.map +0 -1
  213. package/internal/FileUploaderControl/FileUploaderFile/icons/row/DocTextIcon.d.ts +0 -3
  214. package/internal/FileUploaderControl/FileUploaderFile/icons/row/DocTextIcon.js +0 -11
  215. package/internal/FileUploaderControl/FileUploaderFile/icons/row/DocTextIcon.js.map +0 -1
  216. package/internal/FileUploaderControl/FileUploaderFile/icons/row/FolderIcon.d.ts +0 -3
  217. package/internal/FileUploaderControl/FileUploaderFile/icons/row/FolderIcon.js +0 -11
  218. package/internal/FileUploaderControl/FileUploaderFile/icons/row/FolderIcon.js.map +0 -1
  219. package/internal/FileUploaderControl/FileUploaderFile/icons/row/MarkupIcon.d.ts +0 -3
  220. package/internal/FileUploaderControl/FileUploaderFile/icons/row/MarkupIcon.js +0 -11
  221. package/internal/FileUploaderControl/FileUploaderFile/icons/row/MarkupIcon.js.map +0 -1
  222. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PdfIcon.d.ts +0 -3
  223. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PdfIcon.js +0 -11
  224. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PdfIcon.js.map +0 -1
  225. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PictureIcon.d.ts +0 -3
  226. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PictureIcon.js +0 -11
  227. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PictureIcon.js.map +0 -1
  228. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PresentationIcon.d.ts +0 -3
  229. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PresentationIcon.js +0 -11
  230. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PresentationIcon.js.map +0 -1
  231. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TableIcon.d.ts +0 -3
  232. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TableIcon.js +0 -11
  233. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TableIcon.js.map +0 -1
  234. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TextIcon.d.ts +0 -3
  235. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TextIcon.js +0 -11
  236. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TextIcon.js.map +0 -1
  237. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationErrorIcon.d.ts +0 -3
  238. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationErrorIcon.js +0 -11
  239. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationErrorIcon.js.map +0 -1
  240. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationWarningIcon.d.ts +0 -3
  241. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationWarningIcon.js +0 -11
  242. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationWarningIcon.js.map +0 -1
  243. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ArchiveIcon.d.ts +0 -3
  244. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ArchiveIcon.js +0 -11
  245. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ArchiveIcon.js.map +0 -1
  246. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/DocTextIcon.d.ts +0 -3
  247. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/DocTextIcon.js +0 -11
  248. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/DocTextIcon.js.map +0 -1
  249. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/FolderIcon.d.ts +0 -3
  250. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/FolderIcon.js +0 -11
  251. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/FolderIcon.js.map +0 -1
  252. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/MarkupIcon.d.ts +0 -3
  253. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/MarkupIcon.js +0 -11
  254. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/MarkupIcon.js.map +0 -1
  255. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PdfIcon.d.ts +0 -3
  256. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PdfIcon.js +0 -11
  257. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PdfIcon.js.map +0 -1
  258. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PictureIcon.d.ts +0 -3
  259. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PictureIcon.js +0 -11
  260. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PictureIcon.js.map +0 -1
  261. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PresentationIcon.d.ts +0 -3
  262. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PresentationIcon.js +0 -11
  263. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PresentationIcon.js.map +0 -1
  264. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TableIcon.d.ts +0 -3
  265. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TableIcon.js +0 -11
  266. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TableIcon.js.map +0 -1
  267. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TextIcon.d.ts +0 -3
  268. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TextIcon.js +0 -11
  269. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TextIcon.js.map +0 -1
  270. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationErrorIcon.d.ts +0 -3
  271. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationErrorIcon.js +0 -11
  272. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationErrorIcon.js.map +0 -1
  273. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationWarningIcon.d.ts +0 -3
  274. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationWarningIcon.js +0 -11
  275. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationWarningIcon.js.map +0 -1
  276. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  277. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
  278. package/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +0 -1
  279. package/internal/FileUploaderControl/fileUtils.js.map +0 -1
  280. package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  281. package/internal/FileUploaderControl/hooks/useControlLocale.js +0 -4
  282. package/internal/FileUploaderControl/hooks/useControlLocale.js.map +0 -1
  283. package/internal/FileUploaderControl/hooks/useFileUploaderSize.js.map +0 -1
  284. package/internal/FileUploaderControl/hooks/useUpload.js.map +0 -1
  285. package/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +0 -1
  286. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderControlContext.d.ts +0 -0
  287. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderControlContext.js +0 -0
  288. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderControlProvider.js +0 -0
  289. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -0
  290. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileList/FileUploaderFileList.styles.js +0 -0
  291. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileValidationResult.d.ts +0 -0
  292. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileValidationResult.js +0 -0
  293. /package/{internal/FileUploaderControl → components/FileUploader}/fileUtils.d.ts +0 -0
  294. /package/{internal/FileUploaderControl → components/FileUploader}/fileUtils.js +0 -0
  295. /package/{internal/FileUploaderControl → components/FileUploader}/hooks/useFileUploaderSize.d.ts +0 -0
  296. /package/{internal/FileUploaderControl → components/FileUploader}/hooks/useFileUploaderSize.js +0 -0
  297. /package/{internal/FileUploaderControl → components/FileUploader}/hooks/useUpload.js +0 -0
  298. /package/{internal/FileUploaderControl → components/FileUploader}/withFileUploaderControlProvider.d.ts +0 -0
  299. /package/{internal/FileUploaderControl → components/FileUploader}/withFileUploaderControlProvider.js +0 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,51 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.6.8](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.7...@skbkontur/react-ui@5.6.8) (2026-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **Calendar:** show year label only for first month ([0513727](https://github.com/skbkontur/retail-ui/commit/05137279c82a4a77bc4d875e708890117659aac1))
12
+ * **Textarea:** remove min-width ([8941d1b](https://github.com/skbkontur/retail-ui/commit/8941d1ba9f3aa88e53cd9d6fdc2b3bd99606a674))
13
+
14
+
15
+
16
+
17
+
18
+ ## [5.6.7](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.6...@skbkontur/react-ui@5.6.7) (2026-03-12)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **Calendar:** fix color calendar active weekend by figma ([ab605b6](https://github.com/skbkontur/retail-ui/commit/ab605b6b1933cd23fa2cc7553496812f4bdc37cf))
24
+
25
+
26
+
27
+
28
+
29
+ ## [5.6.6](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.5...@skbkontur/react-ui@5.6.6) (2026-02-26)
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * **MaskedInput:** scroll when cursor move in input ([1b574d5](https://github.com/skbkontur/retail-ui/commit/1b574d50539bfab0b71d1963eefdbab3edef77e6))
35
+
36
+
37
+
38
+
39
+
40
+ ## [5.6.5](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.4...@skbkontur/react-ui@5.6.5) (2026-02-20)
41
+
42
+
43
+ ### Bug Fixes
44
+
45
+ * **Modal:** double scroll bars in mobile with panel footer ([a92b8ef](https://github.com/skbkontur/retail-ui/commit/a92b8ef35788f19b61b07522e20673a4c4cf1373))
46
+
47
+
48
+
49
+
50
+
6
51
  ## [5.6.4](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.3...@skbkontur/react-ui@5.6.4) (2026-02-06)
7
52
 
8
53
 
@@ -112,7 +112,7 @@ var Calendar = /** @class */ (function (_super) {
112
112
  * @public
113
113
  */
114
114
  _this.scrollToMonth = function (month, year) { return __awaiter(_this, void 0, void 0, function () {
115
- var monthNative, minDate, maxDate, minMonth, maxMonth, currentMonth, diffInMonths, maxMonthsToAdd, onEnd, isYearChanges, monthsToPrependCount, monthsToPrepend_1, monthsToAppendCount_1, monthsToAppend_1;
115
+ var monthNative, minDate, maxDate, minMonth, maxMonth, currentMonth, diffInMonths, maxMonthsToAdd, onEnd, monthsToPrependCount, monthsToPrepend_1, monthsToAppendCount_1, monthsToAppend_1;
116
116
  var _this = this;
117
117
  return __generator(this, function (_a) {
118
118
  switch (_a.label) {
@@ -152,13 +152,6 @@ var Calendar = /** @class */ (function (_super) {
152
152
  scrollPosition: 0,
153
153
  });
154
154
  };
155
- isYearChanges = function (state) {
156
- return (state.months[1].year !== year &&
157
- // if diff in months is 2 or less,
158
- // either year is not changing either months already
159
- // have right isFirstInYear/isLastInYear flags
160
- Math.abs(diffInMonths) > 2);
161
- };
162
155
  // If scrolling upwards, prepend maximum maxMonthsToAdd months
163
156
  // and scroll to the first month
164
157
  if (diffInMonths > 0) {
@@ -167,16 +160,6 @@ var Calendar = /** @class */ (function (_super) {
167
160
  return MonthViewModel.create(monthNative + index, year);
168
161
  });
169
162
  this.setState(function (state) {
170
- var yearChanges = isYearChanges(state);
171
- if (yearChanges) {
172
- // Mutating here can lead to some unexpected bugs
173
- // but we couldn't find any yet
174
- state.months[0].isFirstInYear = true;
175
- if (monthsToPrepend_1.length) {
176
- // Mutating item here is safe as it was just created
177
- monthsToPrepend_1[monthsToPrepend_1.length - 1].isLastInYear = true;
178
- }
179
- }
180
163
  return {
181
164
  months: monthsToPrepend_1.concat(state.months),
182
165
  scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend_1, _this.theme),
@@ -194,15 +177,6 @@ var Calendar = /** @class */ (function (_super) {
194
177
  return MonthViewModel.create(monthNative + index - monthsToAppendCount_1 + 2, year);
195
178
  });
196
179
  this.setState(function (state) {
197
- if (isYearChanges(state)) {
198
- // Mutating here can lead to some unexpected bugs
199
- // but we couldn't find any yet
200
- state.months[state.months.length - 1].isLastInYear = true;
201
- // Mutating item here is safe as it was just created
202
- if (monthsToAppend_1[0]) {
203
- monthsToAppend_1[0].isFirstInYear = true;
204
- }
205
- }
206
180
  return { months: state.months.concat(monthsToAppend_1) };
207
181
  }, function () {
208
182
  var targetPosition = -1 * CalendarUtils.getMonthsHeight(_this.state.months.slice(1, -2), _this.theme);
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../../components/Calendar/Calendar.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\nimport shallowEqual from 'shallowequal';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject, SafeTimer } from '../../lib/globalObject.js';\nimport { isInstanceOf } from '../../lib/isInstanceOf.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants.js';\nimport type { Nullable, Range } from '../../typings/utility-types.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { animation } from '../../lib/animation/index.js';\nimport { isMobile } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\n\nimport { themeConfig } from './config.js';\nimport { MonthViewModel } from './MonthViewModel.js';\nimport * as CalendarScrollEvents from './CalendarScrollEvents.js';\nimport { Month } from './Month.js';\nimport { getStyles } from './Calendar.styles.js';\nimport type { CalendarDateShape } from './CalendarDateShape.js';\nimport { create, isGreater, isLess } from './CalendarDateShape.js';\nimport * as CalendarUtils from './CalendarUtils.js';\nimport type { CalendarContextProps } from './CalendarContext.js';\nimport { CalendarContext } from './CalendarContext.js';\nimport type { CalendarDayProps } from './CalendarDay.js';\nimport { CalendarDay } from './CalendarDay.js';\n\nexport interface CalendarProps extends CommonProps {\n /** Задает функцию, которая вызывается при изменении value.\n * @param {string} date - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (date: string) => void;\n\n /** Задает текущую дату в формате `dd.mm.yyyy`. */\n value: Nullable<string>;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy`. */\n maxDate?: string;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает начальную дату периода в формате `dd.mm.yyyy`. */\n periodStartDate?: string;\n\n /** Задает конечную дату периода в формате `dd.mm.yyyy`. */\n periodEndDate?: string;\n\n /** Задает функцию для определения праздничных дней.\n * @default (_day, isWeekend) => isWeekend.\n * @param {string} day - строка в формате `dd.mm.yyyy`.\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье).\n * @returns {boolean} `true` для выходного или `false` для рабочего дня. */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n\n /** Задает начальный месяц. */\n initialMonth?: Range<1, 13>;\n\n /** Задает начальный год. */\n initialYear?: number;\n\n /** Задает метод отрисовки дат в календаре.\n * @default (props: CalendarDayProps) => <CalendarDay {...props} />\n * @param {CalendarDayProps} props - параметры дня.\n * @returns {ReactElement} элемент, который отрисовывает контент числа месяца. */\n renderDay?: (props: CalendarDayProps) => React.ReactElement<unknown>;\n\n /** Задает функцию, которая вызывается при каждом изменении месяца.\n * @param {CalendarMonthChangeInfo} changeInfo - информация о изменении отображаемого месяца, где\n * `month: number` - номер текущего отображаемого месяца от 1 до 12,\n * `year: number` - отображаемый год. */\n onMonthChange?: (changeInfo: CalendarMonthChangeInfo) => void;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n scrollDirection: number;\n scrollTarget: number;\n}\n\nexport interface CalendarMonthChangeInfo {\n month: number;\n year: number;\n}\n\nexport const CalendarDataTids = {\n root: 'Calendar__root',\n month: 'MonthView__month',\n dayCell: 'DayCellView__root',\n headerMonth: 'MonthView__headerMonth',\n headerYear: 'MonthView__headerYear',\n} as const;\n\ntype DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' | 'isHoliday'>>;\n\n/**\n * Компонент календаря `Calendar` из DatePicker'а помогает выбирать дату с помощью мыши.\n */\n@withRenderEnvironment\n@rootNode\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n public static displayName = 'Calendar';\n\n public static Day = CalendarDay;\n\n private static formatDate(date: number, month: number, year: number) {\n return new InternalDate().setComponents({ date, month, year }).toString({ withPad: true });\n }\n\n public static defaultProps: DefaultProps = {\n minDate: Calendar.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),\n maxDate: Calendar.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),\n isHoliday: (_day: string, isWeekend: boolean) => isWeekend,\n };\n\n private getProps = createPropsGetter(Calendar.defaultProps);\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private wheelEndTimeout: SafeTimer;\n private root: Nullable<HTMLElement>;\n private animation!: ReturnType<typeof animation>;\n private touchStartY: Nullable<number> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const { minDate, maxDate, value } = this.getProps();\n\n const minDateShape = this.getDateInNativeFormat(minDate);\n const maxDateShape = this.getDateInNativeFormat(maxDate);\n const dateShape = this.getDateInNativeFormat(value);\n\n const today = CalendarUtils.getTodayDate();\n const initialDate = CalendarUtils.getInitialDate({\n today,\n date: dateShape,\n minDate: minDateShape,\n maxDate: maxDateShape,\n });\n\n const initialMonth = this.props.initialMonth\n ? CalendarUtils.getMonthInNativeFormat(this.props.initialMonth)\n : initialDate.month;\n const initialYear = this.props.initialYear ?? initialDate.year;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n scrollDirection: 1,\n scrollTarget: 0,\n };\n }\n\n public componentDidUpdate(prevProps: Readonly<CalendarProps>, prevState: Readonly<CalendarState>): void {\n const { value, onMonthChange } = this.props;\n if (value && !shallowEqual(value, prevProps.value)) {\n const date = new InternalDate().parseValue(value).getComponentsLikeNumber();\n this.scrollToMonth(date.month, date.year);\n }\n\n if (onMonthChange) {\n const visibleMonthsModels = this.getVisibleMonths(this.state).map(this.getViewModel);\n const prevFirstVisibleMonthModels = this.getVisibleMonths(prevState).map(this.getViewModel);\n\n if (visibleMonthsModels.length > 0 && prevFirstVisibleMonthModels.length > 0) {\n const currentMonth = visibleMonthsModels[0].month;\n const prevCurrentMonth = prevFirstVisibleMonthModels[0].month;\n\n if (currentMonth !== prevCurrentMonth) {\n this.handleMonthChange(visibleMonthsModels);\n }\n }\n }\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\n }\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n this.animation = animation(this.globalObject);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Прокручивает календарь до переданной даты\n * @public\n */\n public scrollToMonth = async (month: number, year: number): Promise<void> => {\n const monthNative = CalendarUtils.getMonthInNativeFormat(month);\n\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => setTimeout(r, 0));\n }\n\n const minDate = this.getDateInNativeFormat(this.getProps().minDate);\n const maxDate = this.getDateInNativeFormat(this.getProps().maxDate);\n\n if (minDate && isGreater(minDate, create(32, monthNative, year))) {\n const minMonth = CalendarUtils.getMonthInHumanFormat(minDate.month);\n this.scrollToMonth(minMonth, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, monthNative, year))) {\n const maxMonth = CalendarUtils.getMonthInHumanFormat(maxDate.month);\n this.scrollToMonth(maxMonth, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - monthNative - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () => {\n this.setState({\n months: CalendarUtils.getMonths(monthNative, year),\n scrollPosition: 0,\n });\n };\n\n const isYearChanges = (state: CalendarState) => {\n return (\n state.months[1].year !== year &&\n // if diff in months is 2 or less,\n // either year is not changing either months already\n // have right isFirstInYear/isLastInYear flags\n Math.abs(diffInMonths) > 2\n );\n };\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index, year);\n });\n this.setState(\n (state) => {\n const yearChanges = isYearChanges(state);\n if (yearChanges) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[0].isFirstInYear = true;\n if (monthsToPrepend.length) {\n // Mutating item here is safe as it was just created\n monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;\n }\n }\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index - monthsToAppendCount + 2, year);\n });\n this.setState(\n (state) => {\n if (isYearChanges(state)) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[state.months.length - 1].isLastInYear = true;\n // Mutating item here is safe as it was just created\n if (monthsToAppend[0]) {\n monthsToAppend[0].isFirstInYear = true;\n }\n }\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private handleMonthChange = (visibleMonths: MonthViewModel[]): void => {\n const currentMonth = visibleMonths[0];\n const changeInfo = {\n month: CalendarUtils.getMonthInHumanFormat(currentMonth.month),\n year: currentMonth.year,\n };\n\n this.props.onMonthChange?.(changeInfo);\n };\n\n private getViewModel = (item: [number, MonthViewModel]): MonthViewModel => item[1];\n\n private renderMain = () => {\n const monthsForRender = this.getVisibleMonths(this.state);\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n\n const props = this.getProps();\n\n const context: CalendarContextProps = {\n value: this.getDateInNativeFormat(props.value),\n minDate: this.getDateInNativeFormat(props.minDate),\n maxDate: this.getDateInNativeFormat(props.maxDate),\n isHoliday: props.isHoliday,\n renderDay: props.renderDay,\n today: CalendarUtils.getTodayDate(),\n onDateClick: this.handleDateClick,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...props}>\n <div ref={this.refRoot} data-tid={CalendarDataTids.root} className={this.cx(this.styles.root(this.theme))}>\n <div style={wrapperStyle} className={this.styles.wrapper()}>\n <CalendarContext.Provider value={context}>\n {monthsForRender.map(this.renderMonth, this)}\n </CalendarContext.Provider>\n </div>\n <div className={this.styles.separator(this.theme)} />\n </div>\n </CommonWrapper>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n onMonthYearChange={this.handleMonthYearChange}\n />\n );\n }\n\n private handleDateClick = (dateShape: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToHumanString(dateShape);\n\n this.props.onValueChange?.(value);\n };\n\n private getDateInNativeFormat(date: Nullable<string>) {\n return new InternalDate().parseValue(date).toNativeFormat();\n }\n\n private getMonthPositions(months: MonthViewModel[], scrollPosition: number) {\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private getVisibleMonths(state: Readonly<CalendarState>): Array<[number, MonthViewModel]> {\n const { months, scrollPosition } = state;\n const positions = this.getMonthPositions(months, scrollPosition);\n\n return months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme));\n }\n\n private handleMonthYearChange = (monthNative: number, year: number) => {\n const month = CalendarUtils.getMonthInHumanFormat(monthNative);\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const thresholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_HEIGHT;\n\n if (scrollTarget < thresholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = thresholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) => {\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n }));\n },\n onEnd,\n );\n };\n}\n"]}
1
+ {"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../../components/Calendar/Calendar.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\nimport shallowEqual from 'shallowequal';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject, SafeTimer } from '../../lib/globalObject.js';\nimport { isInstanceOf } from '../../lib/isInstanceOf.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants.js';\nimport type { Nullable, Range } from '../../typings/utility-types.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { animation } from '../../lib/animation/index.js';\nimport { isMobile } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\n\nimport { themeConfig } from './config.js';\nimport { MonthViewModel } from './MonthViewModel.js';\nimport * as CalendarScrollEvents from './CalendarScrollEvents.js';\nimport { Month } from './Month.js';\nimport { getStyles } from './Calendar.styles.js';\nimport type { CalendarDateShape } from './CalendarDateShape.js';\nimport { create, isGreater, isLess } from './CalendarDateShape.js';\nimport * as CalendarUtils from './CalendarUtils.js';\nimport type { CalendarContextProps } from './CalendarContext.js';\nimport { CalendarContext } from './CalendarContext.js';\nimport type { CalendarDayProps } from './CalendarDay.js';\nimport { CalendarDay } from './CalendarDay.js';\n\nexport interface CalendarProps extends CommonProps {\n /** Задает функцию, которая вызывается при изменении value.\n * @param {string} date - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (date: string) => void;\n\n /** Задает текущую дату в формате `dd.mm.yyyy`. */\n value: Nullable<string>;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy`. */\n maxDate?: string;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает начальную дату периода в формате `dd.mm.yyyy`. */\n periodStartDate?: string;\n\n /** Задает конечную дату периода в формате `dd.mm.yyyy`. */\n periodEndDate?: string;\n\n /** Задает функцию для определения праздничных дней.\n * @default (_day, isWeekend) => isWeekend.\n * @param {string} day - строка в формате `dd.mm.yyyy`.\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье).\n * @returns {boolean} `true` для выходного или `false` для рабочего дня. */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n\n /** Задает начальный месяц. */\n initialMonth?: Range<1, 13>;\n\n /** Задает начальный год. */\n initialYear?: number;\n\n /** Задает метод отрисовки дат в календаре.\n * @default (props: CalendarDayProps) => <CalendarDay {...props} />\n * @param {CalendarDayProps} props - параметры дня.\n * @returns {ReactElement} элемент, который отрисовывает контент числа месяца. */\n renderDay?: (props: CalendarDayProps) => React.ReactElement<unknown>;\n\n /** Задает функцию, которая вызывается при каждом изменении месяца.\n * @param {CalendarMonthChangeInfo} changeInfo - информация о изменении отображаемого месяца, где\n * `month: number` - номер текущего отображаемого месяца от 1 до 12,\n * `year: number` - отображаемый год. */\n onMonthChange?: (changeInfo: CalendarMonthChangeInfo) => void;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n scrollDirection: number;\n scrollTarget: number;\n}\n\nexport interface CalendarMonthChangeInfo {\n month: number;\n year: number;\n}\n\nexport const CalendarDataTids = {\n root: 'Calendar__root',\n month: 'MonthView__month',\n dayCell: 'DayCellView__root',\n headerMonth: 'MonthView__headerMonth',\n headerYear: 'MonthView__headerYear',\n} as const;\n\ntype DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' | 'isHoliday'>>;\n\n/**\n * Компонент календаря `Calendar` из DatePicker'а помогает выбирать дату с помощью мыши.\n */\n@withRenderEnvironment\n@rootNode\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n public static displayName = 'Calendar';\n\n public static Day = CalendarDay;\n\n private static formatDate(date: number, month: number, year: number) {\n return new InternalDate().setComponents({ date, month, year }).toString({ withPad: true });\n }\n\n public static defaultProps: DefaultProps = {\n minDate: Calendar.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),\n maxDate: Calendar.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),\n isHoliday: (_day: string, isWeekend: boolean) => isWeekend,\n };\n\n private getProps = createPropsGetter(Calendar.defaultProps);\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private wheelEndTimeout: SafeTimer;\n private root: Nullable<HTMLElement>;\n private animation!: ReturnType<typeof animation>;\n private touchStartY: Nullable<number> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const { minDate, maxDate, value } = this.getProps();\n\n const minDateShape = this.getDateInNativeFormat(minDate);\n const maxDateShape = this.getDateInNativeFormat(maxDate);\n const dateShape = this.getDateInNativeFormat(value);\n\n const today = CalendarUtils.getTodayDate();\n const initialDate = CalendarUtils.getInitialDate({\n today,\n date: dateShape,\n minDate: minDateShape,\n maxDate: maxDateShape,\n });\n\n const initialMonth = this.props.initialMonth\n ? CalendarUtils.getMonthInNativeFormat(this.props.initialMonth)\n : initialDate.month;\n const initialYear = this.props.initialYear ?? initialDate.year;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n scrollDirection: 1,\n scrollTarget: 0,\n };\n }\n\n public componentDidUpdate(prevProps: Readonly<CalendarProps>, prevState: Readonly<CalendarState>): void {\n const { value, onMonthChange } = this.props;\n if (value && !shallowEqual(value, prevProps.value)) {\n const date = new InternalDate().parseValue(value).getComponentsLikeNumber();\n this.scrollToMonth(date.month, date.year);\n }\n\n if (onMonthChange) {\n const visibleMonthsModels = this.getVisibleMonths(this.state).map(this.getViewModel);\n const prevFirstVisibleMonthModels = this.getVisibleMonths(prevState).map(this.getViewModel);\n\n if (visibleMonthsModels.length > 0 && prevFirstVisibleMonthModels.length > 0) {\n const currentMonth = visibleMonthsModels[0].month;\n const prevCurrentMonth = prevFirstVisibleMonthModels[0].month;\n\n if (currentMonth !== prevCurrentMonth) {\n this.handleMonthChange(visibleMonthsModels);\n }\n }\n }\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\n }\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n this.animation = animation(this.globalObject);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Прокручивает календарь до переданной даты\n * @public\n */\n public scrollToMonth = async (month: number, year: number): Promise<void> => {\n const monthNative = CalendarUtils.getMonthInNativeFormat(month);\n\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => setTimeout(r, 0));\n }\n\n const minDate = this.getDateInNativeFormat(this.getProps().minDate);\n const maxDate = this.getDateInNativeFormat(this.getProps().maxDate);\n\n if (minDate && isGreater(minDate, create(32, monthNative, year))) {\n const minMonth = CalendarUtils.getMonthInHumanFormat(minDate.month);\n this.scrollToMonth(minMonth, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, monthNative, year))) {\n const maxMonth = CalendarUtils.getMonthInHumanFormat(maxDate.month);\n this.scrollToMonth(maxMonth, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - monthNative - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () => {\n this.setState({\n months: CalendarUtils.getMonths(monthNative, year),\n scrollPosition: 0,\n });\n };\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index, year);\n });\n this.setState(\n (state) => {\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index - monthsToAppendCount + 2, year);\n });\n this.setState(\n (state) => {\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private handleMonthChange = (visibleMonths: MonthViewModel[]): void => {\n const currentMonth = visibleMonths[0];\n const changeInfo = {\n month: CalendarUtils.getMonthInHumanFormat(currentMonth.month),\n year: currentMonth.year,\n };\n\n this.props.onMonthChange?.(changeInfo);\n };\n\n private getViewModel = (item: [number, MonthViewModel]): MonthViewModel => item[1];\n\n private renderMain = () => {\n const monthsForRender = this.getVisibleMonths(this.state);\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n\n const props = this.getProps();\n\n const context: CalendarContextProps = {\n value: this.getDateInNativeFormat(props.value),\n minDate: this.getDateInNativeFormat(props.minDate),\n maxDate: this.getDateInNativeFormat(props.maxDate),\n isHoliday: props.isHoliday,\n renderDay: props.renderDay,\n today: CalendarUtils.getTodayDate(),\n onDateClick: this.handleDateClick,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...props}>\n <div ref={this.refRoot} data-tid={CalendarDataTids.root} className={this.cx(this.styles.root(this.theme))}>\n <div style={wrapperStyle} className={this.styles.wrapper()}>\n <CalendarContext.Provider value={context}>\n {monthsForRender.map(this.renderMonth, this)}\n </CalendarContext.Provider>\n </div>\n <div className={this.styles.separator(this.theme)} />\n </div>\n </CommonWrapper>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n onMonthYearChange={this.handleMonthYearChange}\n />\n );\n }\n\n private handleDateClick = (dateShape: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToHumanString(dateShape);\n\n this.props.onValueChange?.(value);\n };\n\n private getDateInNativeFormat(date: Nullable<string>) {\n return new InternalDate().parseValue(date).toNativeFormat();\n }\n\n private getMonthPositions(months: MonthViewModel[], scrollPosition: number) {\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private getVisibleMonths(state: Readonly<CalendarState>): Array<[number, MonthViewModel]> {\n const { months, scrollPosition } = state;\n const positions = this.getMonthPositions(months, scrollPosition);\n\n return months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme));\n }\n\n private handleMonthYearChange = (monthNative: number, year: number) => {\n const month = CalendarUtils.getMonthInHumanFormat(monthNative);\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const thresholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_HEIGHT;\n\n if (scrollTarget < thresholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = thresholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) => {\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n }));\n },\n onEnd,\n );\n };\n}\n"]}
@@ -54,8 +54,8 @@ export var CalendarDay = memo(forwardRefAndName('CalendarDay', function Calendar
54
54
  var caption = children !== null && children !== void 0 ? children : day;
55
55
  return (React.createElement("button", __assign({ ref: ref, "data-tid": CalendarDataTids.dayCell, "aria-label": ariaLabel, tabIndex: -1, disabled: isDisabled, onClick: handleClick, className: cx((_b = {},
56
56
  _b[styles.day(theme)] = true,
57
- _b[styles.selected(theme)] = isSelected,
58
57
  _b[styles.weekend(theme)] = isWeekend,
58
+ _b[styles.selected(theme)] = isSelected,
59
59
  _b), className) }, getVisualStateDataAttributes({ selected: isSelected }), rest),
60
60
  React.createElement("span", { className: cx((_c = {}, _c[styles.todayCaption(theme)] = isToday, _c)) }, caption)));
61
61
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarDay.js","sourceRoot":"","sources":["../../../components/Calendar/CalendarDay.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { PropsWithChildren } from 'react';\nimport React, { useContext, memo, useCallback } from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale/index.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport { LocaleContext } from '../../lib/locale/index.js';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\n\nimport { getStyles } from './DayCellView.styles.js';\nimport { CalendarDataTids } from './Calendar.js';\n\nexport interface CalendarDayProps extends React.HTMLAttributes<HTMLButtonElement> {\n /** Устанавливает, является ли день текущим. */\n isToday?: boolean;\n\n /** Устанавливает, является ли день выбранным. */\n isSelected?: boolean;\n\n /** Устанавливает, является ли день недоступным. */\n isDisabled?: boolean;\n\n /** Устанавливает, является ли день выходным. */\n isWeekend?: boolean;\n\n /** Задает день. */\n date: string;\n\n /** Задает функцию, которая вызывается при клике на день. Необходима для внутренней работы Calendar. Не предназначена для переопределения. Вместо этого, следует использовать стандартный `onClick`.\n * @internal @ignore\n */\n onDayClick: () => void;\n}\n\n/**\n * Компонент дня `CalendarDay` из Calendar.\n *\n * @visibleName Calendar.Day\n */\nexport const CalendarDay = memo(\n forwardRefAndName(\n 'CalendarDay',\n function CalendarDay(\n {\n isToday,\n isSelected,\n isDisabled,\n isWeekend,\n date,\n onDayClick,\n onClick,\n children,\n className,\n ...rest\n }: PropsWithChildren<CalendarDayProps>,\n ref: React.Ref<HTMLButtonElement>,\n ) {\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n const { langCode } = useContext(LocaleContext);\n const internalDate = new InternalDate({ langCode, value: date });\n\n const locale = useLocaleForControl('Calendar', DatePickerLocaleHelper);\n const ariaLabel = `${locale.dayCellChooseDateAriaLabel}: ${internalDate.toA11YFormat()}`;\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(\n (e) => {\n onDayClick();\n onClick?.(e);\n },\n [onDayClick, onClick],\n );\n\n const { date: day } = internalDate.getComponentsLikeNumber();\n const caption = children ?? day;\n\n return (\n <button\n ref={ref}\n data-tid={CalendarDataTids.dayCell}\n aria-label={ariaLabel}\n tabIndex={-1}\n disabled={isDisabled}\n onClick={handleClick}\n className={cx(\n {\n [styles.day(theme)]: true,\n [styles.selected(theme)]: isSelected,\n [styles.weekend(theme)]: isWeekend,\n },\n className,\n )}\n {...getVisualStateDataAttributes({ selected: isSelected })}\n {...rest}\n >\n <span className={cx({ [styles.todayCaption(theme)]: isToday })}>{caption}</span>\n </button>\n );\n },\n ),\n);\n"]}
1
+ {"version":3,"file":"CalendarDay.js","sourceRoot":"","sources":["../../../components/Calendar/CalendarDay.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { PropsWithChildren } from 'react';\nimport React, { useContext, memo, useCallback } from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale/index.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport { LocaleContext } from '../../lib/locale/index.js';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\n\nimport { getStyles } from './DayCellView.styles.js';\nimport { CalendarDataTids } from './Calendar.js';\n\nexport interface CalendarDayProps extends React.HTMLAttributes<HTMLButtonElement> {\n /** Устанавливает, является ли день текущим. */\n isToday?: boolean;\n\n /** Устанавливает, является ли день выбранным. */\n isSelected?: boolean;\n\n /** Устанавливает, является ли день недоступным. */\n isDisabled?: boolean;\n\n /** Устанавливает, является ли день выходным. */\n isWeekend?: boolean;\n\n /** Задает день. */\n date: string;\n\n /** Задает функцию, которая вызывается при клике на день. Необходима для внутренней работы Calendar. Не предназначена для переопределения. Вместо этого, следует использовать стандартный `onClick`.\n * @internal @ignore\n */\n onDayClick: () => void;\n}\n\n/**\n * Компонент дня `CalendarDay` из Calendar.\n *\n * @visibleName Calendar.Day\n */\nexport const CalendarDay = memo(\n forwardRefAndName(\n 'CalendarDay',\n function CalendarDay(\n {\n isToday,\n isSelected,\n isDisabled,\n isWeekend,\n date,\n onDayClick,\n onClick,\n children,\n className,\n ...rest\n }: PropsWithChildren<CalendarDayProps>,\n ref: React.Ref<HTMLButtonElement>,\n ) {\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n const { langCode } = useContext(LocaleContext);\n const internalDate = new InternalDate({ langCode, value: date });\n\n const locale = useLocaleForControl('Calendar', DatePickerLocaleHelper);\n const ariaLabel = `${locale.dayCellChooseDateAriaLabel}: ${internalDate.toA11YFormat()}`;\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(\n (e) => {\n onDayClick();\n onClick?.(e);\n },\n [onDayClick, onClick],\n );\n\n const { date: day } = internalDate.getComponentsLikeNumber();\n const caption = children ?? day;\n\n return (\n <button\n ref={ref}\n data-tid={CalendarDataTids.dayCell}\n aria-label={ariaLabel}\n tabIndex={-1}\n disabled={isDisabled}\n onClick={handleClick}\n className={cx(\n {\n [styles.day(theme)]: true,\n [styles.weekend(theme)]: isWeekend,\n [styles.selected(theme)]: isSelected,\n },\n className,\n )}\n {...getVisualStateDataAttributes({ selected: isSelected })}\n {...rest}\n >\n <span className={cx({ [styles.todayCaption(theme)]: isToday })}>{caption}</span>\n </button>\n );\n },\n ),\n);\n"]}
@@ -24,9 +24,6 @@ export interface CheckboxProps extends CommonProps, Pick<AriaAttributes, 'aria-d
24
24
  onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;
25
25
  /** Задает функцию, вызывающуюся при изменении value. */
26
26
  onValueChange?: (value: boolean) => void;
27
- /** Задает HTML-событие `onclick`.
28
- * @ignore */
29
- onClick?: React.MouseEventHandler<HTMLLabelElement>;
30
27
  /** Задает HTML-событие `onblur`.
31
28
  * @ignore */
32
29
  onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
@@ -101,5 +98,6 @@ export declare class Checkbox extends React.PureComponent<CheckboxProps, Checkbo
101
98
  private resetFocus;
102
99
  private handleBlur;
103
100
  private handleChange;
104
- private handleClick;
101
+ private handleLabelClick;
102
+ private handleInputClick;
105
103
  }
@@ -142,7 +142,7 @@ var Checkbox = /** @class */ (function (_super) {
142
142
  _a[_this.styles.rootDisableTextSelect()] = _this.state.isShiftPressed,
143
143
  _a[_this.styles.disabled(_this.theme)] = Boolean(_this.props.disabled),
144
144
  _a));
145
- var inputProps = __assign(__assign({}, rest), { type: 'checkbox', className: _this.styles.input(), onChange: _this.handleChange, onFocus: _this.handleFocus, onBlur: _this.handleBlur, ref: _this.input });
145
+ var inputProps = __assign(__assign({}, rest), { type: 'checkbox', className: _this.styles.input(), onChange: _this.handleChange, onFocus: _this.handleFocus, onBlur: _this.handleBlur, onClick: _this.handleInputClick, ref: _this.input });
146
146
  var caption = null;
147
147
  if (_this.props.children) {
148
148
  var captionClass = _this.cx((_b = {},
@@ -161,7 +161,7 @@ var Checkbox = /** @class */ (function (_super) {
161
161
  _d[_this.styles.boxWarning(_this.theme)] = _this.props.warning,
162
162
  _d[_this.styles.boxDisabled(_this.theme)] = _this.props.disabled,
163
163
  _d)) }, (isIndeterminate && IconSquare) || IconCheck)));
164
- return (React.createElement("label", { "data-tid": CheckboxDataTids.root, className: rootClass, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onMouseOver: onMouseOver, onClick: _this.handleClick },
164
+ return (React.createElement("label", { "data-tid": CheckboxDataTids.root, className: rootClass, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onMouseOver: onMouseOver, onClick: _this.handleLabelClick },
165
165
  React.createElement(FocusControlWrapper, { onBlurWhenDisabled: _this.resetFocus },
166
166
  React.createElement("input", __assign({}, inputProps, { "aria-label": ariaLabel, "aria-describedby": ariaDescribedby }))),
167
167
  box,
@@ -195,10 +195,15 @@ var Checkbox = /** @class */ (function (_super) {
195
195
  _this.resetIndeterminate();
196
196
  (_d = (_c = _this.props).onChange) === null || _d === void 0 ? void 0 : _d.call(_c, event);
197
197
  };
198
- _this.handleClick = function (e) {
199
- var _a, _b;
198
+ _this.handleLabelClick = function (e) {
200
199
  var handleModifierClickInFirefox = fixFirefoxModifiedClickOnLabel(_this.input);
201
200
  handleModifierClickInFirefox(e);
201
+ if (_this.props.onClick && e.target !== _this.input.current) {
202
+ e.stopPropagation();
203
+ }
204
+ };
205
+ _this.handleInputClick = function (e) {
206
+ var _a, _b;
202
207
  (_b = (_a = _this.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
203
208
  };
204
209
  return _this;
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport type { Override } from '../../typings/utility-types.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.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 { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\n\nimport { getStyles, globalClasses } from './Checkbox.styles.js';\nimport { CheckedIcon } from './CheckedIcon.js';\nimport { IndeterminateIcon } from './IndeterminateIcon.js';\n\nexport interface CheckboxProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseover`.\n * @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает функцию, вызывающуюся при изменении value. */\n onValueChange?: (value: boolean) => void;\n\n /** Задает HTML-событие `onclick`.\n * @ignore */\n onClick?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onblur`.\n * @ignore */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\n /** Устанавливает начальное [неопределенное состояние чекбокса](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate). */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\n/**\n * `Checkbox` используется для управления параметром с двумя состояниями.\n *\n * Чекбокс не запускает действие немедленно. Как правило, для этого нужно нажать подтверждающую кнопку.\n * Для немедленного включения какого-то режима в интерфейсе лучше подходит Toggle.\n */\n@withRenderEnvironment\n@rootNode\n@withSize\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n public static displayName = 'Checkbox';\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.rootLarge(this.theme);\n case 'medium':\n return this.styles.rootMedium(this.theme);\n case 'small':\n default:\n return this.styles.rootSmall(this.theme);\n }\n }\n\n private getBoxWrapperSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.boxWrapperLarge(this.theme);\n case 'medium':\n return this.styles.boxWrapperMedium(this.theme);\n case 'small':\n default:\n return this.styles.boxWrapperSmall(this.theme);\n }\n }\n\n private getCheckboxBoxSize() {\n switch (this.size) {\n case 'large':\n return this.theme.checkboxBoxSizeLarge;\n case 'medium':\n return this.theme.checkboxBoxSizeMedium;\n case 'small':\n default:\n return this.theme.checkboxBoxSizeSmall;\n }\n }\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n private size!: SizeProp;\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n private getProps = createPropsGetter({});\n private keyListener!: KeyListener;\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n this.keyListener = new KeyListener(this.globalObject);\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n this.globalObject.document?.addEventListener('keydown', this.handleShiftPress);\n this.globalObject.document?.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n this.globalObject.document?.removeEventListener('keydown', this.handleShiftPress);\n this.globalObject.document?.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus(): void {\n this.keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur(): void {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = (): void => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = (): void => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n size,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n onClick,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const iconClass = this.cx(\n this.styles.icon(),\n !this.props.checked && !isIndeterminate && this.styles.iconUnchecked(),\n );\n\n const iconSize = parseInt(this.getCheckboxBoxSize());\n const IconCheck = (\n <span className={iconClass}>\n <CheckedIcon size={iconSize} />\n </span>\n );\n const IconSquare = (\n <span className={iconClass}>\n <IndeterminateIcon size={iconSize} />\n </span>\n );\n\n const rootClass = this.cx(this.getRootSizeClassName(), {\n [this.styles.root(this.theme)]: true,\n [this.styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [this.styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [this.styles.disabled(this.theme)]: Boolean(this.props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: this.styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = this.cx({\n [this.styles.caption(this.theme)]: true,\n [this.styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div\n className={this.cx(this.getBoxWrapperSizeClassName(), {\n [this.styles.boxWrapper(this.theme)]: true,\n })}\n >\n <div\n className={this.cx(this.styles.box(this.theme), globalClasses.box, {\n [this.styles.boxChecked(this.theme)]: this.props.checked || isIndeterminate,\n [this.styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [this.styles.boxError(this.theme)]: this.props.error,\n [this.styles.boxWarning(this.theme)]: this.props.warning,\n [this.styles.boxDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={this.handleClick}\n >\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input {...inputProps} aria-label={ariaLabel} aria-describedby={ariaDescribedby} />\n </FocusControlWrapper>\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private resetFocus = () => this.setState({ focusedByTab: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(e);\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLLabelElement>) => {\n const handleModifierClickInFirefox = fixFirefoxModifiedClickOnLabel(this.input);\n handleModifierClickInFirefox(e);\n this.props.onClick?.(e);\n };\n}\n"]}
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../components/Checkbox/Checkbox.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AAEpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAkD3D,MAAM,CAAC,IAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,gBAAgB;CACd,CAAC;AAEX;;;;;GAKG;AAIH;IAA8B,4BAAiD;IAA/E;;QAwCS,WAAK,GAAG;YACb,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK;YACvD,cAAc,EAAE,KAAK;SACtB,CAAC;QAQM,WAAK,GAAG,KAAK,CAAC,SAAS,EAAoB,CAAC;QAC5C,cAAQ,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAGjC,sBAAgB,GAAG,UAAC,CAAgB;YAC1C,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACtB,KAAI,CAAC,QAAQ,CAAC,cAAM,OAAA,CAAC;oBACnB,cAAc,EAAE,IAAI;iBACrB,CAAC,EAFkB,CAElB,CAAC,CAAC;YACN,CAAC;QACH,CAAC,CAAC;QAEM,wBAAkB,GAAG,UAAC,CAAgB;YAC5C,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACtB,KAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,KAAK;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEK,uBAAiB,GAAG;;YACzB,KAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC;YACtD,IAAI,KAAI,CAAC,KAAK,CAAC,aAAa,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnD,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1C,CAAC;YAED,MAAA,KAAI,CAAC,YAAY,CAAC,QAAQ,0CAAE,gBAAgB,CAAC,SAAS,EAAE,KAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/E,MAAA,KAAI,CAAC,YAAY,CAAC,QAAQ,0CAAE,gBAAgB,CAAC,OAAO,EAAE,KAAI,CAAC,kBAAkB,CAAC,CAAC;QACjF,CAAC,CAAC;QAEK,0BAAoB,GAAG;;YAC5B,MAAA,KAAI,CAAC,YAAY,CAAC,QAAQ,0CAAE,mBAAmB,CAAC,SAAS,EAAE,KAAI,CAAC,gBAAgB,CAAC,CAAC;YAClF,MAAA,KAAI,CAAC,YAAY,CAAC,QAAQ,0CAAE,mBAAmB,CAAC,OAAO,EAAE,KAAI,CAAC,kBAAkB,CAAC,CAAC;QACpF,CAAC,CAAC;QA6CF;;;WAGG;QACI,sBAAgB,GAAG;YACxB,KAAI,CAAC,QAAQ,CAAC;gBACZ,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YACH,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACvB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;QAEF;;;WAGG;QACI,wBAAkB,GAAG;YAC1B,KAAI,CAAC,QAAQ,CAAC;gBACZ,aAAa,EAAE,KAAK;aACrB,CAAC,CAAC;YACH,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACvB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;QAEM,gBAAU,GAAG,UAAC,KAA4C;;YAE9D,IAAA,KAAK,GAaH,KAAK,MAbF,EACL,OAAO,GAYL,KAAK,QAZA,EACP,IAAI,GAWF,KAAK,KAXH,EACJ,YAAY,GAUV,KAAK,aAVK,EACZ,YAAY,GASV,KAAK,aATK,EACZ,WAAW,GAQT,KAAK,YARI,EACX,aAAa,GAOX,KAAK,cAPM,EACb,OAAO,GAML,KAAK,QANA,EACP,IAAI,GAKF,KAAK,KALH,EACJ,oBAAoB,GAIlB,KAAK,qBAJa,EACA,eAAe,GAGjC,KAAK,oBAH4B,EACrB,SAAS,GAErB,KAAK,cAFgB,EACpB,IAAI,UACL,KAAK,EAdH,yKAcL,CADQ,CACC;YACV,IAAM,eAAe,GAAG,KAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAEjD,IAAM,SAAS,GAAG,KAAI,CAAC,EAAE,CACvB,KAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAClB,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,eAAe,IAAI,KAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CACvE,CAAC;YAEF,IAAM,QAAQ,GAAG,QAAQ,CAAC,KAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACrD,IAAM,SAAS,GAAG,CAChB,8BAAM,SAAS,EAAE,SAAS;gBACxB,oBAAC,WAAW,IAAC,IAAI,EAAE,QAAQ,GAAI,CAC1B,CACR,CAAC;YACF,IAAM,UAAU,GAAG,CACjB,8BAAM,SAAS,EAAE,SAAS;gBACxB,oBAAC,iBAAiB,IAAC,IAAI,EAAE,QAAQ,GAAI,CAChC,CACR,CAAC;YAEF,IAAM,SAAS,GAAG,KAAI,CAAC,EAAE,CAAC,KAAI,CAAC,oBAAoB,EAAE;gBACnD,GAAC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,IAAI;gBACpC,GAAC,KAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,KAAK,CAAC,OAAO,IAAI,eAAe;gBACvE,GAAC,KAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAG,KAAI,CAAC,KAAK,CAAC,cAAc;gBAChE,GAAC,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;oBAChE,CAAC;YAEH,IAAM,UAAU,yBACX,IAAI,KACP,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,KAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAC9B,QAAQ,EAAE,KAAI,CAAC,YAAY,EAC3B,OAAO,EAAE,KAAI,CAAC,WAAW,EACzB,MAAM,EAAE,KAAI,CAAC,UAAU,EACvB,OAAO,EAAE,KAAI,CAAC,gBAAgB,EAC9B,GAAG,EAAE,KAAI,CAAC,KAAK,GAChB,CAAC;YAEF,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,IAAI,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxB,IAAM,YAAY,GAAG,KAAI,CAAC,EAAE;oBAC1B,GAAC,KAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,IAAI;oBACvC,GAAC,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAC3D,CAAC;gBACH,OAAO,GAAG,8BAAM,SAAS,EAAE,YAAY,IAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAQ,CAAC;YACxE,CAAC;YAED,IAAM,GAAG,GAAG,CACV,6BACE,SAAS,EAAE,KAAI,CAAC,EAAE,CAAC,KAAI,CAAC,0BAA0B,EAAE;oBAClD,GAAC,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,IAAI;wBAC1C;gBAEF,6BACE,SAAS,EAAE,KAAI,CAAC,EAAE,CAAC,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,GAAG;wBAC/D,GAAC,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,KAAI,CAAC,KAAK,CAAC,OAAO,IAAI,eAAe;wBAC3E,GAAC,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,KAAI,CAAC,KAAK,CAAC,YAAY;wBAC3D,GAAC,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,KAAI,CAAC,KAAK,CAAC,KAAK;wBACpD,GAAC,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,KAAI,CAAC,KAAK,CAAC,OAAO;wBACxD,GAAC,KAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,KAAI,CAAC,KAAK,CAAC,QAAQ;4BAC1D,IAED,CAAC,eAAe,IAAI,UAAU,CAAC,IAAI,SAAS,CACzC,CACF,CACP,CAAC;YAEF,OAAO,CACL,2CACY,gBAAgB,CAAC,IAAI,EAC/B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,KAAI,CAAC,gBAAgB;gBAE9B,oBAAC,mBAAmB,IAAC,kBAAkB,EAAE,KAAI,CAAC,UAAU;oBACtD,0CAAW,UAAU,kBAAc,SAAS,sBAAoB,eAAe,IAAI,CAC/D;gBACrB,GAAG;gBACH,OAAO,CACF,CACT,CAAC;QACJ,CAAC,CAAC;QAEM,iBAAW,GAAG,UAAC,CAAwB;;YAC7C,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACzB,iDAAiD;gBACjD,6CAA6C;gBAC7C,MAAA,MAAA,KAAI,CAAC,YAAY,EAAC,qBAAqB,mDAAG;oBACxC,IAAI,KAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;wBAClC,KAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACvB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEM,gBAAU,GAAG,cAAM,OAAA,KAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAtC,CAAsC,CAAC;QAE1D,gBAAU,GAAG,UAAC,CAAqC;;YACzD,KAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAA,MAAA,KAAI,CAAC,KAAK,EAAC,MAAM,mDAAG,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC;QAEM,kBAAY,GAAG,UAAC,KAA0C;;YAChE,IAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;YAC5C,MAAA,MAAA,KAAI,CAAC,KAAK,EAAC,aAAa,mDAAG,OAAO,CAAC,CAAC;YAEpC,KAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,MAAA,MAAA,KAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEM,sBAAgB,GAAG,UAAC,CAAqC;YAC/D,IAAM,4BAA4B,GAAG,8BAA8B,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;YAChF,4BAA4B,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC1D,CAAC,CAAC,eAAe,EAAE,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QAEM,sBAAgB,GAAG,UAAC,CAAqC;;YAC/D,MAAA,MAAA,KAAI,CAAC,KAAK,EAAC,OAAO,mDAAG,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC;;IACJ,CAAC;IAvSS,uCAAoB,GAA5B;QACE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,KAAK,OAAO,CAAC;YACb;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,6CAA0B,GAAlC;QACE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClD,KAAK,OAAO,CAAC;YACb;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,qCAAkB,GAA1B;QACE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YACzC,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAC1C,KAAK,OAAO,CAAC;YACb;gBACE,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;QAC3C,CAAC;IACH,CAAC;IAoDM,qCAAkB,GAAzB,UAA0B,SAAwB;QAChD,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAEM,yBAAM,GAAb;QAAA,iBAeC;QAdC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtC,OAAO,CACL,oBAAC,YAAY,CAAC,QAAQ,QACnB,UAAC,KAAK;YACL,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,OAAO,CACL,oBAAC,aAAa,aAAC,WAAW,EAAE,KAAI,CAAC,WAAW,IAAM,KAAI,CAAC,QAAQ,EAAE,GAC9D,KAAI,CAAC,UAAU,CACF,CACjB,CAAC;QACJ,CAAC,CACqB,CACzB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,wBAAK,GAAZ;;QACE,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC;QACrC,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,uBAAI,GAAX;;QACE,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IA/Ha,4BAAmB,GAAG,UAAU,AAAb,CAAc;IACjC,oBAAW,GAAG,UAAU,AAAb,CAAc;IAF5B,QAAQ;QAHpB,qBAAqB;QACrB,QAAQ;QACR,QAAQ;OACI,QAAQ,CA2SpB;IAAD,eAAC;CAAA,AA3SD,CAA8B,KAAK,CAAC,aAAa,GA2ShD;SA3SY,QAAQ","sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport type { Override } from '../../typings/utility-types.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.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 { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\n\nimport { getStyles, globalClasses } from './Checkbox.styles.js';\nimport { CheckedIcon } from './CheckedIcon.js';\nimport { IndeterminateIcon } from './IndeterminateIcon.js';\n\nexport interface CheckboxProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseover`.\n * @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает функцию, вызывающуюся при изменении value. */\n onValueChange?: (value: boolean) => void;\n\n /** Задает HTML-событие `onblur`.\n * @ignore */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\n /** Устанавливает начальное [неопределенное состояние чекбокса](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate). */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\n/**\n * `Checkbox` используется для управления параметром с двумя состояниями.\n *\n * Чекбокс не запускает действие немедленно. Как правило, для этого нужно нажать подтверждающую кнопку.\n * Для немедленного включения какого-то режима в интерфейсе лучше подходит Toggle.\n */\n@withRenderEnvironment\n@rootNode\n@withSize\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n public static displayName = 'Checkbox';\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.rootLarge(this.theme);\n case 'medium':\n return this.styles.rootMedium(this.theme);\n case 'small':\n default:\n return this.styles.rootSmall(this.theme);\n }\n }\n\n private getBoxWrapperSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.boxWrapperLarge(this.theme);\n case 'medium':\n return this.styles.boxWrapperMedium(this.theme);\n case 'small':\n default:\n return this.styles.boxWrapperSmall(this.theme);\n }\n }\n\n private getCheckboxBoxSize() {\n switch (this.size) {\n case 'large':\n return this.theme.checkboxBoxSizeLarge;\n case 'medium':\n return this.theme.checkboxBoxSizeMedium;\n case 'small':\n default:\n return this.theme.checkboxBoxSizeSmall;\n }\n }\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n private size!: SizeProp;\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n private getProps = createPropsGetter({});\n private keyListener!: KeyListener;\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n this.keyListener = new KeyListener(this.globalObject);\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n this.globalObject.document?.addEventListener('keydown', this.handleShiftPress);\n this.globalObject.document?.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n this.globalObject.document?.removeEventListener('keydown', this.handleShiftPress);\n this.globalObject.document?.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus(): void {\n this.keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur(): void {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = (): void => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = (): void => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n size,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n onClick,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const iconClass = this.cx(\n this.styles.icon(),\n !this.props.checked && !isIndeterminate && this.styles.iconUnchecked(),\n );\n\n const iconSize = parseInt(this.getCheckboxBoxSize());\n const IconCheck = (\n <span className={iconClass}>\n <CheckedIcon size={iconSize} />\n </span>\n );\n const IconSquare = (\n <span className={iconClass}>\n <IndeterminateIcon size={iconSize} />\n </span>\n );\n\n const rootClass = this.cx(this.getRootSizeClassName(), {\n [this.styles.root(this.theme)]: true,\n [this.styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [this.styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [this.styles.disabled(this.theme)]: Boolean(this.props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: this.styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleInputClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = this.cx({\n [this.styles.caption(this.theme)]: true,\n [this.styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div\n className={this.cx(this.getBoxWrapperSizeClassName(), {\n [this.styles.boxWrapper(this.theme)]: true,\n })}\n >\n <div\n className={this.cx(this.styles.box(this.theme), globalClasses.box, {\n [this.styles.boxChecked(this.theme)]: this.props.checked || isIndeterminate,\n [this.styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [this.styles.boxError(this.theme)]: this.props.error,\n [this.styles.boxWarning(this.theme)]: this.props.warning,\n [this.styles.boxDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={this.handleLabelClick}\n >\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input {...inputProps} aria-label={ariaLabel} aria-describedby={ariaDescribedby} />\n </FocusControlWrapper>\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private resetFocus = () => this.setState({ focusedByTab: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(e);\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleLabelClick = (e: React.MouseEvent<HTMLLabelElement>) => {\n const handleModifierClickInFirefox = fixFirefoxModifiedClickOnLabel(this.input);\n handleModifierClickInFirefox(e);\n if (this.props.onClick && e.target !== this.input.current) {\n e.stopPropagation();\n }\n };\n\n private handleInputClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n };\n}\n"]}
@@ -50,6 +50,7 @@ import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
50
50
  import { rootNode } from '../../lib/rootNode/index.js';
51
51
  import { createPropsGetter } from '../../lib/createPropsGetter.js';
52
52
  import { isInstanceOf } from '../../lib/isInstanceOf.js';
53
+ import { scrollInputCaretIntoView } from '../../lib/scrollInputCaretIntoView.js';
53
54
  import { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';
54
55
  import { MAX_SAFE_DIGITS } from './constants.js';
55
56
  import { SelectionHelper } from './SelectionHelper.js';
@@ -176,24 +177,8 @@ var CurrencyInput = /** @class */ (function (_super) {
176
177
  _this.scrollInput = function () {
177
178
  var _a;
178
179
  var node = (_a = _this.input) === null || _a === void 0 ? void 0 : _a.getNode();
179
- if (!node || node.scrollWidth === node.clientWidth) {
180
- return;
181
- }
182
- var PAD = 1;
183
- var SHIFT = 3;
184
- var selection = _this.state.selection;
185
- var selected = selection.start !== selection.end;
186
- var position = selected && selection.direction === 'forward' ? selection.end : selection.start;
187
- var charsCount = _this.state.formatted.length;
188
- var charWidth = node.scrollWidth / charsCount;
189
- var frame = Math.ceil(node.clientWidth / charWidth);
190
- var frameStart = Math.ceil(node.scrollLeft / charWidth);
191
- var frameEnd = frameStart + frame;
192
- if (position < frameStart + PAD) {
193
- node.scrollLeft = (position - SHIFT) * charWidth;
194
- }
195
- if (position > frameEnd - PAD) {
196
- node.scrollLeft = (position - frame + SHIFT) * charWidth;
180
+ if (node) {
181
+ scrollInputCaretIntoView(node, _this.state.selection);
197
182
  }
198
183
  };
199
184
  _this.getSelection = function (input) {