@vkontakte/vkui 6.0.2 → 6.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (474) hide show
  1. package/dist/cjs/components/Accordion/Accordion.d.ts +1 -1
  2. package/dist/cjs/components/Accordion/Accordion.d.ts.map +1 -1
  3. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  4. package/dist/cjs/components/ActionSheet/ActionSheet.d.ts +1 -1
  5. package/dist/cjs/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  6. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  7. package/dist/cjs/components/AppRoot/ScrollContext.d.ts +4 -4
  8. package/dist/cjs/components/AppRoot/ScrollContext.d.ts.map +1 -1
  9. package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
  10. package/dist/cjs/components/BaseGallery/CarouselBase/types.d.ts +1 -1
  11. package/dist/cjs/components/BaseGallery/CarouselBase/types.d.ts.map +1 -1
  12. package/dist/cjs/components/BaseGallery/types.d.ts +4 -4
  13. package/dist/cjs/components/BaseGallery/types.d.ts.map +1 -1
  14. package/dist/cjs/components/BaseGallery/types.js.map +1 -1
  15. package/dist/cjs/components/Calendar/Calendar.d.ts +4 -4
  16. package/dist/cjs/components/Calendar/Calendar.d.ts.map +1 -1
  17. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  18. package/dist/cjs/components/CalendarDay/CalendarDay.d.ts +3 -3
  19. package/dist/cjs/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  20. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  21. package/dist/cjs/components/CalendarDays/CalendarDays.d.ts +12 -12
  22. package/dist/cjs/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  23. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  24. package/dist/cjs/components/CalendarHeader/CalendarHeader.d.ts +3 -3
  25. package/dist/cjs/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  26. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  27. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +2 -2
  28. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  29. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  30. package/dist/cjs/components/CalendarTime/CalendarTime.d.ts +3 -3
  31. package/dist/cjs/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  32. package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
  33. package/dist/cjs/components/Cell/Cell.d.ts +1 -1
  34. package/dist/cjs/components/Cell/Cell.d.ts.map +1 -1
  35. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  36. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +1 -1
  37. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  38. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
  39. package/dist/cjs/components/ChipsInput/useChipsInput.d.ts +4 -1
  40. package/dist/cjs/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  41. package/dist/cjs/components/ChipsInputBase/types.d.ts +3 -3
  42. package/dist/cjs/components/ChipsInputBase/types.d.ts.map +1 -1
  43. package/dist/cjs/components/ChipsInputBase/types.js.map +1 -1
  44. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +2 -2
  45. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  46. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  47. package/dist/cjs/components/ChipsSelect/useChipsSelect.d.ts +4 -1
  48. package/dist/cjs/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  49. package/dist/cjs/components/Clickable/Clickable.d.ts.map +1 -1
  50. package/dist/cjs/components/Clickable/Clickable.js +10 -1
  51. package/dist/cjs/components/Clickable/Clickable.js.map +1 -1
  52. package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts +1 -1
  53. package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  54. package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
  55. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.d.ts +5 -5
  56. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  57. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  58. package/dist/cjs/components/CustomSelect/CustomSelectClearButton.d.ts +1 -1
  59. package/dist/cjs/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  60. package/dist/cjs/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  61. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
  62. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  63. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  64. package/dist/cjs/components/FocusTrap/FocusTrap.d.ts +1 -1
  65. package/dist/cjs/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  66. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  67. package/dist/cjs/components/InputLike/InputLike.d.ts +1 -1
  68. package/dist/cjs/components/InputLike/InputLike.d.ts.map +1 -1
  69. package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
  70. package/dist/cjs/components/ModalRoot/ModalRootContext.d.ts +1 -1
  71. package/dist/cjs/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
  72. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  73. package/dist/cjs/components/ModalRoot/types.d.ts +4 -4
  74. package/dist/cjs/components/ModalRoot/types.d.ts.map +1 -1
  75. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltip.d.ts +1 -1
  76. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  77. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  78. package/dist/cjs/components/Pagination/Pagination.d.ts +2 -2
  79. package/dist/cjs/components/Pagination/Pagination.d.ts.map +1 -1
  80. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  81. package/dist/cjs/components/Root/Root.d.ts +2 -2
  82. package/dist/cjs/components/Root/Root.d.ts.map +1 -1
  83. package/dist/cjs/components/Root/Root.js.map +1 -1
  84. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  85. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +9 -13
  86. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  87. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  88. package/dist/cjs/components/SimpleCell/SimpleCell.js +1 -1
  89. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  90. package/dist/cjs/components/Slider/Slider.d.ts +4 -4
  91. package/dist/cjs/components/Slider/Slider.d.ts.map +1 -1
  92. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  93. package/dist/cjs/components/Textarea/Textarea.d.ts +1 -1
  94. package/dist/cjs/components/Textarea/Textarea.d.ts.map +1 -1
  95. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  96. package/dist/cjs/components/View/View.d.ts +5 -5
  97. package/dist/cjs/components/View/View.d.ts.map +1 -1
  98. package/dist/cjs/components/View/View.js.map +1 -1
  99. package/dist/cjs/components/View/ViewInfinite.d.ts +6 -6
  100. package/dist/cjs/components/View/ViewInfinite.d.ts.map +1 -1
  101. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  102. package/dist/cjs/hooks/useDateInput.d.ts +3 -3
  103. package/dist/cjs/hooks/useDateInput.d.ts.map +1 -1
  104. package/dist/cjs/hooks/useDateInput.js.map +1 -1
  105. package/dist/cjs/hooks/useDraggableWithDomApi/types.d.ts +4 -4
  106. package/dist/cjs/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  107. package/dist/cjs/hooks/useDraggableWithDomApi/types.js.map +1 -1
  108. package/dist/cjs/hooks/useEnsuredControl.d.ts +2 -2
  109. package/dist/cjs/hooks/useEnsuredControl.d.ts.map +1 -1
  110. package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
  111. package/dist/cjs/lib/floating/useFloatingWithInteractions/types.d.ts +3 -3
  112. package/dist/cjs/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  113. package/dist/cjs/lib/rafSchd.d.ts +1 -1
  114. package/dist/cjs/lib/rafSchd.d.ts.map +1 -1
  115. package/dist/cjs/lib/rafSchd.js.map +1 -1
  116. package/dist/cjs/lib/react/simulateReactInput.d.ts +3 -3
  117. package/dist/cjs/lib/react/simulateReactInput.d.ts.map +1 -1
  118. package/dist/cjs/lib/react/simulateReactInput.js.map +1 -1
  119. package/dist/components/Accordion/Accordion.d.ts +1 -1
  120. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  121. package/dist/components/Accordion/Accordion.js.map +1 -1
  122. package/dist/components/ActionSheet/ActionSheet.d.ts +1 -1
  123. package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  124. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  125. package/dist/components/AppRoot/ScrollContext.d.ts +4 -4
  126. package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
  127. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  128. package/dist/components/BaseGallery/CarouselBase/types.d.ts +1 -1
  129. package/dist/components/BaseGallery/CarouselBase/types.d.ts.map +1 -1
  130. package/dist/components/BaseGallery/CarouselBase/types.js.map +1 -1
  131. package/dist/components/BaseGallery/types.d.ts +4 -4
  132. package/dist/components/BaseGallery/types.d.ts.map +1 -1
  133. package/dist/components/BaseGallery/types.js.map +1 -1
  134. package/dist/components/Calendar/Calendar.d.ts +4 -4
  135. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  136. package/dist/components/Calendar/Calendar.js.map +1 -1
  137. package/dist/components/CalendarDay/CalendarDay.d.ts +3 -3
  138. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  139. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  140. package/dist/components/CalendarDays/CalendarDays.d.ts +12 -12
  141. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  142. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  143. package/dist/components/CalendarHeader/CalendarHeader.d.ts +3 -3
  144. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  145. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  146. package/dist/components/CalendarRange/CalendarRange.d.ts +2 -2
  147. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  148. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  149. package/dist/components/CalendarTime/CalendarTime.d.ts +3 -3
  150. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  151. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  152. package/dist/components/Cell/Cell.d.ts +1 -1
  153. package/dist/components/Cell/Cell.d.ts.map +1 -1
  154. package/dist/components/Cell/Cell.js.map +1 -1
  155. package/dist/components/Cell/CellDragger/CellDragger.d.ts +1 -1
  156. package/dist/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  157. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  158. package/dist/components/ChipsInput/useChipsInput.d.ts +4 -1
  159. package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  160. package/dist/components/ChipsInputBase/types.d.ts +3 -3
  161. package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
  162. package/dist/components/ChipsInputBase/types.js.map +1 -1
  163. package/dist/components/ChipsSelect/ChipsSelect.d.ts +2 -2
  164. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  165. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  166. package/dist/components/ChipsSelect/useChipsSelect.d.ts +4 -1
  167. package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  168. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  169. package/dist/components/Clickable/Clickable.js +10 -1
  170. package/dist/components/Clickable/Clickable.js.map +1 -1
  171. package/dist/components/CustomScrollView/CustomScrollView.d.ts +1 -1
  172. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  173. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  174. package/dist/components/CustomScrollView/useTrackerVisibility.d.ts +5 -5
  175. package/dist/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  176. package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  177. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts +1 -1
  178. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  179. package/dist/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  180. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
  181. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  182. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  183. package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
  184. package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  185. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  186. package/dist/components/InputLike/InputLike.d.ts +1 -1
  187. package/dist/components/InputLike/InputLike.d.ts.map +1 -1
  188. package/dist/components/InputLike/InputLike.js.map +1 -1
  189. package/dist/components/ModalRoot/ModalRootContext.d.ts +1 -1
  190. package/dist/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
  191. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  192. package/dist/components/ModalRoot/types.d.ts +4 -4
  193. package/dist/components/ModalRoot/types.d.ts.map +1 -1
  194. package/dist/components/ModalRoot/types.js.map +1 -1
  195. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +1 -1
  196. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  197. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  198. package/dist/components/Pagination/Pagination.d.ts +2 -2
  199. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  200. package/dist/components/Pagination/Pagination.js.map +1 -1
  201. package/dist/components/Root/Root.d.ts +2 -2
  202. package/dist/components/Root/Root.d.ts.map +1 -1
  203. package/dist/components/Root/Root.js.map +1 -1
  204. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  205. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +10 -14
  206. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  207. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  208. package/dist/components/SimpleCell/SimpleCell.js +1 -1
  209. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  210. package/dist/components/Slider/Slider.d.ts +4 -4
  211. package/dist/components/Slider/Slider.d.ts.map +1 -1
  212. package/dist/components/Slider/Slider.js.map +1 -1
  213. package/dist/components/Textarea/Textarea.d.ts +1 -1
  214. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  215. package/dist/components/Textarea/Textarea.js.map +1 -1
  216. package/dist/components/View/View.d.ts +5 -5
  217. package/dist/components/View/View.d.ts.map +1 -1
  218. package/dist/components/View/View.js.map +1 -1
  219. package/dist/components/View/ViewInfinite.d.ts +6 -6
  220. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  221. package/dist/components/View/ViewInfinite.js.map +1 -1
  222. package/dist/components.css +8 -8
  223. package/dist/components.css.map +1 -1
  224. package/dist/components.js.tmp +24 -21
  225. package/dist/cssm/components/Accordion/Accordion.d.ts +1 -1
  226. package/dist/cssm/components/Accordion/Accordion.d.ts.map +1 -1
  227. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  228. package/dist/cssm/components/ActionSheet/ActionSheet.d.ts +1 -1
  229. package/dist/cssm/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  230. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  231. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +1 -2
  232. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +1 -1
  233. package/dist/cssm/components/AppRoot/ScrollContext.d.ts +4 -4
  234. package/dist/cssm/components/AppRoot/ScrollContext.d.ts.map +1 -1
  235. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  236. package/dist/cssm/components/BaseGallery/CarouselBase/types.d.ts +1 -1
  237. package/dist/cssm/components/BaseGallery/CarouselBase/types.d.ts.map +1 -1
  238. package/dist/cssm/components/BaseGallery/CarouselBase/types.js.map +1 -1
  239. package/dist/cssm/components/BaseGallery/types.d.ts +4 -4
  240. package/dist/cssm/components/BaseGallery/types.d.ts.map +1 -1
  241. package/dist/cssm/components/BaseGallery/types.js.map +1 -1
  242. package/dist/cssm/components/Button/Button.module.css +6 -5
  243. package/dist/cssm/components/Calendar/Calendar.d.ts +4 -4
  244. package/dist/cssm/components/Calendar/Calendar.d.ts.map +1 -1
  245. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  246. package/dist/cssm/components/CalendarDay/CalendarDay.d.ts +3 -3
  247. package/dist/cssm/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  248. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  249. package/dist/cssm/components/CalendarDays/CalendarDays.d.ts +12 -12
  250. package/dist/cssm/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  251. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  252. package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts +3 -3
  253. package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  254. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  255. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +2 -2
  256. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  257. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  258. package/dist/cssm/components/CalendarTime/CalendarTime.d.ts +3 -3
  259. package/dist/cssm/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  260. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  261. package/dist/cssm/components/Cell/Cell.d.ts +1 -1
  262. package/dist/cssm/components/Cell/Cell.d.ts.map +1 -1
  263. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  264. package/dist/cssm/components/Cell/CellDragger/CellDragger.d.ts +1 -1
  265. package/dist/cssm/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  266. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  267. package/dist/cssm/components/ChipsInput/useChipsInput.d.ts +4 -1
  268. package/dist/cssm/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  269. package/dist/cssm/components/ChipsInputBase/types.d.ts +3 -3
  270. package/dist/cssm/components/ChipsInputBase/types.d.ts.map +1 -1
  271. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  272. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +2 -2
  273. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  274. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  275. package/dist/cssm/components/ChipsSelect/useChipsSelect.d.ts +4 -1
  276. package/dist/cssm/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  277. package/dist/cssm/components/Clickable/Clickable.d.ts.map +1 -1
  278. package/dist/cssm/components/Clickable/Clickable.js +10 -1
  279. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  280. package/dist/cssm/components/Clickable/Clickable.module.css +21 -0
  281. package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts +1 -1
  282. package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  283. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  284. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.d.ts +5 -5
  285. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  286. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  287. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.d.ts +1 -1
  288. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  289. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  290. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
  291. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  292. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  293. package/dist/cssm/components/FocusTrap/FocusTrap.d.ts +1 -1
  294. package/dist/cssm/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  295. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  296. package/dist/cssm/components/InputLike/InputLike.d.ts +1 -1
  297. package/dist/cssm/components/InputLike/InputLike.d.ts.map +1 -1
  298. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  299. package/dist/cssm/components/Link/Link.module.css +1 -2
  300. package/dist/cssm/components/ModalRoot/ModalRootContext.d.ts +1 -1
  301. package/dist/cssm/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
  302. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  303. package/dist/cssm/components/ModalRoot/types.d.ts +4 -4
  304. package/dist/cssm/components/ModalRoot/types.d.ts.map +1 -1
  305. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  306. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.d.ts +1 -1
  307. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  308. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  309. package/dist/cssm/components/Pagination/Pagination.d.ts +2 -2
  310. package/dist/cssm/components/Pagination/Pagination.d.ts.map +1 -1
  311. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  312. package/dist/cssm/components/Root/Root.d.ts +2 -2
  313. package/dist/cssm/components/Root/Root.d.ts.map +1 -1
  314. package/dist/cssm/components/Root/Root.js.map +1 -1
  315. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  316. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +10 -16
  317. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  318. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +1 -1
  319. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  320. package/dist/cssm/components/SimpleCell/SimpleCell.js +1 -1
  321. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  322. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +7 -0
  323. package/dist/cssm/components/Slider/Slider.d.ts +4 -4
  324. package/dist/cssm/components/Slider/Slider.d.ts.map +1 -1
  325. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  326. package/dist/cssm/components/TabsItem/TabsItem.module.css +0 -8
  327. package/dist/cssm/components/Textarea/Textarea.d.ts +1 -1
  328. package/dist/cssm/components/Textarea/Textarea.d.ts.map +1 -1
  329. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  330. package/dist/cssm/components/View/View.d.ts +5 -5
  331. package/dist/cssm/components/View/View.d.ts.map +1 -1
  332. package/dist/cssm/components/View/View.js.map +1 -1
  333. package/dist/cssm/components/View/ViewInfinite.d.ts +6 -6
  334. package/dist/cssm/components/View/ViewInfinite.d.ts.map +1 -1
  335. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  336. package/dist/cssm/hooks/useDateInput.d.ts +3 -3
  337. package/dist/cssm/hooks/useDateInput.d.ts.map +1 -1
  338. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  339. package/dist/cssm/hooks/useDraggableWithDomApi/types.d.ts +4 -4
  340. package/dist/cssm/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  341. package/dist/cssm/hooks/useDraggableWithDomApi/types.js.map +1 -1
  342. package/dist/cssm/hooks/useEnsuredControl.d.ts +2 -2
  343. package/dist/cssm/hooks/useEnsuredControl.d.ts.map +1 -1
  344. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  345. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.d.ts +3 -3
  346. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  347. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  348. package/dist/cssm/lib/rafSchd.d.ts +1 -1
  349. package/dist/cssm/lib/rafSchd.d.ts.map +1 -1
  350. package/dist/cssm/lib/rafSchd.js.map +1 -1
  351. package/dist/cssm/lib/react/simulateReactInput.d.ts +3 -3
  352. package/dist/cssm/lib/react/simulateReactInput.d.ts.map +1 -1
  353. package/dist/cssm/lib/react/simulateReactInput.js.map +1 -1
  354. package/dist/hooks/useDateInput.d.ts +3 -3
  355. package/dist/hooks/useDateInput.d.ts.map +1 -1
  356. package/dist/hooks/useDateInput.js.map +1 -1
  357. package/dist/hooks/useDraggableWithDomApi/types.d.ts +4 -4
  358. package/dist/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  359. package/dist/hooks/useDraggableWithDomApi/types.js.map +1 -1
  360. package/dist/hooks/useEnsuredControl.d.ts +2 -2
  361. package/dist/hooks/useEnsuredControl.d.ts.map +1 -1
  362. package/dist/hooks/useEnsuredControl.js.map +1 -1
  363. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +3 -3
  364. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  365. package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  366. package/dist/lib/rafSchd.d.ts +1 -1
  367. package/dist/lib/rafSchd.d.ts.map +1 -1
  368. package/dist/lib/rafSchd.js.map +1 -1
  369. package/dist/lib/react/simulateReactInput.d.ts +3 -3
  370. package/dist/lib/react/simulateReactInput.d.ts.map +1 -1
  371. package/dist/lib/react/simulateReactInput.js.map +1 -1
  372. package/dist/vkui.css +8 -8
  373. package/dist/vkui.css.map +1 -1
  374. package/dist/vkui.js.tmp +24 -21
  375. package/package.json +1 -1
  376. package/src/components/Accordion/Accordion.tsx +1 -1
  377. package/src/components/Accordion/__image_snapshots__/accordion-ios-webkit-dark-1-snap.png +2 -2
  378. package/src/components/Accordion/__image_snapshots__/accordion-ios-webkit-light-1-snap.png +2 -2
  379. package/src/components/ActionSheet/ActionSheet.module.css +1 -2
  380. package/src/components/ActionSheet/ActionSheet.tsx +1 -1
  381. package/src/components/ActionSheet/Readme.md +6 -6
  382. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-chromium-dark-1-snap.png +2 -2
  383. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-chromium-light-1-snap.png +2 -2
  384. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-firefox-dark-1-snap.png +2 -2
  385. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-firefox-light-1-snap.png +2 -2
  386. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-webkit-dark-1-snap.png +2 -2
  387. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-desktop-sizey-regular-vkcom-webkit-light-1-snap.png +2 -2
  388. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-mobile-sizey-regular-android-chromium-dark-1-snap.png +2 -2
  389. package/src/components/ActionSheet/__image_snapshots__/actionsheet-viewwidth-mobile-sizey-regular-android-chromium-light-1-snap.png +2 -2
  390. package/src/components/ActionSheetItem/ActionSheetItem.module.css +1 -1
  391. package/src/components/AppRoot/ScrollContext.tsx +4 -4
  392. package/src/components/BaseGallery/CarouselBase/types.ts +1 -1
  393. package/src/components/BaseGallery/types.ts +4 -4
  394. package/src/components/Button/Button.module.css +6 -2
  395. package/src/components/Calendar/Calendar.stories.tsx +2 -2
  396. package/src/components/Calendar/Calendar.tsx +4 -4
  397. package/src/components/CalendarDay/CalendarDay.tsx +3 -3
  398. package/src/components/CalendarDays/CalendarDays.tsx +12 -12
  399. package/src/components/CalendarHeader/CalendarHeader.tsx +3 -3
  400. package/src/components/CalendarRange/CalendarRange.tsx +2 -2
  401. package/src/components/CalendarTime/CalendarTime.tsx +3 -3
  402. package/src/components/Cell/Cell.tsx +1 -1
  403. package/src/components/Cell/CellDragger/CellDragger.tsx +1 -1
  404. package/src/components/CellButton/__image_snapshots__/cellbutton-ios-webkit-dark-1-snap.png +2 -2
  405. package/src/components/CellButton/__image_snapshots__/cellbutton-ios-webkit-light-1-snap.png +2 -2
  406. package/src/components/ChipsInputBase/types.ts +3 -3
  407. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -2
  408. package/src/components/Clickable/Clickable.module.css +14 -0
  409. package/src/components/Clickable/Clickable.tsx +15 -1
  410. package/src/components/CustomScrollView/CustomScrollView.tsx +1 -1
  411. package/src/components/CustomScrollView/useTrackerVisibility.ts +5 -5
  412. package/src/components/CustomSelect/CustomSelect.test.tsx +1 -1
  413. package/src/components/CustomSelect/CustomSelectClearButton.tsx +1 -1
  414. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -1
  415. package/src/components/FocusTrap/FocusTrap.tsx +1 -1
  416. package/src/components/Input/Readme.md +1 -1
  417. package/src/components/InputLike/InputLike.tsx +1 -1
  418. package/src/components/Link/Link.module.css +1 -2
  419. package/src/components/ModalRoot/ModalRootContext.tsx +1 -1
  420. package/src/components/ModalRoot/types.ts +4 -4
  421. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +1 -1
  422. package/src/components/Pagination/Pagination.tsx +2 -2
  423. package/src/components/Popper/Readme.md +1 -1
  424. package/src/components/PullToRefresh/PullToRefresh.e2e.tsx +2 -0
  425. package/src/components/Root/Root.tsx +1 -1
  426. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +1 -1
  427. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +21 -36
  428. package/src/components/SimpleCell/SimpleCell.e2e-playground.tsx +4 -0
  429. package/src/components/SimpleCell/SimpleCell.module.css +5 -0
  430. package/src/components/SimpleCell/SimpleCell.tsx +8 -1
  431. package/src/components/SimpleCell/__image_snapshots__/simplecell-android-chromium-dark-1-snap.png +2 -2
  432. package/src/components/SimpleCell/__image_snapshots__/simplecell-android-chromium-light-1-snap.png +2 -2
  433. package/src/components/SimpleCell/__image_snapshots__/simplecell-ios-webkit-dark-1-snap.png +2 -2
  434. package/src/components/SimpleCell/__image_snapshots__/simplecell-ios-webkit-light-1-snap.png +2 -2
  435. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-chromium-dark-1-snap.png +2 -2
  436. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-chromium-light-1-snap.png +2 -2
  437. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-firefox-dark-1-snap.png +2 -2
  438. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-firefox-light-1-snap.png +2 -2
  439. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-webkit-dark-1-snap.png +2 -2
  440. package/src/components/SimpleCell/__image_snapshots__/simplecell-vkcom-webkit-light-1-snap.png +2 -2
  441. package/src/components/Slider/Slider.test.tsx +11 -5
  442. package/src/components/Slider/Slider.tsx +4 -4
  443. package/src/components/Tabs/__image_snapshots__/tabs-android-chromium-dark-1-snap.png +2 -2
  444. package/src/components/Tabs/__image_snapshots__/tabs-android-chromium-light-1-snap.png +2 -2
  445. package/src/components/Tabs/__image_snapshots__/tabs-ios-webkit-dark-1-snap.png +2 -2
  446. package/src/components/Tabs/__image_snapshots__/tabs-ios-webkit-light-1-snap.png +2 -2
  447. package/src/components/Tabs/__image_snapshots__/tabs-layout-fill-mode-android-chromium-light-1-snap.png +2 -2
  448. package/src/components/Tabs/__image_snapshots__/tabs-layout-fill-mode-ios-webkit-light-1-snap.png +2 -2
  449. package/src/components/Tabs/__image_snapshots__/tabs-layout-fill-mode-vkcom-chromium-light-1-snap.png +2 -2
  450. package/src/components/Tabs/__image_snapshots__/tabs-layout-fill-mode-vkcom-firefox-light-1-snap.png +2 -2
  451. package/src/components/Tabs/__image_snapshots__/tabs-layout-fill-mode-vkcom-webkit-light-1-snap.png +2 -2
  452. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-chromium-dark-1-snap.png +2 -2
  453. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-chromium-light-1-snap.png +2 -2
  454. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-firefox-dark-1-snap.png +2 -2
  455. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-firefox-light-1-snap.png +2 -2
  456. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-webkit-dark-1-snap.png +2 -2
  457. package/src/components/Tabs/__image_snapshots__/tabs-vkcom-webkit-light-1-snap.png +2 -2
  458. package/src/components/TabsItem/TabsItem.module.css +0 -9
  459. package/src/components/Textarea/Textarea.tsx +1 -1
  460. package/src/components/Touch/Readme.md +1 -1
  461. package/src/components/View/View.stories.tsx +1 -1
  462. package/src/components/View/View.tsx +4 -4
  463. package/src/components/View/ViewInfinite.tsx +5 -5
  464. package/src/components/WriteBar/Readme.md +1 -1
  465. package/src/hooks/useDateInput.ts +3 -3
  466. package/src/hooks/useDraggableWithDomApi/types.ts +4 -4
  467. package/src/hooks/useEnsuredControl.ts +2 -2
  468. package/src/hooks/useGlobalOnClickOutside.test.tsx +1 -1
  469. package/src/lib/floating/useFloatingWithInteractions/types.ts +3 -3
  470. package/src/lib/rafSchd.ts +1 -1
  471. package/src/lib/react/simulateReactInput.ts +3 -3
  472. package/src/storybook/VKUIDecorators.tsx +0 -16
  473. package/src/testing/e2e/ComponentPlayground.tsx +1 -1
  474. package/src/testing/e2e/types.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { Touch, type TouchEvent, type TouchEventHandler } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles['Slider--sizeY-none'],\n ['compact']: styles['Slider--sizeY-compact'],\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?(index: number): string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?(value: number, index: number): string;\n withTooltip?: boolean;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n multiple?: false;\n value?: number;\n defaultValue?: number;\n onChange?(value: number, event: TouchEvent | React.ChangeEvent): void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n multiple: true;\n value?: [number, number];\n defaultValue?: [number, number];\n onChange?(value: [number, number], event: TouchEvent | React.ChangeEvent): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Slider\n */\nexport const Slider = ({\n step = 1,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n onChange,\n withTooltip,\n ...restProps\n}: SliderProps | SliderMultipleProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (nextValue: InternalValueState, event: TouchEvent | React.ChangeEvent) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: TouchEventHandler = (event: TouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n const nextStartX = event.startX - nextContainerX;\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n };\n\n const handlePointerMove: TouchEventHandler = (event: TouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + shiftX;\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: TouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n event,\n );\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles['Slider'],\n disabled && styles['Slider--disabled'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n className,\n )}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles['Slider__track']} />\n <div\n className={styles['Slider__track-fill']}\n style={\n multiple\n ? { left: `${startValueInPercent}%`, right: `${100 - endReversedValueInPercent}%` }\n : { width: `${startValueInPercent}%` }\n }\n />\n <div ref={thumbsContainerRef} className={styles['Slider__thumbs']}>\n <SliderThumb\n data-type=\"start\"\n className={styles['Slider__thumb']}\n style={{\n left: `${startValueInPercent}%`,\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={styles['Slider__thumb']}\n style={{ left: `${endReversedValueInPercent}%` }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","useAdaptivity","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","styles","sizeYClassNames","none","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","onChange","withTooltip","restProps","sizeY","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","data-value","onStart","onMove","onEnd","div","style","right","ref","data-type","zIndex","inputProps"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { Touch, type TouchEvent, type TouchEventHandler } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles['Slider--sizeY-none'],\n ['compact']: styles['Slider--sizeY-compact'],\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?: (index: number) => string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?: (value: number, index: number) => string;\n withTooltip?: boolean;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n multiple?: false;\n value?: number;\n defaultValue?: number;\n onChange?: (value: number, event: TouchEvent | React.ChangeEvent) => void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n multiple: true;\n value?: [number, number];\n defaultValue?: [number, number];\n onChange?: (value: [number, number], event: TouchEvent | React.ChangeEvent) => void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Slider\n */\nexport const Slider = ({\n step = 1,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n onChange,\n withTooltip,\n ...restProps\n}: SliderProps | SliderMultipleProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (nextValue: InternalValueState, event: TouchEvent | React.ChangeEvent) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: TouchEventHandler = (event: TouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n const nextStartX = event.startX - nextContainerX;\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n };\n\n const handlePointerMove: TouchEventHandler = (event: TouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + shiftX;\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: TouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n event,\n );\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles['Slider'],\n disabled && styles['Slider--disabled'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n className,\n )}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles['Slider__track']} />\n <div\n className={styles['Slider__track-fill']}\n style={\n multiple\n ? { left: `${startValueInPercent}%`, right: `${100 - endReversedValueInPercent}%` }\n : { width: `${startValueInPercent}%` }\n }\n />\n <div ref={thumbsContainerRef} className={styles['Slider__thumbs']}>\n <SliderThumb\n data-type=\"start\"\n className={styles['Slider__thumb']}\n style={{\n left: `${startValueInPercent}%`,\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={styles['Slider__thumb']}\n style={{ left: `${endReversedValueInPercent}%` }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","useAdaptivity","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","styles","sizeYClassNames","none","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","onChange","withTooltip","restProps","sizeY","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","data-value","onStart","onMove","onEnd","div","style","right","ref","data-type","zIndex","inputProps"],"mappings":"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"}
@@ -120,10 +120,6 @@
120
120
  color: var(--vkui--color_icon_accent_themed);
121
121
  }
122
122
 
123
- .TabsItem--selected.TabsItem--mode-secondary .TabsItem__before {
124
- opacity: 0.72;
125
- }
126
-
127
123
  /* Элемент */
128
124
 
129
125
  .TabsItem__label {
@@ -144,10 +140,6 @@
144
140
  color: var(--vkui--color_text_accent_themed);
145
141
  }
146
142
 
147
- .TabsItem--selected.TabsItem--mode-secondary .TabsItem__label {
148
- opacity: 0.72;
149
- }
150
-
151
143
  /* Элемент */
152
144
 
153
145
  .TabsItem__status {
@@ -3,7 +3,7 @@ import { HasRef, HasRootRef } from '../../types';
3
3
  import { FormFieldProps } from '../FormField/FormField';
4
4
  export interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'onResize'>, HasRef<HTMLTextAreaElement>, HasRootRef<HTMLElement>, Pick<React.CSSProperties, 'maxHeight'>, Pick<FormFieldProps, 'status'> {
5
5
  grow?: boolean;
6
- onResize?(el: HTMLTextAreaElement): void;
6
+ onResize?: (el: HTMLTextAreaElement) => void;
7
7
  defaultValue?: string;
8
8
  }
9
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../../src/components/Textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAa,cAAc,EAAE,MAAM,wBAAwB,CAAC;AASnE,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC,EACzE,MAAM,CAAC,mBAAmB,CAAC,EAC3B,UAAU,CAAC,WAAW,CAAC,EACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,EACtC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,8GAYlB,aAAa,sBA6Cf,CAAC"}
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../../src/components/Textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAa,cAAc,EAAE,MAAM,wBAAwB,CAAC;AASnE,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC,EACzE,MAAM,CAAC,mBAAmB,CAAC,EAC3B,UAAU,CAAC,WAAW,CAAC,EACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,EACtC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,8GAYlB,aAAa,sBA6Cf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { HasRef, HasRootRef } from '../../types';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './Textarea.module.css';\n\nconst sizeYClassNames = {\n none: styles['Textarea--sizeY-none'],\n ['compact']: styles['Textarea--sizeY-compact'],\n};\n\nexport interface TextareaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'onResize'>,\n HasRef<HTMLTextAreaElement>,\n HasRootRef<HTMLElement>,\n Pick<React.CSSProperties, 'maxHeight'>,\n Pick<FormFieldProps, 'status'> {\n grow?: boolean;\n onResize?(el: HTMLTextAreaElement): void;\n defaultValue?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Textarea\n */\nexport const Textarea = ({\n grow = true,\n style,\n onResize,\n className,\n getRootRef,\n getRef,\n rows = 2,\n maxHeight,\n status,\n onChange,\n ...restProps\n}: TextareaProps) => {\n const currentScrollHeight = React.useRef<number>();\n const elementRef = useExternRef(getRef);\n const { sizeY = 'none' } = useAdaptivity();\n\n const autosizeInput = () => {\n const el = elementRef.current;\n\n if (grow && el?.offsetParent) {\n el.style.height = '';\n el.style.height = `${el.scrollHeight}px`;\n\n if (el.scrollHeight !== currentScrollHeight.current && onResize) {\n onResize(el);\n currentScrollHeight.current = el.scrollHeight;\n }\n }\n };\n\n React.useEffect(autosizeInput, [grow, sizeY, elementRef, onResize]);\n\n return (\n <FormField\n className={classNames(\n styles['Textarea'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n className,\n )}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n status={status}\n >\n <Text\n {...restProps}\n Component=\"textarea\"\n normalize={false}\n style={{ maxHeight }}\n rows={rows}\n className={styles['Textarea__el']}\n onChange={callMultiple(onChange, autosizeInput)}\n getRootRef={elementRef}\n />\n </FormField>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useExternRef","callMultiple","FormField","Text","styles","sizeYClassNames","none","Textarea","grow","style","onResize","className","getRootRef","getRef","rows","maxHeight","status","onChange","restProps","currentScrollHeight","useRef","elementRef","sizeY","autosizeInput","el","current","offsetParent","height","scrollHeight","useEffect","disabled","Component","normalize"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,YAAY,QAAQ,yBAAyB;AAEtD,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,OAAOC,YAAY,wBAAwB;AAE3C,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,uBAAuB;IACpC,CAAC,UAAU,EAAEA,MAAM,CAAC,0BAA0B;AAChD;AAaA;;CAEC,GACD,OAAO,MAAMG,WAAW,CAAC,EACvBC,OAAO,IAAI,EACXC,KAAK,EACLC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,MAAM,EACNC,OAAO,CAAC,EACRC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACR,GAAGC,WACW;IACd,MAAMC,sBAAsBtB,MAAMuB,MAAM;IACxC,MAAMC,aAAarB,aAAaa;IAChC,MAAM,EAAES,QAAQ,MAAM,EAAE,GAAGvB;IAE3B,MAAMwB,gBAAgB;QACpB,MAAMC,KAAKH,WAAWI,OAAO;QAE7B,IAAIjB,QAAQgB,IAAIE,cAAc;YAC5BF,GAAGf,KAAK,CAACkB,MAAM,GAAG;YAClBH,GAAGf,KAAK,CAACkB,MAAM,GAAG,CAAC,EAAEH,GAAGI,YAAY,CAAC,EAAE,CAAC;YAExC,IAAIJ,GAAGI,YAAY,KAAKT,oBAAoBM,OAAO,IAAIf,UAAU;gBAC/DA,SAASc;gBACTL,oBAAoBM,OAAO,GAAGD,GAAGI,YAAY;YAC/C;QACF;IACF;IAEA/B,MAAMgC,SAAS,CAACN,eAAe;QAACf;QAAMc;QAAOD;QAAYX;KAAS;IAElE,qBACE,oBAACR;QACCS,WAAWb,WACTM,MAAM,CAAC,WAAW,EAClBkB,UAAU,aAAajB,eAAe,CAACiB,MAAM,EAC7CX;QAEFF,OAAOA;QACPG,YAAYA;QACZkB,UAAUZ,UAAUY,QAAQ;QAC5Bd,QAAQA;qBAER,oBAACb;QACE,GAAGe,SAAS;QACba,WAAU;QACVC,WAAW;QACXvB,OAAO;YAAEM;QAAU;QACnBD,MAAMA;QACNH,WAAWP,MAAM,CAAC,eAAe;QACjCa,UAAUhB,aAAagB,UAAUM;QACjCX,YAAYS;;AAIpB,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { HasRef, HasRootRef } from '../../types';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './Textarea.module.css';\n\nconst sizeYClassNames = {\n none: styles['Textarea--sizeY-none'],\n ['compact']: styles['Textarea--sizeY-compact'],\n};\n\nexport interface TextareaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'onResize'>,\n HasRef<HTMLTextAreaElement>,\n HasRootRef<HTMLElement>,\n Pick<React.CSSProperties, 'maxHeight'>,\n Pick<FormFieldProps, 'status'> {\n grow?: boolean;\n onResize?: (el: HTMLTextAreaElement) => void;\n defaultValue?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Textarea\n */\nexport const Textarea = ({\n grow = true,\n style,\n onResize,\n className,\n getRootRef,\n getRef,\n rows = 2,\n maxHeight,\n status,\n onChange,\n ...restProps\n}: TextareaProps) => {\n const currentScrollHeight = React.useRef<number>();\n const elementRef = useExternRef(getRef);\n const { sizeY = 'none' } = useAdaptivity();\n\n const autosizeInput = () => {\n const el = elementRef.current;\n\n if (grow && el?.offsetParent) {\n el.style.height = '';\n el.style.height = `${el.scrollHeight}px`;\n\n if (el.scrollHeight !== currentScrollHeight.current && onResize) {\n onResize(el);\n currentScrollHeight.current = el.scrollHeight;\n }\n }\n };\n\n React.useEffect(autosizeInput, [grow, sizeY, elementRef, onResize]);\n\n return (\n <FormField\n className={classNames(\n styles['Textarea'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n className,\n )}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n status={status}\n >\n <Text\n {...restProps}\n Component=\"textarea\"\n normalize={false}\n style={{ maxHeight }}\n rows={rows}\n className={styles['Textarea__el']}\n onChange={callMultiple(onChange, autosizeInput)}\n getRootRef={elementRef}\n />\n </FormField>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useExternRef","callMultiple","FormField","Text","styles","sizeYClassNames","none","Textarea","grow","style","onResize","className","getRootRef","getRef","rows","maxHeight","status","onChange","restProps","currentScrollHeight","useRef","elementRef","sizeY","autosizeInput","el","current","offsetParent","height","scrollHeight","useEffect","disabled","Component","normalize"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,YAAY,QAAQ,yBAAyB;AAEtD,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,OAAOC,YAAY,wBAAwB;AAE3C,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,uBAAuB;IACpC,CAAC,UAAU,EAAEA,MAAM,CAAC,0BAA0B;AAChD;AAaA;;CAEC,GACD,OAAO,MAAMG,WAAW,CAAC,EACvBC,OAAO,IAAI,EACXC,KAAK,EACLC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,MAAM,EACNC,OAAO,CAAC,EACRC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACR,GAAGC,WACW;IACd,MAAMC,sBAAsBtB,MAAMuB,MAAM;IACxC,MAAMC,aAAarB,aAAaa;IAChC,MAAM,EAAES,QAAQ,MAAM,EAAE,GAAGvB;IAE3B,MAAMwB,gBAAgB;QACpB,MAAMC,KAAKH,WAAWI,OAAO;QAE7B,IAAIjB,QAAQgB,IAAIE,cAAc;YAC5BF,GAAGf,KAAK,CAACkB,MAAM,GAAG;YAClBH,GAAGf,KAAK,CAACkB,MAAM,GAAG,CAAC,EAAEH,GAAGI,YAAY,CAAC,EAAE,CAAC;YAExC,IAAIJ,GAAGI,YAAY,KAAKT,oBAAoBM,OAAO,IAAIf,UAAU;gBAC/DA,SAASc;gBACTL,oBAAoBM,OAAO,GAAGD,GAAGI,YAAY;YAC/C;QACF;IACF;IAEA/B,MAAMgC,SAAS,CAACN,eAAe;QAACf;QAAMc;QAAOD;QAAYX;KAAS;IAElE,qBACE,oBAACR;QACCS,WAAWb,WACTM,MAAM,CAAC,WAAW,EAClBkB,UAAU,aAAajB,eAAe,CAACiB,MAAM,EAC7CX;QAEFF,OAAOA;QACPG,YAAYA;QACZkB,UAAUZ,UAAUY,QAAQ;QAC5Bd,QAAQA;qBAER,oBAACb;QACE,GAAGe,SAAS;QACba,WAAU;QACVC,WAAW;QACXvB,OAAO;YAAEM;QAAU;QACnBD,MAAMA;QACNH,WAAWP,MAAM,CAAC,eAAe;QACjCa,UAAUhB,aAAagB,UAAUM;QACjCX,YAAYS;;AAIpB,EAAE"}
@@ -10,25 +10,25 @@ interface ViewsScrolls {
10
10
  export declare let scrollsCache: ViewsScrolls;
11
11
  export interface ViewProps extends HTMLAttributesWithRootRef<HTMLElement>, NavIdProps {
12
12
  activePanel: string;
13
- onTransition?(params: {
13
+ onTransition?: (params: {
14
14
  isBack: boolean;
15
15
  from: string;
16
16
  to: string;
17
- }): void;
17
+ }) => void;
18
18
  /**
19
19
  * callback свайпа назад
20
20
  */
21
- onSwipeBack?(): void;
21
+ onSwipeBack?: () => void;
22
22
  /**
23
23
  * callback начала анимации свайпа назад.
24
24
  *
25
25
  * Чтобы остановить свайп назад, возвращайте `"prevent"`.
26
26
  */
27
- onSwipeBackStart?(activePanel: string | null): void | 'prevent';
27
+ onSwipeBackStart?: (activePanel: string | null) => void | 'prevent';
28
28
  /**
29
29
  * callback завершения анимации отмененного пользователем свайпа
30
30
  */
31
- onSwipeBackCancel?(): void;
31
+ onSwipeBackCancel?: () => void;
32
32
  history?: string[];
33
33
  children: React.ReactElement | Iterable<React.ReactElement>;
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../../src/components/View/View.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAY,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAI1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAexD,UAAU,OAAO;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,UAAU,YAAY;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,eAAO,IAAI,YAAY,EAAE,YAAiB,CAAC;AAE3C,MAAM,WAAW,SAAU,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAAE,UAAU;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3E;;OAEG;IACH,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAChE;;OAEG;IACH,iBAAiB,CAAC,IAAI,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;CAC7D;AAID;;GAEG;AACH,eAAO,MAAM,IAAI,6KAWd,SAAS,sBAqfX,CAAC"}
1
+ {"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../../src/components/View/View.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAY,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAI1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAexD,UAAU,OAAO;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,UAAU,YAAY;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,eAAO,IAAI,YAAY,EAAE,YAAiB,CAAC;AAE3C,MAAM,WAAW,SAAU,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAAE,UAAU;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/E;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,SAAS,CAAC;IACpE;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;CAC7D;AAID;;GAEG;AACH,eAAO,MAAM,IAAI,6KAWd,SAAS,sBAqfX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/View/View.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { blurActiveElement, canUseDOM, useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { animationEvent } from '../../lib/supportEvents';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { useScroll } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavViewIdContext } from '../NavIdContext/NavIdContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { NavTransitionDirectionProvider } from '../NavTransitionDirectionContext/NavTransitionDirectionContext';\nimport { useSplitCol } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport {\n getSwipeBackPredicates,\n hasHorizontalScrollableElementWithScrolledToLeft,\n swipeBackExcluded,\n} from './utils';\nimport styles from './View.module.css';\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps extends HTMLAttributesWithRootRef<HTMLElement>, NavIdProps {\n activePanel: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n *\n * Чтобы остановить свайп назад, возвращайте `\"prevent\"`.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n\n children: React.ReactElement | Iterable<React.ReactElement>;\n}\n\nconst warn = warnOnce('View');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nexport const View = ({\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n className,\n ...restProps\n}: ViewProps) => {\n const id = getNavId({ nav, id: restProps.id });\n const scrolls = React.useRef(scrollsCache[id as string] || {});\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(activePanelProp);\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const swipeBackPrevented = React.useRef<boolean>(false);\n const [swipingBack, setSwipingBack] = React.useState<boolean | undefined>(undefined);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<string | null>(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<string | null>(null);\n const [swipeBackResult, setSwipeBackResult] = React.useState<'success' | 'fail' | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackShift = usePrevious(swipeBackShift);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (React.Children.toArray(children) as React.ReactElement[]).filter(\n (panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n },\n );\n\n const disableAnimation =\n !configProvider.transitionMotionEnabled || !splitCol.animate || platform === 'vkcom';\n const iOSSwipeBackSimulationEnabled =\n !disableAnimation && platform === 'ios' && configProvider.isWebView && Boolean(onSwipeBack);\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(isBackTransition);\n\n afterTransition.current = () => {\n scroll?.scrollTo(0, isBackTransition ? scrolls.current[activePanelProp] : 0);\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll],\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n styles['animation-ios-next-forward'],\n styles['animation-ios-prev-back'],\n styles['animation-view-next-forward'],\n styles['animation-view-prev-back'],\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel],\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(transitionEndHandler, platform === 'ios' ? 600 : 300);\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes('transform') && e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case 'fail':\n onSwipeBackCancel();\n break;\n case 'success':\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult],\n );\n\n const handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext = (event: TouchEvent) => {\n if (browserSwipe) {\n return;\n }\n const { swipeBackTriggered, viewportStartEdgeTouched, viewportEndEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, window!.innerWidth);\n\n if ((viewportStartEdgeTouched || viewportEndEdgeTouched) && swipeBackTriggered) {\n setBrowserSwipe(true);\n }\n };\n\n const handleTouchMoveXForIOSSwipeBackSimulation = (event: TouchEvent) => {\n if (swipeBackPrevented.current || swipeBackExcluded(event)) {\n return;\n }\n\n const { swipedToOpposite, swipeBackTriggered, viewportStartEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, window!.innerWidth);\n\n if (animated && swipeBackTriggered) {\n return;\n }\n\n if (!swipingBack && history && history.length > 1) {\n if (swipedToOpposite) {\n swipeBackPrevented.current = true;\n return;\n }\n\n if (!swipeBackTriggered) {\n return;\n }\n\n if (\n !viewportStartEdgeTouched &&\n hasHorizontalScrollableElementWithScrolledToLeft(event.originalEvent.target as HTMLElement)\n ) {\n swipeBackPrevented.current = true;\n return;\n }\n // Начался свайп назад\n if (onSwipeBackStart) {\n const payload = onSwipeBackStart(activePanel);\n if (payload === 'prevent') {\n swipeBackPrevented.current = true;\n return;\n }\n }\n\n if (activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n blurActiveElement(document);\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(event.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n\n if (swipingBack) {\n if (event.shiftX < 0) {\n setSwipeBackShift(0);\n } else if (event.shiftX > window!.innerWidth - swipeBackStartX) {\n setSwipeBackShift(window!.innerWidth);\n } else {\n setSwipeBackShift(event.shiftX);\n }\n }\n };\n\n const handleTouchEndForIOSSwipeBackSimulation = (event: TouchEvent) => {\n swipeBackPrevented.current = false;\n\n if (swipingBack) {\n const speed = (swipeBackShift / event.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window!.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (speed > 250 || swipeBackShift >= window!.innerWidth / 2) {\n setSwipeBackResult('success');\n } else {\n setSwipeBackResult('fail');\n }\n }\n };\n\n const calcPanelSwipeStyles = (panelId: string | undefined): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${-50 + (swipeBackShift * 100) / window.innerWidth / 2}%`;\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n };\n }\n\n return {};\n };\n\n const calcPanelSwipeBackOverlayStyles = (panelId?: string): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isNext = panelId === swipeBackNextPanel;\n if (!isNext) {\n return {};\n }\n\n const calculatedOpacity = 1 - swipeBackShift / window.innerWidth;\n const opacityOnSwipeEnd =\n swipeBackResult === 'success' ? 0 : swipeBackResult === 'fail' ? 1 : null;\n\n return {\n display: 'block',\n opacity: opacityOnSwipeEnd === null ? calculatedOpacity : opacityOnSwipeEnd,\n };\n };\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (React.Children.toArray(children) as React.ReactElement[])\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevActivePanel && prevActivePanel !== activePanelProp && prevSwipingBack) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n setIsBack(true);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === 'ios' ? 600 : 300,\n );\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n React.useEffect(\n function restoreScrollPositionWhenSwipeBackIsCancelled() {\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n const swipeBackCancelledInTheMiddleOfAction =\n prevSwipeBackResult === 'fail' && !swipeBackResult;\n const swipeBackCancelledByMovingPanelBackToInitialPoint =\n prevSwipingBack && !swipingBack && prevSwipeBackShift === 0;\n\n if (\n (swipeBackCancelledInTheMiddleOfAction ||\n swipeBackCancelledByMovingPanelBackToInitialPoint) &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n },\n [\n prevSwipeBackResult,\n swipeBackResult,\n prevSwipingBack,\n swipingBack,\n prevSwipeBackShift,\n activePanel,\n scroll,\n ],\n );\n\n return (\n <NavViewIdContext.Provider value={id}>\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n platform === 'ios' && classNames(styles['View--ios'], 'vkuiInternalView--ios'),\n !disableAnimation && animated && styles['View--animated'],\n !disableAnimation && swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={\n iOSSwipeBackSimulationEnabled\n ? handleTouchMoveXForIOSSwipeBackSimulation\n : platform === 'ios'\n ? handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext\n : undefined\n }\n onEnd={iOSSwipeBackSimulationEnabled ? handleTouchEndForIOSSwipeBackSimulation : undefined}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && styles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'],\n swipeBackResult === 'success' && styles['View__panel--swipe-back-success'],\n swipeBackResult === 'fail' && styles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (panelNodes.current[panelId] = el)}\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n {platform === 'ios' && (\n <div\n className={styles['View__panel-overlay']}\n style={calcPanelSwipeBackOverlayStyles(panelId)}\n />\n )}\n <div\n className={styles['View__panel-in']}\n style={{\n marginTop: compensateScroll ? -(scrolls.current[panelId] ?? 0) : undefined,\n }}\n >\n <NavTransitionDirectionProvider isBack={swipingBack || isBack}>\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </NavTransitionDirectionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n </NavViewIdContext.Provider>\n );\n};\n"],"names":["React","classNames","noop","usePlatform","usePrevious","useTimeout","useWaitTransitionFinish","blurActiveElement","canUseDOM","useDOM","getNavId","animationEvent","useIsomorphicLayoutEffect","warnOnce","useScroll","useConfigProvider","NavViewIdContext","NavTransitionProvider","NavTransitionDirectionProvider","useSplitCol","Touch","getSwipeBackPredicates","hasHorizontalScrollableElementWithScrolledToLeft","swipeBackExcluded","styles","scrollsCache","warn","View","activePanel","activePanelProp","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancel","onSwipeBackCancelProp","children","className","restProps","id","scrolls","useRef","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","animated","setAnimated","useState","visiblePanels","setVisiblePanels","setActivePanel","isBack","setIsBack","undefined","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipeBackPrevented","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackShift","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","iOSSwipeBackSimulationEnabled","isWebView","Boolean","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","waitTransitionFinish","animationFinishTimeout","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext","event","swipeBackTriggered","viewportStartEdgeTouched","viewportEndEdgeTouched","startX","shiftX","innerWidth","handleTouchMoveXForIOSSwipeBackSimulation","swipedToOpposite","length","originalEvent","payload","getScroll","y","slice","handleTouchEndForIOSSwipeBackSimulation","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","transform","WebkitTransform","calcPanelSwipeBackOverlayStyles","calculatedOpacity","opacityOnSwipeEnd","display","opacity","firstLayerId","map","find","supported","set","restoreScrollPositionWhenSwipeBackIsCancelled","swipeBackCancelledInTheMiddleOfAction","swipeBackCancelledByMovingPanelBackToInitialPoint","Provider","value","Component","onMoveX","onEnd","div","isTransitionTarget","compensateScroll","onAnimationEnd","ref","el","style","key","marginTop","entering"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/View/View.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { blurActiveElement, canUseDOM, useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { animationEvent } from '../../lib/supportEvents';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { useScroll } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavViewIdContext } from '../NavIdContext/NavIdContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { NavTransitionDirectionProvider } from '../NavTransitionDirectionContext/NavTransitionDirectionContext';\nimport { useSplitCol } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport {\n getSwipeBackPredicates,\n hasHorizontalScrollableElementWithScrolledToLeft,\n swipeBackExcluded,\n} from './utils';\nimport styles from './View.module.css';\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps extends HTMLAttributesWithRootRef<HTMLElement>, NavIdProps {\n activePanel: string;\n onTransition?: (params: { isBack: boolean; from: string; to: string }) => void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?: () => void;\n /**\n * callback начала анимации свайпа назад.\n *\n * Чтобы остановить свайп назад, возвращайте `\"prevent\"`.\n */\n onSwipeBackStart?: (activePanel: string | null) => void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?: () => void;\n history?: string[];\n\n children: React.ReactElement | Iterable<React.ReactElement>;\n}\n\nconst warn = warnOnce('View');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nexport const View = ({\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n className,\n ...restProps\n}: ViewProps) => {\n const id = getNavId({ nav, id: restProps.id });\n const scrolls = React.useRef(scrollsCache[id as string] || {});\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(activePanelProp);\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const swipeBackPrevented = React.useRef<boolean>(false);\n const [swipingBack, setSwipingBack] = React.useState<boolean | undefined>(undefined);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<string | null>(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<string | null>(null);\n const [swipeBackResult, setSwipeBackResult] = React.useState<'success' | 'fail' | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackShift = usePrevious(swipeBackShift);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (React.Children.toArray(children) as React.ReactElement[]).filter(\n (panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n },\n );\n\n const disableAnimation =\n !configProvider.transitionMotionEnabled || !splitCol.animate || platform === 'vkcom';\n const iOSSwipeBackSimulationEnabled =\n !disableAnimation && platform === 'ios' && configProvider.isWebView && Boolean(onSwipeBack);\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(isBackTransition);\n\n afterTransition.current = () => {\n scroll?.scrollTo(0, isBackTransition ? scrolls.current[activePanelProp] : 0);\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll],\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n styles['animation-ios-next-forward'],\n styles['animation-ios-prev-back'],\n styles['animation-view-next-forward'],\n styles['animation-view-prev-back'],\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel],\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(transitionEndHandler, platform === 'ios' ? 600 : 300);\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes('transform') && e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case 'fail':\n onSwipeBackCancel();\n break;\n case 'success':\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult],\n );\n\n const handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext = (event: TouchEvent) => {\n if (browserSwipe) {\n return;\n }\n const { swipeBackTriggered, viewportStartEdgeTouched, viewportEndEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, window!.innerWidth);\n\n if ((viewportStartEdgeTouched || viewportEndEdgeTouched) && swipeBackTriggered) {\n setBrowserSwipe(true);\n }\n };\n\n const handleTouchMoveXForIOSSwipeBackSimulation = (event: TouchEvent) => {\n if (swipeBackPrevented.current || swipeBackExcluded(event)) {\n return;\n }\n\n const { swipedToOpposite, swipeBackTriggered, viewportStartEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, window!.innerWidth);\n\n if (animated && swipeBackTriggered) {\n return;\n }\n\n if (!swipingBack && history && history.length > 1) {\n if (swipedToOpposite) {\n swipeBackPrevented.current = true;\n return;\n }\n\n if (!swipeBackTriggered) {\n return;\n }\n\n if (\n !viewportStartEdgeTouched &&\n hasHorizontalScrollableElementWithScrolledToLeft(event.originalEvent.target as HTMLElement)\n ) {\n swipeBackPrevented.current = true;\n return;\n }\n // Начался свайп назад\n if (onSwipeBackStart) {\n const payload = onSwipeBackStart(activePanel);\n if (payload === 'prevent') {\n swipeBackPrevented.current = true;\n return;\n }\n }\n\n if (activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n blurActiveElement(document);\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(event.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n\n if (swipingBack) {\n if (event.shiftX < 0) {\n setSwipeBackShift(0);\n } else if (event.shiftX > window!.innerWidth - swipeBackStartX) {\n setSwipeBackShift(window!.innerWidth);\n } else {\n setSwipeBackShift(event.shiftX);\n }\n }\n };\n\n const handleTouchEndForIOSSwipeBackSimulation = (event: TouchEvent) => {\n swipeBackPrevented.current = false;\n\n if (swipingBack) {\n const speed = (swipeBackShift / event.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window!.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (speed > 250 || swipeBackShift >= window!.innerWidth / 2) {\n setSwipeBackResult('success');\n } else {\n setSwipeBackResult('fail');\n }\n }\n };\n\n const calcPanelSwipeStyles = (panelId: string | undefined): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${-50 + (swipeBackShift * 100) / window.innerWidth / 2}%`;\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n };\n }\n\n return {};\n };\n\n const calcPanelSwipeBackOverlayStyles = (panelId?: string): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isNext = panelId === swipeBackNextPanel;\n if (!isNext) {\n return {};\n }\n\n const calculatedOpacity = 1 - swipeBackShift / window.innerWidth;\n const opacityOnSwipeEnd =\n swipeBackResult === 'success' ? 0 : swipeBackResult === 'fail' ? 1 : null;\n\n return {\n display: 'block',\n opacity: opacityOnSwipeEnd === null ? calculatedOpacity : opacityOnSwipeEnd,\n };\n };\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (React.Children.toArray(children) as React.ReactElement[])\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevActivePanel && prevActivePanel !== activePanelProp && prevSwipingBack) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n setIsBack(true);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === 'ios' ? 600 : 300,\n );\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n React.useEffect(\n function restoreScrollPositionWhenSwipeBackIsCancelled() {\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n const swipeBackCancelledInTheMiddleOfAction =\n prevSwipeBackResult === 'fail' && !swipeBackResult;\n const swipeBackCancelledByMovingPanelBackToInitialPoint =\n prevSwipingBack && !swipingBack && prevSwipeBackShift === 0;\n\n if (\n (swipeBackCancelledInTheMiddleOfAction ||\n swipeBackCancelledByMovingPanelBackToInitialPoint) &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n },\n [\n prevSwipeBackResult,\n swipeBackResult,\n prevSwipingBack,\n swipingBack,\n prevSwipeBackShift,\n activePanel,\n scroll,\n ],\n );\n\n return (\n <NavViewIdContext.Provider value={id}>\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n platform === 'ios' && classNames(styles['View--ios'], 'vkuiInternalView--ios'),\n !disableAnimation && animated && styles['View--animated'],\n !disableAnimation && swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={\n iOSSwipeBackSimulationEnabled\n ? handleTouchMoveXForIOSSwipeBackSimulation\n : platform === 'ios'\n ? handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext\n : undefined\n }\n onEnd={iOSSwipeBackSimulationEnabled ? handleTouchEndForIOSSwipeBackSimulation : undefined}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && styles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'],\n swipeBackResult === 'success' && styles['View__panel--swipe-back-success'],\n swipeBackResult === 'fail' && styles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (panelNodes.current[panelId] = el)}\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n {platform === 'ios' && (\n <div\n className={styles['View__panel-overlay']}\n style={calcPanelSwipeBackOverlayStyles(panelId)}\n />\n )}\n <div\n className={styles['View__panel-in']}\n style={{\n marginTop: compensateScroll ? -(scrolls.current[panelId] ?? 0) : undefined,\n }}\n >\n <NavTransitionDirectionProvider isBack={swipingBack || isBack}>\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </NavTransitionDirectionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n </NavViewIdContext.Provider>\n );\n};\n"],"names":["React","classNames","noop","usePlatform","usePrevious","useTimeout","useWaitTransitionFinish","blurActiveElement","canUseDOM","useDOM","getNavId","animationEvent","useIsomorphicLayoutEffect","warnOnce","useScroll","useConfigProvider","NavViewIdContext","NavTransitionProvider","NavTransitionDirectionProvider","useSplitCol","Touch","getSwipeBackPredicates","hasHorizontalScrollableElementWithScrolledToLeft","swipeBackExcluded","styles","scrollsCache","warn","View","activePanel","activePanelProp","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancel","onSwipeBackCancelProp","children","className","restProps","id","scrolls","useRef","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","animated","setAnimated","useState","visiblePanels","setVisiblePanels","setActivePanel","isBack","setIsBack","undefined","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipeBackPrevented","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackShift","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","iOSSwipeBackSimulationEnabled","isWebView","Boolean","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","waitTransitionFinish","animationFinishTimeout","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext","event","swipeBackTriggered","viewportStartEdgeTouched","viewportEndEdgeTouched","startX","shiftX","innerWidth","handleTouchMoveXForIOSSwipeBackSimulation","swipedToOpposite","length","originalEvent","payload","getScroll","y","slice","handleTouchEndForIOSSwipeBackSimulation","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","transform","WebkitTransform","calcPanelSwipeBackOverlayStyles","calculatedOpacity","opacityOnSwipeEnd","display","opacity","firstLayerId","map","find","supported","set","restoreScrollPositionWhenSwipeBackIsCancelled","swipeBackCancelledInTheMiddleOfAction","swipeBackCancelledByMovingPanelBackToInitialPoint","Provider","value","Component","onMoveX","onEnd","div","isTransitionTarget","compensateScroll","onAnimationEnd","ref","el","style","key","marginTop","entering"],"mappings":"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"}
@@ -17,23 +17,23 @@ export type TransitionParams = {
17
17
  };
18
18
  export interface ViewInfiniteProps extends HTMLAttributesWithRootRef<HTMLElement>, HasPlatform, NavIdProps {
19
19
  activePanel: string;
20
- onTransition?(params: TransitionParams & {
20
+ onTransition?: (params: TransitionParams & {
21
21
  isBack: boolean;
22
- }): void;
22
+ }) => void;
23
23
  /**
24
24
  * callback свайпа назад
25
25
  */
26
- onSwipeBack?(): void;
26
+ onSwipeBack?: () => void;
27
27
  /**
28
28
  * callback начала анимации свайпа назад.
29
29
  */
30
- onSwipeBackStart?(activePanel: string | null): void | 'prevent';
30
+ onSwipeBackStart?: (activePanel: string | null) => void | 'prevent';
31
31
  /**
32
32
  * callback завершения анимации отмененного пользователем свайпа
33
33
  */
34
- onSwipeBackCancel?(): void;
34
+ onSwipeBackCancel?: () => void;
35
35
  history?: string[];
36
- isBackCheck?(params: TransitionParams): boolean;
36
+ isBackCheck?: (params: TransitionParams) => boolean;
37
37
  /**
38
38
  * @ignore
39
39
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ViewInfinite.d.ts","sourceRoot":"","sources":["../../../../src/components/View/ViewInfinite.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAiB,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAEL,8BAA8B,EAC/B,MAAM,yCAAyC,CAAC;AAIjD,OAAO,EAAmB,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAWpF,UAAU,OAAO;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC5C;AAED,UAAU,YAAY;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAID,eAAO,IAAI,YAAY,EAAE,YAAiB,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,iBACf,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAC5C,WAAW,EACX,UAAU;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACpE;;OAEG;IACH,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB;;OAEG;IACH,gBAAgB,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAChE;;OAEG;IACH,iBAAiB,CAAC,IAAI,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAChD;;OAEG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC;;OAEG;IACH,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAChD;;OAEG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IAE3C,YAAY,EAAE,OAAO,CAAC;CACvB;AAilBD,eAAO,MAAM,YAAY,+CAYxB,CAAC"}
1
+ {"version":3,"file":"ViewInfinite.d.ts","sourceRoot":"","sources":["../../../../src/components/View/ViewInfinite.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAiB,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAEL,8BAA8B,EAC/B,MAAM,yCAAyC,CAAC;AAIjD,OAAO,EAAmB,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAWpF,UAAU,OAAO;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC5C;AAED,UAAU,YAAY;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAID,eAAO,IAAI,YAAY,EAAE,YAAiB,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,iBACf,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAC5C,WAAW,EACX,UAAU;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,SAAS,CAAC;IACpE;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACpD;;OAEG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC;;OAEG;IACH,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAChD;;OAEG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IAE3C,YAAY,EAAE,OAAO,CAAC;CACvB;AAilBD,eAAO,MAAM,YAAY,+CAYxB,CAAC"}