@skbkontur/react-ui 6.0.0-beta.2 → 6.0.0-beta.4

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 (287) hide show
  1. package/CHANGELOG.md +34 -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/CurrencyInput/CurrencyInput.js +3 -18
  7. package/components/CurrencyInput/CurrencyInput.js.map +1 -1
  8. package/components/Dropdown/Dropdown.d.ts +18 -19
  9. package/components/Dropdown/Dropdown.js +2 -2
  10. package/components/Dropdown/Dropdown.js.map +1 -1
  11. package/components/FileUploader/FileUploader.d.ts +4 -4
  12. package/components/FileUploader/FileUploader.js +10 -10
  13. package/components/FileUploader/FileUploader.js.map +1 -1
  14. package/components/FileUploader/FileUploaderControlContext.js.map +1 -0
  15. package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderControlProvider.d.ts +0 -4
  16. package/components/FileUploader/FileUploaderControlProvider.js.map +1 -0
  17. package/components/FileUploader/FileUploaderFile.d.ts +1 -1
  18. package/components/FileUploader/FileUploaderFile.js +5 -5
  19. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  20. package/{internal/FileUploaderControl/FileUploaderFile → components/FileUploader}/FileUploaderFile.styles.d.ts +4 -4
  21. package/{internal/FileUploaderControl/FileUploaderFile → components/FileUploader}/FileUploaderFile.styles.js +1 -1
  22. package/components/FileUploader/FileUploaderFile.styles.js.map +1 -0
  23. package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileList/FileUploaderFileList.d.ts +4 -6
  24. package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileList/FileUploaderFileList.js +3 -4
  25. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -0
  26. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -0
  27. package/{internal/FileUploaderControl/FileUploaderFile/icons → components/FileUploader}/FileUploaderFileStatusIcon.d.ts +2 -2
  28. package/{internal/FileUploaderControl/FileUploaderFile/icons → components/FileUploader}/FileUploaderFileStatusIcon.js +11 -12
  29. package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -0
  30. package/{internal/FileUploaderControl/FileUploaderFile/icons → components/FileUploader}/FileUploaderFileTypeIcon.d.ts +2 -2
  31. package/{internal/FileUploaderControl/FileUploaderFile/icons → components/FileUploader}/FileUploaderFileTypeIcon.js +23 -23
  32. package/components/FileUploader/FileUploaderFileTypeIcon.js.map +1 -0
  33. package/components/FileUploader/FileUploaderFileValidationResult.js.map +1 -0
  34. package/components/FileUploader/fileUtils.js.map +1 -0
  35. package/components/FileUploader/hooks/useControlLocale.d.ts +2 -0
  36. package/components/FileUploader/hooks/useControlLocale.js +6 -0
  37. package/components/FileUploader/hooks/useControlLocale.js.map +1 -0
  38. package/components/FileUploader/hooks/useFileUploaderSize.js.map +1 -0
  39. package/{internal/FileUploaderControl → components/FileUploader}/hooks/useUpload.d.ts +1 -1
  40. package/components/FileUploader/hooks/useUpload.js.map +1 -0
  41. package/components/FileUploader/icons/{TileUploadIcon.d.ts → DeleteIcon.d.ts} +1 -1
  42. package/components/FileUploader/icons/DeleteIcon.js +11 -0
  43. package/components/FileUploader/icons/DeleteIcon.js.map +1 -0
  44. package/components/FileUploader/{UploadIcon.d.ts → icons/UploadIcon.d.ts} +2 -2
  45. package/components/FileUploader/{UploadIcon.js → icons/UploadIcon.js} +2 -2
  46. package/components/FileUploader/icons/UploadIcon.js.map +1 -0
  47. package/components/FileUploader/icons/row/ArchiveIcon.d.ts +3 -0
  48. package/components/FileUploader/icons/row/ArchiveIcon.js +11 -0
  49. package/components/FileUploader/icons/row/ArchiveIcon.js.map +1 -0
  50. package/components/FileUploader/icons/row/DocTextIcon.d.ts +3 -0
  51. package/components/FileUploader/icons/row/DocTextIcon.js +11 -0
  52. package/components/FileUploader/icons/row/DocTextIcon.js.map +1 -0
  53. package/components/FileUploader/icons/row/FolderIcon.d.ts +3 -0
  54. package/components/FileUploader/icons/row/FolderIcon.js +11 -0
  55. package/components/FileUploader/icons/row/FolderIcon.js.map +1 -0
  56. package/components/FileUploader/icons/row/MarkupIcon.d.ts +3 -0
  57. package/components/FileUploader/icons/row/MarkupIcon.js +11 -0
  58. package/components/FileUploader/icons/row/MarkupIcon.js.map +1 -0
  59. package/components/FileUploader/icons/row/PdfIcon.d.ts +3 -0
  60. package/components/FileUploader/icons/row/PdfIcon.js +11 -0
  61. package/components/FileUploader/icons/row/PdfIcon.js.map +1 -0
  62. package/components/FileUploader/icons/row/PictureIcon.d.ts +3 -0
  63. package/components/FileUploader/icons/row/PictureIcon.js +11 -0
  64. package/components/FileUploader/icons/row/PictureIcon.js.map +1 -0
  65. package/components/FileUploader/icons/row/PresentationIcon.d.ts +3 -0
  66. package/components/FileUploader/icons/row/PresentationIcon.js +11 -0
  67. package/components/FileUploader/icons/row/PresentationIcon.js.map +1 -0
  68. package/components/FileUploader/icons/row/RowUploadIcon.d.ts +3 -0
  69. package/components/FileUploader/icons/row/RowUploadIcon.js +11 -0
  70. package/components/FileUploader/icons/row/RowUploadIcon.js.map +1 -0
  71. package/components/FileUploader/icons/row/TableIcon.d.ts +3 -0
  72. package/components/FileUploader/icons/row/TableIcon.js +11 -0
  73. package/components/FileUploader/icons/row/TableIcon.js.map +1 -0
  74. package/components/FileUploader/icons/row/TextIcon.d.ts +3 -0
  75. package/components/FileUploader/icons/row/TextIcon.js +11 -0
  76. package/components/FileUploader/icons/row/TextIcon.js.map +1 -0
  77. package/components/FileUploader/icons/row/ValidationErrorIcon.d.ts +3 -0
  78. package/components/FileUploader/icons/row/ValidationErrorIcon.js +11 -0
  79. package/components/FileUploader/icons/row/ValidationErrorIcon.js.map +1 -0
  80. package/components/FileUploader/icons/row/ValidationWarningIcon.d.ts +3 -0
  81. package/components/FileUploader/icons/row/ValidationWarningIcon.js +11 -0
  82. package/components/FileUploader/icons/row/ValidationWarningIcon.js.map +1 -0
  83. package/components/FileUploader/icons/tile/ArchiveIcon.d.ts +3 -0
  84. package/components/FileUploader/icons/tile/ArchiveIcon.js +11 -0
  85. package/components/FileUploader/icons/tile/ArchiveIcon.js.map +1 -0
  86. package/components/FileUploader/icons/tile/DocTextIcon.d.ts +3 -0
  87. package/components/FileUploader/icons/tile/DocTextIcon.js +11 -0
  88. package/components/FileUploader/icons/tile/DocTextIcon.js.map +1 -0
  89. package/components/FileUploader/icons/tile/FolderIcon.d.ts +3 -0
  90. package/components/FileUploader/icons/tile/FolderIcon.js +11 -0
  91. package/components/FileUploader/icons/tile/FolderIcon.js.map +1 -0
  92. package/components/FileUploader/icons/tile/MarkupIcon.d.ts +3 -0
  93. package/components/FileUploader/icons/tile/MarkupIcon.js +11 -0
  94. package/components/FileUploader/icons/tile/MarkupIcon.js.map +1 -0
  95. package/components/FileUploader/icons/tile/PdfIcon.d.ts +3 -0
  96. package/components/FileUploader/icons/tile/PdfIcon.js +11 -0
  97. package/components/FileUploader/icons/tile/PdfIcon.js.map +1 -0
  98. package/components/FileUploader/icons/tile/PictureIcon.d.ts +3 -0
  99. package/components/FileUploader/icons/tile/PictureIcon.js +11 -0
  100. package/components/FileUploader/icons/tile/PictureIcon.js.map +1 -0
  101. package/components/FileUploader/icons/tile/PresentationIcon.d.ts +3 -0
  102. package/components/FileUploader/icons/tile/PresentationIcon.js +11 -0
  103. package/components/FileUploader/icons/tile/PresentationIcon.js.map +1 -0
  104. package/components/FileUploader/icons/tile/TableIcon.d.ts +3 -0
  105. package/components/FileUploader/icons/tile/TableIcon.js +11 -0
  106. package/components/FileUploader/icons/tile/TableIcon.js.map +1 -0
  107. package/components/FileUploader/icons/tile/TextIcon.d.ts +3 -0
  108. package/components/FileUploader/icons/tile/TextIcon.js +11 -0
  109. package/components/FileUploader/icons/tile/TextIcon.js.map +1 -0
  110. package/components/FileUploader/icons/tile/TileUploadIcon.d.ts +3 -0
  111. package/components/FileUploader/icons/tile/TileUploadIcon.js +11 -0
  112. package/components/FileUploader/icons/tile/TileUploadIcon.js.map +1 -0
  113. package/components/FileUploader/icons/tile/ValidationErrorIcon.d.ts +3 -0
  114. package/components/FileUploader/icons/tile/ValidationErrorIcon.js +11 -0
  115. package/components/FileUploader/icons/tile/ValidationErrorIcon.js.map +1 -0
  116. package/components/FileUploader/icons/tile/ValidationWarningIcon.d.ts +3 -0
  117. package/components/FileUploader/icons/tile/ValidationWarningIcon.js +11 -0
  118. package/components/FileUploader/icons/tile/ValidationWarningIcon.js.map +1 -0
  119. package/components/FileUploader/index.d.ts +3 -3
  120. package/components/FileUploader/index.js +2 -2
  121. package/components/FileUploader/index.js.map +1 -1
  122. package/components/FileUploader/withFileUploaderControlProvider.js.map +1 -0
  123. package/components/FxInput/FxInput.js +3 -1
  124. package/components/FxInput/FxInput.js.map +1 -1
  125. package/components/GlobalLoader/GlobalLoader.d.ts +20 -23
  126. package/components/GlobalLoader/GlobalLoader.js +10 -13
  127. package/components/GlobalLoader/GlobalLoader.js.map +1 -1
  128. package/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
  129. package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  130. package/components/Kebab/Kebab.d.ts +10 -11
  131. package/components/Kebab/Kebab.js +2 -2
  132. package/components/Kebab/Kebab.js.map +1 -1
  133. package/components/Loader/Loader.d.ts +9 -9
  134. package/components/Loader/Loader.js +3 -3
  135. package/components/Loader/Loader.js.map +1 -1
  136. package/components/MaskedInput/FixedIMaskInput.js +11 -0
  137. package/components/MaskedInput/FixedIMaskInput.js.map +1 -1
  138. package/components/Paging/Paging.d.ts +23 -22
  139. package/components/Paging/Paging.js.map +1 -1
  140. package/components/Spinner/Spinner.d.ts +28 -16
  141. package/components/Spinner/Spinner.js +0 -5
  142. package/components/Spinner/Spinner.js.map +1 -1
  143. package/components/Tabs/Indicator.styles.d.ts +1 -0
  144. package/components/Tabs/Indicator.styles.js +4 -1
  145. package/components/Tabs/Indicator.styles.js.map +1 -1
  146. package/components/Tabs/Tab.d.ts +11 -10
  147. package/components/Tabs/Tab.js +3 -1
  148. package/components/Tabs/Tab.js.map +1 -1
  149. package/components/Tabs/Tabs.d.ts +7 -12
  150. package/components/Tabs/Tabs.js +1 -6
  151. package/components/Tabs/Tabs.js.map +1 -1
  152. package/components/Textarea/Textarea.styles.js +1 -1
  153. package/components/Textarea/Textarea.styles.js.map +1 -1
  154. package/components/Toast/Toast.d.ts +3 -3
  155. package/components/Toast/Toast.js.map +1 -1
  156. package/components/Tooltip/Tooltip.d.ts +1 -1
  157. package/components/Tooltip/Tooltip.js.map +1 -1
  158. package/internal/Menu/Menu.d.ts +1 -2
  159. package/internal/Menu/Menu.js.map +1 -1
  160. package/internal/PopupMenu/PopupMenu.d.ts +3 -7
  161. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  162. package/internal/RenderContainer/RenderContainer.d.ts +3 -0
  163. package/internal/RenderContainer/RenderContainer.js +4 -1
  164. package/internal/RenderContainer/RenderContainer.js.map +1 -1
  165. package/internal/themes/BasicTheme.d.ts +1 -0
  166. package/internal/themes/BasicTheme.js +1 -0
  167. package/internal/themes/BasicTheme.js.map +1 -1
  168. package/lib/globalObject.js +4 -4
  169. package/lib/globalObject.js.map +1 -1
  170. package/lib/react-is.d.ts +9 -0
  171. package/lib/react-is.js +93 -0
  172. package/lib/react-is.js.map +1 -0
  173. package/lib/rootNode/getRootNode.js +0 -24
  174. package/lib/rootNode/getRootNode.js.map +1 -1
  175. package/lib/scrollInputCaretIntoView.d.ts +14 -0
  176. package/lib/scrollInputCaretIntoView.js +38 -0
  177. package/lib/scrollInputCaretIntoView.js.map +1 -0
  178. package/lib/utils.js +2 -2
  179. package/lib/utils.js.map +1 -1
  180. package/package.json +1 -4
  181. package/components/FileUploader/UploadIcon.js.map +0 -1
  182. package/components/FileUploader/icons/RowUploadIcon.d.ts +0 -3
  183. package/components/FileUploader/icons/RowUploadIcon.js +0 -11
  184. package/components/FileUploader/icons/RowUploadIcon.js.map +0 -1
  185. package/components/FileUploader/icons/TileUploadIcon.js +0 -11
  186. package/components/FileUploader/icons/TileUploadIcon.js.map +0 -1
  187. package/internal/FileUploaderControl/FileUploaderControlContext.js.map +0 -1
  188. package/internal/FileUploaderControl/FileUploaderControlProvider.js.map +0 -1
  189. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -1
  190. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +0 -2
  191. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +0 -1
  192. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +0 -1
  193. package/internal/FileUploaderControl/FileUploaderFile/icons/DeleteIcon.d.ts +0 -3
  194. package/internal/FileUploaderControl/FileUploaderFile/icons/DeleteIcon.js +0 -11
  195. package/internal/FileUploaderControl/FileUploaderFile/icons/DeleteIcon.js.map +0 -1
  196. package/internal/FileUploaderControl/FileUploaderFile/icons/FileUploaderFileStatusIcon.js.map +0 -1
  197. package/internal/FileUploaderControl/FileUploaderFile/icons/FileUploaderFileTypeIcon.js.map +0 -1
  198. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ArchiveIcon.d.ts +0 -3
  199. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ArchiveIcon.js +0 -11
  200. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ArchiveIcon.js.map +0 -1
  201. package/internal/FileUploaderControl/FileUploaderFile/icons/row/DocTextIcon.d.ts +0 -3
  202. package/internal/FileUploaderControl/FileUploaderFile/icons/row/DocTextIcon.js +0 -11
  203. package/internal/FileUploaderControl/FileUploaderFile/icons/row/DocTextIcon.js.map +0 -1
  204. package/internal/FileUploaderControl/FileUploaderFile/icons/row/FolderIcon.d.ts +0 -3
  205. package/internal/FileUploaderControl/FileUploaderFile/icons/row/FolderIcon.js +0 -11
  206. package/internal/FileUploaderControl/FileUploaderFile/icons/row/FolderIcon.js.map +0 -1
  207. package/internal/FileUploaderControl/FileUploaderFile/icons/row/MarkupIcon.d.ts +0 -3
  208. package/internal/FileUploaderControl/FileUploaderFile/icons/row/MarkupIcon.js +0 -11
  209. package/internal/FileUploaderControl/FileUploaderFile/icons/row/MarkupIcon.js.map +0 -1
  210. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PdfIcon.d.ts +0 -3
  211. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PdfIcon.js +0 -11
  212. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PdfIcon.js.map +0 -1
  213. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PictureIcon.d.ts +0 -3
  214. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PictureIcon.js +0 -11
  215. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PictureIcon.js.map +0 -1
  216. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PresentationIcon.d.ts +0 -3
  217. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PresentationIcon.js +0 -11
  218. package/internal/FileUploaderControl/FileUploaderFile/icons/row/PresentationIcon.js.map +0 -1
  219. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TableIcon.d.ts +0 -3
  220. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TableIcon.js +0 -11
  221. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TableIcon.js.map +0 -1
  222. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TextIcon.d.ts +0 -3
  223. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TextIcon.js +0 -11
  224. package/internal/FileUploaderControl/FileUploaderFile/icons/row/TextIcon.js.map +0 -1
  225. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationErrorIcon.d.ts +0 -3
  226. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationErrorIcon.js +0 -11
  227. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationErrorIcon.js.map +0 -1
  228. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationWarningIcon.d.ts +0 -3
  229. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationWarningIcon.js +0 -11
  230. package/internal/FileUploaderControl/FileUploaderFile/icons/row/ValidationWarningIcon.js.map +0 -1
  231. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ArchiveIcon.d.ts +0 -3
  232. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ArchiveIcon.js +0 -11
  233. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ArchiveIcon.js.map +0 -1
  234. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/DocTextIcon.d.ts +0 -3
  235. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/DocTextIcon.js +0 -11
  236. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/DocTextIcon.js.map +0 -1
  237. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/FolderIcon.d.ts +0 -3
  238. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/FolderIcon.js +0 -11
  239. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/FolderIcon.js.map +0 -1
  240. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/MarkupIcon.d.ts +0 -3
  241. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/MarkupIcon.js +0 -11
  242. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/MarkupIcon.js.map +0 -1
  243. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PdfIcon.d.ts +0 -3
  244. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PdfIcon.js +0 -11
  245. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PdfIcon.js.map +0 -1
  246. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PictureIcon.d.ts +0 -3
  247. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PictureIcon.js +0 -11
  248. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PictureIcon.js.map +0 -1
  249. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PresentationIcon.d.ts +0 -3
  250. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PresentationIcon.js +0 -11
  251. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/PresentationIcon.js.map +0 -1
  252. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TableIcon.d.ts +0 -3
  253. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TableIcon.js +0 -11
  254. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TableIcon.js.map +0 -1
  255. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TextIcon.d.ts +0 -3
  256. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TextIcon.js +0 -11
  257. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/TextIcon.js.map +0 -1
  258. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationErrorIcon.d.ts +0 -3
  259. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationErrorIcon.js +0 -11
  260. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationErrorIcon.js.map +0 -1
  261. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationWarningIcon.d.ts +0 -3
  262. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationWarningIcon.js +0 -11
  263. package/internal/FileUploaderControl/FileUploaderFile/icons/tile/ValidationWarningIcon.js.map +0 -1
  264. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  265. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
  266. package/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +0 -1
  267. package/internal/FileUploaderControl/fileUtils.js.map +0 -1
  268. package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  269. package/internal/FileUploaderControl/hooks/useControlLocale.js +0 -4
  270. package/internal/FileUploaderControl/hooks/useControlLocale.js.map +0 -1
  271. package/internal/FileUploaderControl/hooks/useFileUploaderSize.js.map +0 -1
  272. package/internal/FileUploaderControl/hooks/useUpload.js.map +0 -1
  273. package/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +0 -1
  274. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderControlContext.d.ts +0 -0
  275. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderControlContext.js +0 -0
  276. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderControlProvider.js +0 -0
  277. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -0
  278. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileList/FileUploaderFileList.styles.js +0 -0
  279. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileValidationResult.d.ts +0 -0
  280. /package/{internal/FileUploaderControl → components/FileUploader}/FileUploaderFileValidationResult.js +0 -0
  281. /package/{internal/FileUploaderControl → components/FileUploader}/fileUtils.d.ts +0 -0
  282. /package/{internal/FileUploaderControl → components/FileUploader}/fileUtils.js +0 -0
  283. /package/{internal/FileUploaderControl → components/FileUploader}/hooks/useFileUploaderSize.d.ts +0 -0
  284. /package/{internal/FileUploaderControl → components/FileUploader}/hooks/useFileUploaderSize.js +0 -0
  285. /package/{internal/FileUploaderControl → components/FileUploader}/hooks/useUpload.js +0 -0
  286. /package/{internal/FileUploaderControl → components/FileUploader}/withFileUploaderControlProvider.d.ts +0 -0
  287. /package/{internal/FileUploaderControl → components/FileUploader}/withFileUploaderControlProvider.js +0 -0
@@ -34,6 +34,7 @@ import { IMaskInput } from '@skbkontur/react-imask';
34
34
  import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
35
35
  import { isKeyArrow, isKeyArrowHorizontal, isKeyArrowLeft, isKeyArrowUp, isKeyEnd, isKeyHome, isModShift, isShortcutJumpCaret, isShortcutSelectAll, someKeys, } from '../../lib/events/keyboard/identifiers.js';
36
36
  import { MouseDrag } from '../../lib/events/MouseDrag.js';
37
+ import { scrollInputCaretIntoView } from '../../lib/scrollInputCaretIntoView.js';
37
38
  export var FixedIMaskInput = forwardRefAndName('FixedIMaskInput', function FixedIMaskInput(props, ref) {
38
39
  var inputRef = props.inputRef, restProps = __rest(props, ["inputRef"]);
39
40
  var imaskRef = useRef(null);
@@ -51,6 +52,7 @@ export var FixedIMaskInput = forwardRefAndName('FixedIMaskInput', function Fixed
51
52
  }
52
53
  var _c = getSelection(), start = _c[0], end = _c[1];
53
54
  setSelection(start, end, direction);
55
+ scrollCaretIntoView();
54
56
  });
55
57
  }
56
58
  }, []);
@@ -113,6 +115,13 @@ export var FixedIMaskInput = forwardRefAndName('FixedIMaskInput', function Fixed
113
115
  var start = _b[0], end = _b[1], direction = _b[2];
114
116
  (_a = imaskRef.current) === null || _a === void 0 ? void 0 : _a.element.setSelectionRange(getNormalizedRange(start), getNormalizedRange(end), direction || 'none');
115
117
  }
118
+ function scrollCaretIntoView() {
119
+ var _a;
120
+ var element = (_a = imaskRef.current) === null || _a === void 0 ? void 0 : _a.element;
121
+ if (element) {
122
+ scrollInputCaretIntoView(element);
123
+ }
124
+ }
116
125
  function jumpCaret(prev, headDirection) {
117
126
  var _a, _b;
118
127
  var word = /а-яa-z0-9_/.valueOf();
@@ -202,11 +211,13 @@ export var FixedIMaskInput = forwardRefAndName('FixedIMaskInput', function Fixed
202
211
  if (isShortcutSelectAll(e)) {
203
212
  e.preventDefault();
204
213
  setSelection(0, nearest);
214
+ scrollCaretIntoView();
205
215
  }
206
216
  else if (isKeyArrow(e) || isKeyEnd(e) || isKeyHome(e)) {
207
217
  e.preventDefault();
208
218
  var _b = calcSelection(e), start = _b[0], end = _b[1], direction = _b[2];
209
219
  setSelection(start, end, direction);
220
+ scrollCaretIntoView();
210
221
  }
211
222
  (_a = props.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(props, e);
212
223
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FixedIMaskInput.js","sourceRoot":"","sources":["../../../components/MaskedInput/FixedIMaskInput.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,GACT,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAa1D,MAAM,CAAC,IAAM,eAAe,GAAG,iBAAiB,CAC9C,iBAAiB,EACjB,SAAS,eAAe,CAAC,KAA2B,EAAE,GAAmC;IAC/E,IAAA,QAAQ,GAAmB,KAAK,SAAxB,EAAK,SAAS,UAAK,KAAK,EAAlC,YAA0B,CAAF,CAAW;IACzC,IAAM,QAAQ,GAAG,MAAM,CAAe,IAAI,CAAC,CAAC;IAC5C,IAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9B,SAAS,CAAC;;QACR,IAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,EAAE,CAAC;YAC9B,cAAc,EAAE,CAAC;YACjB,IAAM,WAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,UAAC,CAAC;;gBAC5E,IAAI,SAAS,GAAuB,MAAM,CAAC;gBAE3C,IACE,WAAS,CAAC,mBAAmB;oBAC7B,CAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAC,cAAc,OAAK,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAC,YAAY,CAAA,EACnF,CAAC;oBACD,SAAS,GAAG,WAAS,CAAC,mBAAmB,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrF,CAAC;gBAEK,IAAA,KAAe,YAAY,EAAE,EAA5B,KAAK,QAAA,EAAE,GAAG,QAAkB,CAAC;gBACpC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,mBAAmB,CAAmD,GAAG,EAAE,cAAM,OAAA,QAAQ,CAAC,OAAO,EAAhB,CAAgB,EAAE;QACjG,QAAQ,CAAC,OAAO;KACjB,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,UAAU,eACL,SAAS,IACb,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,WAAW,IACpB,CACH,CAAC;IAEF,SAAS,aAAa;;QACd,IAAA,KAAqC,CAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAC,MAAM,KAAI,EAAE,EAAzE,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EAAE,oBAAiB,EAAjB,YAAY,mBAAG,EAAE,KAA2C,CAAC;QAClF,IAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAClC,IAAM,KAAK,GAAG,MAAM,KAAK,EAAE,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5E,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,cAAc;;QACrB,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,aAAa,EAAE,CAAC,CAAC;QAC5E,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAC,YAAY,CAAC,qBAAqB,EAAE,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACzG,CAAC;IAED,SAAS,mBAAmB;QAC1B,IAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAChE,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC1C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAyC,CAAC,OAAO,CACpG,UAAC,EAAmB;wBAAjB,eAAe,qBAAA;oBAAO,OAAA,eAAe,IAAI,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;gBAAlD,CAAkD,CAC5E,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACzF,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,SAAS,kBAAkB;QACnB,IAAA,KAAe,YAAY,EAAE,EAA5B,KAAK,QAAA,EAAE,GAAG,QAAkB,CAAC;QACpC,IAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAClC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;YACd,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,SAAS,kBAAkB,CAAC,IAAsB;QAChD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,SAAS,YAAY;QACnB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO;gBACL,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC;gBAC5C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC;gBAC1C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,IAAI,MAAM;aACtD,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,SAAS,YAAY;;QAAC,YAA6E;aAA7E,UAA6E,EAA7E,qBAA6E,EAA7E,IAA6E;YAA7E,uBAA6E;;QAA7E,IAAI,KAAK,QAAA,EAAE,GAAG,QAAA,EAAE,SAAS,QAAA,CAAoD;QACjG,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAC,iBAAiB,CACzC,kBAAkB,CAAC,KAAK,CAAC,EACzB,kBAAkB,CAAC,GAAG,CAAC,EACvB,SAAS,IAAI,MAAM,CACpB,CAAC;IACJ,CAAC;IAED,SAAS,SAAS,CAAC,IAAY,EAAE,aAA4B;;QAC3D,IAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;QACpC,IAAM,UAAU,GAAG,IAAI,MAAM,CAAC,YAAK,IAAI,0BAAgB,IAAI,QAAK,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,IAAI,GAAG,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,0CAAE,MAAM,CAAW,UAAC,CAAC,EAAE,CAAC;YACvE,IAAM,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,IAAI,aAAa,KAAK,OAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;gBAC7D,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,aAAa,KAAK,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;gBAClD,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,uCAAW,CAAC,UAAE,GAAG,UAAE;QACrB,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,SAAS,aAAa,CAAC,CAAwC;QACvD,IAAA,KAA0B,YAAY,EAAE,EAAvC,KAAK,QAAA,EAAE,GAAG,QAAA,EAAE,SAAS,QAAkB,CAAC;QAC/C,IAAM,eAAe,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,IAAI,GAAG,KAAK,KAAK,GAAG,IAAI,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,IAAI,IAAI,GAAG,KAAK,KAAK,GAAG,IAAI,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACnE,IAAM,aAAa,GAAkB,QAAQ,CAAC,cAAc,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC7G,IAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpD,IAAM,SAAS,GAAG,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,eAAe,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,IAAI,GAAG,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,IAAM,OAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,IAAM,KAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,OAAO,CAAC,kBAAkB,CAAC,OAAK,CAAC,EAAE,kBAAkB,CAAC,KAAG,CAAC,EAAE,KAAG,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;QACZ,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,SAAS,aAAa,CAAC,CAAqC;;QAC1D,kBAAkB,EAAE,CAAC;QAErB,MAAA,KAAK,CAAC,SAAS,sDAAG,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,SAAS,WAAW,CAAC,CAAqC;;QACxD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,cAAc,EAAE,CAAC;QAEjB,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAE/B,MAAA,KAAK,CAAC,OAAO,sDAAG,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,UAAU,CAAC,CAAqC;;QACvD,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QACxB,cAAc,EAAE,CAAC;QAEjB,MAAA,KAAK,CAAC,MAAM,sDAAG,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,SAAS,YAAY;;QAAC,cAA4E;aAA5E,UAA4E,EAA5E,qBAA4E,EAA5E,IAA4E;YAA5E,yBAA4E;;QAChG,cAAc,EAAE,CAAC;QAEjB,MAAA,KAAK,CAAC,QAAQ,gFAAM,IAAI,SAAC,CAAC;IAC5B,CAAC;IAED,SAAS,WAAW,CAAC,CAAsC;;QACzD,IAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAC;QAC1C,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC;YAC5C,2EAA2E;YAC3E,uCAAuC;YACvC,MAAA,KAAK,CAAC,QAAQ,sDAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,WAAyB,CAAC,CAAC;QAC7D,CAAC;QAED,MAAA,KAAK,CAAC,OAAO,sDAAG,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,aAAa,CAAC,CAAwC;;QAC7D,IAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;QACtC,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,CAAC,CAAC,cAAc,EAAE,CAAC;YACb,IAAA,KAA0B,aAAa,CAAC,CAAC,CAAC,EAAzC,KAAK,QAAA,EAAE,GAAG,QAAA,EAAE,SAAS,QAAoB,CAAC;YACjD,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,MAAA,KAAK,CAAC,SAAS,sDAAG,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CACF,CAAC","sourcesContent":["import React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport type { InputMask, MaskedPatternOptions } from '@skbkontur/imask';\nimport type { IMaskInputProps } from '@skbkontur/react-imask';\nimport { IMaskInput } from '@skbkontur/react-imask';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport {\n isKeyArrow,\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowUp,\n isKeyEnd,\n isKeyHome,\n isModShift,\n isShortcutJumpCaret,\n isShortcutSelectAll,\n someKeys,\n} from '../../lib/events/keyboard/identifiers.js';\nimport { MouseDrag } from '../../lib/events/MouseDrag.js';\n\nexport type FixedIMaskInputProps = IMaskInputProps<HTMLInputElement>;\n\ntype HeadDirection = 'left' | 'right';\ntype SelectionDirection = 'forward' | 'backward' | 'none';\ntype SelectionSet = [number, number, SelectionDirection];\n\ninterface IMaskRefType {\n maskRef: InputMask<MaskedPatternOptions>;\n element: HTMLInputElement;\n}\n\nexport const FixedIMaskInput = forwardRefAndName(\n 'FixedIMaskInput',\n function FixedIMaskInput(props: FixedIMaskInputProps, ref: React.Ref<IMaskRefType | null>) {\n const { inputRef, ...restProps } = props;\n const imaskRef = useRef<IMaskRefType>(null);\n const focused = useRef(false);\n\n useEffect(() => {\n if (imaskRef.current?.element) {\n fillTypedValue();\n const mouseDrag = MouseDrag.listen(imaskRef.current.element).onMouseDragEnd((e) => {\n let direction: SelectionDirection = 'none';\n\n if (\n mouseDrag.mouseDragStartEvent &&\n imaskRef.current?.element.selectionStart !== imaskRef.current?.element.selectionEnd\n ) {\n direction = mouseDrag.mouseDragStartEvent.pageX > e.pageX ? 'backward' : 'forward';\n }\n\n const [start, end] = getSelection();\n setSelection(start, end, direction);\n });\n }\n }, []);\n\n useImperativeHandle<typeof imaskRef.current, typeof imaskRef.current>(ref, () => imaskRef.current, [\n imaskRef.current,\n ]);\n\n return (\n <IMaskInput\n {...restProps}\n ref={imaskRef}\n inputRef={inputRef}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseUp={handleMouseUp}\n onAccept={handleAccept}\n onInput={handleInput}\n />\n );\n\n function getTypedValue() {\n const { _value = '', displayValue = '' } = imaskRef.current?.maskRef.masked || {};\n const end = getMaxCaretPosition();\n const value = _value !== '' || focused.current === true ? displayValue : '';\n\n return value.slice(0, end);\n }\n\n function fillTypedValue() {\n imaskRef.current?.element.setAttribute('data-typed-value', getTypedValue());\n imaskRef.current?.element.setAttribute('data-unmasked-value', imaskRef.current?.maskRef.unmaskedValue);\n }\n\n function getMaxCaretPosition(): number {\n const maskChars = [];\n if (imaskRef.current) {\n maskChars.push(imaskRef.current.maskRef.masked.placeholderChar);\n if (imaskRef.current.maskRef.masked.blocks) {\n (Object.values(imaskRef.current.maskRef.masked.blocks) as Array<{ placeholderChar?: string }>).forEach(\n ({ placeholderChar }) => placeholderChar && maskChars.push(placeholderChar),\n );\n }\n return imaskRef.current.element.value.split(new RegExp(maskChars.join('|')))[0].length;\n }\n\n return Infinity;\n }\n\n function normalizeSelection() {\n const [start, end] = getSelection();\n const max = getMaxCaretPosition();\n if (end > max) {\n setSelection(start, max);\n }\n }\n\n function getNormalizedRange(calc: number | unknown) {\n return typeof calc === 'number' ? Math.min(getMaxCaretPosition(), Math.max(0, calc)) : 0;\n }\n\n function getSelection(): SelectionSet {\n if (imaskRef.current) {\n return [\n imaskRef.current.element.selectionStart || 0,\n imaskRef.current.element.selectionEnd || 0,\n imaskRef.current.element.selectionDirection || 'none',\n ];\n }\n return [0, 0, 'none'];\n }\n\n function setSelection(...[start, end, direction]: Parameters<HTMLInputElement['setSelectionRange']>) {\n imaskRef.current?.element.setSelectionRange(\n getNormalizedRange(start),\n getNormalizedRange(end),\n direction || 'none',\n );\n }\n\n function jumpCaret(prev: number, headDirection: HeadDirection) {\n const word = /а-яa-z0-9_/.valueOf();\n const wordRegExp = new RegExp(`([${word}])+[\\\\s]*|([^${word}])+`, 'gi');\n let next = headDirection === 'right' ? prev : 0;\n imaskRef.current?.element.value.match(wordRegExp)?.reduce<number[]>((s, a) => {\n const pos = a.length + (s.slice(-1)[0] || 0);\n if (headDirection === 'right' && next === prev && next < pos) {\n next = getNormalizedRange(pos);\n } else if (headDirection === 'left' && prev > pos) {\n next = getNormalizedRange(pos);\n }\n return [...s, pos];\n }, []);\n return next;\n }\n\n /**\n * Вычислят положение каретки при управлении клавишами\n * @param e\n */\n function calcSelection(e: React.KeyboardEvent<HTMLInputElement>): SelectionSet {\n const [start, end, direction] = getSelection();\n const isSelectionMode = isModShift()(e);\n let tail = start !== end && direction === 'backward' ? end : start;\n let head = start !== end && direction === 'backward' ? start : end;\n const headDirection: HeadDirection = someKeys(isKeyArrowLeft, isKeyArrowUp, isKeyHome)(e) ? 'left' : 'right';\n const step = isKeyArrowHorizontal(e) ? 1 : Infinity;\n const increment = headDirection === 'left' ? -step : step;\n if (isShortcutJumpCaret(e)) {\n head = jumpCaret(head, headDirection);\n } else if (head !== tail && !isSelectionMode && isKeyArrowHorizontal(e)) {\n head = headDirection === 'right' ? Math.max(tail, head) : Math.min(tail, head);\n } else {\n head = head + increment;\n }\n if (isSelectionMode) {\n const start = Math.min(tail, head);\n const end = Math.max(tail, head);\n return [getNormalizedRange(start), getNormalizedRange(end), end === head ? 'forward' : 'backward'];\n }\n tail = head;\n return [getNormalizedRange(tail), getNormalizedRange(head), 'none'];\n }\n\n function handleMouseUp(e: React.MouseEvent<HTMLInputElement>) {\n normalizeSelection();\n\n props.onMouseUp?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = true;\n fillTypedValue();\n\n setTimeout(normalizeSelection);\n\n props.onFocus?.(e);\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = false;\n fillTypedValue();\n\n props.onBlur?.(e);\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n fillTypedValue();\n\n props.onAccept?.(...args);\n }\n\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const maskRef = imaskRef.current?.maskRef;\n if (maskRef && maskRef.rawInputValue === '') {\n // в случае, когда пользователь стер все из инпута, очищаем value полностью\n // иначе в value остаются символы маски\n props.onAccept?.('', maskRef, e.nativeEvent as InputEvent);\n }\n\n props.onInput?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const nearest = getMaxCaretPosition();\n if (isShortcutSelectAll(e)) {\n e.preventDefault();\n setSelection(0, nearest);\n } else if (isKeyArrow(e) || isKeyEnd(e) || isKeyHome(e)) {\n e.preventDefault();\n const [start, end, direction] = calcSelection(e);\n setSelection(start, end, direction);\n }\n\n props.onKeyDown?.(e);\n }\n },\n);\n"]}
1
+ {"version":3,"file":"FixedIMaskInput.js","sourceRoot":"","sources":["../../../components/MaskedInput/FixedIMaskInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport type { InputMask, MaskedPatternOptions } from '@skbkontur/imask';\nimport type { IMaskInputProps } from '@skbkontur/react-imask';\nimport { IMaskInput } from '@skbkontur/react-imask';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport {\n isKeyArrow,\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowUp,\n isKeyEnd,\n isKeyHome,\n isModShift,\n isShortcutJumpCaret,\n isShortcutSelectAll,\n someKeys,\n} from '../../lib/events/keyboard/identifiers.js';\nimport { MouseDrag } from '../../lib/events/MouseDrag.js';\nimport { scrollInputCaretIntoView } from '../../lib/scrollInputCaretIntoView.js';\n\nexport type FixedIMaskInputProps = IMaskInputProps<HTMLInputElement>;\n\ntype HeadDirection = 'left' | 'right';\ntype SelectionDirection = 'forward' | 'backward' | 'none';\ntype SelectionSet = [number, number, SelectionDirection];\n\ninterface IMaskRefType {\n maskRef: InputMask<MaskedPatternOptions>;\n element: HTMLInputElement;\n}\n\nexport const FixedIMaskInput = forwardRefAndName(\n 'FixedIMaskInput',\n function FixedIMaskInput(props: FixedIMaskInputProps, ref: React.Ref<IMaskRefType | null>) {\n const { inputRef, ...restProps } = props;\n const imaskRef = useRef<IMaskRefType>(null);\n const focused = useRef(false);\n\n useEffect(() => {\n if (imaskRef.current?.element) {\n fillTypedValue();\n const mouseDrag = MouseDrag.listen(imaskRef.current.element).onMouseDragEnd((e) => {\n let direction: SelectionDirection = 'none';\n\n if (\n mouseDrag.mouseDragStartEvent &&\n imaskRef.current?.element.selectionStart !== imaskRef.current?.element.selectionEnd\n ) {\n direction = mouseDrag.mouseDragStartEvent.pageX > e.pageX ? 'backward' : 'forward';\n }\n\n const [start, end] = getSelection();\n setSelection(start, end, direction);\n scrollCaretIntoView();\n });\n }\n }, []);\n\n useImperativeHandle<typeof imaskRef.current, typeof imaskRef.current>(ref, () => imaskRef.current, [\n imaskRef.current,\n ]);\n\n return (\n <IMaskInput\n {...restProps}\n ref={imaskRef}\n inputRef={inputRef}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseUp={handleMouseUp}\n onAccept={handleAccept}\n onInput={handleInput}\n />\n );\n\n function getTypedValue() {\n const { _value = '', displayValue = '' } = imaskRef.current?.maskRef.masked || {};\n const end = getMaxCaretPosition();\n const value = _value !== '' || focused.current === true ? displayValue : '';\n\n return value.slice(0, end);\n }\n\n function fillTypedValue() {\n imaskRef.current?.element.setAttribute('data-typed-value', getTypedValue());\n imaskRef.current?.element.setAttribute('data-unmasked-value', imaskRef.current?.maskRef.unmaskedValue);\n }\n\n function getMaxCaretPosition(): number {\n const maskChars = [];\n if (imaskRef.current) {\n maskChars.push(imaskRef.current.maskRef.masked.placeholderChar);\n if (imaskRef.current.maskRef.masked.blocks) {\n (Object.values(imaskRef.current.maskRef.masked.blocks) as Array<{ placeholderChar?: string }>).forEach(\n ({ placeholderChar }) => placeholderChar && maskChars.push(placeholderChar),\n );\n }\n return imaskRef.current.element.value.split(new RegExp(maskChars.join('|')))[0].length;\n }\n\n return Infinity;\n }\n\n function normalizeSelection() {\n const [start, end] = getSelection();\n const max = getMaxCaretPosition();\n if (end > max) {\n setSelection(start, max);\n }\n }\n\n function getNormalizedRange(calc: number | unknown) {\n return typeof calc === 'number' ? Math.min(getMaxCaretPosition(), Math.max(0, calc)) : 0;\n }\n\n function getSelection(): SelectionSet {\n if (imaskRef.current) {\n return [\n imaskRef.current.element.selectionStart || 0,\n imaskRef.current.element.selectionEnd || 0,\n imaskRef.current.element.selectionDirection || 'none',\n ];\n }\n return [0, 0, 'none'];\n }\n\n function setSelection(...[start, end, direction]: Parameters<HTMLInputElement['setSelectionRange']>) {\n imaskRef.current?.element.setSelectionRange(\n getNormalizedRange(start),\n getNormalizedRange(end),\n direction || 'none',\n );\n }\n\n function scrollCaretIntoView() {\n const element = imaskRef.current?.element;\n if (element) {\n scrollInputCaretIntoView(element);\n }\n }\n\n function jumpCaret(prev: number, headDirection: HeadDirection) {\n const word = /а-яa-z0-9_/.valueOf();\n const wordRegExp = new RegExp(`([${word}])+[\\\\s]*|([^${word}])+`, 'gi');\n let next = headDirection === 'right' ? prev : 0;\n imaskRef.current?.element.value.match(wordRegExp)?.reduce<number[]>((s, a) => {\n const pos = a.length + (s.slice(-1)[0] || 0);\n if (headDirection === 'right' && next === prev && next < pos) {\n next = getNormalizedRange(pos);\n } else if (headDirection === 'left' && prev > pos) {\n next = getNormalizedRange(pos);\n }\n return [...s, pos];\n }, []);\n return next;\n }\n\n /**\n * Вычислят положение каретки при управлении клавишами\n * @param e\n */\n function calcSelection(e: React.KeyboardEvent<HTMLInputElement>): SelectionSet {\n const [start, end, direction] = getSelection();\n const isSelectionMode = isModShift()(e);\n let tail = start !== end && direction === 'backward' ? end : start;\n let head = start !== end && direction === 'backward' ? start : end;\n const headDirection: HeadDirection = someKeys(isKeyArrowLeft, isKeyArrowUp, isKeyHome)(e) ? 'left' : 'right';\n const step = isKeyArrowHorizontal(e) ? 1 : Infinity;\n const increment = headDirection === 'left' ? -step : step;\n if (isShortcutJumpCaret(e)) {\n head = jumpCaret(head, headDirection);\n } else if (head !== tail && !isSelectionMode && isKeyArrowHorizontal(e)) {\n head = headDirection === 'right' ? Math.max(tail, head) : Math.min(tail, head);\n } else {\n head = head + increment;\n }\n if (isSelectionMode) {\n const start = Math.min(tail, head);\n const end = Math.max(tail, head);\n return [getNormalizedRange(start), getNormalizedRange(end), end === head ? 'forward' : 'backward'];\n }\n tail = head;\n return [getNormalizedRange(tail), getNormalizedRange(head), 'none'];\n }\n\n function handleMouseUp(e: React.MouseEvent<HTMLInputElement>) {\n normalizeSelection();\n\n props.onMouseUp?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = true;\n fillTypedValue();\n\n setTimeout(normalizeSelection);\n\n props.onFocus?.(e);\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = false;\n fillTypedValue();\n\n props.onBlur?.(e);\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n fillTypedValue();\n\n props.onAccept?.(...args);\n }\n\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const maskRef = imaskRef.current?.maskRef;\n if (maskRef && maskRef.rawInputValue === '') {\n // в случае, когда пользователь стер все из инпута, очищаем value полностью\n // иначе в value остаются символы маски\n props.onAccept?.('', maskRef, e.nativeEvent as InputEvent);\n }\n\n props.onInput?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const nearest = getMaxCaretPosition();\n if (isShortcutSelectAll(e)) {\n e.preventDefault();\n setSelection(0, nearest);\n scrollCaretIntoView();\n } else if (isKeyArrow(e) || isKeyEnd(e) || isKeyHome(e)) {\n e.preventDefault();\n const [start, end, direction] = calcSelection(e);\n setSelection(start, end, direction);\n scrollCaretIntoView();\n }\n\n props.onKeyDown?.(e);\n }\n },\n);\n"]}
@@ -4,41 +4,42 @@ import type { CommonProps } from '../../internal/CommonWrapper/index.js';
4
4
  import type { TGetRootNode } from '../../lib/rootNode/index.js';
5
5
  import type { SizeProp } from '../../lib/types/props.js';
6
6
  export interface ItemComponentProps {
7
- /** Определяет, является ли страница текущей. */
8
- active: boolean;
9
7
  /** @ignore */
10
8
  children?: React.ReactNode;
11
- /** Задает HTML-атрибут class. */
12
- className: string;
13
- /** Задает функцию, которая вызывается при клике на элемент. */
14
- onClick: () => void;
15
- /** Задает номер текущей страницы. */
9
+ /** Определяет, является ли страница текущей. */
10
+ active: boolean;
11
+ /** Номер страницы. */
16
12
  pageNumber: number | 'forward';
17
- /** Задает HTML-атрибут `tabindex`. */
13
+ /** Вызывается при клике на элемент. */
14
+ onClick: () => void;
15
+ /** HTML-атрибут `class`. */
16
+ className: string;
17
+ /** HTML-атрибут `tabindex`. */
18
18
  tabIndex: number;
19
19
  }
20
20
  export interface PagingProps extends CommonProps {
21
+ /** Количество страниц. */
22
+ pagesCount: number;
23
+ /** Номер текущей страницы. */
21
24
  activePage: number;
22
- /** Компонент обертки по умолчанию.
23
- * @default <span/> */
24
- component?: React.ComponentType<ItemComponentProps>;
25
- /** Задает функцию, которая вызывается при переключении страницы. */
25
+ /** Вызывается при переключении страницы. */
26
26
  onPageChange: (pageNumber: number) => void;
27
- /** Задает общее количество страниц. */
28
- pagesCount: number;
29
- /** Задает размер контрола.
30
- * @default 'small'. Проп поддерживается начиная с версии темы 5.3. */
27
+ /** Размер пейджинга.
28
+ *
29
+ * *Проп поддерживается начиная с версии 5.3.*
30
+ * @default 'small' */
31
31
  size?: SizeProp;
32
32
  /** Делает компонент недоступным. */
33
33
  disabled?: boolean;
34
+ /** Подпись у кнопки перехода на следующую страницу. */
35
+ caption?: string;
36
+ /** Компонент обёртки страниц.
37
+ * @default <span/> */
38
+ component?: React.ComponentType<ItemComponentProps>;
34
39
  /** Отключает навигационные подсказки.
35
- * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо элемент в фокусе, либо globalListeners === true). */
40
+ * По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо контрол в фокусе, либо globalListeners === true). */
36
41
  withoutNavigationHint?: boolean;
37
- /** Задает подпить у пейджинга. */
38
- caption?: string;
39
- /** Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.
40
- * Если на странице используется несколько элементов **Paging** с useGlobalListener === true,
41
- * то обработчик keyDown будет вызываться на каждом из них. Такие случаи лучше обрабатывать отдельно. */
42
+ /** Включает глобальный слушатель `keyDown`, для навигации клавишами без фокуса на контроле. */
42
43
  useGlobalListener?: boolean;
43
44
  }
44
45
  export interface PagingState {
@@ -1 +1 @@
1
- {"version":3,"file":"Paging.js","sourceRoot":"","sources":["../../../components/Paging/Paging.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type JSX } from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\nimport warning from 'warning';\n\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { isInstanceOf } from '../../lib/isInstanceOf.js';\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport { emptyHandler } from '../../lib/utils.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport { ResponsiveLayout } from '../ResponsiveLayout/index.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\n\nimport { getStyles } from './Paging.styles.js';\nimport * as NavigationHelper from './NavigationHelper.js';\nimport { getItems } from './PagingHelper.js';\nimport type { PagingLocale } from './locale/index.js';\nimport { PagingLocaleHelper } from './locale/index.js';\nimport { PagingDefaultComponent } from './PagingDefaultComponent.js';\nimport { ForwardIcon, ForwardIconMobile } from './ForwardIcon.js';\nimport { DotsIcon } from './DotsIcon.js';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n /** Определяет, является ли страница текущей. */\n active: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает HTML-атрибут class. */\n className: string;\n\n /** Задает функцию, которая вызывается при клике на элемент. */\n onClick: () => void;\n\n /** Задает номер текущей страницы. */\n pageNumber: number | 'forward';\n\n /** Задает HTML-атрибут `tabindex`. */\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n\n /** Компонент обертки по умолчанию.\n * @default <span/> */\n component?: React.ComponentType<ItemComponentProps>;\n\n /** Задает функцию, которая вызывается при переключении страницы. */\n onPageChange: (pageNumber: number) => void;\n\n /** Задает общее количество страниц. */\n pagesCount: number;\n\n /** Задает размер контрола.\n * @default 'small'. Проп поддерживается начиная с версии темы 5.3. */\n size?: SizeProp;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо элемент в фокусе, либо globalListeners === true). */\n withoutNavigationHint?: boolean;\n\n /** Задает подпить у пейджинга. */\n caption?: string;\n\n /** Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов **Paging** с useGlobalListener === true,\n * то обработчик keyDown будет вызываться на каждом из них. Такие случаи лучше обрабатывать отдельно. */\n useGlobalListener?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<Pick<PagingProps, 'component' | 'useGlobalListener'>>;\n\ninterface PagingSizeClassNames {\n root: string;\n dots: string;\n forwardLink: string;\n pageLink: string;\n}\n\n/**\n * Постраничная навигация `Paging` (пейджинг или пагинация) — способ представления большого количества однородной информации, когда контент разбивается на страницы.\n */\n@withRenderEnvironment\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n useGlobalListener: false,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.getProps().useGlobalListener,\n };\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 readonly locale!: PagingLocale;\n private isMobile!: boolean;\n private sizeClassNames!: PagingSizeClassNames;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render(): React.JSX.Element | null {\n if (this.props.pagesCount < 2) {\n return null;\n }\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ResponsiveLayout>\n {({ isMobile }) => {\n this.isMobile = isMobile;\n this.sizeClassNames = this.getPagingSizeClassNames();\n return this.renderMain();\n }}\n </ResponsiveLayout>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { useGlobalListener } = this.getProps();\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...this.props}\n {...getVisualStateDataAttributes({ disabled: this.props.disabled })}\n >\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={PagingDataTids.root}\n className={this.cx(this.styles.paging(), this.sizeClassNames.root, {\n [this.styles.pagingMobile()]: this.isMobile,\n [this.styles.pagingDisabled()]: this.props.disabled,\n })}\n onKeyDown={useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map((item, index) => this.renderItem(item, index))}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={this.cx(this.styles.dots(this.theme), this.sizeClassNames.dots, {\n [this.styles.dotsDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {this.getDotsIcon()}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classNames = this.cx(\n this.styles.pageLink(this.theme),\n this.sizeClassNames.pageLink,\n this.styles.forwardLink(this.theme),\n this.sizeClassNames.forwardLink,\n {\n [this.styles.pageLinkFocused(this.theme)]: focused,\n [this.styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n },\n );\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = this.getForwardIcon();\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classNames}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {!this.isMobile && (this.props.caption || forward)}\n {forwardIcon}\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const disabled = this.props.disabled;\n const classNames = this.cx(this.styles.pageLink(this.theme), this.sizeClassNames.pageLink, {\n [this.styles.pageLinkFocused(this.theme)]: focused,\n [this.styles.pageLinkDisabled(this.theme)]: disabled,\n [this.styles.pageLinkCurrent(this.theme)]: active,\n [this.styles.pageLinkCurrentDisabled(this.theme)]: active && disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={this.styles.pageLinkWrapper()}\n {...getVisualStateDataAttributes({ active, disabled })}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classNames}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && !this.isMobile && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n let hint = null;\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : this.styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : this.styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={this.styles.pageLinkHint(this.theme)}>{hint}</div>;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n isInstanceOf(target, this.globalObject.Element) &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\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\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.getProps().useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount, this.isMobile).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n this.globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n this.globalObject.document?.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n\n private getPagingSizeClassNames = (): PagingSizeClassNames => {\n const size = this.getSize();\n\n const defaultClassNames = {\n root: this.styles.pagingSmall(this.theme),\n dots: this.styles.dotsSmall(this.theme),\n forwardLink: this.styles.forwardLinkSmall(this.theme),\n pageLink: this.styles.pageLinkSmall(this.theme),\n };\n\n switch (size) {\n case 'small':\n return defaultClassNames;\n case 'medium':\n return {\n root: this.styles.pagingMedium(this.theme),\n dots: this.styles.dotsMedium(this.theme),\n forwardLink: this.isMobile\n ? this.styles.forwardLinkMediumMobile(this.theme)\n : this.styles.forwardLinkMedium(this.theme),\n pageLink: this.styles.pageLinkMedium(this.theme),\n };\n case 'large':\n return {\n root: this.styles.pagingLarge(this.theme),\n dots: this.styles.dotsLarge(this.theme),\n forwardLink: this.isMobile\n ? this.styles.forwardLinkLargeMobile(this.theme)\n : this.styles.forwardLinkLarge(this.theme),\n pageLink: this.styles.pageLinkLarge(this.theme),\n };\n default:\n warning(false, `Invalid size prop: '${this.props.size}'`);\n return defaultClassNames;\n }\n };\n\n private getDotsIcon = () => {\n const size = this.getSize();\n return <DotsIcon size={size} />;\n };\n\n private getForwardIcon = () => {\n const size = this.getSize();\n const iconSize = size;\n return this.isMobile ? (\n <ForwardIconMobile size={iconSize} />\n ) : (\n <ForwardIcon size={iconSize} style={{ marginLeft: 4 }} />\n );\n };\n\n private getSize = () => {\n if (this.props.size) {\n return this.isMobile && this.props.size === 'small' ? 'medium' : this.props.size;\n }\n\n const defaultSize = 'small';\n return this.isMobile ? 'medium' : defaultSize;\n };\n}\n"]}
1
+ {"version":3,"file":"Paging.js","sourceRoot":"","sources":["../../../components/Paging/Paging.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type JSX } from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\nimport warning from 'warning';\n\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { isInstanceOf } from '../../lib/isInstanceOf.js';\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport { emptyHandler } from '../../lib/utils.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport { ResponsiveLayout } from '../ResponsiveLayout/index.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\n\nimport { getStyles } from './Paging.styles.js';\nimport * as NavigationHelper from './NavigationHelper.js';\nimport { getItems } from './PagingHelper.js';\nimport type { PagingLocale } from './locale/index.js';\nimport { PagingLocaleHelper } from './locale/index.js';\nimport { PagingDefaultComponent } from './PagingDefaultComponent.js';\nimport { ForwardIcon, ForwardIconMobile } from './ForwardIcon.js';\nimport { DotsIcon } from './DotsIcon.js';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Определяет, является ли страница текущей. */\n active: boolean;\n\n /** Номер страницы. */\n pageNumber: number | 'forward';\n\n /** Вызывается при клике на элемент. */\n onClick: () => void;\n\n /** HTML-атрибут `class`. */\n className: string;\n\n /** HTML-атрибут `tabindex`. */\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n /** Количество страниц. */\n pagesCount: number;\n\n /** Номер текущей страницы. */\n activePage: number;\n\n /** Вызывается при переключении страницы. */\n onPageChange: (pageNumber: number) => void;\n\n /** Размер пейджинга.\n *\n * *Проп поддерживается начиная с версии 5.3.*\n * @default 'small' */\n size?: SizeProp;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Подпись у кнопки перехода на следующую страницу. */\n caption?: string;\n\n /** Компонент обёртки страниц.\n * @default <span/> */\n component?: React.ComponentType<ItemComponentProps>;\n\n /** Отключает навигационные подсказки.\n * По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо контрол в фокусе, либо globalListeners === true). */\n withoutNavigationHint?: boolean;\n\n /** Включает глобальный слушатель `keyDown`, для навигации клавишами без фокуса на контроле. */\n useGlobalListener?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<Pick<PagingProps, 'component' | 'useGlobalListener'>>;\n\ninterface PagingSizeClassNames {\n root: string;\n dots: string;\n forwardLink: string;\n pageLink: string;\n}\n\n/**\n * Постраничная навигация `Paging` (пейджинг или пагинация) — способ представления большого количества однородной информации, когда контент разбивается на страницы.\n */\n@withRenderEnvironment\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n useGlobalListener: false,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.getProps().useGlobalListener,\n };\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 readonly locale!: PagingLocale;\n private isMobile!: boolean;\n private sizeClassNames!: PagingSizeClassNames;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render(): React.JSX.Element | null {\n if (this.props.pagesCount < 2) {\n return null;\n }\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ResponsiveLayout>\n {({ isMobile }) => {\n this.isMobile = isMobile;\n this.sizeClassNames = this.getPagingSizeClassNames();\n return this.renderMain();\n }}\n </ResponsiveLayout>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { useGlobalListener } = this.getProps();\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...this.props}\n {...getVisualStateDataAttributes({ disabled: this.props.disabled })}\n >\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={PagingDataTids.root}\n className={this.cx(this.styles.paging(), this.sizeClassNames.root, {\n [this.styles.pagingMobile()]: this.isMobile,\n [this.styles.pagingDisabled()]: this.props.disabled,\n })}\n onKeyDown={useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map((item, index) => this.renderItem(item, index))}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={this.cx(this.styles.dots(this.theme), this.sizeClassNames.dots, {\n [this.styles.dotsDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {this.getDotsIcon()}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classNames = this.cx(\n this.styles.pageLink(this.theme),\n this.sizeClassNames.pageLink,\n this.styles.forwardLink(this.theme),\n this.sizeClassNames.forwardLink,\n {\n [this.styles.pageLinkFocused(this.theme)]: focused,\n [this.styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n },\n );\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = this.getForwardIcon();\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classNames}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {!this.isMobile && (this.props.caption || forward)}\n {forwardIcon}\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const disabled = this.props.disabled;\n const classNames = this.cx(this.styles.pageLink(this.theme), this.sizeClassNames.pageLink, {\n [this.styles.pageLinkFocused(this.theme)]: focused,\n [this.styles.pageLinkDisabled(this.theme)]: disabled,\n [this.styles.pageLinkCurrent(this.theme)]: active,\n [this.styles.pageLinkCurrentDisabled(this.theme)]: active && disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={this.styles.pageLinkWrapper()}\n {...getVisualStateDataAttributes({ active, disabled })}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classNames}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && !this.isMobile && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n let hint = null;\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : this.styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : this.styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={this.styles.pageLinkHint(this.theme)}>{hint}</div>;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n isInstanceOf(target, this.globalObject.Element) &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\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\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.getProps().useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount, this.isMobile).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n this.globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n this.globalObject.document?.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n\n private getPagingSizeClassNames = (): PagingSizeClassNames => {\n const size = this.getSize();\n\n const defaultClassNames = {\n root: this.styles.pagingSmall(this.theme),\n dots: this.styles.dotsSmall(this.theme),\n forwardLink: this.styles.forwardLinkSmall(this.theme),\n pageLink: this.styles.pageLinkSmall(this.theme),\n };\n\n switch (size) {\n case 'small':\n return defaultClassNames;\n case 'medium':\n return {\n root: this.styles.pagingMedium(this.theme),\n dots: this.styles.dotsMedium(this.theme),\n forwardLink: this.isMobile\n ? this.styles.forwardLinkMediumMobile(this.theme)\n : this.styles.forwardLinkMedium(this.theme),\n pageLink: this.styles.pageLinkMedium(this.theme),\n };\n case 'large':\n return {\n root: this.styles.pagingLarge(this.theme),\n dots: this.styles.dotsLarge(this.theme),\n forwardLink: this.isMobile\n ? this.styles.forwardLinkLargeMobile(this.theme)\n : this.styles.forwardLinkLarge(this.theme),\n pageLink: this.styles.pageLinkLarge(this.theme),\n };\n default:\n warning(false, `Invalid size prop: '${this.props.size}'`);\n return defaultClassNames;\n }\n };\n\n private getDotsIcon = () => {\n const size = this.getSize();\n return <DotsIcon size={size} />;\n };\n\n private getForwardIcon = () => {\n const size = this.getSize();\n const iconSize = size;\n return this.isMobile ? (\n <ForwardIconMobile size={iconSize} />\n ) : (\n <ForwardIcon size={iconSize} style={{ marginLeft: 4 }} />\n );\n };\n\n private getSize = () => {\n if (this.props.size) {\n return this.isMobile && this.props.size === 'small' ? 'medium' : this.props.size;\n }\n\n const defaultSize = 'small';\n return this.isMobile ? 'medium' : defaultSize;\n };\n}\n"]}
@@ -4,21 +4,38 @@ import type { TGetRootNode } from '../../lib/rootNode/index.js';
4
4
  declare const types: readonly ["big", "mini", "normal"];
5
5
  export type SpinnerType = (typeof types)[number];
6
6
  export interface SpinnerProps extends CommonProps {
7
- /** Задает подпись под спиннером.
8
- * @default "Загрузка" */
7
+ /**
8
+ * Подпись спиннера
9
+ */
9
10
  caption?: React.ReactNode;
10
- /** Переводит спиннер в "затемнённый режим".
11
- * Цвет спиннера в "затемнённом режиме" определяется переменной `spinnerDimmedColor`. */
12
- dimmed?: boolean;
13
- /** Задает размер спиннера и текста.
14
- * @default normal. */
11
+ /**
12
+ * Размер индикатора и текста
13
+ *
14
+ * @default normal
15
+ */
15
16
  type?: SpinnerType;
16
- /** Уменьшает спиннер для вставки в инлайн элемент. При type = "big"|"normal" размер спиннера уменьшается. */
17
+ /**
18
+ * Одноцветный режим. Удобная альтернатива пропа `dimmed`
19
+ */
20
+ color?: React.CSSProperties['color'];
21
+ /**
22
+ * Уменьшает размер индикатора для работы в строках. Если задан, то размер индикитора из `type` игнорируется
23
+ *
24
+ * @default false
25
+ */
17
26
  inline?: boolean;
18
- /** Задает толщину спиннера. */
27
+ /**
28
+ * Толщина индикатора в пикселях.
29
+ *
30
+ * @default 2
31
+ */
19
32
  width?: number;
20
- /** Задает цвет спиннера. Не работает с пропом dimmed. */
21
- color?: React.CSSProperties['color'];
33
+ /**
34
+ * Одноцветный режим. Цвет спиннера не переливается. Можно кастомизировать переменной `spinnerDimmedColor`
35
+ *
36
+ * @default false
37
+ */
38
+ dimmed?: boolean;
22
39
  }
23
40
  export declare const SpinnerDataTids: {
24
41
  readonly root: "Spinner__root";
@@ -26,11 +43,6 @@ export declare const SpinnerDataTids: {
26
43
  type DefaultProps = Required<Pick<SpinnerProps, 'type'>>;
27
44
  /**
28
45
  * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.
29
- *
30
- * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.
31
- * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.
32
- *
33
- * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.
34
46
  */
35
47
  export declare class Spinner extends React.Component<SpinnerProps> {
36
48
  static __KONTUR_REACT_UI__: string;
@@ -53,11 +53,6 @@ export var SpinnerDataTids = {
53
53
  };
54
54
  /**
55
55
  * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.
56
- *
57
- * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.
58
- * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.
59
- *
60
- * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.
61
56
  */
62
57
  var Spinner = /** @class */ (function (_super) {
63
58
  __extends(Spinner, _super);
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../../components/Spinner/Spinner.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\n\nimport { getStyles } from './Spinner.styles.js';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /** Задает подпись под спиннером.\n * @default \"Загрузка\" */\n caption?: React.ReactNode;\n\n /** Переводит спиннер в \"затемнённый режим\".\n * Цвет спиннера в \"затемнённом режиме\" определяется переменной `spinnerDimmedColor`. */\n dimmed?: boolean;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: SpinnerType;\n\n /** Уменьшает спиннер для вставки в инлайн элемент. При type = \"big\"|\"normal\" размер спиннера уменьшается. */\n inline?: boolean;\n\n /** Задает толщину спиннера. */\n width?: number;\n\n /** Задает цвет спиннера. Не работает с пропом dimmed. */\n color?: React.CSSProperties['color'];\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n *\n * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.\n * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.\n *\n * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.\n */\n@withRenderEnvironment\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\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 this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={this.styles.spinner()}>\n <span className={this.styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={this.cx({\n [this.styles.circle(this.theme)]: !dimmed && !this.props.color,\n [this.styles.circleDimmedColor(this.theme)]: dimmed,\n [this.styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={this.cx(this.styles[type](this.theme), this.styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"]}
1
+ {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../../components/Spinner/Spinner.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,IAAM,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AA4CjD,MAAM,CAAC,IAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,eAAe;CACb,CAAC;AAIX;;GAEG;AAGH;IAA6B,2BAA6B;IAA1D;;QAQU,cAAQ,GAAG,iBAAiB,CAAC,SAAO,CAAC,YAAY,CAAC,CAAC;QAqCnD,mBAAa,GAAG,UAAC,IAAiB,EAAE,MAAgB,EAAE,MAAgB;;YAC5E,OAAO,CACL,oBAAC,WAAW,IACV,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,KAAI,CAAC,EAAE;oBAChB,GAAC,KAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,CAAC,MAAM,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK;oBAC9D,GAAC,KAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAI,CAAC,KAAK,CAAC,IAAG,MAAM;oBACnD,GAAC,KAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,IAAG,MAAM,IAAI,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK;wBACzE,EACF,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,EACvB,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,EACvB,MAAM,EAAE,MAAM,GACd,CACH,CAAC;QACJ,CAAC,CAAC;QAEM,mBAAa,GAAG,UAAC,IAAiB,EAAE,OAAwB,IAAK,OAAA,CACvE,8BAAM,SAAS,EAAE,KAAI,CAAC,EAAE,CAAC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,EAAE,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC,IAAG,OAAO,CAAQ,CAChH,EAFwE,CAExE,CAAC;;IACJ,CAAC;gBAhEY,OAAO;IAkBX,wBAAM,GAAb;QAAA,iBAWC;QAVC,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,KAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,CAAC,CACqB,CACzB,CAAC;IACJ,CAAC;IAEO,4BAAU,GAAlB;QACQ,IAAA,KAAqC,IAAI,CAAC,KAAK,EAA7C,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAe,CAAC;QACtD,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;QAElC,OAAO,CACL,oBAAC,aAAa,aAAC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAM,IAAI,CAAC,KAAK;YAC1D,yCAAe,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBACnE,8BAAM,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAQ;gBACtF,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CACzC,CACQ,CACjB,CAAC;IACJ,CAAC;;IA1Ca,2BAAmB,GAAG,SAAS,AAAZ,CAAa;IAChC,mBAAW,GAAG,SAAS,AAAZ,CAAa;IAExB,oBAAY,GAAiB;QACzC,IAAI,EAAE,QAAQ;KACf,AAFyB,CAExB;IAIY,aAAK,GAAqC,MAAM,CAAC,MAAM,OAAb,MAAM,iBAAQ,EAAE,GAAK,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;;QAAK,OAAA,UAAG,GAAC,IAAI,IAAG,IAAI,KAAG;IAAlB,CAAkB,CAAC,SAAjG,CAAmG;IAV3G,OAAO;QAFnB,qBAAqB;QACrB,QAAQ;OACI,OAAO,CAgEnB;IAAD,cAAC;CAAA,AAhED,CAA6B,KAAK,CAAC,SAAS,GAgE3C;SAhEY,OAAO","sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\n\nimport { getStyles } from './Spinner.styles.js';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /**\n * Подпись спиннера\n */\n caption?: React.ReactNode;\n\n /**\n * Размер индикатора и текста\n *\n * @default normal\n */\n type?: SpinnerType;\n\n /**\n * Одноцветный режим. Удобная альтернатива пропа `dimmed`\n */\n color?: React.CSSProperties['color'];\n\n /**\n * Уменьшает размер индикатора для работы в строках. Если задан, то размер индикитора из `type` игнорируется\n *\n * @default false\n */\n inline?: boolean;\n\n /**\n * Толщина индикатора в пикселях.\n *\n * @default 2\n */\n width?: number;\n\n /**\n * Одноцветный режим. Цвет спиннера не переливается. Можно кастомизировать переменной `spinnerDimmedColor`\n *\n * @default false\n */\n dimmed?: boolean;\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n */\n@withRenderEnvironment\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\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 this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={this.styles.spinner()}>\n <span className={this.styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={this.cx({\n [this.styles.circle(this.theme)]: !dimmed && !this.props.color,\n [this.styles.circleDimmedColor(this.theme)]: dimmed,\n [this.styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={this.cx(this.styles[type](this.theme), this.styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"]}
@@ -5,4 +5,5 @@ export declare const getStyles: import("../../lib/theming/Emotion.js").StylesGet
5
5
  success(t: Theme): string;
6
6
  warning(t: Theme): string;
7
7
  error(t: Theme): string;
8
+ customizationExample(): string;
8
9
  }>;
@@ -21,7 +21,10 @@ export var getStyles = memoizeGetStyles(function (_a) {
21
21
  error: function (t) {
22
22
  return css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n background: ", ";\n "], ["\n background: ", ";\n "])), t.tabColorError);
23
23
  },
24
+ customizationExample: function () {
25
+ return css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n height: 5px;\n background-color: orange;\n "], ["\n height: 5px;\n background-color: orange;\n "])));
26
+ },
24
27
  });
25
28
  });
26
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
29
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
27
30
  //# sourceMappingURL=Indicator.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Indicator.styles.js","sourceRoot":"","sources":["../../../components/Tabs/Indicator.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,IAAI,YAAC,CAAQ;YACX,OAAO,GAAG,sNAAA,sBACM,EAAe,mBACnB,EAAgB,2FAGT,EAA0B,SAC5C,KALe,CAAC,CAAC,aAAa,EACnB,CAAC,CAAC,cAAc,EAGT,CAAC,CAAC,wBAAwB,EAC3C;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,oGAAA,sBACM,EAAiB,SAChC,KADe,CAAC,CAAC,eAAe,EAC/B;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,oGAAA,sBACM,EAAiB,SAChC,KADe,CAAC,CAAC,eAAe,EAC/B;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,oGAAA,sBACM,EAAiB,SAChC,KADe,CAAC,CAAC,eAAe,EAC/B;QACJ,CAAC;QAED,KAAK,YAAC,CAAQ;YACZ,OAAO,GAAG,oGAAA,sBACM,EAAe,SAC9B,KADe,CAAC,CAAC,aAAa,EAC7B;QACJ,CAAC;KACF,CAAC;AAlC8D,CAkC9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root(t: Theme) {\n return css`\n background: ${t.tabColorFocus};\n height: ${t.tabBorderWidth};\n position: absolute;\n transition: all 0.2s ease-out;\n border-radius: ${t.tabIndicatorBorderRadius};\n `;\n },\n\n primary(t: Theme) {\n return css`\n background: ${t.tabColorPrimary};\n `;\n },\n\n success(t: Theme) {\n return css`\n background: ${t.tabColorSuccess};\n `;\n },\n\n warning(t: Theme) {\n return css`\n background: ${t.tabColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n background: ${t.tabColorError};\n `;\n },\n}));\n"]}
1
+ {"version":3,"file":"Indicator.styles.js","sourceRoot":"","sources":["../../../components/Tabs/Indicator.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,IAAI,YAAC,CAAQ;YACX,OAAO,GAAG,sNAAA,sBACM,EAAe,mBACnB,EAAgB,2FAGT,EAA0B,SAC5C,KALe,CAAC,CAAC,aAAa,EACnB,CAAC,CAAC,cAAc,EAGT,CAAC,CAAC,wBAAwB,EAC3C;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,oGAAA,sBACM,EAAiB,SAChC,KADe,CAAC,CAAC,eAAe,EAC/B;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,oGAAA,sBACM,EAAiB,SAChC,KADe,CAAC,CAAC,eAAe,EAC/B;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,oGAAA,sBACM,EAAiB,SAChC,KADe,CAAC,CAAC,eAAe,EAC/B;QACJ,CAAC;QAED,KAAK,YAAC,CAAQ;YACZ,OAAO,GAAG,oGAAA,sBACM,EAAe,SAC9B,KADe,CAAC,CAAC,aAAa,EAC7B;QACJ,CAAC;QAED,oBAAoB;YAClB,OAAO,GAAG,gIAAA,6DAGT,KAAC;QACJ,CAAC;KACF,CAAC;AAzC8D,CAyC9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root(t: Theme) {\n return css`\n background: ${t.tabColorFocus};\n height: ${t.tabBorderWidth};\n position: absolute;\n transition: all 0.2s ease-out;\n border-radius: ${t.tabIndicatorBorderRadius};\n `;\n },\n\n primary(t: Theme) {\n return css`\n background: ${t.tabColorPrimary};\n `;\n },\n\n success(t: Theme) {\n return css`\n background: ${t.tabColorSuccess};\n `;\n },\n\n warning(t: Theme) {\n return css`\n background: ${t.tabColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n background: ${t.tabColorError};\n `;\n },\n\n customizationExample() {\n return css`\n height: 5px;\n background-color: orange;\n `;\n },\n}));\n"]}
@@ -15,26 +15,25 @@ export declare const TabDataTids: {
15
15
  readonly root: "Tab__root";
16
16
  };
17
17
  export interface TabProps<T extends string = string> extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>, CommonProps {
18
- /** Позволяет передавать свой компонент, строку или функцию, которая заменит собой элемент используемый в компоненте по умолчанию.
19
- * Реализует паттерн [render prop](https://www.patterns.dev/posts/render-props-pattern). */
18
+ /** Компонент или тег для рендера корневого элемента. */
20
19
  component?: React.ComponentType<any> | string;
21
- /** Задает HTML-атрибут `href` - адрес, на который следует перейти. */
20
+ /** HTML-атрибут `href`. */
22
21
  href?: string;
23
- /** Задает уникальный идентификатор таба. По нему компонент `<Tabs />` определяет какой `<Tab />` сейчас выбран. */
22
+ /** Уникальный идентификатор таба. По нему компонент `<Tabs />` определяет выбранный таб. */
24
23
  id?: T;
25
24
  /**`HTML`-событие `onclick`. */
26
25
  onClick?: (event: React.MouseEvent<HTMLElement>) => void;
27
26
  /** `HTML`-событие `onkeydown`. */
28
27
  onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;
29
- /** Делает компонент недоступным. */
28
+ /** Делает таб недоступным. */
30
29
  disabled?: boolean;
31
- /** Переводит контрол в состояние валидации "ошибка". */
30
+ /** Переводит таб в состояние валидации "Ошибка". */
32
31
  error?: boolean;
33
- /** Переводит контрол в состояние валидации "предупреждение". */
32
+ /** Переводит таб в состояние валидации "Предупреждение". */
34
33
  warning?: boolean;
35
- /** Устанавливает визульное состояние валидации "успех". */
34
+ /** Переводит таб в состояние валидации "Успех". */
36
35
  success?: boolean;
37
- /** Задает визульное состояние главного элемента. */
36
+ /** Задаёт визульное состояние главного элемента. */
38
37
  primary?: boolean;
39
38
  }
40
39
  export interface TabState {
@@ -42,7 +41,9 @@ export interface TabState {
42
41
  }
43
42
  type DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;
44
43
  /**
45
- * Вложенный элемент компонента Tabs.
44
+ * Табы группируют контент и помогают в навигации.
45
+ *
46
+ * Для создания группы табов используйте специальный контейнер - компонент [Tabs](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tabs--docs).
46
47
  */
47
48
  export declare class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {
48
49
  static __KONTUR_REACT_UI__: string;
@@ -48,7 +48,9 @@ export var TabDataTids = {
48
48
  root: 'Tab__root',
49
49
  };
50
50
  /**
51
- * Вложенный элемент компонента Tabs.
51
+ * Табы группируют контент и помогают в навигации.
52
+ *
53
+ * Для создания группы табов используйте специальный контейнер - компонент [Tabs](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tabs--docs).
52
54
  */
53
55
  var Tab = /** @class */ (function (_super) {
54
56
  __extends(Tab, _super);