@vkontakte/vkui 4.20.0 → 4.22.1

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 (520) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +414 -116
  4. package/.cache/ts/src/components/Avatar/Avatar.d.ts +2 -0
  5. package/.cache/ts/src/components/Cell/Cell.d.ts +11 -0
  6. package/.cache/ts/src/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  7. package/.cache/ts/src/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  8. package/.cache/ts/src/components/Cell/useDraggable.d.ts +13 -0
  9. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +0 -1
  10. package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  11. package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +2 -3
  12. package/.cache/ts/src/components/FormField/FormField.d.ts +2 -3
  13. package/.cache/ts/src/components/FormItem/FormItem.d.ts +2 -3
  14. package/.cache/ts/src/components/FormLayout/FormLayout.d.ts +2 -4
  15. package/.cache/ts/src/components/GridAvatar/GridAvatar.d.ts +9 -0
  16. package/.cache/ts/src/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  17. package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  18. package/.cache/ts/src/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  19. package/.cache/ts/src/components/Link/Link.d.ts +1 -2
  20. package/.cache/ts/src/components/ModalRoot/types.d.ts +0 -1
  21. package/.cache/ts/src/components/ModalRoot/useModalManager.d.ts +37 -0
  22. package/.cache/ts/src/components/Removable/Removable.d.ts +2 -1
  23. package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +2 -2
  24. package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +3 -3
  25. package/.cache/ts/src/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  26. package/.cache/ts/src/components/Switch/Switch.d.ts +2 -3
  27. package/.cache/ts/src/components/TabbarItem/TabbarItem.d.ts +3 -1
  28. package/.cache/ts/src/components/Tappable/Tappable.d.ts +2 -3
  29. package/.cache/ts/src/components/Touch/Touch.d.ts +16 -17
  30. package/.cache/ts/src/components/Typography/Caption/Caption.d.ts +2 -2
  31. package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +2 -2
  32. package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +2 -2
  33. package/.cache/ts/src/components/Typography/Text/Text.d.ts +2 -3
  34. package/.cache/ts/src/components/Typography/Title/Title.d.ts +2 -2
  35. package/.cache/ts/src/components/View/utils.d.ts +2 -0
  36. package/.cache/ts/src/index.d.ts +4 -0
  37. package/.cache/ts/src/lib/accessibility.d.ts +1 -1
  38. package/.cache/ts/src/lib/supportEvents.d.ts +3 -1
  39. package/.cache/ts/src/types.d.ts +3 -0
  40. package/dist/cjs/components/ActionSheet/ActionSheet.js +7 -9
  41. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  42. package/dist/cjs/components/Avatar/Avatar.d.ts +2 -0
  43. package/dist/cjs/components/Avatar/Avatar.js +7 -3
  44. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  45. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  46. package/dist/cjs/components/Button/Button.js.map +1 -1
  47. package/dist/cjs/components/CardScroll/CardScroll.js +1 -1
  48. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  49. package/dist/cjs/components/Cell/Cell.d.ts +11 -0
  50. package/dist/cjs/components/Cell/Cell.js +109 -182
  51. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  52. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  53. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +50 -0
  54. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  55. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  56. package/dist/cjs/components/Cell/CellDragger/CellDragger.js +53 -0
  57. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -0
  58. package/dist/cjs/components/Cell/useDraggable.d.ts +13 -0
  59. package/dist/cjs/components/Cell/useDraggable.js +142 -0
  60. package/dist/cjs/components/Cell/useDraggable.js.map +1 -0
  61. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +2 -2
  62. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  63. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  64. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +0 -1
  65. package/dist/cjs/components/CustomSelect/CustomSelect.js +2 -3
  66. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  67. package/dist/cjs/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  68. package/dist/cjs/components/DropdownIcon/DropdownIcon.js +37 -0
  69. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -0
  70. package/dist/cjs/components/FocusTrap/FocusTrap.d.ts +2 -3
  71. package/dist/cjs/components/FocusTrap/FocusTrap.js +3 -5
  72. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  73. package/dist/cjs/components/FormField/FormField.d.ts +2 -3
  74. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  75. package/dist/cjs/components/FormItem/FormItem.d.ts +2 -3
  76. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  77. package/dist/cjs/components/FormLayout/FormLayout.d.ts +2 -4
  78. package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
  79. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  80. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  81. package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +9 -0
  82. package/dist/cjs/components/GridAvatar/GridAvatar.js +61 -0
  83. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -0
  84. package/dist/cjs/components/Header/Header.js.map +1 -1
  85. package/dist/cjs/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  86. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  87. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  88. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +10 -13
  89. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  90. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  91. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js +64 -0
  92. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  93. package/dist/cjs/components/Link/Link.d.ts +1 -2
  94. package/dist/cjs/components/Link/Link.js.map +1 -1
  95. package/dist/cjs/components/ModalRoot/ModalRoot.js +170 -373
  96. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  97. package/dist/cjs/components/ModalRoot/ModalRootContext.js +0 -3
  98. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  99. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +59 -241
  100. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  101. package/dist/cjs/components/ModalRoot/types.d.ts +0 -1
  102. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  103. package/dist/cjs/components/ModalRoot/useModalManager.d.ts +37 -0
  104. package/dist/cjs/components/ModalRoot/useModalManager.js +213 -0
  105. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -0
  106. package/dist/cjs/components/NativeSelect/NativeSelect.js +2 -2
  107. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  108. package/dist/cjs/components/Removable/Removable.d.ts +2 -1
  109. package/dist/cjs/components/Removable/Removable.js +75 -66
  110. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  111. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +2 -2
  112. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  113. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +2 -2
  114. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  115. package/dist/cjs/components/SplitCol/SplitCol.d.ts +3 -3
  116. package/dist/cjs/components/SplitCol/SplitCol.js +2 -4
  117. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  118. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  119. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +38 -11
  120. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  121. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  122. package/dist/cjs/components/Switch/Switch.d.ts +2 -3
  123. package/dist/cjs/components/Switch/Switch.js +18 -8
  124. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  125. package/dist/cjs/components/Tabbar/Tabbar.js +3 -1
  126. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  127. package/dist/cjs/components/TabbarItem/TabbarItem.d.ts +3 -1
  128. package/dist/cjs/components/TabbarItem/TabbarItem.js +29 -11
  129. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  130. package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
  131. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  132. package/dist/cjs/components/Textarea/Textarea.js +9 -7
  133. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  134. package/dist/cjs/components/Touch/Touch.d.ts +16 -17
  135. package/dist/cjs/components/Touch/Touch.js +21 -7
  136. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  137. package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -2
  138. package/dist/cjs/components/Typography/Caption/Caption.js +4 -2
  139. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  140. package/dist/cjs/components/Typography/Headline/Headline.d.ts +2 -2
  141. package/dist/cjs/components/Typography/Headline/Headline.js +2 -1
  142. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  143. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -2
  144. package/dist/cjs/components/Typography/Subhead/Subhead.js +2 -1
  145. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  146. package/dist/cjs/components/Typography/Text/Text.d.ts +2 -3
  147. package/dist/cjs/components/Typography/Text/Text.js +2 -1
  148. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  149. package/dist/cjs/components/Typography/Title/Title.d.ts +2 -2
  150. package/dist/cjs/components/Typography/Title/Title.js +9 -4
  151. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  152. package/dist/cjs/components/View/View.js +68 -75
  153. package/dist/cjs/components/View/View.js.map +1 -1
  154. package/dist/cjs/components/View/ViewInfinite.js +78 -85
  155. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  156. package/dist/cjs/components/View/utils.d.ts +2 -0
  157. package/dist/cjs/components/View/utils.js +13 -0
  158. package/dist/cjs/components/View/utils.js.map +1 -0
  159. package/dist/cjs/index.d.ts +4 -0
  160. package/dist/cjs/index.js +16 -0
  161. package/dist/cjs/index.js.map +1 -1
  162. package/dist/cjs/lib/accessibility.d.ts +1 -1
  163. package/dist/cjs/lib/accessibility.js.map +1 -1
  164. package/dist/cjs/lib/prefixClass.js +7 -6
  165. package/dist/cjs/lib/prefixClass.js.map +1 -1
  166. package/dist/cjs/lib/supportEvents.d.ts +3 -1
  167. package/dist/cjs/lib/supportEvents.js +1 -4
  168. package/dist/cjs/lib/supportEvents.js.map +1 -1
  169. package/dist/cjs/types.d.ts +3 -0
  170. package/dist/components/ActionSheet/ActionSheet.js +6 -9
  171. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  172. package/dist/components/Avatar/Avatar.d.ts +2 -0
  173. package/dist/components/Avatar/Avatar.js +4 -2
  174. package/dist/components/Avatar/Avatar.js.map +1 -1
  175. package/dist/components/Banner/Banner.js.map +1 -1
  176. package/dist/components/Button/Button.js.map +1 -1
  177. package/dist/components/CardScroll/CardScroll.js +1 -1
  178. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  179. package/dist/components/Cell/Cell.d.ts +11 -0
  180. package/dist/components/Cell/Cell.js +103 -177
  181. package/dist/components/Cell/Cell.js.map +1 -1
  182. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  183. package/dist/components/Cell/CellCheckbox/CellCheckbox.js +31 -0
  184. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  185. package/dist/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  186. package/dist/components/Cell/CellDragger/CellDragger.js +30 -0
  187. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -0
  188. package/dist/components/Cell/useDraggable.d.ts +13 -0
  189. package/dist/components/Cell/useDraggable.js +126 -0
  190. package/dist/components/Cell/useDraggable.js.map +1 -0
  191. package/dist/components/ChipsSelect/ChipsSelect.js +2 -2
  192. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  193. package/dist/components/Counter/Counter.js.map +1 -1
  194. package/dist/components/CustomSelect/CustomSelect.d.ts +0 -1
  195. package/dist/components/CustomSelect/CustomSelect.js +3 -5
  196. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  197. package/dist/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  198. package/dist/components/DropdownIcon/DropdownIcon.js +19 -0
  199. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -0
  200. package/dist/components/FocusTrap/FocusTrap.d.ts +2 -3
  201. package/dist/components/FocusTrap/FocusTrap.js +3 -5
  202. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  203. package/dist/components/FormField/FormField.d.ts +2 -3
  204. package/dist/components/FormField/FormField.js.map +1 -1
  205. package/dist/components/FormItem/FormItem.d.ts +2 -3
  206. package/dist/components/FormItem/FormItem.js.map +1 -1
  207. package/dist/components/FormLayout/FormLayout.d.ts +2 -4
  208. package/dist/components/FormLayout/FormLayout.js.map +1 -1
  209. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  210. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  211. package/dist/components/GridAvatar/GridAvatar.d.ts +9 -0
  212. package/dist/components/GridAvatar/GridAvatar.js +41 -0
  213. package/dist/components/GridAvatar/GridAvatar.js.map +1 -0
  214. package/dist/components/Header/Header.js.map +1 -1
  215. package/dist/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  216. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  217. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  218. package/dist/components/HorizontalScroll/HorizontalScroll.js +10 -12
  219. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  220. package/dist/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  221. package/dist/components/InitialsAvatar/InitialsAvatar.js +46 -0
  222. package/dist/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  223. package/dist/components/Link/Link.d.ts +1 -2
  224. package/dist/components/Link/Link.js.map +1 -1
  225. package/dist/components/ModalRoot/ModalRoot.js +167 -376
  226. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  227. package/dist/components/ModalRoot/ModalRootContext.js +0 -3
  228. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  229. package/dist/components/ModalRoot/ModalRootDesktop.js +58 -244
  230. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  231. package/dist/components/ModalRoot/types.d.ts +0 -1
  232. package/dist/components/ModalRoot/types.js.map +1 -1
  233. package/dist/components/ModalRoot/useModalManager.d.ts +37 -0
  234. package/dist/components/ModalRoot/useModalManager.js +189 -0
  235. package/dist/components/ModalRoot/useModalManager.js.map +1 -0
  236. package/dist/components/NativeSelect/NativeSelect.js +2 -2
  237. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  238. package/dist/components/Removable/Removable.d.ts +2 -1
  239. package/dist/components/Removable/Removable.js +73 -64
  240. package/dist/components/Removable/Removable.js.map +1 -1
  241. package/dist/components/SelectMimicry/SelectMimicry.js +2 -2
  242. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  243. package/dist/components/SimpleCell/SimpleCell.d.ts +2 -2
  244. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  245. package/dist/components/SplitCol/SplitCol.d.ts +3 -3
  246. package/dist/components/SplitCol/SplitCol.js +2 -4
  247. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  248. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  249. package/dist/components/SubnavigationBar/SubnavigationBar.js +38 -11
  250. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  251. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  252. package/dist/components/Switch/Switch.d.ts +2 -3
  253. package/dist/components/Switch/Switch.js +15 -8
  254. package/dist/components/Switch/Switch.js.map +1 -1
  255. package/dist/components/Tabbar/Tabbar.js +3 -1
  256. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  257. package/dist/components/TabbarItem/TabbarItem.d.ts +3 -1
  258. package/dist/components/TabbarItem/TabbarItem.js +26 -10
  259. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  260. package/dist/components/Tappable/Tappable.d.ts +2 -3
  261. package/dist/components/Tappable/Tappable.js.map +1 -1
  262. package/dist/components/Textarea/Textarea.js +9 -6
  263. package/dist/components/Textarea/Textarea.js.map +1 -1
  264. package/dist/components/Touch/Touch.d.ts +16 -17
  265. package/dist/components/Touch/Touch.js +21 -7
  266. package/dist/components/Touch/Touch.js.map +1 -1
  267. package/dist/components/Typography/Caption/Caption.d.ts +2 -2
  268. package/dist/components/Typography/Caption/Caption.js +4 -2
  269. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  270. package/dist/components/Typography/Headline/Headline.d.ts +2 -2
  271. package/dist/components/Typography/Headline/Headline.js +2 -1
  272. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  273. package/dist/components/Typography/Subhead/Subhead.d.ts +2 -2
  274. package/dist/components/Typography/Subhead/Subhead.js +2 -1
  275. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  276. package/dist/components/Typography/Text/Text.d.ts +2 -3
  277. package/dist/components/Typography/Text/Text.js +2 -1
  278. package/dist/components/Typography/Text/Text.js.map +1 -1
  279. package/dist/components/Typography/Title/Title.d.ts +2 -2
  280. package/dist/components/Typography/Title/Title.js +9 -4
  281. package/dist/components/Typography/Title/Title.js.map +1 -1
  282. package/dist/components/View/View.js +67 -75
  283. package/dist/components/View/View.js.map +1 -1
  284. package/dist/components/View/ViewInfinite.js +79 -87
  285. package/dist/components/View/ViewInfinite.js.map +1 -1
  286. package/dist/components/View/utils.d.ts +2 -0
  287. package/dist/components/View/utils.js +6 -0
  288. package/dist/components/View/utils.js.map +1 -0
  289. package/dist/components.css +1 -1
  290. package/dist/components.css.map +1 -1
  291. package/dist/cssm/components/ActionSheet/ActionSheet.js +6 -9
  292. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  293. package/dist/cssm/components/Avatar/Avatar.js +4 -2
  294. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  295. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  296. package/dist/cssm/components/Button/Button.css +1 -1
  297. package/dist/cssm/components/Button/Button.js.map +1 -1
  298. package/dist/cssm/components/CardScroll/CardScroll.js +1 -1
  299. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  300. package/dist/cssm/components/Cell/Cell.css +1 -1
  301. package/dist/cssm/components/Cell/Cell.js +103 -177
  302. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  303. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -0
  304. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +32 -0
  305. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  306. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -0
  307. package/dist/cssm/components/Cell/CellDragger/CellDragger.js +31 -0
  308. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -0
  309. package/dist/cssm/components/Cell/useDraggable.js +126 -0
  310. package/dist/cssm/components/Cell/useDraggable.js.map +1 -0
  311. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
  312. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  313. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  314. package/dist/cssm/components/CustomSelect/CustomSelect.js +3 -5
  315. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  316. package/dist/cssm/components/DropdownIcon/DropdownIcon.css +1 -0
  317. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +20 -0
  318. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -0
  319. package/dist/cssm/components/FocusTrap/FocusTrap.js +3 -5
  320. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  321. package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
  322. package/dist/cssm/components/FormField/FormField.css +1 -1
  323. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  324. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  325. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  326. package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
  327. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  328. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  329. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  330. package/dist/cssm/components/Gallery/Gallery.css +1 -1
  331. package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -0
  332. package/dist/cssm/components/GridAvatar/GridAvatar.js +42 -0
  333. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -0
  334. package/dist/cssm/components/Header/Header.js.map +1 -1
  335. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  336. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +10 -12
  337. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  338. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
  339. package/dist/cssm/components/IconButton/IconButton.css +1 -1
  340. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -0
  341. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js +52 -0
  342. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  343. package/dist/cssm/components/Link/Link.js.map +1 -1
  344. package/dist/cssm/components/ModalRoot/ModalRoot.js +167 -376
  345. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  346. package/dist/cssm/components/ModalRoot/ModalRootContext.js +0 -3
  347. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  348. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +58 -244
  349. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  350. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  351. package/dist/cssm/components/ModalRoot/useModalManager.js +189 -0
  352. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -0
  353. package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
  354. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  355. package/dist/cssm/components/Removable/Removable.css +1 -1
  356. package/dist/cssm/components/Removable/Removable.js +73 -64
  357. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  358. package/dist/cssm/components/Search/Search.css +1 -1
  359. package/dist/cssm/components/Select/Select.css +1 -1
  360. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
  361. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  362. package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
  363. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  364. package/dist/cssm/components/SplitCol/SplitCol.js +2 -4
  365. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  366. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +38 -11
  367. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  368. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  369. package/dist/cssm/components/Switch/Switch.css +1 -1
  370. package/dist/cssm/components/Switch/Switch.js +15 -8
  371. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  372. package/dist/cssm/components/Tabbar/Tabbar.css +1 -1
  373. package/dist/cssm/components/Tabbar/Tabbar.js +3 -1
  374. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  375. package/dist/cssm/components/TabbarItem/TabbarItem.css +1 -1
  376. package/dist/cssm/components/TabbarItem/TabbarItem.js +26 -10
  377. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  378. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  379. package/dist/cssm/components/Textarea/Textarea.js +9 -6
  380. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  381. package/dist/cssm/components/Touch/Touch.js +21 -7
  382. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  383. package/dist/cssm/components/Typography/Caption/Caption.js +4 -2
  384. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  385. package/dist/cssm/components/Typography/Headline/Headline.js +2 -1
  386. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  387. package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -1
  388. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  389. package/dist/cssm/components/Typography/Text/Text.js +2 -1
  390. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  391. package/dist/cssm/components/Typography/Title/Title.js +9 -4
  392. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  393. package/dist/cssm/components/View/View.js +67 -75
  394. package/dist/cssm/components/View/View.js.map +1 -1
  395. package/dist/cssm/components/View/ViewInfinite.js +79 -87
  396. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  397. package/dist/cssm/components/View/utils.js +6 -0
  398. package/dist/cssm/components/View/utils.js.map +1 -0
  399. package/dist/cssm/index.js +2 -0
  400. package/dist/cssm/index.js.map +1 -1
  401. package/dist/cssm/lib/accessibility.js.map +1 -1
  402. package/dist/cssm/lib/prefixClass.js +7 -6
  403. package/dist/cssm/lib/prefixClass.js.map +1 -1
  404. package/dist/cssm/lib/supportEvents.js +1 -4
  405. package/dist/cssm/lib/supportEvents.js.map +1 -1
  406. package/dist/cssm/styles/components.css +1 -1
  407. package/dist/cssm/styles/themes.css +1 -1
  408. package/dist/cssm/styles/vkcom_light.css +1 -1
  409. package/dist/index.d.ts +4 -0
  410. package/dist/index.js +2 -0
  411. package/dist/index.js.map +1 -1
  412. package/dist/lib/accessibility.d.ts +1 -1
  413. package/dist/lib/accessibility.js.map +1 -1
  414. package/dist/lib/prefixClass.js +7 -6
  415. package/dist/lib/prefixClass.js.map +1 -1
  416. package/dist/lib/supportEvents.d.ts +3 -1
  417. package/dist/lib/supportEvents.js +1 -4
  418. package/dist/lib/supportEvents.js.map +1 -1
  419. package/dist/types.d.ts +3 -0
  420. package/dist/vkui.css +2 -2
  421. package/dist/vkui.css.map +1 -1
  422. package/package.json +8 -4
  423. package/src/components/ActionSheet/ActionSheet.tsx +4 -5
  424. package/src/components/ActionSheet/Readme.md +18 -14
  425. package/src/components/Alert/Readme.md +15 -11
  426. package/src/components/Avatar/Avatar.tsx +5 -2
  427. package/src/components/Banner/Banner.tsx +4 -5
  428. package/src/components/Button/Button.css +26 -53
  429. package/src/components/Button/Button.tsx +2 -3
  430. package/src/components/Card/Readme.md +6 -6
  431. package/src/components/CardScroll/CardScroll.tsx +4 -1
  432. package/src/components/Cell/Cell.css +21 -58
  433. package/src/components/Cell/Cell.tsx +101 -162
  434. package/src/components/Cell/CellCheckbox/CellCheckbox.css +17 -0
  435. package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +42 -0
  436. package/src/components/Cell/CellDragger/CellDragger.css +4 -0
  437. package/src/components/Cell/CellDragger/CellDragger.tsx +40 -0
  438. package/src/components/Cell/Readme.md +89 -51
  439. package/src/components/Cell/useDraggable.tsx +112 -0
  440. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -2
  441. package/src/components/Counter/Counter.tsx +2 -2
  442. package/src/components/CustomSelect/CustomSelect.tsx +3 -4
  443. package/src/components/DropdownIcon/DropdownIcon.css +3 -0
  444. package/src/components/DropdownIcon/DropdownIcon.tsx +20 -0
  445. package/src/components/Epic/Readme.md +2 -1
  446. package/src/components/FocusTrap/FocusTrap.tsx +13 -11
  447. package/src/components/FocusVisible/FocusVisible.css +12 -4
  448. package/src/components/FormField/FormField.css +0 -1
  449. package/src/components/FormField/FormField.tsx +2 -2
  450. package/src/components/FormItem/FormItem.css +13 -14
  451. package/src/components/FormItem/FormItem.tsx +2 -3
  452. package/src/components/FormLayout/FormLayout.tsx +2 -4
  453. package/src/components/FormLayoutGroup/FormLayoutGroup.css +11 -7
  454. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +10 -1
  455. package/src/components/Gallery/Gallery.css +2 -3
  456. package/src/components/Gallery/Readme.md +89 -109
  457. package/src/components/GridAvatar/GridAvatar.css +37 -0
  458. package/src/components/GridAvatar/GridAvatar.tsx +55 -0
  459. package/src/components/GridAvatar/Readme.md +12 -0
  460. package/src/components/Group/Readme.md +18 -14
  461. package/src/components/Header/Header.tsx +4 -4
  462. package/src/components/HorizontalCell/HorizontalCell.tsx +3 -3
  463. package/src/components/HorizontalScroll/HorizontalScroll.tsx +14 -18
  464. package/src/components/HorizontalScroll/HorizontalScrollArrow.css +2 -2
  465. package/src/components/IconButton/IconButton.css +7 -0
  466. package/src/components/InitialsAvatar/InitialsAvatar.css +53 -0
  467. package/src/components/InitialsAvatar/InitialsAvatar.tsx +90 -0
  468. package/src/components/InitialsAvatar/Readme.md +14 -0
  469. package/src/components/Link/Link.tsx +1 -1
  470. package/src/components/MiniInfoCell/Readme.md +66 -62
  471. package/src/components/ModalDismissButton/Readme.md +13 -10
  472. package/src/components/ModalRoot/ModalRoot.tsx +159 -349
  473. package/src/components/ModalRoot/ModalRootContext.tsx +0 -1
  474. package/src/components/ModalRoot/ModalRootDesktop.tsx +54 -240
  475. package/src/components/ModalRoot/Readme.md +35 -27
  476. package/src/components/ModalRoot/types.ts +0 -1
  477. package/src/components/ModalRoot/useModalManager.tsx +174 -0
  478. package/src/components/NativeSelect/NativeSelect.tsx +2 -2
  479. package/src/components/Removable/Removable.css +16 -63
  480. package/src/components/Removable/Removable.tsx +84 -64
  481. package/src/components/ScreenSpinner/Readme.md +13 -9
  482. package/src/components/Search/Search.css +1 -1
  483. package/src/components/Select/Select.css +1 -1
  484. package/src/components/SelectMimicry/SelectMimicry.tsx +2 -2
  485. package/src/components/SimpleCell/SimpleCell.css +10 -18
  486. package/src/components/SimpleCell/SimpleCell.tsx +3 -5
  487. package/src/components/SplitCol/SplitCol.tsx +4 -8
  488. package/src/components/SplitLayout/Readme.md +2 -2
  489. package/src/components/SubnavigationBar/Readme.md +90 -86
  490. package/src/components/SubnavigationBar/SubnavigationBar.tsx +32 -14
  491. package/src/components/SubnavigationButton/SubnavigationButton.tsx +2 -3
  492. package/src/components/Switch/Readme.md +6 -6
  493. package/src/components/Switch/Switch.css +46 -15
  494. package/src/components/Switch/Switch.tsx +16 -8
  495. package/src/components/Tabbar/Tabbar.css +15 -4
  496. package/src/components/Tabbar/Tabbar.tsx +3 -1
  497. package/src/components/TabbarItem/Readme.md +72 -0
  498. package/src/components/TabbarItem/TabbarItem.css +65 -14
  499. package/src/components/TabbarItem/TabbarItem.tsx +46 -22
  500. package/src/components/Tappable/Tappable.tsx +2 -3
  501. package/src/components/Textarea/Readme.md +3 -0
  502. package/src/components/Textarea/Textarea.tsx +10 -6
  503. package/src/components/Touch/Touch.tsx +38 -25
  504. package/src/components/Typography/Caption/Caption.tsx +4 -4
  505. package/src/components/Typography/Headline/Headline.tsx +3 -3
  506. package/src/components/Typography/Subhead/Subhead.tsx +3 -3
  507. package/src/components/Typography/Text/Text.tsx +3 -4
  508. package/src/components/Typography/Title/Title.tsx +9 -5
  509. package/src/components/View/Readme.md +42 -56
  510. package/src/components/View/View.tsx +46 -61
  511. package/src/components/View/ViewInfinite.tsx +52 -67
  512. package/src/components/View/utils.ts +8 -0
  513. package/src/index.ts +4 -0
  514. package/src/lib/accessibility.ts +2 -2
  515. package/src/lib/prefixClass.ts +9 -6
  516. package/src/lib/supportEvents.ts +1 -4
  517. package/src/styles/components.css +4 -0
  518. package/src/styles/vkcom_light.css +3 -3
  519. package/src/testing/utils.tsx +34 -1
  520. package/src/types.ts +4 -0
@@ -1,5 +1,4 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
3
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
5
4
  import _createClass from "@babel/runtime/helpers/createClass";
@@ -16,7 +15,6 @@ import { getClassName } from "../../helpers/getClassName";
16
15
  import { classNames } from "../../lib/classNames";
17
16
  import { setTransformStyle } from "../../lib/styles";
18
17
  import { rubber } from "../../lib/touch";
19
- import { isFunction } from "../../lib/utils";
20
18
  import { ANDROID, IOS, VKCOM } from "../../lib/platform";
21
19
  import { transitionEvent } from "../../lib/supportEvents";
22
20
  import { withPlatform } from "../../hoc/withPlatform";
@@ -29,6 +27,7 @@ import { withDOM } from "../../lib/dom";
29
27
  import { getNavId } from "../../lib/getNavId";
30
28
  import { warnOnce } from "../../lib/warnOnce";
31
29
  import { FocusTrap } from "../FocusTrap/FocusTrap";
30
+ import { withModalManager } from "./useModalManager";
32
31
  var warn = warnOnce('ModalRoot');
33
32
  var IS_DEV = process.env.NODE_ENV === 'development';
34
33
 
@@ -52,12 +51,8 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
52
51
 
53
52
  _this = _super.call(this, props);
54
53
 
55
- _defineProperty(_assertThisInitialized(_this), "modalsState", void 0);
56
-
57
54
  _defineProperty(_assertThisInitialized(_this), "documentScrolling", void 0);
58
55
 
59
- _defineProperty(_assertThisInitialized(_this), "activeTransitions", void 0);
60
-
61
56
  _defineProperty(_assertThisInitialized(_this), "maskElementRef", void 0);
62
57
 
63
58
  _defineProperty(_assertThisInitialized(_this), "viewportRef", /*#__PURE__*/React.createRef());
@@ -87,26 +82,16 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
87
82
  });
88
83
 
89
84
  _defineProperty(_assertThisInitialized(_this), "updateModalTranslate", function () {
90
- var activeModal = _this.state.activeModal || _this.state.nextModal;
91
-
92
- if (!activeModal) {
93
- return;
94
- }
95
-
96
- var modalState = _this.modalsState[activeModal];
85
+ var modalState = _this.getModalState(_this.props.activeModal);
97
86
 
98
- _this.animateTranslate(modalState, modalState.translateY);
87
+ modalState && _this.animateTranslate(modalState, modalState.translateY);
99
88
  });
100
89
 
101
90
  _defineProperty(_assertThisInitialized(_this), "updateModalHeight", function () {
102
- var _this$state = _this.state,
103
- activeModal = _this$state.activeModal,
104
- nextModal = _this$state.nextModal;
105
- var modalId = activeModal || nextModal;
106
- var modalState = modalId ? _this.modalsState[modalId] : undefined;
91
+ var modalState = _this.getModalState(_this.props.activeModal);
107
92
 
108
93
  if (modalState && modalState.type === ModalType.PAGE && modalState.dynamicContentHeight) {
109
- if (_this.state.switching) {
94
+ if (_this.props.enteringModal) {
110
95
  _this.waitTransitionFinish(modalState, function () {
111
96
  requestAnimationFrame(function () {
112
97
  return _this.checkPageContentHeight();
@@ -121,18 +106,16 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
121
106
  });
122
107
 
123
108
  _defineProperty(_assertThisInitialized(_this), "onTouchMove", function (e) {
124
- if (_this.state.switching) {
109
+ if (_this.props.exitingModal) {
125
110
  return;
126
111
  }
127
112
 
128
- var activeModal = _this.state.activeModal || _this.state.nextModal;
113
+ var modalState = _this.getModalState(_this.props.activeModal);
129
114
 
130
- if (!activeModal) {
115
+ if (!modalState) {
131
116
  return;
132
117
  }
133
118
 
134
- var modalState = _this.modalsState[activeModal];
135
-
136
119
  if (modalState.type === ModalType.PAGE) {
137
120
  return _this.onPageTouchMove(e, modalState);
138
121
  }
@@ -143,13 +126,7 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
143
126
  });
144
127
 
145
128
  _defineProperty(_assertThisInitialized(_this), "onTouchEnd", function (e) {
146
- var activeModal = _this.state.activeModal || _this.state.nextModal;
147
-
148
- if (!activeModal) {
149
- return;
150
- }
151
-
152
- var modalState = _this.modalsState[activeModal];
129
+ var modalState = _this.getModalState(_this.props.activeModal);
153
130
 
154
131
  if (modalState.type === ModalType.PAGE) {
155
132
  return _this.onPageTouchEnd(e, modalState);
@@ -161,14 +138,14 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
161
138
  });
162
139
 
163
140
  _defineProperty(_assertThisInitialized(_this), "onScroll", function (e) {
164
- var activeModal = _this.state.activeModal;
141
+ var activeModal = _this.props.activeModal;
165
142
  var target = e.target;
166
143
 
167
144
  if (!activeModal) {
168
145
  return;
169
146
  }
170
147
 
171
- var modalState = _this.modalsState[activeModal];
148
+ var modalState = _this.getModalState(activeModal);
172
149
 
173
150
  if (modalState.type === ModalType.PAGE && modalState.contentElement.contains(target)) {
174
151
  modalState.contentScrolled = true;
@@ -181,86 +158,22 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
181
158
  }
182
159
  });
183
160
 
184
- _defineProperty(_assertThisInitialized(_this), "prevNextSwitchEndHandler", function () {
185
- _this.activeTransitions = Math.max(0, _this.activeTransitions - 1);
186
-
187
- if (_this.activeTransitions > 0) {
188
- return;
189
- }
190
-
191
- var activeModal = _this.state.nextModal;
192
- var newState = {
193
- prevModal: null,
194
- nextModal: null,
195
- visibleModals: [activeModal],
196
- activeModal: activeModal,
197
- animated: false,
198
- switching: false
199
- };
200
-
201
- if (!activeModal) {
202
- newState.history = [];
203
-
204
- if (_this.restoreFocusTo) {
205
- _this.restoreFocusTo.focus();
206
- }
207
- }
208
-
209
- _this.setState(newState);
210
- });
211
-
212
- _defineProperty(_assertThisInitialized(_this), "triggerActiveModalClose", function () {
213
- var activeModalState = _this.modalsState[_this.state.activeModal];
214
-
215
- if (activeModalState) {
216
- _this.doCloseModal(activeModalState);
217
- }
218
- });
219
-
220
- _defineProperty(_assertThisInitialized(_this), "doCloseModal", function (modalState) {
221
- // Сбрасываем состояния, которые могут помешать закрытию модального окна
222
- _this.setState({
223
- touchDown: false,
224
- switching: false
225
- });
226
-
227
- if (isFunction(modalState.onClose)) {
228
- modalState.onClose();
229
- } else if (isFunction(_this.props.onClose)) {
230
- _this.props.onClose(modalState.id);
231
- } else if (IS_DEV) {
232
- warn('onClose is undefined');
233
- }
234
- });
235
-
236
- var _activeModal = props.activeModal;
237
161
  _this.state = {
238
- activeModal: null,
239
- prevModal: null,
240
- nextModal: _activeModal,
241
- visibleModals: _activeModal ? [_activeModal] : [],
242
- animated: !!_activeModal,
243
- switching: false,
244
- history: _activeModal ? [_activeModal] : [],
245
- isBack: false,
246
- inited: false,
247
162
  touchDown: false,
248
163
  dragging: false
249
164
  };
250
- _this.activeTransitions = 0;
251
165
  _this.maskElementRef = /*#__PURE__*/React.createRef();
252
-
253
- _this.initModalsState();
254
-
255
166
  _this.modalRootContext = {
256
167
  updateModalHeight: _this.updateModalHeight,
257
168
  registerModal: function registerModal(_ref) {
258
169
  var id = _ref.id,
259
170
  data = _objectWithoutProperties(_ref, _excluded);
260
171
 
261
- return Object.assign(_this.modalsState[id], data);
172
+ return Object.assign(_this.getModalState(id), data);
173
+ },
174
+ onClose: function onClose() {
175
+ return _this.props.closeActiveModal();
262
176
  },
263
- onClose: _this.triggerActiveModalClose,
264
177
  isInsideModal: true
265
178
  };
266
179
  _this.frameIds = {};
@@ -282,100 +195,64 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
282
195
  get: function get() {
283
196
  return this.props.window;
284
197
  }
198
+ }, {
199
+ key: "getModalState",
200
+ value: function getModalState(id) {
201
+ return this.props.getModalState(id);
202
+ }
285
203
  }, {
286
204
  key: "getModals",
287
205
  value: function getModals() {
288
206
  return React.Children.toArray(this.props.children);
289
207
  }
290
- }, {
291
- key: "initModalsState",
292
- value: function initModalsState() {
293
- this.modalsState = this.getModals().reduce(function (acc, Modal) {
294
- var modalProps = Modal.props;
295
- var state = {
296
- id: getNavId(modalProps, warn),
297
- onClose: Modal.props.onClose,
298
- dynamicContentHeight: !!modalProps.dynamicContentHeight
299
- }; // ModalPage props
300
-
301
- if (typeof modalProps.settlingHeight === 'number') {
302
- state.settlingHeight = modalProps.settlingHeight;
303
- }
304
-
305
- acc[state.id] = state;
306
- return acc;
307
- }, {});
308
- }
309
208
  }, {
310
209
  key: "componentDidMount",
311
210
  value: function componentDidMount() {
312
- this.initActiveModal();
211
+ // Отслеживаем изменение размеров viewport (Необходимо для iOS)
212
+ if (this.props.platform === IOS) {
213
+ this.window.addEventListener('resize', this.updateModalTranslate, false);
214
+ }
313
215
  }
314
216
  }, {
315
217
  key: "componentWillUnmount",
316
218
  value: function componentWillUnmount() {
317
219
  this.toggleDocumentScrolling(true);
318
-
319
- if (this.props.platform === IOS) {
320
- this.window.removeEventListener('resize', this.updateModalTranslate, false);
321
- }
220
+ this.window.removeEventListener('resize', this.updateModalTranslate, false);
322
221
  }
323
222
  }, {
324
223
  key: "componentDidUpdate",
325
- value: function componentDidUpdate(prevProps, prevState) {
224
+ value: function componentDidUpdate(prevProps) {
326
225
  var _this2 = this;
327
226
 
328
- if (this.props.activeModal !== prevProps.activeModal && !this.state.switching) {
329
- var nextModal = this.props.activeModal;
330
- var prevModal = prevProps.activeModal;
227
+ // transition phase 2: animate exiting modal
228
+ if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {
229
+ this.closeModal(this.props.exitingModal);
230
+ } // transition phase 3: animate entering modal
331
231
 
332
- if (IS_DEV && nextModal !== null && !this.modalsState[nextModal]) {
333
- return warn("[componentDidUpdate] nextModal ".concat(nextModal, " not found"));
334
- }
335
232
 
336
- var history = _toConsumableArray(this.state.history);
233
+ if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {
234
+ var enteringModal = this.props.enteringModal;
235
+ var enteringState = this.getModalState(enteringModal);
236
+ this.waitTransitionFinish(enteringState, function () {
237
+ enteringState.innerElement.style.transitionDelay = null;
337
238
 
338
- var isBack = false;
239
+ _this2.props.onEnter(enteringModal);
240
+ });
241
+ enteringState.innerElement.style.transitionDelay = this.props.delayEnter ? "".concat(this.timeout, "ms") : null;
242
+ this.animateTranslate(enteringState, enteringState.translateY);
243
+ } // focus restoration
339
244
 
340
- if (nextModal === null) {
341
- history = [];
342
- } else if (history.includes(nextModal)) {
343
- history = history.splice(0, history.indexOf(nextModal) + 1);
344
- isBack = true;
345
- } else {
346
- history.push(nextModal);
347
- }
348
245
 
349
- return this.setState({
350
- activeModal: null,
351
- nextModal: nextModal,
352
- prevModal: prevModal,
353
- visibleModals: [nextModal, prevModal],
354
- history: history,
355
- isBack: isBack,
356
- animated: true,
357
- inited: false,
358
- switching: false
359
- }, function () {
360
- if (nextModal === null) {
361
- _this2.closeActiveModal();
362
- } else {
363
- _this2.initActiveModal();
364
- }
365
- });
246
+ if (this.props.activeModal && !prevProps.activeModal) {
247
+ this.restoreFocusTo = this.document.activeElement;
366
248
  }
367
249
 
368
- if (this.state.switching && !prevState.switching) {
369
- requestAnimationFrame(function () {
370
- return _this2.switchPrevNext();
371
- });
250
+ if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {
251
+ this.restoreFocusTo.focus();
252
+ this.restoreFocusTo = null;
372
253
  }
373
254
 
374
- if (!this.state.activeModal && !this.state.prevModal && !this.state.nextModal) {
375
- this.toggleDocumentScrolling(true);
376
- } else {
377
- this.toggleDocumentScrolling(false);
378
- }
255
+ this.toggleDocumentScrolling(!this.props.activeModal && !this.props.exitingModal);
379
256
  }
380
257
  /* Отключает скролл документа */
381
258
 
@@ -402,113 +279,15 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
402
279
  });
403
280
  }
404
281
  }
405
- }, {
406
- key: "initActiveModal",
407
- value:
408
- /**
409
- * Инициализирует модалку перед анимацией открытия
410
- */
411
- function initActiveModal() {
412
- var activeModal = this.state.activeModal || this.state.nextModal;
413
-
414
- if (!activeModal) {
415
- return;
416
- }
417
-
418
- var modalState = this.modalsState[activeModal]; // Отслеживаем изменение размеров viewport (Необходимо для iOS)
419
-
420
- if (this.props.platform === IOS) {
421
- this.window.addEventListener('resize', this.updateModalTranslate, false);
422
- }
423
-
424
- switch (modalState.type) {
425
- case ModalType.PAGE:
426
- modalState.settlingHeight = modalState.settlingHeight || MODAL_PAGE_DEFAULT_PERCENT_HEIGHT;
427
- this.initPageModal(modalState);
428
- break;
429
-
430
- case ModalType.CARD:
431
- this.initCardModal(modalState);
432
- break;
433
-
434
- default:
435
- if (IS_DEV) {
436
- warn('[initActiveModal] modalState.type is unknown');
437
- }
438
-
439
- }
440
-
441
- this.setState({
442
- inited: true,
443
- switching: true
444
- });
445
- }
446
- }, {
447
- key: "initPageModal",
448
- value: function initPageModal(modalState) {
449
- var contentElement = modalState.contentElement;
450
- var contentHeight = contentElement.firstElementChild.offsetHeight;
451
- var prevTranslateY = modalState.translateY;
452
- modalState.expandable = contentHeight > contentElement.clientHeight || modalState.settlingHeight === 100;
453
- var collapsed = false;
454
- var expanded = false;
455
- var translateYFrom;
456
- var translateY;
457
- var expandedRange;
458
- var collapsedRange;
459
- var hiddenRange;
460
-
461
- if (modalState.expandable) {
462
- translateYFrom = 100 - modalState.settlingHeight;
463
- var shiftHalf = translateYFrom / 2;
464
- var visiblePart = 100 - translateYFrom;
465
- expandedRange = [0, shiftHalf];
466
- collapsedRange = [shiftHalf, translateYFrom + visiblePart / 4];
467
- hiddenRange = [translateYFrom + visiblePart / 4, 100];
468
- collapsed = translateYFrom > 0;
469
- expanded = translateYFrom <= 0;
470
- translateY = translateYFrom;
471
- } else {
472
- var headerHeight = modalState.headerElement.offsetHeight;
473
- var height = contentHeight + headerHeight;
474
- translateYFrom = 100 - height / modalState.innerElement.parentElement.offsetHeight * 100;
475
- translateY = translateYFrom;
476
- expandedRange = [translateY, translateY + 25];
477
- collapsedRange = [translateY + 25, translateY + 25];
478
- hiddenRange = [translateY + 25, translateY + 100];
479
- } // Если модалка может открываться на весь экран, и новый сдвиг больше предыдущего, то откроем её на весь экран
480
-
481
-
482
- if (modalState.expandable && translateY > prevTranslateY || modalState.settlingHeight === 100) {
483
- translateY = 0;
484
- }
485
-
486
- modalState.expandedRange = expandedRange;
487
- modalState.collapsedRange = collapsedRange;
488
- modalState.hiddenRange = hiddenRange;
489
- modalState.translateY = translateY;
490
- modalState.translateYFrom = translateYFrom;
491
- modalState.collapsed = collapsed;
492
- modalState.expanded = expanded;
493
- }
494
- }, {
495
- key: "initCardModal",
496
- value: function initCardModal(modalState) {
497
- modalState.translateY = 0;
498
- }
499
282
  }, {
500
283
  key: "checkPageContentHeight",
501
284
  value: function checkPageContentHeight() {
502
- var _this$state2 = this.state,
503
- activeModal = _this$state2.activeModal,
504
- nextModal = _this$state2.nextModal;
505
- var modalId = activeModal || nextModal;
506
- var modalState = this.modalsState[modalId];
285
+ var modalState = this.getModalState(this.props.activeModal);
507
286
 
508
287
  if ((modalState === null || modalState === void 0 ? void 0 : modalState.type) === ModalType.PAGE && modalState !== null && modalState !== void 0 && modalState.modalElement) {
509
288
  var prevModalState = _objectSpread({}, modalState);
510
289
 
511
- this.initPageModal(modalState);
290
+ initPageModal(modalState);
512
291
 
513
292
  var currentModalState = _objectSpread({}, modalState);
514
293
 
@@ -528,28 +307,34 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
528
307
  }
529
308
  }
530
309
  }, {
531
- key: "closeActiveModal",
532
- value: function closeActiveModal() {
310
+ key: "closeModal",
311
+ value: function closeModal(id) {
312
+ var _this3 = this;
313
+
533
314
  // Сбрасываем состояния, которые могут помешать закрытию модального окна
534
315
  this.setState({
535
- touchDown: false,
536
- switching: false
316
+ touchDown: false
537
317
  });
318
+ var prevModalState = this.getModalState(id);
538
319
 
539
- if (this.props.platform === IOS) {
540
- this.window.removeEventListener('resize', this.updateModalTranslate, false);
320
+ if (!prevModalState) {
321
+ id && warn("[closeActiveModal] Modal ".concat(id, " does not exist - not closing"));
322
+ return;
541
323
  }
542
324
 
543
- var prevModal = this.state.prevModal;
325
+ var nextModalState = this.getModalState(this.props.activeModal);
326
+ var nextIsPage = !!nextModalState && nextModalState.type === ModalType.PAGE;
327
+ var prevIsPage = !!prevModalState && prevModalState.type === ModalType.PAGE;
328
+ this.waitTransitionFinish(prevModalState, function () {
329
+ return _this3.props.onExit(id);
330
+ });
331
+ var exitTranslate = prevIsPage && nextIsPage && prevModalState.translateY <= nextModalState.translateYFrom && !this.props.isBack ? nextModalState.translateYFrom + 10 : 100;
332
+ this.animateTranslate(prevModalState, exitTranslate);
544
333
 
545
- if (!prevModal) {
546
- return warn("[closeActiveModal] prevModal is ".concat(prevModal));
334
+ if (!nextModalState) {
335
+ // NOTE: was only for clean exit
336
+ this.setMaskOpacity(prevModalState, 0);
547
337
  }
548
-
549
- var prevModalState = this.modalsState[prevModal];
550
- this.waitTransitionFinish(prevModalState, this.prevNextSwitchEndHandler);
551
- this.animateTranslate(prevModalState, 100);
552
- this.setMaskOpacity(prevModalState, 0);
553
338
  }
554
339
  }, {
555
340
  key: "onPageTouchMove",
@@ -635,7 +420,7 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
635
420
  }, {
636
421
  key: "onPageTouchEnd",
637
422
  value: function onPageTouchEnd(event, modalState) {
638
- var _this3 = this;
423
+ var _this4 = this;
639
424
 
640
425
  var startY = event.startY,
641
426
  shiftY = event.shiftY;
@@ -678,15 +463,15 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
678
463
  modalState.hidden = translateY === 100;
679
464
 
680
465
  if (modalState.hidden) {
681
- this.doCloseModal(modalState);
466
+ this.props.closeActiveModal();
682
467
  }
683
468
 
684
469
  setStateCallback = function setStateCallback() {
685
470
  if (!modalState.hidden) {
686
- _this3.animateTranslate(modalState, modalState.translateY);
471
+ _this4.animateTranslate(modalState, modalState.translateY);
687
472
  }
688
473
 
689
- _this3.setMaskOpacity(modalState);
474
+ _this4.setMaskOpacity(modalState);
690
475
  };
691
476
  }
692
477
 
@@ -698,7 +483,7 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
698
483
  }, {
699
484
  key: "onCardTouchEnd",
700
485
  value: function onCardTouchEnd(_ref2, modalState) {
701
- var _this4 = this;
486
+ var _this5 = this;
702
487
 
703
488
  var duration = _ref2.duration;
704
489
  var setStateCallback;
@@ -718,15 +503,15 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
718
503
  modalState.hidden = translateY === 100;
719
504
 
720
505
  if (modalState.hidden) {
721
- this.doCloseModal(modalState);
506
+ this.props.closeActiveModal();
722
507
  }
723
508
 
724
509
  setStateCallback = function setStateCallback() {
725
510
  if (!modalState.hidden) {
726
- _this4.animateTranslate(modalState, modalState.translateY);
511
+ _this5.animateTranslate(modalState, modalState.translateY);
727
512
  }
728
513
 
729
- _this4.setMaskOpacity(modalState);
514
+ _this5.setMaskOpacity(modalState);
730
515
  };
731
516
  }
732
517
 
@@ -749,76 +534,20 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
749
534
  setTimeout(eventHandler, this.timeout);
750
535
  }
751
536
  }
752
- }, {
753
- key: "switchPrevNext",
754
- value: function switchPrevNext() {
755
- var _this5 = this;
756
-
757
- var _this$state3 = this.state,
758
- prevModal = _this$state3.prevModal,
759
- nextModal = _this$state3.nextModal;
760
- var prevModalState = this.modalsState[prevModal];
761
- var nextModalState = this.modalsState[nextModal];
762
-
763
- if (IS_DEV && !prevModalState && !nextModalState) {
764
- return warn("[switchPrevNext] prevModal is ".concat(prevModal, ", nextModal is ").concat(nextModal));
765
- }
766
-
767
- var prevIsPage = !!prevModalState && prevModalState.type === ModalType.PAGE;
768
- var prevIsCard = !!prevModalState && prevModalState.type === ModalType.CARD;
769
- var nextIsPage = !!nextModalState && nextModalState.type === ModalType.PAGE;
770
- var nextIsCard = !!nextModalState && nextModalState.type === ModalType.CARD; // Ждём полного скрытия предыдущей модалки
771
-
772
- if (prevModalState && (nextIsCard || prevIsCard && nextIsPage)) {
773
- this.waitTransitionFinish(prevModalState, function () {
774
- _this5.activeTransitions += 1;
775
-
776
- _this5.waitTransitionFinish(nextModalState, _this5.prevNextSwitchEndHandler);
777
-
778
- _this5.animateTranslate(nextModalState, nextModalState.translateY);
779
- });
780
- return this.animateTranslate(prevModalState, 100);
781
- }
782
-
783
- if (prevModalState && nextIsPage) {
784
- this.activeTransitions += 1;
785
- this.waitTransitionFinish(prevModalState, this.prevNextSwitchEndHandler);
786
-
787
- if (prevIsPage && prevModalState.translateY <= nextModalState.translateYFrom && !this.state.isBack) {
788
- this.animateTranslate(prevModalState, nextModalState.translateYFrom + 10);
789
- } else {
790
- this.animateTranslate(prevModalState, 100);
791
- }
792
- }
793
-
794
- if (!prevModal && this.document.activeElement) {
795
- this.restoreFocusTo = this.document.activeElement;
796
- }
797
-
798
- this.activeTransitions += 1;
799
- this.waitTransitionFinish(nextModalState, this.prevNextSwitchEndHandler);
800
- this.animateTranslate(nextModalState, nextModalState.translateY);
801
- }
802
- }, {
803
- key: "animateTranslate",
804
- value:
805
537
  /**
806
538
  * Анимирует сдвиг модалки
807
539
  *
808
540
  * @param {ModalsStateEntry} modalState
809
541
  * @param {number} percent Процент сдвига: 0 – полностью открыта, 100 – полностью закрыта
810
542
  */
811
- function animateTranslate(modalState, percent) {
543
+
544
+ }, {
545
+ key: "animateTranslate",
546
+ value: function animateTranslate(modalState, percent) {
812
547
  var frameId = "animateTranslateFrame".concat(modalState.id);
813
548
  cancelAnimationFrame(this.frameIds[frameId]);
814
549
  this.frameIds[frameId] = requestAnimationFrame(function () {
815
550
  setTransformStyle(modalState.innerElement, "translate3d(0, ".concat(percent, "%, 0)"));
816
-
817
- if (modalState.type === ModalType.PAGE && modalState.footerElement) {
818
- var footerHeight = modalState.footerElement.offsetHeight;
819
- var factor = modalState.innerElement.offsetHeight * (percent / 100);
820
- setTransformStyle(modalState.footerElement, "translateY(calc(".concat(footerHeight, "px * -").concat(factor / footerHeight, "))"));
821
- }
822
551
  });
823
552
  }
824
553
  /* Устанавливает прозрачность для полупрозрачной подложки */
@@ -830,7 +559,7 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
830
559
 
831
560
  var forceOpacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
832
561
 
833
- if (forceOpacity === null && this.state.history[0] !== modalState.id) {
562
+ if (forceOpacity === null && this.props.history[0] !== modalState.id) {
834
563
  return;
835
564
  }
836
565
 
@@ -844,26 +573,20 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
844
573
  }
845
574
  });
846
575
  }
847
- /**
848
- * Закрывает текущую модалку
849
- */
850
-
851
576
  }, {
852
577
  key: "render",
853
578
  value: function render() {
854
579
  var _this7 = this;
855
580
 
856
- var _this$state4 = this.state,
857
- prevModal = _this$state4.prevModal,
858
- activeModal = _this$state4.activeModal,
859
- nextModal = _this$state4.nextModal,
860
- visibleModals = _this$state4.visibleModals,
861
- animated = _this$state4.animated,
862
- touchDown = _this$state4.touchDown,
863
- dragging = _this$state4.dragging,
864
- switching = _this$state4.switching;
865
-
866
- if (!activeModal && !prevModal && !nextModal && !animated) {
581
+ var _this$props = this.props,
582
+ activeModal = _this$props.activeModal,
583
+ exitingModal = _this$props.exitingModal,
584
+ enteringModal = _this$props.enteringModal;
585
+ var _this$state = this.state,
586
+ touchDown = _this$state.touchDown,
587
+ dragging = _this$state.dragging;
588
+
589
+ if (!activeModal && !exitingModal) {
867
590
  return null;
868
591
  }
869
592
 
@@ -875,14 +598,14 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
875
598
  vkuiClass: classNames(getClassName('ModalRoot', this.props.platform), {
876
599
  'ModalRoot--vkapps': this.props.configProvider.webviewType === WebviewType.VKAPPS,
877
600
  'ModalRoot--touched': touchDown,
878
- 'ModalRoot--switching': switching
601
+ 'ModalRoot--switching': !!(enteringModal || exitingModal)
879
602
  }),
880
603
  onMove: this.onTouchMove,
881
604
  onEnd: this.onTouchEnd,
882
605
  onScroll: this.onScroll
883
606
  }, createScopedElement("div", {
884
607
  vkuiClass: "ModalRoot__mask",
885
- onClick: this.triggerActiveModalClose,
608
+ onClick: this.props.closeActiveModal,
886
609
  ref: this.maskElementRef
887
610
  }), createScopedElement("div", {
888
611
  vkuiClass: "ModalRoot__viewport",
@@ -890,25 +613,25 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
890
613
  }, this.getModals().map(function (Modal) {
891
614
  var modalId = getNavId(Modal.props, warn);
892
615
 
893
- if (!visibleModals.includes(modalId)) {
616
+ if (modalId !== activeModal && modalId !== exitingModal) {
894
617
  return null;
895
618
  }
896
619
 
897
- var modalState = _objectSpread({}, _this7.modalsState[modalId]);
620
+ var modalState = _objectSpread({}, _this7.getModalState(modalId));
898
621
 
899
622
  var isPage = modalState.type === ModalType.PAGE;
900
623
  var key = "modal-".concat(modalId);
901
624
  return createScopedElement(FocusTrap, {
902
625
  key: key,
903
626
  getRootRef: function getRootRef(e) {
904
- return _this7.modalsState[modalId].modalElement = e;
627
+ return _this7.getModalState(modalId).modalElement = e;
905
628
  },
906
- onClose: _this7.triggerActiveModalClose,
629
+ onClose: _this7.props.closeActiveModal,
907
630
  timeout: _this7.timeout,
908
631
  vkuiClass: classNames('ModalRoot__modal', {
909
632
  'ModalRoot__modal--active': modalId === activeModal,
910
- 'ModalRoot__modal--prev': modalId === prevModal,
911
- 'ModalRoot__modal--next': modalId === nextModal,
633
+ 'ModalRoot__modal--prev': modalId === exitingModal,
634
+ 'ModalRoot__modal--next': exitingModal && modalId === activeModal || modalId === enteringModal,
912
635
  'ModalRoot__modal--dragging': dragging,
913
636
  'ModalRoot__modal--expandable': isPage && modalState.expandable,
914
637
  'ModalRoot__modal--expanded': isPage && modalState.expanded,
@@ -923,5 +646,73 @@ var ModalRootTouchComponent = /*#__PURE__*/function (_React$Component) {
923
646
  return ModalRootTouchComponent;
924
647
  }(React.Component);
925
648
 
926
- export var ModalRootTouch = withContext(withPlatform(withDOM(ModalRootTouchComponent)), ConfigProviderContext, 'configProvider');
649
+ export var ModalRootTouch = withContext(withPlatform(withDOM(withModalManager(initModal)(ModalRootTouchComponent))), ConfigProviderContext, 'configProvider');
650
+ /**
651
+ * Инициализирует модалку перед анимацией открытия
652
+ */
653
+
654
+ function initModal(modalState) {
655
+ switch (modalState.type) {
656
+ case ModalType.PAGE:
657
+ modalState.settlingHeight = modalState.settlingHeight || MODAL_PAGE_DEFAULT_PERCENT_HEIGHT;
658
+ return initPageModal(modalState);
659
+
660
+ case ModalType.CARD:
661
+ return initCardModal(modalState);
662
+
663
+ default:
664
+ IS_DEV && warn('[initActiveModal] modalState.type is unknown');
665
+ }
666
+ }
667
+
668
+ function initPageModal(modalState) {
669
+ var contentElement = modalState.contentElement;
670
+ var contentHeight = contentElement.firstElementChild.offsetHeight;
671
+ var prevTranslateY = modalState.translateY;
672
+ modalState.expandable = contentHeight > contentElement.clientHeight || modalState.settlingHeight === 100;
673
+ var collapsed = false;
674
+ var expanded = false;
675
+ var translateYFrom;
676
+ var translateY;
677
+ var expandedRange;
678
+ var collapsedRange;
679
+ var hiddenRange;
680
+
681
+ if (modalState.expandable) {
682
+ translateYFrom = 100 - modalState.settlingHeight;
683
+ var shiftHalf = translateYFrom / 2;
684
+ var visiblePart = 100 - translateYFrom;
685
+ expandedRange = [0, shiftHalf];
686
+ collapsedRange = [shiftHalf, translateYFrom + visiblePart / 4];
687
+ hiddenRange = [translateYFrom + visiblePart / 4, 100];
688
+ collapsed = translateYFrom > 0;
689
+ expanded = translateYFrom <= 0;
690
+ translateY = translateYFrom;
691
+ } else {
692
+ var headerHeight = modalState.headerElement.offsetHeight;
693
+ var height = contentHeight + headerHeight;
694
+ translateYFrom = 100 - height / modalState.innerElement.parentElement.offsetHeight * 100;
695
+ translateY = translateYFrom;
696
+ expandedRange = [translateY, translateY + 25];
697
+ collapsedRange = [translateY + 25, translateY + 25];
698
+ hiddenRange = [translateY + 25, translateY + 100];
699
+ } // Если модалка может открываться на весь экран, и новый сдвиг больше предыдущего, то откроем её на весь экран
700
+
701
+
702
+ if (modalState.expandable && translateY > prevTranslateY || modalState.settlingHeight === 100) {
703
+ translateY = 0;
704
+ }
705
+
706
+ modalState.expandedRange = expandedRange;
707
+ modalState.collapsedRange = collapsedRange;
708
+ modalState.hiddenRange = hiddenRange;
709
+ modalState.translateY = translateY;
710
+ modalState.translateYFrom = translateYFrom;
711
+ modalState.collapsed = collapsed;
712
+ modalState.expanded = expanded;
713
+ }
714
+
715
+ function initCardModal(modalState) {
716
+ modalState.translateY = 0;
717
+ }
927
718
  //# sourceMappingURL=ModalRoot.js.map