@vkontakte/vkui 4.19.0 → 4.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (580) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +493 -125
  4. package/.cache/ts/src/components/ActionSheet/types.d.ts +2 -2
  5. package/.cache/ts/src/components/Alert/Alert.d.ts +1 -0
  6. package/.cache/ts/src/components/AppRoot/AppRootContext.d.ts +1 -0
  7. package/.cache/ts/src/components/Avatar/Avatar.d.ts +2 -0
  8. package/.cache/ts/src/components/Cell/Cell.d.ts +11 -0
  9. package/.cache/ts/src/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  10. package/.cache/ts/src/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  11. package/.cache/ts/src/components/Cell/useDraggable.d.ts +13 -0
  12. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +0 -1
  13. package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  14. package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +8 -0
  15. package/.cache/ts/src/components/FormField/FormField.d.ts +2 -3
  16. package/.cache/ts/src/components/FormItem/FormItem.d.ts +2 -3
  17. package/.cache/ts/src/components/FormLayout/FormLayout.d.ts +2 -4
  18. package/.cache/ts/src/components/GridAvatar/GridAvatar.d.ts +9 -0
  19. package/.cache/ts/src/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  20. package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  21. package/.cache/ts/src/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  22. package/.cache/ts/src/components/Link/Link.d.ts +1 -2
  23. package/.cache/ts/src/components/ModalRoot/types.d.ts +0 -1
  24. package/.cache/ts/src/components/ModalRoot/useModalManager.d.ts +37 -0
  25. package/.cache/ts/src/components/PullToRefresh/PullToRefresh.d.ts +0 -1
  26. package/.cache/ts/src/components/Removable/Removable.d.ts +2 -1
  27. package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +2 -2
  28. package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +3 -3
  29. package/.cache/ts/src/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  30. package/.cache/ts/src/components/Switch/Switch.d.ts +2 -3
  31. package/.cache/ts/src/components/Tappable/Tappable.d.ts +2 -3
  32. package/.cache/ts/src/components/Touch/Touch.d.ts +16 -17
  33. package/.cache/ts/src/components/Typography/Caption/Caption.d.ts +2 -2
  34. package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +2 -2
  35. package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +2 -2
  36. package/.cache/ts/src/components/Typography/Text/Text.d.ts +2 -3
  37. package/.cache/ts/src/components/Typography/Title/Title.d.ts +2 -2
  38. package/.cache/ts/src/components/View/utils.d.ts +2 -0
  39. package/.cache/ts/src/index.d.ts +4 -0
  40. package/.cache/ts/src/lib/accessibility.d.ts +4 -2
  41. package/.cache/ts/src/lib/is.d.ts +1 -0
  42. package/.cache/ts/src/lib/supportEvents.d.ts +3 -1
  43. package/.cache/ts/src/testing/utils.d.ts +2 -0
  44. package/.cache/ts/src/types.d.ts +3 -0
  45. package/dist/cjs/components/ActionSheet/ActionSheet.js +13 -12
  46. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  47. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js +3 -1
  48. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  49. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +10 -5
  50. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  51. package/dist/cjs/components/ActionSheet/types.d.ts +2 -2
  52. package/dist/cjs/components/Alert/Alert.d.ts +1 -0
  53. package/dist/cjs/components/Alert/Alert.js +12 -3
  54. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  55. package/dist/cjs/components/AppRoot/AppRoot.js +2 -1
  56. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  57. package/dist/cjs/components/AppRoot/AppRootContext.d.ts +1 -0
  58. package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
  59. package/dist/cjs/components/Avatar/Avatar.d.ts +2 -0
  60. package/dist/cjs/components/Avatar/Avatar.js +7 -3
  61. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  62. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  63. package/dist/cjs/components/Button/Button.js.map +1 -1
  64. package/dist/cjs/components/Cell/Cell.d.ts +11 -0
  65. package/dist/cjs/components/Cell/Cell.js +109 -182
  66. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  67. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  68. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +50 -0
  69. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  70. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  71. package/dist/cjs/components/Cell/CellDragger/CellDragger.js +53 -0
  72. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -0
  73. package/dist/cjs/components/Cell/useDraggable.d.ts +13 -0
  74. package/dist/cjs/components/Cell/useDraggable.js +140 -0
  75. package/dist/cjs/components/Cell/useDraggable.js.map +1 -0
  76. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +2 -2
  77. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  78. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  79. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +0 -1
  80. package/dist/cjs/components/CustomSelect/CustomSelect.js +6 -4
  81. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  82. package/dist/cjs/components/DatePicker/DatePicker.js +6 -4
  83. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  84. package/dist/cjs/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  85. package/dist/cjs/components/DropdownIcon/DropdownIcon.js +37 -0
  86. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -0
  87. package/dist/cjs/components/FocusTrap/FocusTrap.d.ts +8 -0
  88. package/dist/cjs/components/FocusTrap/FocusTrap.js +165 -0
  89. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -0
  90. package/dist/cjs/components/FormField/FormField.d.ts +2 -3
  91. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  92. package/dist/cjs/components/FormItem/FormItem.d.ts +2 -3
  93. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  94. package/dist/cjs/components/FormLayout/FormLayout.d.ts +2 -4
  95. package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
  96. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  97. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  98. package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +9 -0
  99. package/dist/cjs/components/GridAvatar/GridAvatar.js +61 -0
  100. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -0
  101. package/dist/cjs/components/Header/Header.js.map +1 -1
  102. package/dist/cjs/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  103. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  104. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  105. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +10 -13
  106. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  107. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  108. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js +64 -0
  109. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  110. package/dist/cjs/components/Link/Link.d.ts +1 -2
  111. package/dist/cjs/components/Link/Link.js.map +1 -1
  112. package/dist/cjs/components/ModalRoot/ModalRoot.js +184 -368
  113. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  114. package/dist/cjs/components/ModalRoot/ModalRootContext.js +0 -3
  115. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  116. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +74 -244
  117. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  118. package/dist/cjs/components/ModalRoot/types.d.ts +0 -1
  119. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  120. package/dist/cjs/components/ModalRoot/useModalManager.d.ts +37 -0
  121. package/dist/cjs/components/ModalRoot/useModalManager.js +213 -0
  122. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -0
  123. package/dist/cjs/components/NativeSelect/NativeSelect.js +2 -2
  124. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  125. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +0 -1
  126. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +34 -25
  127. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  128. package/dist/cjs/components/Removable/Removable.d.ts +2 -1
  129. package/dist/cjs/components/Removable/Removable.js +75 -66
  130. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  131. package/dist/cjs/components/Root/Root.js +1 -0
  132. package/dist/cjs/components/Root/Root.js.map +1 -1
  133. package/dist/cjs/components/Search/Search.js +1 -1
  134. package/dist/cjs/components/Search/Search.js.map +1 -1
  135. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +2 -2
  136. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  137. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +2 -2
  138. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  139. package/dist/cjs/components/SplitCol/SplitCol.d.ts +3 -3
  140. package/dist/cjs/components/SplitCol/SplitCol.js +2 -4
  141. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  142. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  143. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +38 -11
  144. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  145. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  146. package/dist/cjs/components/Switch/Switch.d.ts +2 -3
  147. package/dist/cjs/components/Switch/Switch.js +18 -8
  148. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  149. package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
  150. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  151. package/dist/cjs/components/Textarea/Textarea.js +9 -7
  152. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  153. package/dist/cjs/components/Touch/Touch.d.ts +16 -17
  154. package/dist/cjs/components/Touch/Touch.js +34 -14
  155. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  156. package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -2
  157. package/dist/cjs/components/Typography/Caption/Caption.js +4 -2
  158. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  159. package/dist/cjs/components/Typography/Headline/Headline.d.ts +2 -2
  160. package/dist/cjs/components/Typography/Headline/Headline.js +2 -1
  161. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  162. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -2
  163. package/dist/cjs/components/Typography/Subhead/Subhead.js +2 -1
  164. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  165. package/dist/cjs/components/Typography/Text/Text.d.ts +2 -3
  166. package/dist/cjs/components/Typography/Text/Text.js +2 -1
  167. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  168. package/dist/cjs/components/Typography/Title/Title.d.ts +2 -2
  169. package/dist/cjs/components/Typography/Title/Title.js +9 -4
  170. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  171. package/dist/cjs/components/View/View.js +68 -75
  172. package/dist/cjs/components/View/View.js.map +1 -1
  173. package/dist/cjs/components/View/ViewInfinite.js +78 -85
  174. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  175. package/dist/cjs/components/View/utils.d.ts +2 -0
  176. package/dist/cjs/components/View/utils.js +13 -0
  177. package/dist/cjs/components/View/utils.js.map +1 -0
  178. package/dist/cjs/index.d.ts +4 -0
  179. package/dist/cjs/index.js +16 -0
  180. package/dist/cjs/index.js.map +1 -1
  181. package/dist/cjs/lib/accessibility.d.ts +4 -2
  182. package/dist/cjs/lib/accessibility.js +8 -1
  183. package/dist/cjs/lib/accessibility.js.map +1 -1
  184. package/dist/cjs/lib/is.d.ts +1 -0
  185. package/dist/cjs/lib/is.js +13 -0
  186. package/dist/cjs/lib/is.js.map +1 -0
  187. package/dist/cjs/lib/prefixClass.js +7 -6
  188. package/dist/cjs/lib/prefixClass.js.map +1 -1
  189. package/dist/cjs/lib/supportEvents.d.ts +3 -1
  190. package/dist/cjs/lib/supportEvents.js +1 -4
  191. package/dist/cjs/lib/supportEvents.js.map +1 -1
  192. package/dist/cjs/types.d.ts +3 -0
  193. package/dist/components/ActionSheet/ActionSheet.js +12 -12
  194. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  195. package/dist/components/ActionSheet/ActionSheetDropdown.js +2 -1
  196. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  197. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +9 -5
  198. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  199. package/dist/components/ActionSheet/types.d.ts +2 -2
  200. package/dist/components/Alert/Alert.d.ts +1 -0
  201. package/dist/components/Alert/Alert.js +11 -3
  202. package/dist/components/Alert/Alert.js.map +1 -1
  203. package/dist/components/AppRoot/AppRoot.js +2 -1
  204. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  205. package/dist/components/AppRoot/AppRootContext.d.ts +1 -0
  206. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  207. package/dist/components/Avatar/Avatar.d.ts +2 -0
  208. package/dist/components/Avatar/Avatar.js +4 -2
  209. package/dist/components/Avatar/Avatar.js.map +1 -1
  210. package/dist/components/Banner/Banner.js.map +1 -1
  211. package/dist/components/Button/Button.js.map +1 -1
  212. package/dist/components/Cell/Cell.d.ts +11 -0
  213. package/dist/components/Cell/Cell.js +103 -177
  214. package/dist/components/Cell/Cell.js.map +1 -1
  215. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  216. package/dist/components/Cell/CellCheckbox/CellCheckbox.js +31 -0
  217. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  218. package/dist/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  219. package/dist/components/Cell/CellDragger/CellDragger.js +30 -0
  220. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -0
  221. package/dist/components/Cell/useDraggable.d.ts +13 -0
  222. package/dist/components/Cell/useDraggable.js +125 -0
  223. package/dist/components/Cell/useDraggable.js.map +1 -0
  224. package/dist/components/ChipsSelect/ChipsSelect.js +2 -2
  225. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  226. package/dist/components/Counter/Counter.js.map +1 -1
  227. package/dist/components/CustomSelect/CustomSelect.d.ts +0 -1
  228. package/dist/components/CustomSelect/CustomSelect.js +6 -6
  229. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  230. package/dist/components/DatePicker/DatePicker.js +6 -4
  231. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  232. package/dist/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  233. package/dist/components/DropdownIcon/DropdownIcon.js +19 -0
  234. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -0
  235. package/dist/components/FocusTrap/FocusTrap.d.ts +8 -0
  236. package/dist/components/FocusTrap/FocusTrap.js +138 -0
  237. package/dist/components/FocusTrap/FocusTrap.js.map +1 -0
  238. package/dist/components/FormField/FormField.d.ts +2 -3
  239. package/dist/components/FormField/FormField.js.map +1 -1
  240. package/dist/components/FormItem/FormItem.d.ts +2 -3
  241. package/dist/components/FormItem/FormItem.js.map +1 -1
  242. package/dist/components/FormLayout/FormLayout.d.ts +2 -4
  243. package/dist/components/FormLayout/FormLayout.js.map +1 -1
  244. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  245. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  246. package/dist/components/GridAvatar/GridAvatar.d.ts +9 -0
  247. package/dist/components/GridAvatar/GridAvatar.js +41 -0
  248. package/dist/components/GridAvatar/GridAvatar.js.map +1 -0
  249. package/dist/components/Header/Header.js.map +1 -1
  250. package/dist/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  251. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  252. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  253. package/dist/components/HorizontalScroll/HorizontalScroll.js +10 -12
  254. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  255. package/dist/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  256. package/dist/components/InitialsAvatar/InitialsAvatar.js +46 -0
  257. package/dist/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  258. package/dist/components/Link/Link.d.ts +1 -2
  259. package/dist/components/Link/Link.js.map +1 -1
  260. package/dist/components/ModalRoot/ModalRoot.js +181 -371
  261. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  262. package/dist/components/ModalRoot/ModalRootContext.js +0 -3
  263. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  264. package/dist/components/ModalRoot/ModalRootDesktop.js +72 -248
  265. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  266. package/dist/components/ModalRoot/types.d.ts +0 -1
  267. package/dist/components/ModalRoot/types.js.map +1 -1
  268. package/dist/components/ModalRoot/useModalManager.d.ts +37 -0
  269. package/dist/components/ModalRoot/useModalManager.js +189 -0
  270. package/dist/components/ModalRoot/useModalManager.js.map +1 -0
  271. package/dist/components/NativeSelect/NativeSelect.js +2 -2
  272. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  273. package/dist/components/PullToRefresh/PullToRefresh.d.ts +0 -1
  274. package/dist/components/PullToRefresh/PullToRefresh.js +35 -25
  275. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  276. package/dist/components/Removable/Removable.d.ts +2 -1
  277. package/dist/components/Removable/Removable.js +73 -64
  278. package/dist/components/Removable/Removable.js.map +1 -1
  279. package/dist/components/Root/Root.js +1 -0
  280. package/dist/components/Root/Root.js.map +1 -1
  281. package/dist/components/Search/Search.js +1 -1
  282. package/dist/components/Search/Search.js.map +1 -1
  283. package/dist/components/SelectMimicry/SelectMimicry.js +2 -2
  284. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  285. package/dist/components/SimpleCell/SimpleCell.d.ts +2 -2
  286. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  287. package/dist/components/SplitCol/SplitCol.d.ts +3 -3
  288. package/dist/components/SplitCol/SplitCol.js +2 -4
  289. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  290. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  291. package/dist/components/SubnavigationBar/SubnavigationBar.js +38 -11
  292. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  293. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  294. package/dist/components/Switch/Switch.d.ts +2 -3
  295. package/dist/components/Switch/Switch.js +15 -8
  296. package/dist/components/Switch/Switch.js.map +1 -1
  297. package/dist/components/Tappable/Tappable.d.ts +2 -3
  298. package/dist/components/Tappable/Tappable.js.map +1 -1
  299. package/dist/components/Textarea/Textarea.js +9 -6
  300. package/dist/components/Textarea/Textarea.js.map +1 -1
  301. package/dist/components/Touch/Touch.d.ts +16 -17
  302. package/dist/components/Touch/Touch.js +34 -14
  303. package/dist/components/Touch/Touch.js.map +1 -1
  304. package/dist/components/Typography/Caption/Caption.d.ts +2 -2
  305. package/dist/components/Typography/Caption/Caption.js +4 -2
  306. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  307. package/dist/components/Typography/Headline/Headline.d.ts +2 -2
  308. package/dist/components/Typography/Headline/Headline.js +2 -1
  309. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  310. package/dist/components/Typography/Subhead/Subhead.d.ts +2 -2
  311. package/dist/components/Typography/Subhead/Subhead.js +2 -1
  312. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  313. package/dist/components/Typography/Text/Text.d.ts +2 -3
  314. package/dist/components/Typography/Text/Text.js +2 -1
  315. package/dist/components/Typography/Text/Text.js.map +1 -1
  316. package/dist/components/Typography/Title/Title.d.ts +2 -2
  317. package/dist/components/Typography/Title/Title.js +9 -4
  318. package/dist/components/Typography/Title/Title.js.map +1 -1
  319. package/dist/components/View/View.js +67 -75
  320. package/dist/components/View/View.js.map +1 -1
  321. package/dist/components/View/ViewInfinite.js +79 -87
  322. package/dist/components/View/ViewInfinite.js.map +1 -1
  323. package/dist/components/View/utils.d.ts +2 -0
  324. package/dist/components/View/utils.js +6 -0
  325. package/dist/components/View/utils.js.map +1 -0
  326. package/dist/components.css +1 -1
  327. package/dist/components.css.map +1 -1
  328. package/dist/cssm/components/ActionSheet/ActionSheet.js +12 -12
  329. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  330. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +2 -1
  331. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  332. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +9 -5
  333. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  334. package/dist/cssm/components/Alert/Alert.js +11 -3
  335. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  336. package/dist/cssm/components/AppRoot/AppRoot.js +2 -1
  337. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  338. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  339. package/dist/cssm/components/Avatar/Avatar.js +4 -2
  340. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  341. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  342. package/dist/cssm/components/Button/Button.css +1 -1
  343. package/dist/cssm/components/Button/Button.js.map +1 -1
  344. package/dist/cssm/components/Cell/Cell.css +1 -1
  345. package/dist/cssm/components/Cell/Cell.js +103 -177
  346. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  347. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -0
  348. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +32 -0
  349. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  350. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -0
  351. package/dist/cssm/components/Cell/CellDragger/CellDragger.js +31 -0
  352. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -0
  353. package/dist/cssm/components/Cell/useDraggable.js +125 -0
  354. package/dist/cssm/components/Cell/useDraggable.js.map +1 -0
  355. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
  356. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  357. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  358. package/dist/cssm/components/CustomSelect/CustomSelect.js +6 -6
  359. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  360. package/dist/cssm/components/DatePicker/DatePicker.js +6 -4
  361. package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
  362. package/dist/cssm/components/DropdownIcon/DropdownIcon.css +1 -0
  363. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +20 -0
  364. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -0
  365. package/dist/cssm/components/FocusTrap/FocusTrap.js +138 -0
  366. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -0
  367. package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
  368. package/dist/cssm/components/FormField/FormField.css +1 -1
  369. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  370. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  371. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  372. package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
  373. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  374. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  375. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  376. package/dist/cssm/components/Gallery/Gallery.css +1 -1
  377. package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -0
  378. package/dist/cssm/components/GridAvatar/GridAvatar.js +42 -0
  379. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -0
  380. package/dist/cssm/components/Header/Header.js.map +1 -1
  381. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  382. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +10 -12
  383. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  384. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
  385. package/dist/cssm/components/IconButton/IconButton.css +1 -1
  386. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -0
  387. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js +52 -0
  388. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  389. package/dist/cssm/components/Link/Link.js.map +1 -1
  390. package/dist/cssm/components/ModalRoot/ModalRoot.js +181 -371
  391. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  392. package/dist/cssm/components/ModalRoot/ModalRootContext.js +0 -3
  393. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  394. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +72 -248
  395. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  396. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  397. package/dist/cssm/components/ModalRoot/useModalManager.js +189 -0
  398. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -0
  399. package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
  400. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  401. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +35 -25
  402. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  403. package/dist/cssm/components/Removable/Removable.css +1 -1
  404. package/dist/cssm/components/Removable/Removable.js +73 -64
  405. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  406. package/dist/cssm/components/Root/Root.css +1 -1
  407. package/dist/cssm/components/Root/Root.js +1 -0
  408. package/dist/cssm/components/Root/Root.js.map +1 -1
  409. package/dist/cssm/components/Search/Search.css +1 -1
  410. package/dist/cssm/components/Search/Search.js +1 -1
  411. package/dist/cssm/components/Search/Search.js.map +1 -1
  412. package/dist/cssm/components/Select/Select.css +1 -1
  413. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
  414. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  415. package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
  416. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  417. package/dist/cssm/components/SplitCol/SplitCol.js +2 -4
  418. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  419. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +38 -11
  420. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  421. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  422. package/dist/cssm/components/Switch/Switch.css +1 -1
  423. package/dist/cssm/components/Switch/Switch.js +15 -8
  424. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  425. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  426. package/dist/cssm/components/Textarea/Textarea.js +9 -6
  427. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  428. package/dist/cssm/components/Touch/Touch.js +34 -14
  429. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  430. package/dist/cssm/components/Typography/Caption/Caption.js +4 -2
  431. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  432. package/dist/cssm/components/Typography/Headline/Headline.js +2 -1
  433. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  434. package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -1
  435. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  436. package/dist/cssm/components/Typography/Text/Text.js +2 -1
  437. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  438. package/dist/cssm/components/Typography/Title/Title.js +9 -4
  439. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  440. package/dist/cssm/components/View/View.js +67 -75
  441. package/dist/cssm/components/View/View.js.map +1 -1
  442. package/dist/cssm/components/View/ViewInfinite.js +79 -87
  443. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  444. package/dist/cssm/components/View/utils.js +6 -0
  445. package/dist/cssm/components/View/utils.js.map +1 -0
  446. package/dist/cssm/index.js +2 -0
  447. package/dist/cssm/index.js.map +1 -1
  448. package/dist/cssm/lib/accessibility.js +6 -0
  449. package/dist/cssm/lib/accessibility.js.map +1 -1
  450. package/dist/cssm/lib/is.js +6 -0
  451. package/dist/cssm/lib/is.js.map +1 -0
  452. package/dist/cssm/lib/prefixClass.js +7 -6
  453. package/dist/cssm/lib/prefixClass.js.map +1 -1
  454. package/dist/cssm/lib/supportEvents.js +1 -4
  455. package/dist/cssm/lib/supportEvents.js.map +1 -1
  456. package/dist/cssm/styles/components.css +1 -1
  457. package/dist/cssm/styles/themes.css +1 -1
  458. package/dist/cssm/styles/vkcom_light.css +1 -1
  459. package/dist/index.d.ts +4 -0
  460. package/dist/index.js +2 -0
  461. package/dist/index.js.map +1 -1
  462. package/dist/lib/accessibility.d.ts +4 -2
  463. package/dist/lib/accessibility.js +6 -0
  464. package/dist/lib/accessibility.js.map +1 -1
  465. package/dist/lib/is.d.ts +1 -0
  466. package/dist/lib/is.js +6 -0
  467. package/dist/lib/is.js.map +1 -0
  468. package/dist/lib/prefixClass.js +7 -6
  469. package/dist/lib/prefixClass.js.map +1 -1
  470. package/dist/lib/supportEvents.d.ts +3 -1
  471. package/dist/lib/supportEvents.js +1 -4
  472. package/dist/lib/supportEvents.js.map +1 -1
  473. package/dist/types.d.ts +3 -0
  474. package/dist/vkui.css +2 -2
  475. package/dist/vkui.css.map +1 -1
  476. package/package.json +8 -4
  477. package/src/components/ActionSheet/ActionSheet.tsx +9 -7
  478. package/src/components/ActionSheet/ActionSheetDropdown.tsx +3 -2
  479. package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +9 -5
  480. package/src/components/ActionSheet/Readme.md +18 -14
  481. package/src/components/ActionSheet/types.ts +2 -2
  482. package/src/components/Alert/Alert.tsx +11 -4
  483. package/src/components/Alert/Readme.md +15 -11
  484. package/src/components/AppRoot/AppRoot.tsx +1 -0
  485. package/src/components/AppRoot/AppRootContext.ts +1 -0
  486. package/src/components/Avatar/Avatar.tsx +5 -2
  487. package/src/components/Banner/Banner.tsx +4 -5
  488. package/src/components/Button/Button.css +26 -53
  489. package/src/components/Button/Button.tsx +2 -3
  490. package/src/components/Card/Readme.md +6 -6
  491. package/src/components/Cell/Cell.css +21 -58
  492. package/src/components/Cell/Cell.tsx +101 -162
  493. package/src/components/Cell/CellCheckbox/CellCheckbox.css +17 -0
  494. package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +42 -0
  495. package/src/components/Cell/CellDragger/CellDragger.css +4 -0
  496. package/src/components/Cell/CellDragger/CellDragger.tsx +40 -0
  497. package/src/components/Cell/Readme.md +89 -51
  498. package/src/components/Cell/useDraggable.tsx +112 -0
  499. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -2
  500. package/src/components/Counter/Counter.tsx +2 -2
  501. package/src/components/CustomSelect/CustomSelect.tsx +6 -5
  502. package/src/components/DatePicker/DatePicker.tsx +5 -5
  503. package/src/components/DropdownIcon/DropdownIcon.css +3 -0
  504. package/src/components/DropdownIcon/DropdownIcon.tsx +20 -0
  505. package/src/components/Epic/Readme.md +1 -1
  506. package/src/components/FocusTrap/FocusTrap.tsx +125 -0
  507. package/src/components/FocusVisible/FocusVisible.css +12 -4
  508. package/src/components/FormField/FormField.css +0 -1
  509. package/src/components/FormField/FormField.tsx +2 -2
  510. package/src/components/FormItem/FormItem.css +13 -14
  511. package/src/components/FormItem/FormItem.tsx +2 -3
  512. package/src/components/FormLayout/FormLayout.tsx +2 -4
  513. package/src/components/FormLayoutGroup/FormLayoutGroup.css +11 -7
  514. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +10 -1
  515. package/src/components/Gallery/Gallery.css +2 -3
  516. package/src/components/Gallery/Readme.md +89 -109
  517. package/src/components/GridAvatar/GridAvatar.css +37 -0
  518. package/src/components/GridAvatar/GridAvatar.tsx +55 -0
  519. package/src/components/GridAvatar/Readme.md +12 -0
  520. package/src/components/Group/Readme.md +18 -14
  521. package/src/components/Header/Header.tsx +4 -4
  522. package/src/components/HorizontalCell/HorizontalCell.tsx +3 -3
  523. package/src/components/HorizontalScroll/HorizontalScroll.tsx +14 -18
  524. package/src/components/HorizontalScroll/HorizontalScrollArrow.css +2 -2
  525. package/src/components/IconButton/IconButton.css +7 -0
  526. package/src/components/InitialsAvatar/InitialsAvatar.css +53 -0
  527. package/src/components/InitialsAvatar/InitialsAvatar.tsx +90 -0
  528. package/src/components/InitialsAvatar/Readme.md +14 -0
  529. package/src/components/Link/Link.tsx +1 -1
  530. package/src/components/MiniInfoCell/Readme.md +66 -62
  531. package/src/components/ModalDismissButton/Readme.md +13 -10
  532. package/src/components/ModalRoot/ModalRoot.tsx +170 -344
  533. package/src/components/ModalRoot/ModalRootContext.tsx +0 -1
  534. package/src/components/ModalRoot/ModalRootDesktop.tsx +62 -243
  535. package/src/components/ModalRoot/Readme.md +35 -27
  536. package/src/components/ModalRoot/types.ts +0 -1
  537. package/src/components/ModalRoot/useModalManager.tsx +174 -0
  538. package/src/components/NativeSelect/NativeSelect.tsx +2 -2
  539. package/src/components/PullToRefresh/PullToRefresh.tsx +30 -25
  540. package/src/components/Removable/Removable.css +16 -63
  541. package/src/components/Removable/Removable.tsx +84 -64
  542. package/src/components/Root/Root.css +5 -0
  543. package/src/components/Root/Root.tsx +4 -1
  544. package/src/components/ScreenSpinner/Readme.md +13 -9
  545. package/src/components/Search/Search.css +1 -1
  546. package/src/components/Search/Search.tsx +3 -3
  547. package/src/components/Select/Select.css +1 -1
  548. package/src/components/SelectMimicry/SelectMimicry.tsx +2 -2
  549. package/src/components/SimpleCell/SimpleCell.css +10 -18
  550. package/src/components/SimpleCell/SimpleCell.tsx +3 -5
  551. package/src/components/SplitCol/SplitCol.tsx +4 -8
  552. package/src/components/SplitLayout/Readme.md +2 -2
  553. package/src/components/SubnavigationBar/Readme.md +90 -86
  554. package/src/components/SubnavigationBar/SubnavigationBar.tsx +32 -14
  555. package/src/components/SubnavigationButton/SubnavigationButton.tsx +2 -3
  556. package/src/components/Switch/Readme.md +6 -6
  557. package/src/components/Switch/Switch.css +46 -15
  558. package/src/components/Switch/Switch.tsx +16 -8
  559. package/src/components/Tappable/Tappable.tsx +2 -3
  560. package/src/components/Textarea/Readme.md +3 -0
  561. package/src/components/Textarea/Textarea.tsx +10 -6
  562. package/src/components/Touch/Touch.tsx +51 -31
  563. package/src/components/Typography/Caption/Caption.tsx +4 -4
  564. package/src/components/Typography/Headline/Headline.tsx +3 -3
  565. package/src/components/Typography/Subhead/Subhead.tsx +3 -3
  566. package/src/components/Typography/Text/Text.tsx +3 -4
  567. package/src/components/Typography/Title/Title.tsx +9 -5
  568. package/src/components/View/Readme.md +42 -56
  569. package/src/components/View/View.tsx +46 -61
  570. package/src/components/View/ViewInfinite.tsx +52 -67
  571. package/src/components/View/utils.ts +8 -0
  572. package/src/index.ts +4 -0
  573. package/src/lib/accessibility.ts +22 -2
  574. package/src/lib/is.ts +10 -0
  575. package/src/lib/prefixClass.ts +9 -6
  576. package/src/lib/supportEvents.ts +1 -4
  577. package/src/styles/components.css +4 -0
  578. package/src/styles/vkcom_light.css +3 -3
  579. package/src/testing/utils.tsx +41 -0
  580. package/src/types.ts +4 -0
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
4
3
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
5
5
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
6
6
  import _createClass from "@babel/runtime/helpers/createClass";
7
7
  import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
@@ -26,6 +26,7 @@ import { ScrollContext } from "../AppRoot/ScrollContext";
26
26
  import { NavTransitionProvider } from "../NavTransitionContext/NavTransitionContext";
27
27
  import { getNavId } from "../../lib/getNavId";
28
28
  import { warnOnce } from "../../lib/warnOnce";
29
+ import { swipeBackExcluded } from "./utils";
29
30
  import "./View.css";
30
31
  var warn = warnOnce('ViewInfinite');
31
32
  var SwipeBackResults;
@@ -36,7 +37,6 @@ var SwipeBackResults;
36
37
  })(SwipeBackResults || (SwipeBackResults = {}));
37
38
 
38
39
  var scrollsCache = {};
39
- var swipeBackExcludedTags = ['input', 'textarea'];
40
40
 
41
41
  var ViewInfinite = /*#__PURE__*/function (_React$Component) {
42
42
  _inherits(ViewInfinite, _React$Component);
@@ -60,37 +60,7 @@ var ViewInfinite = /*#__PURE__*/function (_React$Component) {
60
60
 
61
61
  _defineProperty(_assertThisInitialized(_this), "transitionEndHandler", function (e) {
62
62
  if (!e || ['vkui-animation-ios-next-forward', 'vkui-animation-ios-prev-back', 'vkui-animation-view-next-forward', 'vkui-animation-view-prev-back'].includes(e.animationName)) {
63
- var activePanel = _this.props.activePanel;
64
- var prevPanel = _this.state.prevPanel;
65
- var isBack = _this.state.isBack;
66
-
67
- var prevPanelScrolls = _toConsumableArray(_this.scrolls[prevPanel] || []).slice(0, -1);
68
-
69
- var newPanelScrolls = _toConsumableArray(_this.scrolls[activePanel] || []);
70
-
71
- var scrollPosition = isBack ? newPanelScrolls.pop() : 0;
72
-
73
- if (isBack) {
74
- var _objectSpread2;
75
-
76
- _this.scrolls = _objectSpread(_objectSpread({}, _this.scrolls), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, prevPanel, prevPanelScrolls), _defineProperty(_objectSpread2, activePanel, newPanelScrolls), _objectSpread2));
77
- }
78
-
79
- _this.setState({
80
- prevPanel: null,
81
- nextPanel: null,
82
- visiblePanels: [activePanel],
83
- activePanel: activePanel,
84
- animated: false,
85
- isBack: undefined
86
- }, function () {
87
- isBack && _this.props.scroll.scrollTo(0, scrollPosition);
88
- _this.props.onTransition && _this.props.onTransition({
89
- isBack: isBack,
90
- from: prevPanel,
91
- to: activePanel
92
- });
93
- });
63
+ _this.flushTransition(_this.state.prevPanel, _this.state.isBack);
94
64
  }
95
65
  });
96
66
 
@@ -111,9 +81,7 @@ var ViewInfinite = /*#__PURE__*/function (_React$Component) {
111
81
  });
112
82
 
113
83
  _defineProperty(_assertThisInitialized(_this), "onMoveX", function (e) {
114
- var target = e.originalEvent.target;
115
-
116
- if (target && typeof target.tagName === 'string' && swipeBackExcludedTags.includes(target.tagName.toLowerCase())) {
84
+ if (swipeBackExcluded(e)) {
117
85
  return;
118
86
  }
119
87
 
@@ -255,19 +223,29 @@ var ViewInfinite = /*#__PURE__*/function (_React$Component) {
255
223
  var scrolls = _objectSpread(_objectSpread({}, this.scrolls), {}, _defineProperty({}, prevProps.activePanel, [].concat(_toConsumableArray(prevScrolls), [this.props.scroll.getScroll().y])));
256
224
 
257
225
  this.scrolls = scrolls;
258
- this.setState({
259
- visiblePanels: [prevProps.activePanel, this.props.activePanel],
260
- prevPanel: prevProps.activePanel,
261
- nextPanel: this.props.activePanel,
262
- activePanel: null,
263
- animated: true,
264
- isBack: isBack
265
- });
226
+
227
+ if (this.shouldDisableTransitionMotion()) {
228
+ this.flushTransition(prevProps.activePanel, isBack);
229
+ } else {
230
+ this.setState({
231
+ visiblePanels: [prevProps.activePanel, this.props.activePanel],
232
+ prevPanel: prevProps.activePanel,
233
+ nextPanel: this.props.activePanel,
234
+ activePanel: null,
235
+ animated: true,
236
+ isBack: isBack
237
+ }); // Фолбек анимации перехода
238
+
239
+ if (!animationEvent.supported) {
240
+ clearTimeout(this.animationFinishTimeout);
241
+ this.animationFinishTimeout = setTimeout(this.transitionEndHandler, this.props.platform === ANDROID || this.props.platform === VKCOM ? 300 : 600);
242
+ }
243
+ }
266
244
  } // Закончилась анимация свайпа назад
267
245
 
268
246
 
269
247
  if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {
270
- var _objectSpread5;
248
+ var _objectSpread4;
271
249
 
272
250
  var nextPanel = this.state.swipeBackNextPanel;
273
251
  var prevPanel = this.state.swipeBackPrevPanel;
@@ -277,7 +255,7 @@ var ViewInfinite = /*#__PURE__*/function (_React$Component) {
277
255
  var newPanelScrolls = _toConsumableArray(this.scrolls[nextPanel] || []);
278
256
 
279
257
  var scrollPosition = newPanelScrolls.pop();
280
- this.scrolls = _objectSpread(_objectSpread({}, this.scrolls), {}, (_objectSpread5 = {}, _defineProperty(_objectSpread5, nextPanel, newPanelScrolls), _defineProperty(_objectSpread5, prevPanel, prevPanelScrolls), _objectSpread5));
258
+ this.scrolls = _objectSpread(_objectSpread({}, this.scrolls), {}, (_objectSpread4 = {}, _defineProperty(_objectSpread4, nextPanel, newPanelScrolls), _defineProperty(_objectSpread4, prevPanel, prevPanelScrolls), _objectSpread4));
281
259
  this.setState({
282
260
  swipeBackPrevPanel: null,
283
261
  swipeBackNextPanel: null,
@@ -296,15 +274,6 @@ var ViewInfinite = /*#__PURE__*/function (_React$Component) {
296
274
  to: nextPanel
297
275
  });
298
276
  });
299
- } // Начался переход
300
-
301
-
302
- if (!prevState.animated && this.state.animated) {
303
- var _this$state = this.state,
304
- _prevPanel = _this$state.prevPanel,
305
- _nextPanel = _this$state.nextPanel,
306
- _isBack = _this$state.isBack;
307
- this.waitAnimationFinish(this.pickPanel(_isBack ? _prevPanel : _nextPanel), this.transitionEndHandler);
308
277
  } // Начался свайп назад
309
278
 
310
279
 
@@ -355,22 +324,6 @@ var ViewInfinite = /*#__PURE__*/function (_React$Component) {
355
324
  this.transitionFinishTimeout = setTimeout(eventHandler, this.props.platform === ANDROID || this.props.platform === VKCOM ? 300 : 600);
356
325
  }
357
326
  }
358
- }, {
359
- key: "waitAnimationFinish",
360
- value: function waitAnimationFinish(elem, eventHandler) {
361
- if (this.shouldDisableTransitionMotion()) {
362
- eventHandler();
363
- return;
364
- }
365
-
366
- if (animationEvent.supported) {
367
- elem.removeEventListener(animationEvent.name, eventHandler);
368
- elem.addEventListener(animationEvent.name, eventHandler);
369
- } else {
370
- clearTimeout(this.animationFinishTimeout);
371
- this.animationFinishTimeout = setTimeout(eventHandler, this.props.platform === ANDROID || this.props.platform === VKCOM ? 300 : 600);
372
- }
373
- }
374
327
  }, {
375
328
  key: "blurActiveElement",
376
329
  value: function blurActiveElement() {
@@ -383,6 +336,42 @@ var ViewInfinite = /*#__PURE__*/function (_React$Component) {
383
336
  value: function pickPanel(id) {
384
337
  return this.panelNodes[id];
385
338
  }
339
+ }, {
340
+ key: "flushTransition",
341
+ value: function flushTransition(prevPanel, isBack) {
342
+ var _this3 = this;
343
+
344
+ var activePanel = this.props.activePanel;
345
+
346
+ var prevPanelScrolls = _toConsumableArray(this.scrolls[prevPanel] || []).slice(0, -1);
347
+
348
+ var newPanelScrolls = _toConsumableArray(this.scrolls[activePanel] || []);
349
+
350
+ var scrollPosition = isBack ? newPanelScrolls.pop() : 0;
351
+
352
+ if (isBack) {
353
+ var _objectSpread6;
354
+
355
+ this.scrolls = _objectSpread(_objectSpread({}, this.scrolls), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, prevPanel, prevPanelScrolls), _defineProperty(_objectSpread6, activePanel, newPanelScrolls), _objectSpread6));
356
+ }
357
+
358
+ this.setState({
359
+ prevPanel: null,
360
+ nextPanel: null,
361
+ visiblePanels: [activePanel],
362
+ activePanel: activePanel,
363
+ animated: false,
364
+ isBack: undefined
365
+ }, function () {
366
+ _this3.props.scroll.scrollTo(0, isBack ? scrollPosition : 0);
367
+
368
+ _this3.props.onTransition && _this3.props.onTransition({
369
+ isBack: isBack,
370
+ from: prevPanel,
371
+ to: activePanel
372
+ });
373
+ });
374
+ }
386
375
  }, {
387
376
  key: "onSwipeBackSuccess",
388
377
  value: function onSwipeBackSuccess() {
@@ -445,7 +434,7 @@ var ViewInfinite = /*#__PURE__*/function (_React$Component) {
445
434
  }, {
446
435
  key: "render",
447
436
  value: function render() {
448
- var _this3 = this;
437
+ var _this4 = this;
449
438
 
450
439
  var _this$props2 = this.props,
451
440
  popout = _this$props2.popout,
@@ -467,31 +456,32 @@ var ViewInfinite = /*#__PURE__*/function (_React$Component) {
467
456
  isBackCheck = _this$props2.isBackCheck,
468
457
  restProps = _objectWithoutProperties(_this$props2, _excluded);
469
458
 
470
- var _this$state2 = this.state,
471
- prevPanel = _this$state2.prevPanel,
472
- nextPanel = _this$state2.nextPanel,
473
- activePanel = _this$state2.activePanel,
474
- isBack = _this$state2.isBack,
475
- swipeBackPrevPanel = _this$state2.swipeBackPrevPanel,
476
- swipeBackNextPanel = _this$state2.swipeBackNextPanel,
477
- swipeBackResult = _this$state2.swipeBackResult,
478
- swipingBack = _this$state2.swipingBack;
459
+ var _this$state = this.state,
460
+ prevPanel = _this$state.prevPanel,
461
+ nextPanel = _this$state.nextPanel,
462
+ activePanel = _this$state.activePanel,
463
+ isBack = _this$state.isBack,
464
+ animated = _this$state.animated,
465
+ swipeBackPrevPanel = _this$state.swipeBackPrevPanel,
466
+ swipeBackNextPanel = _this$state.swipeBackNextPanel,
467
+ swipeBackResult = _this$state.swipeBackResult,
468
+ swipingBack = _this$state.swipingBack;
479
469
  var hasPopout = !!popout;
480
470
  var hasModal = !!modal;
481
471
  var panels = this.panels.filter(function (panel) {
482
472
  var panelId = getNavId(panel.props, warn);
483
- return _this3.state.visiblePanels.includes(panelId) || panelId === swipeBackPrevPanel || panelId === swipeBackNextPanel;
473
+ return _this4.state.visiblePanels.includes(panelId) || panelId === swipeBackPrevPanel || panelId === swipeBackNextPanel;
484
474
  }).sort(function (panel) {
485
475
  var panelId = getNavId(panel.props, warn);
486
476
  var isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;
487
477
  var isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;
488
478
 
489
479
  if (isNextPanel) {
490
- return swipingBack || _this3.state.isBack ? -1 : 1;
480
+ return swipingBack || _this4.state.isBack ? -1 : 1;
491
481
  }
492
482
 
493
483
  if (isPrevPanel) {
494
- return swipingBack || _this3.state.isBack ? 1 : -1;
484
+ return swipingBack || _this4.state.isBack ? 1 : -1;
495
485
  }
496
486
 
497
487
  return 0;
@@ -514,7 +504,8 @@ var ViewInfinite = /*#__PURE__*/function (_React$Component) {
514
504
  var panelId = getNavId(panel.props, warn);
515
505
  var isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;
516
506
  var compensateScroll = isPrev || panelId === swipeBackNextPanel || panelId === nextPanel && isBack;
517
- var scrollList = _this3.scrolls[panelId] || [];
507
+ var isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);
508
+ var scrollList = _this4.scrolls[panelId] || [];
518
509
  var scroll = scrollList[scrollList.length - 1] || 0;
519
510
  return createScopedElement("div", {
520
511
  vkuiClass: classNames('View__panel', {
@@ -526,10 +517,11 @@ var ViewInfinite = /*#__PURE__*/function (_React$Component) {
526
517
  'View__panel--swipe-back-success': swipeBackResult === SwipeBackResults.success,
527
518
  'View__panel--swipe-back-failed': swipeBackResult === SwipeBackResults.fail
528
519
  }),
520
+ onAnimationEnd: isTransitionTarget ? _this4.transitionEndHandler : null,
529
521
  ref: function ref(el) {
530
- return _this3.panelNodes[panelId] = el;
522
+ return _this4.panelNodes[panelId] = el;
531
523
  },
532
- style: _this3.calcPanelSwipeStyles(panelId),
524
+ style: _this4.calcPanelSwipeStyles(panelId),
533
525
  key: panelId
534
526
  }, createScopedElement("div", {
535
527
  vkuiClass: "View__panel-in",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/View/ViewInfinite.tsx"],"names":["React","classNames","transitionEvent","animationEvent","getClassName","IOS","ANDROID","VKCOM","Touch","withPlatform","withContext","ConfigProviderContext","SplitColContext","AppRootPortal","canUseDOM","withDOM","ScrollContext","NavTransitionProvider","getNavId","warnOnce","warn","SwipeBackResults","scrollsCache","swipeBackExcludedTags","ViewInfinite","props","e","includes","animationName","activePanel","prevPanel","state","isBack","prevPanelScrolls","scrolls","slice","newPanelScrolls","scrollPosition","pop","setState","nextPanel","visiblePanels","animated","undefined","scroll","scrollTo","onTransition","from","to","propertyName","target","pickPanel","swipeBackNextPanel","swipeBackResult","fail","onSwipeBackCancel","success","onSwipeBackSuccess","originalEvent","tagName","toLowerCase","platform","configProvider","isWebView","startX","window","innerWidth","browserSwipe","onSwipeBack","swipingBack","history","length","prevScrolls","getScroll","y","swipebackStartX","swipeBackPrevPanel","swipeBackShift","shiftX","speed","duration","document","Children","toArray","children","id","prevProps","prevState","popout","blurActiveElement","modal","isBackCheck","firstLayerId","panels","map","panel","find","waitAnimationFinish","transitionEndHandler","onSwipeBackStart","waitTransitionFinish","swipingBackTransitionEndHandler","transitionMotionEnabled","splitCol","animate","elem","eventHandler","supported","removeEventListener","name","addEventListener","clearTimeout","transitionFinishTimeout","setTimeout","shouldDisableTransitionMotion","animationFinishTimeout","activeElement","blur","panelNodes","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","_1","nav","restProps","hasPopout","hasModal","filter","sort","isPrevPanel","isNextPanel","disableAnimation","modifiers","onMoveX","onEnd","compensateScroll","scrollList","el","calcPanelSwipeStyles","marginTop","Component"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { transitionEvent, animationEvent } from '../../lib/supportEvents';\nimport { getClassName } from '../../helpers/getClassName';\nimport { IOS, ANDROID, VKCOM } from '../../lib/platform';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { HasPlatform } from '../../types';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { withContext } from '../../hoc/withContext';\nimport { ConfigProviderContext, ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';\nimport { SplitColContext, SplitColContextProps } from '../SplitCol/SplitCol';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { canUseDOM, withDOM, DOMProps } from '../../lib/dom';\nimport { ScrollContext, ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport './View.css';\n\nconst warn = warnOnce('ViewInfinite');\n\nenum SwipeBackResults { fail = 1, success}\n\ninterface Scrolls {\n [index: string]: number[];\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype AnimationEventHandler = (e?: AnimationEvent) => void;\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nlet scrollsCache: ViewsScrolls = {};\n\nconst swipeBackExcludedTags = ['input', 'textarea'];\n\nexport type TransitionParams = { from: string; to: string };\n\nexport interface ViewInfiniteProps extends React.HTMLAttributes<HTMLElement>, HasPlatform, NavIdProps {\n activePanel: string;\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n onTransition?(params: TransitionParams & { isBack: boolean }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(): void;\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n isBackCheck?(params: TransitionParams): boolean;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string;\n isBack: boolean;\n prevPanel: string;\n nextPanel: string;\n\n swipingBack: boolean;\n swipebackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string;\n swipeBackPrevPanel: string;\n swipeBackResult: SwipeBackResults;\n\n browserSwipe: boolean;\n}\n\nclass ViewInfinite extends React.Component<ViewInfiniteProps & DOMProps, ViewInfiniteState> {\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: false,\n swipebackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private scrolls = scrollsCache[getNavId(this.props, warn)] || {};\n private transitionFinishTimeout: ReturnType<typeof setTimeout>;\n private animationFinishTimeout: ReturnType<typeof setTimeout>;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n panelNodes: { [id: string]: HTMLDivElement } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache[id] = this.scrolls;\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n this.props.popout && !prevProps.popout && this.blurActiveElement();\n this.props.modal && !prevProps.modal && this.blurActiveElement();\n\n // Нужен переход\n if (prevProps.activePanel !== this.props.activePanel && !prevState.swipingBack && !prevState.browserSwipe) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({ from: prevProps.activePanel, to: this.props.activePanel });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls[prevProps.activePanel] || [];\n const scrolls = {\n ...this.scrolls,\n [prevProps.activePanel]: [...prevScrolls, this.props.scroll.getScroll().y],\n };\n this.scrolls = scrolls;\n\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n\n const prevPanelScrolls = [...this.scrolls[prevPanel] || []].slice(0, -1);\n const newPanelScrolls = [...this.scrolls[nextPanel] || []];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [nextPanel]: newPanelScrolls,\n [prevPanel]: prevPanelScrolls,\n };\n\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipebackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n }, () => {\n this.props.scroll.scrollTo(0, scrollPosition);\n prevProps.onTransition && prevProps.onTransition({ isBack: true, from: prevPanel, to: nextPanel });\n });\n }\n\n // Начался переход\n if (!prevState.animated && this.state.animated) {\n const { prevPanel, nextPanel, isBack } = this.state;\n this.waitAnimationFinish(this.pickPanel(isBack ? prevPanel : nextPanel), this.transitionEndHandler);\n }\n\n // Начался свайп назад\n if (!prevState.swipingBack && this.state.swipingBack) {\n this.props.onSwipeBackStart && this.props.onSwipeBackStart();\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(this.pickPanel(this.state.swipeBackNextPanel), this.swipingBackTransitionEndHandler);\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (prevState.swipeBackResult === SwipeBackResults.fail && !this.state.swipeBackResult) {\n const newPanelScrolls = [...this.scrolls[this.state.activePanel] || []];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: newPanelScrolls,\n };\n\n this.props.scroll.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return this.props.configProvider.transitionMotionEnabled === false ||\n !this.props.splitCol.animate;\n }\n\n waitTransitionFinish(elem: HTMLElement, eventHandler: TransitionEventHandler): void {\n if (transitionEvent.supported) {\n elem.removeEventListener(transitionEvent.name, eventHandler);\n elem.addEventListener(transitionEvent.name, eventHandler);\n } else {\n clearTimeout(this.transitionFinishTimeout);\n this.transitionFinishTimeout = setTimeout(eventHandler, this.props.platform === ANDROID || this.props.platform === VKCOM ? 300 : 600);\n }\n }\n\n waitAnimationFinish(elem: HTMLElement, eventHandler: AnimationEventHandler): void {\n if (this.shouldDisableTransitionMotion()) {\n eventHandler();\n return;\n }\n\n if (animationEvent.supported) {\n elem.removeEventListener(animationEvent.name, eventHandler);\n elem.addEventListener(animationEvent.name, eventHandler);\n } else {\n clearTimeout(this.animationFinishTimeout);\n this.animationFinishTimeout = setTimeout(eventHandler, this.props.platform === ANDROID || this.props.platform === VKCOM ? 300 : 600);\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string) {\n return this.panelNodes[id];\n }\n\n transitionEndHandler = (e?: AnimationEvent): void => {\n if (!e || [\n 'vkui-animation-ios-next-forward',\n 'vkui-animation-ios-prev-back',\n 'vkui-animation-view-next-forward',\n 'vkui-animation-view-prev-back',\n ].includes(e.animationName)) {\n const activePanel = this.props.activePanel;\n const prevPanel = this.state.prevPanel;\n const isBack = this.state.isBack;\n\n const prevPanelScrolls = [...this.scrolls[prevPanel] || []].slice(0, -1);\n const newPanelScrolls = [...this.scrolls[activePanel] || []];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls = {\n ...this.scrolls,\n [prevPanel]: prevPanelScrolls,\n [activePanel]: newPanelScrolls,\n };\n }\n\n this.setState({\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack: undefined,\n }, () => {\n isBack && this.props.scroll.scrollTo(0, scrollPosition);\n this.props.onTransition && this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n });\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (!e || e.propertyName.includes('transform') && e.target === this.pickPanel(this.state.swipeBackNextPanel)) {\n switch (this.state.swipeBackResult) {\n case SwipeBackResults.fail:\n this.onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipebackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n onMoveX = (e: TouchEvent): void => {\n const target = e.originalEvent.target as HTMLElement;\n if (\n target &&\n typeof target.tagName === 'string' &&\n swipeBackExcludedTags.includes(target.tagName.toLowerCase())\n ) {\n return;\n }\n\n const { platform, configProvider } = this.props;\n\n if (platform === IOS && !configProvider.isWebView && (e.startX <= 70 || e.startX >= this.window.innerWidth - 70) && !this.state.browserSwipe) {\n this.setState({ browserSwipe: true });\n }\n\n if (platform === IOS && configProvider.isWebView && this.props.onSwipeBack) {\n if (this.state.animated && e.startX <= 70) {\n return;\n }\n\n if (e.startX <= 70 && !this.state.swipingBack && this.props.history.length > 1) {\n const prevScrolls = this.scrolls[this.state.activePanel] || [];\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: [...prevScrolls, this.props.scroll.getScroll().y],\n };\n\n this.setState({\n swipingBack: true,\n swipebackStartX: e.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n if (this.state.swipingBack) {\n let swipeBackShift;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (e.shiftX > this.window.innerWidth - this.state.swipebackStartX) {\n swipeBackShift = this.window.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n this.setState({ swipeBackShift });\n }\n }\n };\n\n onEnd = (e: TouchEvent): void => {\n if (this.state.swipingBack) {\n const speed = this.state.swipeBackShift / e.duration * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (speed > 250 || this.state.swipebackStartX + this.state.swipeBackShift > this.window.innerWidth / 2) {\n this.setState({ swipeBackResult: SwipeBackResults.success });\n } else {\n this.setState({ swipeBackResult: SwipeBackResults.fail });\n }\n }\n };\n\n calcPanelSwipeStyles(panelId: string): React.CSSProperties {\n if (!canUseDOM) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if (!isPrev && !isNext || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${-50 + this.state.swipeBackShift * 100 / this.window.innerWidth / 2}%`;\n let prevPanelShadow = 0.3 * (this.window.innerWidth - this.state.swipeBackShift) / this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\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 boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n }\n\n render() {\n const {\n popout, modal, platform,\n activePanel: _1, splitCol, configProvider, history, id, nav,\n onTransition, onSwipeBack, onSwipeBackStart, onSwipeBackCancel,\n window, document, scroll, isBackCheck,\n ...restProps\n } = this.props;\n const {\n prevPanel, nextPanel, activePanel, isBack,\n swipeBackPrevPanel, swipeBackNextPanel, swipeBackResult, swipingBack,\n } = this.state;\n\n const hasPopout = !!popout;\n const hasModal = !!modal;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return this.state.visiblePanels.includes(panelId) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel;\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n\n const modifiers = {\n 'View--animated': !disableAnimation && this.state.animated,\n 'View--swiping-back': !disableAnimation && this.state.swipingBack,\n 'View--no-motion': disableAnimation,\n };\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n vkuiClass={classNames(getClassName('View', platform), modifiers)}\n onMoveX={this.onMoveX}\n onEnd={this.onEnd}\n >\n <div vkuiClass=\"View__panels\">\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const compensateScroll = isPrev || panelId === swipeBackNextPanel || panelId === nextPanel && isBack;\n const scrollList = this.scrolls[panelId] || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\n\n return (\n <div\n vkuiClass={classNames('View__panel', {\n 'View__panel--active': panelId === activePanel,\n 'View__panel--prev': panelId === prevPanel,\n 'View__panel--next': panelId === nextPanel,\n 'View__panel--swipe-back-prev': panelId === swipeBackPrevPanel,\n 'View__panel--swipe-back-next': panelId === swipeBackNextPanel,\n 'View__panel--swipe-back-success': swipeBackResult === SwipeBackResults.success,\n 'View__panel--swipe-back-failed': swipeBackResult === SwipeBackResults.fail,\n })}\n ref={(el) => this.panelNodes[panelId] = el}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div vkuiClass=\"View__panel-in\" style={{ marginTop: compensateScroll ? -scroll : null }}>\n <NavTransitionProvider entering={panelId === nextPanel || panelId === swipeBackNextPanel}>\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {hasPopout && <div vkuiClass=\"View__popout\">{popout}</div>}\n {hasModal && <div vkuiClass=\"View__modal\">{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n }\n}\n\nexport default withContext(withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfinite)),\n SplitColContext, 'splitCol'),\n ConfigProviderContext, 'configProvider'),\nScrollContext, 'scroll');\n"],"file":"ViewInfinite.js"}
1
+ {"version":3,"sources":["../../../../src/components/View/ViewInfinite.tsx"],"names":["React","classNames","transitionEvent","animationEvent","getClassName","IOS","ANDROID","VKCOM","Touch","withPlatform","withContext","ConfigProviderContext","SplitColContext","AppRootPortal","canUseDOM","withDOM","ScrollContext","NavTransitionProvider","getNavId","warnOnce","swipeBackExcluded","warn","SwipeBackResults","scrollsCache","ViewInfinite","props","e","includes","animationName","flushTransition","state","prevPanel","isBack","propertyName","target","pickPanel","swipeBackNextPanel","swipeBackResult","fail","onSwipeBackCancel","success","onSwipeBackSuccess","platform","configProvider","isWebView","startX","window","innerWidth","browserSwipe","setState","onSwipeBack","animated","swipingBack","history","length","prevScrolls","scrolls","activePanel","scroll","getScroll","y","swipebackStartX","swipeBackPrevPanel","slice","swipeBackShift","shiftX","speed","duration","visiblePanels","undefined","nextPanel","document","Children","toArray","children","id","prevProps","prevState","popout","blurActiveElement","modal","isBackCheck","from","to","firstLayerId","panels","map","panel","find","shouldDisableTransitionMotion","supported","clearTimeout","animationFinishTimeout","setTimeout","transitionEndHandler","prevPanelScrolls","newPanelScrolls","scrollPosition","pop","scrollTo","onTransition","onSwipeBackStart","waitTransitionFinish","swipingBackTransitionEndHandler","transitionMotionEnabled","splitCol","animate","elem","eventHandler","removeEventListener","name","addEventListener","transitionFinishTimeout","activeElement","blur","panelNodes","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","_1","nav","restProps","hasPopout","hasModal","filter","sort","isPrevPanel","isNextPanel","disableAnimation","modifiers","onMoveX","onEnd","compensateScroll","isTransitionTarget","scrollList","el","calcPanelSwipeStyles","marginTop","Component"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { transitionEvent, animationEvent } from '../../lib/supportEvents';\nimport { getClassName } from '../../helpers/getClassName';\nimport { IOS, ANDROID, VKCOM } from '../../lib/platform';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { HasPlatform } from '../../types';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { withContext } from '../../hoc/withContext';\nimport { ConfigProviderContext, ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';\nimport { SplitColContext, SplitColContextProps } from '../SplitCol/SplitCol';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { canUseDOM, withDOM, DOMProps } from '../../lib/dom';\nimport { ScrollContext, ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { swipeBackExcluded } from './utils';\nimport './View.css';\n\nconst warn = warnOnce('ViewInfinite');\n\nenum SwipeBackResults { fail = 1, success}\n\ninterface Scrolls {\n [index: string]: number[];\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nlet scrollsCache: ViewsScrolls = {};\n\nexport type TransitionParams = { from: string; to: string };\n\nexport interface ViewInfiniteProps extends React.HTMLAttributes<HTMLElement>, HasPlatform, NavIdProps {\n activePanel: string;\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n onTransition?(params: TransitionParams & { isBack: boolean }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(): void;\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n isBackCheck?(params: TransitionParams): boolean;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string;\n isBack: boolean;\n prevPanel: string;\n nextPanel: string;\n\n swipingBack: boolean;\n swipebackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string;\n swipeBackPrevPanel: string;\n swipeBackResult: SwipeBackResults;\n\n browserSwipe: boolean;\n}\n\nclass ViewInfinite extends React.Component<ViewInfiniteProps & DOMProps, ViewInfiniteState> {\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: false,\n swipebackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private scrolls = scrollsCache[getNavId(this.props, warn)] || {};\n private transitionFinishTimeout: ReturnType<typeof setTimeout>;\n private animationFinishTimeout: ReturnType<typeof setTimeout>;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n panelNodes: { [id: string]: HTMLDivElement } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache[id] = this.scrolls;\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n this.props.popout && !prevProps.popout && this.blurActiveElement();\n this.props.modal && !prevProps.modal && this.blurActiveElement();\n\n // Нужен переход\n if (prevProps.activePanel !== this.props.activePanel && !prevState.swipingBack && !prevState.browserSwipe) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({ from: prevProps.activePanel, to: this.props.activePanel });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls[prevProps.activePanel] || [];\n const scrolls = {\n ...this.scrolls,\n [prevProps.activePanel]: [...prevScrolls, this.props.scroll.getScroll().y],\n };\n this.scrolls = scrolls;\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n clearTimeout(this.animationFinishTimeout);\n this.animationFinishTimeout = setTimeout(this.transitionEndHandler, this.props.platform === ANDROID || this.props.platform === VKCOM ? 300 : 600);\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n\n const prevPanelScrolls = [...this.scrolls[prevPanel] || []].slice(0, -1);\n const newPanelScrolls = [...this.scrolls[nextPanel] || []];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [nextPanel]: newPanelScrolls,\n [prevPanel]: prevPanelScrolls,\n };\n\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipebackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n }, () => {\n this.props.scroll.scrollTo(0, scrollPosition);\n prevProps.onTransition && prevProps.onTransition({ isBack: true, from: prevPanel, to: nextPanel });\n });\n }\n\n // Начался свайп назад\n if (!prevState.swipingBack && this.state.swipingBack) {\n this.props.onSwipeBackStart && this.props.onSwipeBackStart();\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(this.pickPanel(this.state.swipeBackNextPanel), this.swipingBackTransitionEndHandler);\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (prevState.swipeBackResult === SwipeBackResults.fail && !this.state.swipeBackResult) {\n const newPanelScrolls = [...this.scrolls[this.state.activePanel] || []];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: newPanelScrolls,\n };\n\n this.props.scroll.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return this.props.configProvider.transitionMotionEnabled === false ||\n !this.props.splitCol.animate;\n }\n\n waitTransitionFinish(elem: HTMLElement, eventHandler: TransitionEventHandler): void {\n if (transitionEvent.supported) {\n elem.removeEventListener(transitionEvent.name, eventHandler);\n elem.addEventListener(transitionEvent.name, eventHandler);\n } else {\n clearTimeout(this.transitionFinishTimeout);\n this.transitionFinishTimeout = setTimeout(eventHandler, this.props.platform === ANDROID || this.props.platform === VKCOM ? 300 : 600);\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string) {\n return this.panelNodes[id];\n }\n\n flushTransition(prevPanel: string, isBack: boolean) {\n const activePanel = this.props.activePanel;\n\n const prevPanelScrolls = [...this.scrolls[prevPanel] || []].slice(0, -1);\n const newPanelScrolls = [...this.scrolls[activePanel] || []];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls = {\n ...this.scrolls,\n [prevPanel]: prevPanelScrolls,\n [activePanel]: newPanelScrolls,\n };\n }\n\n this.setState({\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack: undefined,\n }, () => {\n this.props.scroll.scrollTo(0, isBack ? scrollPosition : 0);\n this.props.onTransition && this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n });\n }\n\n transitionEndHandler = (e?: React.AnimationEvent): void => {\n if (!e || [\n 'vkui-animation-ios-next-forward',\n 'vkui-animation-ios-prev-back',\n 'vkui-animation-view-next-forward',\n 'vkui-animation-view-prev-back',\n ].includes(e.animationName)) {\n this.flushTransition(this.state.prevPanel, this.state.isBack);\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (!e || e.propertyName.includes('transform') && e.target === this.pickPanel(this.state.swipeBackNextPanel)) {\n switch (this.state.swipeBackResult) {\n case SwipeBackResults.fail:\n this.onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipebackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n onMoveX = (e: TouchEvent): void => {\n if (swipeBackExcluded(e)) {\n return;\n }\n\n const { platform, configProvider } = this.props;\n\n if (platform === IOS && !configProvider.isWebView && (e.startX <= 70 || e.startX >= this.window.innerWidth - 70) && !this.state.browserSwipe) {\n this.setState({ browserSwipe: true });\n }\n\n if (platform === IOS && configProvider.isWebView && this.props.onSwipeBack) {\n if (this.state.animated && e.startX <= 70) {\n return;\n }\n\n if (e.startX <= 70 && !this.state.swipingBack && this.props.history.length > 1) {\n const prevScrolls = this.scrolls[this.state.activePanel] || [];\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: [...prevScrolls, this.props.scroll.getScroll().y],\n };\n\n this.setState({\n swipingBack: true,\n swipebackStartX: e.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n if (this.state.swipingBack) {\n let swipeBackShift;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (e.shiftX > this.window.innerWidth - this.state.swipebackStartX) {\n swipeBackShift = this.window.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n this.setState({ swipeBackShift });\n }\n }\n };\n\n onEnd = (e: TouchEvent): void => {\n if (this.state.swipingBack) {\n const speed = this.state.swipeBackShift / e.duration * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (speed > 250 || this.state.swipebackStartX + this.state.swipeBackShift > this.window.innerWidth / 2) {\n this.setState({ swipeBackResult: SwipeBackResults.success });\n } else {\n this.setState({ swipeBackResult: SwipeBackResults.fail });\n }\n }\n };\n\n calcPanelSwipeStyles(panelId: string): React.CSSProperties {\n if (!canUseDOM) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if (!isPrev && !isNext || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${-50 + this.state.swipeBackShift * 100 / this.window.innerWidth / 2}%`;\n let prevPanelShadow = 0.3 * (this.window.innerWidth - this.state.swipeBackShift) / this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\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 boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n }\n\n render() {\n const {\n popout, modal, platform,\n activePanel: _1, splitCol, configProvider, history, id, nav,\n onTransition, onSwipeBack, onSwipeBackStart, onSwipeBackCancel,\n window, document, scroll, isBackCheck,\n ...restProps\n } = this.props;\n const {\n prevPanel, nextPanel, activePanel, isBack, animated,\n swipeBackPrevPanel, swipeBackNextPanel, swipeBackResult, swipingBack,\n } = this.state;\n\n const hasPopout = !!popout;\n const hasModal = !!modal;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return this.state.visiblePanels.includes(panelId) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel;\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n\n const modifiers = {\n 'View--animated': !disableAnimation && this.state.animated,\n 'View--swiping-back': !disableAnimation && this.state.swipingBack,\n 'View--no-motion': disableAnimation,\n };\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n vkuiClass={classNames(getClassName('View', platform), modifiers)}\n onMoveX={this.onMoveX}\n onEnd={this.onEnd}\n >\n <div vkuiClass=\"View__panels\">\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const compensateScroll = isPrev || panelId === swipeBackNextPanel || panelId === nextPanel && isBack;\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const scrollList = this.scrolls[panelId] || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\n\n return (\n <div\n vkuiClass={classNames('View__panel', {\n 'View__panel--active': panelId === activePanel,\n 'View__panel--prev': panelId === prevPanel,\n 'View__panel--next': panelId === nextPanel,\n 'View__panel--swipe-back-prev': panelId === swipeBackPrevPanel,\n 'View__panel--swipe-back-next': panelId === swipeBackNextPanel,\n 'View__panel--swipe-back-success': swipeBackResult === SwipeBackResults.success,\n 'View__panel--swipe-back-failed': swipeBackResult === SwipeBackResults.fail,\n })}\n onAnimationEnd={isTransitionTarget ? this.transitionEndHandler : null}\n ref={(el) => this.panelNodes[panelId] = el}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div vkuiClass=\"View__panel-in\" style={{ marginTop: compensateScroll ? -scroll : null }}>\n <NavTransitionProvider entering={panelId === nextPanel || panelId === swipeBackNextPanel}>\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {hasPopout && <div vkuiClass=\"View__popout\">{popout}</div>}\n {hasModal && <div vkuiClass=\"View__modal\">{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n }\n}\n\nexport default withContext(withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfinite)),\n SplitColContext, 'splitCol'),\n ConfigProviderContext, 'configProvider'),\nScrollContext, 'scroll');\n"],"file":"ViewInfinite.js"}
@@ -0,0 +1,6 @@
1
+ var swipeBackExcludedSelector = 'input, textarea, [data-vkui-swipe-back=false]';
2
+ export function swipeBackExcluded(e) {
3
+ var target = e.originalEvent.target;
4
+ return Boolean(target === null || target === void 0 ? void 0 : target.closest(swipeBackExcludedSelector));
5
+ }
6
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/View/utils.ts"],"names":["swipeBackExcludedSelector","swipeBackExcluded","e","target","originalEvent","Boolean","closest"],"mappings":"AAEA,IAAMA,yBAAyB,GAAG,+CAAlC;AAEA,OAAO,SAASC,iBAAT,CAA2BC,CAA3B,EAA0C;AAC/C,MAAMC,MAAM,GAAGD,CAAC,CAACE,aAAF,CAAgBD,MAA/B;AACA,SAAOE,OAAO,CAACF,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEG,OAAR,CAAgBN,yBAAhB,CAAD,CAAd;AACD","sourcesContent":["import { TouchEvent } from '../Touch/Touch';\n\nconst swipeBackExcludedSelector = 'input, textarea, [data-vkui-swipe-back=false]';\n\nexport function swipeBackExcluded(e: TouchEvent) {\n const target = e.originalEvent.target as HTMLElement;\n return Boolean(target?.closest(swipeBackExcludedSelector));\n}\n"],"file":"utils.js"}
@@ -65,6 +65,8 @@ export { default as Footer } from "./components/Footer/Footer";
65
65
  export { default as InfoRow } from "./components/InfoRow/InfoRow";
66
66
  export { default as Gallery } from "./components/Gallery/Gallery";
67
67
  export { default as Avatar } from "./components/Avatar/Avatar";
68
+ export { GridAvatar } from "./components/GridAvatar/GridAvatar";
69
+ export { InitialsAvatar } from "./components/InitialsAvatar/InitialsAvatar";
68
70
  export { default as Progress } from "./components/Progress/Progress";
69
71
  export { default as Search } from "./components/Search/Search";
70
72
  export { default as Tabs } from "./components/Tabs/Tabs";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":["default","Root","View","Panel","PanelHeaderButton","PanelHeader","PanelHeaderContent","PanelHeaderContext","SplitLayout","SplitCol","Epic","Tabbar","TabbarItem","HorizontalScroll","FixedLayout","PopoutWrapper","Alert","ActionSheet","ActionSheetItem","ScreenSpinner","Snackbar","ModalRoot","withModalRootContext","ModalRootContext","ModalPage","ModalPageHeader","ModalCard","ModalDismissButton","Badge","Button","IconButton","Card","CardGrid","CardScroll","ContentCard","CellButton","Header","Group","Gradient","List","Cell","RichCell","SimpleCell","HorizontalCell","Footer","InfoRow","Gallery","Avatar","Progress","Search","Tabs","TabsItem","Spinner","PullToRefresh","Link","Tooltip","TooltipContainer","Counter","UsersStack","Separator","Spacing","Placeholder","Banner","MiniInfoCell","WriteBar","WriteBarIcon","SubnavigationBar","SubnavigationButton","FormLayout","FormItem","FormField","FormLayoutGroup","FormStatus","Switch","File","Input","Chip","ChipsInput","Slider","RangeSlider","Textarea","Radio","Checkbox","Select","SelectMimicry","NativeSelect","CustomSelect","CustomSelectOption","DatePicker","SliderSwitch","Div","Tappable","Touch","PanelSpinner","PanelHeaderClose","PanelHeaderBack","PanelHeaderSubmit","PanelHeaderEdit","ModalCardBase","AppRoot","AdaptivityProvider","ConfigProvider","ConfigProviderContext","Appearance","Scheme","WebviewType","PromoBanner","Title","Headline","Text","Caption","Subhead","withInsets","withPlatform","withAdaptivity","useInsets","usePlatform","useAdaptivity","useAppearance","classNamesString","classNames","animate","removeObjectKeys","SSRWrapper","platform","ANDROID","IOS","VKCOM","Platform","IS_PLATFORM_ANDROID","IS_PLATFORM_IOS","getClassName","ViewWidth","ViewHeight","SizeType"],"mappings":"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","sourcesContent":["import './lib/polyfills';\n\nimport './styles/constants.css';\nimport './styles/animations.css';\nimport './styles/common.css';\n\n/**\n * Layout\n */\nexport { default as Root } from './components/Root/Root';\nexport type { RootProps } from './components/Root/Root';\nexport { default as View } from './components/View/View';\nexport type { ViewProps } from './components/View/View';\nexport { Panel } from './components/Panel/Panel';\nexport type { PanelProps } from './components/Panel/Panel';\nexport { PanelHeaderButton } from './components/PanelHeaderButton/PanelHeaderButton';\nexport type { PanelHeaderButtonProps } from './components/PanelHeaderButton/PanelHeaderButton';\nexport { default as PanelHeader } from './components/PanelHeader/PanelHeader';\nexport type { PanelHeaderProps } from './components/PanelHeader/PanelHeader';\nexport { default as PanelHeaderContent } from './components/PanelHeaderContent/PanelHeaderContent';\nexport type { PanelHeaderContentProps } from './components/PanelHeaderContent/PanelHeaderContent';\nexport { PanelHeaderContext } from './components/PanelHeaderContext/PanelHeaderContext';\nexport type { PanelHeaderContextProps } from './components/PanelHeaderContext/PanelHeaderContext';\nexport { SplitLayout } from './components/SplitLayout/SplitLayout';\nexport type { SplitLayoutProps } from './components/SplitLayout/SplitLayout';\nexport { SplitCol } from './components/SplitCol/SplitCol';\nexport type { SplitColProps } from './components/SplitCol/SplitCol';\nexport { default as Epic } from './components/Epic/Epic';\nexport type { EpicProps } from './components/Epic/Epic';\nexport { default as Tabbar } from './components/Tabbar/Tabbar';\nexport type { TabbarProps } from './components/Tabbar/Tabbar';\nexport { default as TabbarItem } from './components/TabbarItem/TabbarItem';\nexport type { TabbarItemProps } from './components/TabbarItem/TabbarItem';\nexport { default as HorizontalScroll } from './components/HorizontalScroll/HorizontalScroll';\nexport type { HorizontalScrollProps } from './components/HorizontalScroll/HorizontalScroll';\nexport { default as FixedLayout } from './components/FixedLayout/FixedLayout';\nexport type { FixedLayoutProps } from './components/FixedLayout/FixedLayout';\n\n/**\n * Popouts\n */\nexport { PopoutWrapper } from './components/PopoutWrapper/PopoutWrapper';\nexport type { PopoutWrapperProps } from './components/PopoutWrapper/PopoutWrapper';\nexport { default as Alert } from './components/Alert/Alert';\nexport type { AlertProps, AlertActionInterface } from './components/Alert/Alert';\nexport { ActionSheet } from './components/ActionSheet/ActionSheet';\nexport type { ActionSheetProps } from './components/ActionSheet/ActionSheet';\nexport { default as ActionSheetItem } from './components/ActionSheetItem/ActionSheetItem';\nexport type { ActionSheetItemProps } from './components/ActionSheetItem/ActionSheetItem';\nexport { default as ScreenSpinner } from './components/ScreenSpinner/ScreenSpinner';\nexport type { ScreenSpinnerProps } from './components/ScreenSpinner/ScreenSpinner';\nexport { Snackbar } from './components/Snackbar/Snackbar';\nexport type { SnackbarProps } from './components/Snackbar/Snackbar';\n\n/**\n * Modals\n */\nexport { ModalRoot } from './components/ModalRoot/ModalRootAdaptive';\nexport type { ModalRootProps } from './components/ModalRoot/ModalRootAdaptive';\nexport { withModalRootContext } from './components/ModalRoot/withModalRootContext';\nexport { default as ModalRootContext } from './components/ModalRoot/ModalRootContext';\nexport { default as ModalPage } from './components/ModalPage/ModalPage';\nexport type { ModalPageProps } from './components/ModalPage/ModalPage';\nexport { default as ModalPageHeader } from './components/ModalPageHeader/ModalPageHeader';\nexport type { ModalPageHeaderProps } from './components/ModalPageHeader/ModalPageHeader';\nexport { default as ModalCard } from './components/ModalCard/ModalCard';\nexport type { ModalCardProps } from './components/ModalCard/ModalCard';\nexport { default as ModalDismissButton } from './components/ModalDismissButton/ModalDismissButton';\nexport type { ModalDismissButtonProps } from './components/ModalDismissButton/ModalDismissButton';\n\n/**\n * Blocks\n */\nexport { Badge } from './components/Badge/Badge';\nexport type { BadgeProps } from './components/Badge/Badge';\nexport { default as Button } from './components/Button/Button';\nexport type { ButtonProps } from './components/Button/Button';\nexport { default as IconButton } from './components/IconButton/IconButton';\nexport type { IconButtonProps } from './components/IconButton/IconButton';\nexport { default as Card } from './components/Card/Card';\nexport type { CardProps } from './components/Card/Card';\nexport { default as CardGrid } from './components/CardGrid/CardGrid';\nexport type { CardGridProps } from './components/CardGrid/CardGrid';\nexport { default as CardScroll } from './components/CardScroll/CardScroll';\nexport type { CardScrollProps } from './components/CardScroll/CardScroll';\nexport { default as ContentCard } from './components/ContentCard/ContentCard';\nexport type { ContentCardProps } from './components/ContentCard/ContentCard';\nexport { CellButton } from './components/CellButton/CellButton';\nexport type { CellButtonProps } from './components/CellButton/CellButton';\nexport { default as Header } from './components/Header/Header';\nexport type { HeaderProps } from './components/Header/Header';\nexport { default as Group } from './components/Group/Group';\nexport type { GroupProps } from './components/Group/Group';\nexport { default as Gradient } from './components/Gradient/Gradient';\nexport type { GradientProps } from './components/Gradient/Gradient';\nexport { default as List } from './components/List/List';\nexport { Cell } from './components/Cell/Cell';\nexport type { CellProps } from './components/Cell/Cell';\nexport { default as RichCell } from './components/RichCell/RichCell';\nexport type { RichCellProps } from './components/RichCell/RichCell';\nexport { default as SimpleCell } from './components/SimpleCell/SimpleCell';\nexport type { SimpleCellProps } from './components/SimpleCell/SimpleCell';\nexport { HorizontalCell } from './components/HorizontalCell/HorizontalCell';\nexport type { HorizontalCellProps } from './components/HorizontalCell/HorizontalCell';\nexport { default as Footer } from './components/Footer/Footer';\nexport { default as InfoRow } from './components/InfoRow/InfoRow';\nexport type { InfoRowProps } from './components/InfoRow/InfoRow';\nexport { default as Gallery } from './components/Gallery/Gallery';\nexport type { GalleryProps } from './components/Gallery/Gallery';\nexport { default as Avatar } from './components/Avatar/Avatar';\nexport type { AvatarProps } from './components/Avatar/Avatar';\nexport { default as Progress } from './components/Progress/Progress';\nexport type { ProgressProps } from './components/Progress/Progress';\nexport { default as Search } from './components/Search/Search';\nexport type { SearchProps } from './components/Search/Search';\nexport { default as Tabs } from './components/Tabs/Tabs';\nexport type { TabsProps } from './components/Tabs/Tabs';\nexport { default as TabsItem } from './components/TabsItem/TabsItem';\nexport type { TabsItemProps } from './components/TabsItem/TabsItem';\nexport { default as Spinner } from './components/Spinner/Spinner';\nexport type { SpinnerProps } from './components/Spinner/Spinner';\nexport { default as PullToRefresh } from './components/PullToRefresh/PullToRefresh';\nexport type { PullToRefreshProps } from './components/PullToRefresh/PullToRefresh';\nexport { default as Link } from './components/Link/Link';\nexport type { LinkProps } from './components/Link/Link';\nexport { default as Tooltip } from './components/Tooltip/Tooltip';\nexport type { TooltipProps } from './components/Tooltip/Tooltip';\nexport { TooltipContainer } from './components/Tooltip/TooltipContainer';\nexport { default as Counter } from './components/Counter/Counter';\nexport type { CounterProps } from './components/Counter/Counter';\nexport { default as UsersStack } from './components/UsersStack/UsersStack';\nexport type { UsersStackProps } from './components/UsersStack/UsersStack';\nexport { default as Separator } from './components/Separator/Separator';\nexport type { SeparatorProps } from './components/Separator/Separator';\nexport { Spacing } from './components/Spacing/Spacing';\nexport type { SpacingProps } from './components/Spacing/Spacing';\nexport { default as Placeholder } from './components/Placeholder/Placeholder';\nexport type { PlaceholderProps } from './components/Placeholder/Placeholder';\nexport { default as Banner } from './components/Banner/Banner';\nexport type { BannerProps } from './components/Banner/Banner';\nexport { MiniInfoCell } from './components/MiniInfoCell/MiniInfoCell';\nexport type { MiniInfoCellProps } from './components/MiniInfoCell/MiniInfoCell';\nexport { WriteBar } from './components/WriteBar/WriteBar';\nexport type { WriteBarProps } from './components/WriteBar/WriteBar';\nexport { WriteBarIcon } from './components/WriteBarIcon/WriteBarIcon';\nexport type { WriteBarIconProps } from './components/WriteBarIcon/WriteBarIcon';\nexport { SubnavigationBar } from './components/SubnavigationBar/SubnavigationBar';\nexport type { SubnavigationBarProps } from './components/SubnavigationBar/SubnavigationBar';\nexport { SubnavigationButton } from './components/SubnavigationButton/SubnavigationButton';\nexport type { SubnavigationButtonProps } from './components/SubnavigationButton/SubnavigationButton';\n\n/**\n * Forms\n */\nexport { default as FormLayout } from './components/FormLayout/FormLayout';\nexport type { FormLayoutProps } from './components/FormLayout/FormLayout';\nexport { FormItem } from './components/FormItem/FormItem';\nexport type { FormItemProps } from './components/FormItem/FormItem';\nexport { FormField } from './components/FormField/FormField';\nexport type { FormFieldProps } from './components/FormField/FormField';\nexport { default as FormLayoutGroup } from './components/FormLayoutGroup/FormLayoutGroup';\nexport type { FormLayoutGroupProps } from './components/FormLayoutGroup/FormLayoutGroup';\nexport { FormStatus } from './components/FormStatus/FormStatus';\nexport type { FormStatusProps } from './components/FormStatus/FormStatus';\nexport { Switch } from './components/Switch/Switch';\nexport type { SwitchProps } from './components/Switch/Switch';\nexport { default as File } from './components/File/File';\nexport type { FileProps } from './components/File/File';\nexport { default as Input } from './components/Input/Input';\nexport type { InputProps } from './components/Input/Input';\nexport { default as Chip } from './components/Chip/Chip';\nexport type { ChipProps } from './components/Chip/Chip';\nexport { default as ChipsInput } from './components/ChipsInput/ChipsInput';\nexport type { ChipsInputProps } from './components/ChipsInput/ChipsInput';\nexport { default as Slider } from './components/Slider/Slider';\nexport type { SliderProps } from './components/Slider/Slider';\nexport { default as RangeSlider } from './components/RangeSlider/RangeSlider';\nexport type { RangeSliderProps } from './components/RangeSlider/RangeSlider';\nexport { default as Textarea } from './components/Textarea/Textarea';\nexport type { TextareaProps } from './components/Textarea/Textarea';\nexport { default as Radio } from './components/Radio/Radio';\nexport type { RadioProps } from './components/Radio/Radio';\nexport { default as Checkbox } from './components/Checkbox/Checkbox';\nexport type { CheckboxProps } from './components/Checkbox/Checkbox';\nexport { default as Select } from './components/Select/Select';\nexport type { SelectProps } from './components/Select/Select';\nexport { default as SelectMimicry } from './components/SelectMimicry/SelectMimicry';\nexport type { SelectMimicryProps } from './components/SelectMimicry/SelectMimicry';\nexport { default as NativeSelect } from './components/NativeSelect/NativeSelect';\nexport type { NativeSelectProps } from './components/NativeSelect/NativeSelect';\nexport { default as CustomSelect } from './components/CustomSelect/CustomSelect';\nexport type { CustomSelectProps, CustomSelectOptionInterface } from './components/CustomSelect/CustomSelect';\nexport { default as CustomSelectOption } from './components/CustomSelectOption/CustomSelectOption';\nexport type { CustomSelectOptionProps } from './components/CustomSelectOption/CustomSelectOption';\nexport { default as DatePicker } from './components/DatePicker/DatePicker';\nexport type { DatePickerProps, DatePickerDateFormat } from './components/DatePicker/DatePicker';\nexport { default as SliderSwitch } from './components/SliderSwitch/SliderSwitch';\nexport type { SliderSwitchProps, SliderSwitchOptionInterface } from './components/SliderSwitch/SliderSwitch';\n\n/**\n * Helpers\n */\nexport { default as Div } from './components/Div/Div';\nexport type { DivProps } from './components/Div/Div';\nexport { default as Tappable } from './components/Tappable/Tappable';\nexport type { TappableProps } from './components/Tappable/Tappable';\nexport { Touch } from './components/Touch/Touch';\nexport type { TouchProps } from './components/Touch/Touch';\nexport { default as PanelSpinner } from './components/PanelSpinner/PanelSpinner';\nexport type { PanelSpinnerProps } from './components/PanelSpinner/PanelSpinner';\nexport { default as PanelHeaderClose } from './components/PanelHeaderClose/PanelHeaderClose';\nexport { default as PanelHeaderBack } from './components/PanelHeaderBack/PanelHeaderBack';\nexport { default as PanelHeaderSubmit } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport { default as PanelHeaderEdit } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport type { PanelHeaderEditProps } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport { ModalCardBase } from './components/ModalCardBase/ModalCardBase';\nexport type { ModalCardBaseProps } from './components/ModalCardBase/ModalCardBase';\n\n/**\n * Wrappers\n */\nexport { AppRoot } from './components/AppRoot/AppRoot';\nexport { default as AdaptivityProvider } from './components/AdaptivityProvider/AdaptivityProvider';\nexport { default as ConfigProvider } from './components/ConfigProvider/ConfigProvider';\nexport type { ConfigProviderProps } from './components/ConfigProvider/ConfigProvider';\nexport {\n ConfigProviderContext,\n Appearance,\n Scheme,\n WebviewType,\n} from './components/ConfigProvider/ConfigProviderContext';\n\n/**\n * Advertisement\n */\nexport { default as PromoBanner } from './components/PromoBanner/PromoBanner';\nexport type { PromoBannerProps } from './components/PromoBanner/PromoBanner';\n\n/**\n * Typography\n */\nexport { default as Title } from './components/Typography/Title/Title';\nexport type { TitleProps } from './components/Typography/Title/Title';\nexport { default as Headline } from './components/Typography/Headline/Headline';\nexport type { HeadlineProps } from './components/Typography/Headline/Headline';\nexport { default as Text } from './components/Typography/Text/Text';\nexport type { TextProps } from './components/Typography/Text/Text';\nexport { default as Caption } from './components/Typography/Caption/Caption';\nexport type { CaptionProps } from './components/Typography/Caption/Caption';\nexport { default as Subhead } from './components/Typography/Subhead/Subhead';\nexport type { SubheadProps } from './components/Typography/Subhead/Subhead';\n\n/**\n * HOCs\n */\nexport { withInsets } from './hoc/withInsets';\nexport { withPlatform } from './hoc/withPlatform';\nexport { withAdaptivity } from './hoc/withAdaptivity';\n\n/**\n * Hooks\n */\nexport { useInsets } from './hooks/useInsets';\nexport { usePlatform } from './hooks/usePlatform';\nexport { useAdaptivity } from './hooks/useAdaptivity';\nexport { useAppearance } from './hooks/useAppearance';\n\n/**\n * Utils\n */\nexport { classNamesString as classNames } from './lib/classNames';\nexport { default as animate } from './lib/animate';\nexport { removeObjectKeys } from './lib/removeObjectKeys';\nexport { SSRWrapper } from './lib/SSR';\nexport { platform, ANDROID, IOS, VKCOM, Platform, IS_PLATFORM_ANDROID, IS_PLATFORM_IOS } from './lib/platform';\nexport { getClassName } from './helpers/getClassName';\nexport { ViewWidth, ViewHeight, SizeType } from './components/AdaptivityProvider/AdaptivityContext';\n\n/**\n * Types\n */\nexport type { AlignType, HasPlatform, HasInsets } from './types';\nexport type { NavIdProps } from './lib/getNavId';\nexport type { PlatformType } from './lib/platform';\nexport type { AdaptivityProps } from './hoc/withAdaptivity';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":["default","Root","View","Panel","PanelHeaderButton","PanelHeader","PanelHeaderContent","PanelHeaderContext","SplitLayout","SplitCol","Epic","Tabbar","TabbarItem","HorizontalScroll","FixedLayout","PopoutWrapper","Alert","ActionSheet","ActionSheetItem","ScreenSpinner","Snackbar","ModalRoot","withModalRootContext","ModalRootContext","ModalPage","ModalPageHeader","ModalCard","ModalDismissButton","Badge","Button","IconButton","Card","CardGrid","CardScroll","ContentCard","CellButton","Header","Group","Gradient","List","Cell","RichCell","SimpleCell","HorizontalCell","Footer","InfoRow","Gallery","Avatar","GridAvatar","InitialsAvatar","Progress","Search","Tabs","TabsItem","Spinner","PullToRefresh","Link","Tooltip","TooltipContainer","Counter","UsersStack","Separator","Spacing","Placeholder","Banner","MiniInfoCell","WriteBar","WriteBarIcon","SubnavigationBar","SubnavigationButton","FormLayout","FormItem","FormField","FormLayoutGroup","FormStatus","Switch","File","Input","Chip","ChipsInput","Slider","RangeSlider","Textarea","Radio","Checkbox","Select","SelectMimicry","NativeSelect","CustomSelect","CustomSelectOption","DatePicker","SliderSwitch","Div","Tappable","Touch","PanelSpinner","PanelHeaderClose","PanelHeaderBack","PanelHeaderSubmit","PanelHeaderEdit","ModalCardBase","AppRoot","AdaptivityProvider","ConfigProvider","ConfigProviderContext","Appearance","Scheme","WebviewType","PromoBanner","Title","Headline","Text","Caption","Subhead","withInsets","withPlatform","withAdaptivity","useInsets","usePlatform","useAdaptivity","useAppearance","classNamesString","classNames","animate","removeObjectKeys","SSRWrapper","platform","ANDROID","IOS","VKCOM","Platform","IS_PLATFORM_ANDROID","IS_PLATFORM_IOS","getClassName","ViewWidth","ViewHeight","SizeType"],"mappings":"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","sourcesContent":["import './lib/polyfills';\n\nimport './styles/constants.css';\nimport './styles/animations.css';\nimport './styles/common.css';\n\n/**\n * Layout\n */\nexport { default as Root } from './components/Root/Root';\nexport type { RootProps } from './components/Root/Root';\nexport { default as View } from './components/View/View';\nexport type { ViewProps } from './components/View/View';\nexport { Panel } from './components/Panel/Panel';\nexport type { PanelProps } from './components/Panel/Panel';\nexport { PanelHeaderButton } from './components/PanelHeaderButton/PanelHeaderButton';\nexport type { PanelHeaderButtonProps } from './components/PanelHeaderButton/PanelHeaderButton';\nexport { default as PanelHeader } from './components/PanelHeader/PanelHeader';\nexport type { PanelHeaderProps } from './components/PanelHeader/PanelHeader';\nexport { default as PanelHeaderContent } from './components/PanelHeaderContent/PanelHeaderContent';\nexport type { PanelHeaderContentProps } from './components/PanelHeaderContent/PanelHeaderContent';\nexport { PanelHeaderContext } from './components/PanelHeaderContext/PanelHeaderContext';\nexport type { PanelHeaderContextProps } from './components/PanelHeaderContext/PanelHeaderContext';\nexport { SplitLayout } from './components/SplitLayout/SplitLayout';\nexport type { SplitLayoutProps } from './components/SplitLayout/SplitLayout';\nexport { SplitCol } from './components/SplitCol/SplitCol';\nexport type { SplitColProps } from './components/SplitCol/SplitCol';\nexport { default as Epic } from './components/Epic/Epic';\nexport type { EpicProps } from './components/Epic/Epic';\nexport { default as Tabbar } from './components/Tabbar/Tabbar';\nexport type { TabbarProps } from './components/Tabbar/Tabbar';\nexport { default as TabbarItem } from './components/TabbarItem/TabbarItem';\nexport type { TabbarItemProps } from './components/TabbarItem/TabbarItem';\nexport { default as HorizontalScroll } from './components/HorizontalScroll/HorizontalScroll';\nexport type { HorizontalScrollProps } from './components/HorizontalScroll/HorizontalScroll';\nexport { default as FixedLayout } from './components/FixedLayout/FixedLayout';\nexport type { FixedLayoutProps } from './components/FixedLayout/FixedLayout';\n\n/**\n * Popouts\n */\nexport { PopoutWrapper } from './components/PopoutWrapper/PopoutWrapper';\nexport type { PopoutWrapperProps } from './components/PopoutWrapper/PopoutWrapper';\nexport { default as Alert } from './components/Alert/Alert';\nexport type { AlertProps, AlertActionInterface } from './components/Alert/Alert';\nexport { ActionSheet } from './components/ActionSheet/ActionSheet';\nexport type { ActionSheetProps } from './components/ActionSheet/ActionSheet';\nexport { default as ActionSheetItem } from './components/ActionSheetItem/ActionSheetItem';\nexport type { ActionSheetItemProps } from './components/ActionSheetItem/ActionSheetItem';\nexport { default as ScreenSpinner } from './components/ScreenSpinner/ScreenSpinner';\nexport type { ScreenSpinnerProps } from './components/ScreenSpinner/ScreenSpinner';\nexport { Snackbar } from './components/Snackbar/Snackbar';\nexport type { SnackbarProps } from './components/Snackbar/Snackbar';\n\n/**\n * Modals\n */\nexport { ModalRoot } from './components/ModalRoot/ModalRootAdaptive';\nexport type { ModalRootProps } from './components/ModalRoot/ModalRootAdaptive';\nexport { withModalRootContext } from './components/ModalRoot/withModalRootContext';\nexport { default as ModalRootContext } from './components/ModalRoot/ModalRootContext';\nexport { default as ModalPage } from './components/ModalPage/ModalPage';\nexport type { ModalPageProps } from './components/ModalPage/ModalPage';\nexport { default as ModalPageHeader } from './components/ModalPageHeader/ModalPageHeader';\nexport type { ModalPageHeaderProps } from './components/ModalPageHeader/ModalPageHeader';\nexport { default as ModalCard } from './components/ModalCard/ModalCard';\nexport type { ModalCardProps } from './components/ModalCard/ModalCard';\nexport { default as ModalDismissButton } from './components/ModalDismissButton/ModalDismissButton';\nexport type { ModalDismissButtonProps } from './components/ModalDismissButton/ModalDismissButton';\n\n/**\n * Blocks\n */\nexport { Badge } from './components/Badge/Badge';\nexport type { BadgeProps } from './components/Badge/Badge';\nexport { default as Button } from './components/Button/Button';\nexport type { ButtonProps } from './components/Button/Button';\nexport { default as IconButton } from './components/IconButton/IconButton';\nexport type { IconButtonProps } from './components/IconButton/IconButton';\nexport { default as Card } from './components/Card/Card';\nexport type { CardProps } from './components/Card/Card';\nexport { default as CardGrid } from './components/CardGrid/CardGrid';\nexport type { CardGridProps } from './components/CardGrid/CardGrid';\nexport { default as CardScroll } from './components/CardScroll/CardScroll';\nexport type { CardScrollProps } from './components/CardScroll/CardScroll';\nexport { default as ContentCard } from './components/ContentCard/ContentCard';\nexport type { ContentCardProps } from './components/ContentCard/ContentCard';\nexport { CellButton } from './components/CellButton/CellButton';\nexport type { CellButtonProps } from './components/CellButton/CellButton';\nexport { default as Header } from './components/Header/Header';\nexport type { HeaderProps } from './components/Header/Header';\nexport { default as Group } from './components/Group/Group';\nexport type { GroupProps } from './components/Group/Group';\nexport { default as Gradient } from './components/Gradient/Gradient';\nexport type { GradientProps } from './components/Gradient/Gradient';\nexport { default as List } from './components/List/List';\nexport { Cell } from './components/Cell/Cell';\nexport type { CellProps } from './components/Cell/Cell';\nexport { default as RichCell } from './components/RichCell/RichCell';\nexport type { RichCellProps } from './components/RichCell/RichCell';\nexport { default as SimpleCell } from './components/SimpleCell/SimpleCell';\nexport type { SimpleCellProps } from './components/SimpleCell/SimpleCell';\nexport { HorizontalCell } from './components/HorizontalCell/HorizontalCell';\nexport type { HorizontalCellProps } from './components/HorizontalCell/HorizontalCell';\nexport { default as Footer } from './components/Footer/Footer';\nexport { default as InfoRow } from './components/InfoRow/InfoRow';\nexport type { InfoRowProps } from './components/InfoRow/InfoRow';\nexport { default as Gallery } from './components/Gallery/Gallery';\nexport type { GalleryProps } from './components/Gallery/Gallery';\nexport { default as Avatar } from './components/Avatar/Avatar';\nexport type { AvatarProps } from './components/Avatar/Avatar';\nexport { GridAvatar } from './components/GridAvatar/GridAvatar';\nexport type { GridAvatarProps } from './components/GridAvatar/GridAvatar';\nexport { InitialsAvatar } from './components/InitialsAvatar/InitialsAvatar';\nexport type { InitialsAvatarProps } from './components/InitialsAvatar/InitialsAvatar';\nexport { default as Progress } from './components/Progress/Progress';\nexport type { ProgressProps } from './components/Progress/Progress';\nexport { default as Search } from './components/Search/Search';\nexport type { SearchProps } from './components/Search/Search';\nexport { default as Tabs } from './components/Tabs/Tabs';\nexport type { TabsProps } from './components/Tabs/Tabs';\nexport { default as TabsItem } from './components/TabsItem/TabsItem';\nexport type { TabsItemProps } from './components/TabsItem/TabsItem';\nexport { default as Spinner } from './components/Spinner/Spinner';\nexport type { SpinnerProps } from './components/Spinner/Spinner';\nexport { default as PullToRefresh } from './components/PullToRefresh/PullToRefresh';\nexport type { PullToRefreshProps } from './components/PullToRefresh/PullToRefresh';\nexport { default as Link } from './components/Link/Link';\nexport type { LinkProps } from './components/Link/Link';\nexport { default as Tooltip } from './components/Tooltip/Tooltip';\nexport type { TooltipProps } from './components/Tooltip/Tooltip';\nexport { TooltipContainer } from './components/Tooltip/TooltipContainer';\nexport { default as Counter } from './components/Counter/Counter';\nexport type { CounterProps } from './components/Counter/Counter';\nexport { default as UsersStack } from './components/UsersStack/UsersStack';\nexport type { UsersStackProps } from './components/UsersStack/UsersStack';\nexport { default as Separator } from './components/Separator/Separator';\nexport type { SeparatorProps } from './components/Separator/Separator';\nexport { Spacing } from './components/Spacing/Spacing';\nexport type { SpacingProps } from './components/Spacing/Spacing';\nexport { default as Placeholder } from './components/Placeholder/Placeholder';\nexport type { PlaceholderProps } from './components/Placeholder/Placeholder';\nexport { default as Banner } from './components/Banner/Banner';\nexport type { BannerProps } from './components/Banner/Banner';\nexport { MiniInfoCell } from './components/MiniInfoCell/MiniInfoCell';\nexport type { MiniInfoCellProps } from './components/MiniInfoCell/MiniInfoCell';\nexport { WriteBar } from './components/WriteBar/WriteBar';\nexport type { WriteBarProps } from './components/WriteBar/WriteBar';\nexport { WriteBarIcon } from './components/WriteBarIcon/WriteBarIcon';\nexport type { WriteBarIconProps } from './components/WriteBarIcon/WriteBarIcon';\nexport { SubnavigationBar } from './components/SubnavigationBar/SubnavigationBar';\nexport type { SubnavigationBarProps } from './components/SubnavigationBar/SubnavigationBar';\nexport { SubnavigationButton } from './components/SubnavigationButton/SubnavigationButton';\nexport type { SubnavigationButtonProps } from './components/SubnavigationButton/SubnavigationButton';\n\n/**\n * Forms\n */\nexport { default as FormLayout } from './components/FormLayout/FormLayout';\nexport type { FormLayoutProps } from './components/FormLayout/FormLayout';\nexport { FormItem } from './components/FormItem/FormItem';\nexport type { FormItemProps } from './components/FormItem/FormItem';\nexport { FormField } from './components/FormField/FormField';\nexport type { FormFieldProps } from './components/FormField/FormField';\nexport { default as FormLayoutGroup } from './components/FormLayoutGroup/FormLayoutGroup';\nexport type { FormLayoutGroupProps } from './components/FormLayoutGroup/FormLayoutGroup';\nexport { FormStatus } from './components/FormStatus/FormStatus';\nexport type { FormStatusProps } from './components/FormStatus/FormStatus';\nexport { Switch } from './components/Switch/Switch';\nexport type { SwitchProps } from './components/Switch/Switch';\nexport { default as File } from './components/File/File';\nexport type { FileProps } from './components/File/File';\nexport { default as Input } from './components/Input/Input';\nexport type { InputProps } from './components/Input/Input';\nexport { default as Chip } from './components/Chip/Chip';\nexport type { ChipProps } from './components/Chip/Chip';\nexport { default as ChipsInput } from './components/ChipsInput/ChipsInput';\nexport type { ChipsInputProps } from './components/ChipsInput/ChipsInput';\nexport { default as Slider } from './components/Slider/Slider';\nexport type { SliderProps } from './components/Slider/Slider';\nexport { default as RangeSlider } from './components/RangeSlider/RangeSlider';\nexport type { RangeSliderProps } from './components/RangeSlider/RangeSlider';\nexport { default as Textarea } from './components/Textarea/Textarea';\nexport type { TextareaProps } from './components/Textarea/Textarea';\nexport { default as Radio } from './components/Radio/Radio';\nexport type { RadioProps } from './components/Radio/Radio';\nexport { default as Checkbox } from './components/Checkbox/Checkbox';\nexport type { CheckboxProps } from './components/Checkbox/Checkbox';\nexport { default as Select } from './components/Select/Select';\nexport type { SelectProps } from './components/Select/Select';\nexport { default as SelectMimicry } from './components/SelectMimicry/SelectMimicry';\nexport type { SelectMimicryProps } from './components/SelectMimicry/SelectMimicry';\nexport { default as NativeSelect } from './components/NativeSelect/NativeSelect';\nexport type { NativeSelectProps } from './components/NativeSelect/NativeSelect';\nexport { default as CustomSelect } from './components/CustomSelect/CustomSelect';\nexport type { CustomSelectProps, CustomSelectOptionInterface } from './components/CustomSelect/CustomSelect';\nexport { default as CustomSelectOption } from './components/CustomSelectOption/CustomSelectOption';\nexport type { CustomSelectOptionProps } from './components/CustomSelectOption/CustomSelectOption';\nexport { default as DatePicker } from './components/DatePicker/DatePicker';\nexport type { DatePickerProps, DatePickerDateFormat } from './components/DatePicker/DatePicker';\nexport { default as SliderSwitch } from './components/SliderSwitch/SliderSwitch';\nexport type { SliderSwitchProps, SliderSwitchOptionInterface } from './components/SliderSwitch/SliderSwitch';\n\n/**\n * Helpers\n */\nexport { default as Div } from './components/Div/Div';\nexport type { DivProps } from './components/Div/Div';\nexport { default as Tappable } from './components/Tappable/Tappable';\nexport type { TappableProps } from './components/Tappable/Tappable';\nexport { Touch } from './components/Touch/Touch';\nexport type { TouchProps } from './components/Touch/Touch';\nexport { default as PanelSpinner } from './components/PanelSpinner/PanelSpinner';\nexport type { PanelSpinnerProps } from './components/PanelSpinner/PanelSpinner';\nexport { default as PanelHeaderClose } from './components/PanelHeaderClose/PanelHeaderClose';\nexport { default as PanelHeaderBack } from './components/PanelHeaderBack/PanelHeaderBack';\nexport { default as PanelHeaderSubmit } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport { default as PanelHeaderEdit } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport type { PanelHeaderEditProps } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport { ModalCardBase } from './components/ModalCardBase/ModalCardBase';\nexport type { ModalCardBaseProps } from './components/ModalCardBase/ModalCardBase';\n\n/**\n * Wrappers\n */\nexport { AppRoot } from './components/AppRoot/AppRoot';\nexport { default as AdaptivityProvider } from './components/AdaptivityProvider/AdaptivityProvider';\nexport { default as ConfigProvider } from './components/ConfigProvider/ConfigProvider';\nexport type { ConfigProviderProps } from './components/ConfigProvider/ConfigProvider';\nexport {\n ConfigProviderContext,\n Appearance,\n Scheme,\n WebviewType,\n} from './components/ConfigProvider/ConfigProviderContext';\n\n/**\n * Advertisement\n */\nexport { default as PromoBanner } from './components/PromoBanner/PromoBanner';\nexport type { PromoBannerProps } from './components/PromoBanner/PromoBanner';\n\n/**\n * Typography\n */\nexport { default as Title } from './components/Typography/Title/Title';\nexport type { TitleProps } from './components/Typography/Title/Title';\nexport { default as Headline } from './components/Typography/Headline/Headline';\nexport type { HeadlineProps } from './components/Typography/Headline/Headline';\nexport { default as Text } from './components/Typography/Text/Text';\nexport type { TextProps } from './components/Typography/Text/Text';\nexport { default as Caption } from './components/Typography/Caption/Caption';\nexport type { CaptionProps } from './components/Typography/Caption/Caption';\nexport { default as Subhead } from './components/Typography/Subhead/Subhead';\nexport type { SubheadProps } from './components/Typography/Subhead/Subhead';\n\n/**\n * HOCs\n */\nexport { withInsets } from './hoc/withInsets';\nexport { withPlatform } from './hoc/withPlatform';\nexport { withAdaptivity } from './hoc/withAdaptivity';\n\n/**\n * Hooks\n */\nexport { useInsets } from './hooks/useInsets';\nexport { usePlatform } from './hooks/usePlatform';\nexport { useAdaptivity } from './hooks/useAdaptivity';\nexport { useAppearance } from './hooks/useAppearance';\n\n/**\n * Utils\n */\nexport { classNamesString as classNames } from './lib/classNames';\nexport { default as animate } from './lib/animate';\nexport { removeObjectKeys } from './lib/removeObjectKeys';\nexport { SSRWrapper } from './lib/SSR';\nexport { platform, ANDROID, IOS, VKCOM, Platform, IS_PLATFORM_ANDROID, IS_PLATFORM_IOS } from './lib/platform';\nexport { getClassName } from './helpers/getClassName';\nexport { ViewWidth, ViewHeight, SizeType } from './components/AdaptivityProvider/AdaptivityContext';\n\n/**\n * Types\n */\nexport type { AlignType, HasPlatform, HasInsets } from './types';\nexport type { NavIdProps } from './lib/getNavId';\nexport type { PlatformType } from './lib/platform';\nexport type { AdaptivityProps } from './hoc/withAdaptivity';\n"],"file":"index.js"}