@vkontakte/vkui 4.22.2 → 4.23.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 (236) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +193 -30
  4. package/.cache/ts/src/components/ActionSheet/ActionSheetContext.d.ts +1 -1
  5. package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +7 -0
  6. package/.cache/ts/src/components/AdaptivityProvider/AdaptivityContext.d.ts +5 -0
  7. package/.cache/ts/src/components/AppRoot/AppRootContext.d.ts +1 -0
  8. package/.cache/ts/src/components/AppRoot/AppRootPortal.d.ts +1 -0
  9. package/.cache/ts/src/components/ClickPopper/ClickPopper.d.ts +21 -0
  10. package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +8 -0
  11. package/.cache/ts/src/components/Dropdown/Dropdown.d.ts +49 -0
  12. package/.cache/ts/src/components/Footer/Footer.d.ts +3 -3
  13. package/.cache/ts/src/components/HoverPopper/HoverPopper.d.ts +29 -0
  14. package/.cache/ts/src/components/Popper/Popper.d.ts +27 -0
  15. package/.cache/ts/src/components/RichTooltip/RichTooltip.d.ts +46 -0
  16. package/.cache/ts/src/components/TextTooltip/TextTooltip.d.ts +49 -0
  17. package/.cache/ts/src/hoc/withAdaptivity.d.ts +1 -0
  18. package/.cache/ts/src/hooks/usePatchChildrenRef.d.ts +6 -0
  19. package/.cache/ts/src/index.d.ts +2 -1
  20. package/.cache/ts/src/unstable/index.d.ts +8 -0
  21. package/dist/cjs/components/ActionSheet/ActionSheet.js +21 -7
  22. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  23. package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts +1 -1
  24. package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
  25. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -3
  26. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  27. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +7 -0
  28. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +4 -3
  29. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  30. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.d.ts +5 -0
  31. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js +5 -1
  32. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  33. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +10 -5
  34. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  35. package/dist/cjs/components/AppRoot/AppRoot.js +3 -6
  36. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  37. package/dist/cjs/components/AppRoot/AppRootContext.d.ts +1 -0
  38. package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
  39. package/dist/cjs/components/AppRoot/AppRootPortal.d.ts +1 -0
  40. package/dist/cjs/components/AppRoot/AppRootPortal.js +7 -3
  41. package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
  42. package/dist/cjs/components/Cell/Cell.js +3 -1
  43. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  44. package/dist/cjs/components/ClickPopper/ClickPopper.d.ts +21 -0
  45. package/dist/cjs/components/ClickPopper/ClickPopper.js +92 -0
  46. package/dist/cjs/components/ClickPopper/ClickPopper.js.map +1 -0
  47. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +8 -0
  48. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  49. package/dist/cjs/components/Dropdown/Dropdown.d.ts +49 -0
  50. package/dist/cjs/components/Dropdown/Dropdown.js +56 -0
  51. package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -0
  52. package/dist/cjs/components/Footer/Footer.d.ts +3 -3
  53. package/dist/cjs/components/Footer/Footer.js +2 -3
  54. package/dist/cjs/components/Footer/Footer.js.map +1 -1
  55. package/dist/cjs/components/HoverPopper/HoverPopper.d.ts +29 -0
  56. package/dist/cjs/components/HoverPopper/HoverPopper.js +97 -0
  57. package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -0
  58. package/dist/cjs/components/Popper/Popper.d.ts +27 -0
  59. package/dist/cjs/components/Popper/Popper.js +153 -0
  60. package/dist/cjs/components/Popper/Popper.js.map +1 -0
  61. package/dist/cjs/components/RichTooltip/RichTooltip.d.ts +46 -0
  62. package/dist/cjs/components/RichTooltip/RichTooltip.js +47 -0
  63. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -0
  64. package/dist/cjs/components/Tappable/Tappable.js +6 -4
  65. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  66. package/dist/cjs/components/TextTooltip/TextTooltip.d.ts +49 -0
  67. package/dist/cjs/components/TextTooltip/TextTooltip.js +57 -0
  68. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -0
  69. package/dist/cjs/hoc/withAdaptivity.d.ts +1 -0
  70. package/dist/cjs/hoc/withAdaptivity.js +5 -2
  71. package/dist/cjs/hoc/withAdaptivity.js.map +1 -1
  72. package/dist/cjs/hooks/usePatchChildrenRef.d.ts +6 -0
  73. package/dist/cjs/hooks/usePatchChildrenRef.js +38 -0
  74. package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -0
  75. package/dist/cjs/index.d.ts +2 -1
  76. package/dist/cjs/index.js +2 -2
  77. package/dist/cjs/index.js.map +1 -1
  78. package/dist/cjs/unstable/index.d.ts +8 -0
  79. package/dist/cjs/unstable/index.js +32 -0
  80. package/dist/cjs/unstable/index.js.map +1 -1
  81. package/dist/components/ActionSheet/ActionSheet.js +22 -8
  82. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  83. package/dist/components/ActionSheet/ActionSheetContext.d.ts +1 -1
  84. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  85. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -3
  86. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  87. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +7 -0
  88. package/dist/components/ActionSheetItem/ActionSheetItem.js +4 -3
  89. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  90. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts +5 -0
  91. package/dist/components/AdaptivityProvider/AdaptivityContext.js +4 -1
  92. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  93. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +11 -6
  94. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  95. package/dist/components/AppRoot/AppRoot.js +3 -6
  96. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  97. package/dist/components/AppRoot/AppRootContext.d.ts +1 -0
  98. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  99. package/dist/components/AppRoot/AppRootPortal.d.ts +1 -0
  100. package/dist/components/AppRoot/AppRootPortal.js +7 -3
  101. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  102. package/dist/components/Cell/Cell.js +3 -1
  103. package/dist/components/Cell/Cell.js.map +1 -1
  104. package/dist/components/ClickPopper/ClickPopper.d.ts +21 -0
  105. package/dist/components/ClickPopper/ClickPopper.js +67 -0
  106. package/dist/components/ClickPopper/ClickPopper.js.map +1 -0
  107. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +8 -0
  108. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  109. package/dist/components/Dropdown/Dropdown.d.ts +49 -0
  110. package/dist/components/Dropdown/Dropdown.js +38 -0
  111. package/dist/components/Dropdown/Dropdown.js.map +1 -0
  112. package/dist/components/Footer/Footer.d.ts +3 -3
  113. package/dist/components/Footer/Footer.js +1 -4
  114. package/dist/components/Footer/Footer.js.map +1 -1
  115. package/dist/components/HoverPopper/HoverPopper.d.ts +29 -0
  116. package/dist/components/HoverPopper/HoverPopper.js +73 -0
  117. package/dist/components/HoverPopper/HoverPopper.js.map +1 -0
  118. package/dist/components/Popper/Popper.d.ts +27 -0
  119. package/dist/components/Popper/Popper.js +127 -0
  120. package/dist/components/Popper/Popper.js.map +1 -0
  121. package/dist/components/RichTooltip/RichTooltip.d.ts +46 -0
  122. package/dist/components/RichTooltip/RichTooltip.js +26 -0
  123. package/dist/components/RichTooltip/RichTooltip.js.map +1 -0
  124. package/dist/components/Tappable/Tappable.js +7 -5
  125. package/dist/components/Tappable/Tappable.js.map +1 -1
  126. package/dist/components/TextTooltip/TextTooltip.d.ts +49 -0
  127. package/dist/components/TextTooltip/TextTooltip.js +34 -0
  128. package/dist/components/TextTooltip/TextTooltip.js.map +1 -0
  129. package/dist/components.css +1 -1
  130. package/dist/components.css.map +1 -1
  131. package/dist/cssm/components/ActionSheet/ActionSheet.js +22 -8
  132. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  133. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  134. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -3
  135. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  136. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +4 -3
  137. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  138. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js +4 -1
  139. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  140. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +11 -6
  141. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  142. package/dist/cssm/components/AppRoot/AppRoot.js +3 -6
  143. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  144. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  145. package/dist/cssm/components/AppRoot/AppRootPortal.js +7 -3
  146. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  147. package/dist/cssm/components/Cell/Cell.js +3 -1
  148. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  149. package/dist/cssm/components/ClickPopper/ClickPopper.js +67 -0
  150. package/dist/cssm/components/ClickPopper/ClickPopper.js.map +1 -0
  151. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  152. package/dist/cssm/components/Dropdown/Dropdown.css +1 -0
  153. package/dist/cssm/components/Dropdown/Dropdown.js +41 -0
  154. package/dist/cssm/components/Dropdown/Dropdown.js.map +1 -0
  155. package/dist/cssm/components/Footer/Footer.js +1 -4
  156. package/dist/cssm/components/Footer/Footer.js.map +1 -1
  157. package/dist/cssm/components/HoverPopper/HoverPopper.js +73 -0
  158. package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -0
  159. package/dist/cssm/components/Popper/Popper.css +1 -0
  160. package/dist/cssm/components/Popper/Popper.js +128 -0
  161. package/dist/cssm/components/Popper/Popper.js.map +1 -0
  162. package/dist/cssm/components/RichTooltip/RichTooltip.css +1 -0
  163. package/dist/cssm/components/RichTooltip/RichTooltip.js +29 -0
  164. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -0
  165. package/dist/cssm/components/Tappable/Tappable.js +7 -5
  166. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  167. package/dist/cssm/components/TextTooltip/TextTooltip.css +1 -0
  168. package/dist/cssm/components/TextTooltip/TextTooltip.js +37 -0
  169. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -0
  170. package/dist/cssm/hoc/withAdaptivity.js +5 -2
  171. package/dist/cssm/hoc/withAdaptivity.js.map +1 -1
  172. package/dist/cssm/hooks/usePatchChildrenRef.js +21 -0
  173. package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -0
  174. package/dist/cssm/index.js +1 -1
  175. package/dist/cssm/index.js.map +1 -1
  176. package/dist/cssm/styles/animations.css +1 -1
  177. package/dist/cssm/styles/common.css +1 -1
  178. package/dist/cssm/styles/components.css +1 -1
  179. package/dist/cssm/styles/unstable.css +1 -1
  180. package/dist/cssm/unstable/index.js +4 -0
  181. package/dist/cssm/unstable/index.js.map +1 -1
  182. package/dist/hoc/withAdaptivity.d.ts +1 -0
  183. package/dist/hoc/withAdaptivity.js +5 -2
  184. package/dist/hoc/withAdaptivity.js.map +1 -1
  185. package/dist/hooks/usePatchChildrenRef.d.ts +6 -0
  186. package/dist/hooks/usePatchChildrenRef.js +21 -0
  187. package/dist/hooks/usePatchChildrenRef.js.map +1 -0
  188. package/dist/index.d.ts +2 -1
  189. package/dist/index.js +1 -1
  190. package/dist/index.js.map +1 -1
  191. package/dist/unstable/index.d.ts +8 -0
  192. package/dist/unstable/index.js +4 -0
  193. package/dist/unstable/index.js.map +1 -1
  194. package/dist/unstable.css +1 -1
  195. package/dist/unstable.css.map +1 -1
  196. package/dist/vkui.css +1 -1
  197. package/dist/vkui.css.map +1 -1
  198. package/package.json +2 -2
  199. package/src/components/ActionSheet/ActionSheet.tsx +16 -9
  200. package/src/components/ActionSheet/ActionSheetContext.ts +1 -1
  201. package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +1 -3
  202. package/src/components/ActionSheetItem/ActionSheetItem.tsx +10 -2
  203. package/src/components/AdaptivityProvider/AdaptivityContext.tsx +8 -0
  204. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +8 -6
  205. package/src/components/AdaptivityProvider/Readme.md +3 -3
  206. package/src/components/AppRoot/AppRoot.tsx +4 -5
  207. package/src/components/AppRoot/AppRootContext.ts +1 -0
  208. package/src/components/AppRoot/AppRootPortal.tsx +5 -3
  209. package/src/components/Cell/Cell.tsx +2 -1
  210. package/src/components/ChipsSelect/Readme.md +1 -1
  211. package/src/components/ClickPopper/ClickPopper.tsx +82 -0
  212. package/src/components/ConfigProvider/ConfigProviderContext.tsx +8 -0
  213. package/src/components/Dropdown/Dropdown.css +19 -0
  214. package/src/components/Dropdown/Dropdown.tsx +74 -0
  215. package/src/components/Dropdown/Readme.md +39 -0
  216. package/src/components/Footer/Footer.tsx +6 -4
  217. package/src/components/HoverPopper/HoverPopper.tsx +100 -0
  218. package/src/components/PanelHeader/Readme.md +4 -0
  219. package/src/components/Popper/Popper.css +39 -0
  220. package/src/components/Popper/Popper.tsx +147 -0
  221. package/src/components/Popper/Readme.md +23 -0
  222. package/src/components/RichTooltip/Readme.md +55 -0
  223. package/src/components/RichTooltip/RichTooltip.css +10 -0
  224. package/src/components/RichTooltip/RichTooltip.tsx +70 -0
  225. package/src/components/Tappable/Tappable.tsx +5 -4
  226. package/src/components/TextTooltip/Readme.md +7 -0
  227. package/src/components/TextTooltip/TextTooltip.css +12 -0
  228. package/src/components/TextTooltip/TextTooltip.tsx +76 -0
  229. package/src/components/Tooltip/Readme.md +2 -0
  230. package/src/hoc/withAdaptivity.tsx +5 -1
  231. package/src/hooks/usePatchChildrenRef.ts +24 -0
  232. package/src/index.ts +2 -1
  233. package/src/styles/animations.css +5 -0
  234. package/src/styles/common.css +7 -2
  235. package/src/styles/unstable.css +4 -0
  236. package/src/unstable/index.ts +12 -0
@@ -57,9 +57,10 @@ function AdaptivityProvider(props) {
57
57
  viewHeight = _adaptivityRef$curren.viewHeight,
58
58
  sizeX = _adaptivityRef$curren.sizeX,
59
59
  sizeY = _adaptivityRef$curren.sizeY,
60
- hasMouse = _adaptivityRef$curren.hasMouse;
60
+ hasMouse = _adaptivityRef$curren.hasMouse,
61
+ deviceHasHover = _adaptivityRef$curren.deviceHasHover;
61
62
 
62
- if (viewWidth !== calculated.viewWidth || viewHeight !== calculated.viewHeight || sizeX !== calculated.sizeX || sizeY !== calculated.sizeY || hasMouse !== calculated.hasMouse) {
63
+ if (viewWidth !== calculated.viewWidth || viewHeight !== calculated.viewHeight || sizeX !== calculated.sizeX || sizeY !== calculated.sizeY || hasMouse !== calculated.hasMouse || deviceHasHover !== calculated.deviceHasHover) {
63
64
  adaptivityRef.current = calculated;
64
65
  updateAdaptivity({});
65
66
  }
@@ -70,18 +71,21 @@ function AdaptivityProvider(props) {
70
71
  return function () {
71
72
  window.removeEventListener('resize', onResize, false);
72
73
  };
73
- }, [props.viewWidth, props.viewHeight, props.sizeX, props.sizeY, props.hasMouse]);
74
+ }, [props.viewWidth, props.viewHeight, props.sizeX, props.sizeY, props.hasMouse, props.deviceHasHover]);
74
75
  return (0, _jsxRuntime.createScopedElement)(_AdaptivityContext.AdaptivityContext.Provider, {
75
76
  value: adaptivityRef.current
76
77
  }, props.children);
77
78
  }
78
79
 
79
80
  function calculateAdaptivity(windowWidth, windowHeight, props) {
81
+ var _props$hasMouse, _props$deviceHasHover;
82
+
80
83
  var viewWidth = _AdaptivityContext.ViewWidth.SMALL_MOBILE;
81
84
  var viewHeight = _AdaptivityContext.ViewHeight.SMALL;
82
85
  var sizeY = _AdaptivityContext.SizeType.REGULAR;
83
86
  var sizeX = _AdaptivityContext.SizeType.REGULAR;
84
- var hasMouse = typeof props.hasMouse === 'boolean' ? props.hasMouse : _vkjs.hasMouse;
87
+ var hasMouse = (_props$hasMouse = props.hasMouse) !== null && _props$hasMouse !== void 0 ? _props$hasMouse : _vkjs.hasMouse;
88
+ var deviceHasHover = (_props$deviceHasHover = props.deviceHasHover) !== null && _props$deviceHasHover !== void 0 ? _props$deviceHasHover : _vkjs.hasHover;
85
89
 
86
90
  if (windowWidth >= DESKTOP_SIZE) {
87
91
  viewWidth = _AdaptivityContext.ViewWidth.DESKTOP;
@@ -121,7 +125,8 @@ function calculateAdaptivity(windowWidth, windowHeight, props) {
121
125
  viewHeight: viewHeight,
122
126
  sizeX: sizeX,
123
127
  sizeY: sizeY,
124
- hasMouse: hasMouse
128
+ hasMouse: hasMouse,
129
+ deviceHasHover: deviceHasHover
125
130
  };
126
131
  }
127
132
  //# sourceMappingURL=AdaptivityProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/AdaptivityProvider/AdaptivityProvider.tsx"],"names":["DESKTOP_SIZE","TABLET_SIZE","SMALL_TABLET_SIZE","MOBILE_SIZE","MOBILE_LANDSCAPE_HEIGHT","MEDIUM_HEIGHT","AdaptivityProvider","props","adaptivityRef","React","useRef","useState","updateAdaptivity","window","current","calculateAdaptivity","innerWidth","innerHeight","useEffect","onResize","calculated","viewWidth","viewHeight","sizeX","sizeY","hasMouse","addEventListener","removeEventListener","children","windowWidth","windowHeight","ViewWidth","SMALL_MOBILE","ViewHeight","SMALL","SizeType","REGULAR","_hasMouse","DESKTOP","TABLET","SMALL_TABLET","MOBILE","MEDIUM","EXTRA_SMALL","COMPACT"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { hasMouse as _hasMouse } from '@vkontakte/vkjs';\nimport { AdaptivityContext, AdaptivityContextInterface, SizeType, ViewHeight, ViewWidth } from './AdaptivityContext';\nimport { useDOM } from '../../lib/dom';\n\nexport interface AdaptivityProviderProps extends AdaptivityContextInterface {\n children?: React.ReactNode;\n}\n\nexport const DESKTOP_SIZE = 1280;\nexport const TABLET_SIZE = 1024;\nexport const SMALL_TABLET_SIZE = 768;\nexport const MOBILE_SIZE = 320;\n\nexport const MOBILE_LANDSCAPE_HEIGHT = 414;\nexport const MEDIUM_HEIGHT = 720;\n\nexport default function AdaptivityProvider(props: AdaptivityProviderProps) {\n const adaptivityRef = React.useRef<AdaptivityContextInterface>(null);\n const [, updateAdaptivity] = React.useState({});\n\n const { window } = useDOM();\n\n if (!adaptivityRef.current) {\n adaptivityRef.current = calculateAdaptivity(\n window ? window.innerWidth : 0,\n window ? window.innerHeight : 0,\n props,\n );\n }\n\n React.useEffect(() => {\n function onResize() {\n const calculated = calculateAdaptivity(window.innerWidth, window.innerHeight, props);\n const { viewWidth, viewHeight, sizeX, sizeY, hasMouse } = adaptivityRef.current;\n\n if (\n viewWidth !== calculated.viewWidth ||\n viewHeight !== calculated.viewHeight ||\n sizeX !== calculated.sizeX ||\n sizeY !== calculated.sizeY ||\n hasMouse !== calculated.hasMouse\n ) {\n adaptivityRef.current = calculated;\n updateAdaptivity({});\n }\n }\n\n onResize();\n window.addEventListener('resize', onResize, false);\n\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }, [props.viewWidth, props.viewHeight, props.sizeX, props.sizeY, props.hasMouse]);\n\n return (\n <AdaptivityContext.Provider value={adaptivityRef.current}>\n {props.children}\n </AdaptivityContext.Provider>\n );\n}\n\nfunction calculateAdaptivity(windowWidth: number, windowHeight: number, props: AdaptivityProviderProps) {\n let viewWidth = ViewWidth.SMALL_MOBILE;\n let viewHeight = ViewHeight.SMALL;\n let sizeY = SizeType.REGULAR;\n let sizeX = SizeType.REGULAR;\n let hasMouse = typeof props.hasMouse === 'boolean' ? props.hasMouse : _hasMouse;\n\n if (windowWidth >= DESKTOP_SIZE) {\n viewWidth = ViewWidth.DESKTOP;\n } else if (windowWidth >= TABLET_SIZE) {\n viewWidth = ViewWidth.TABLET;\n } else if (windowWidth >= SMALL_TABLET_SIZE) {\n viewWidth = ViewWidth.SMALL_TABLET;\n } else if (windowWidth >= MOBILE_SIZE) {\n viewWidth = ViewWidth.MOBILE;\n } else {\n viewWidth = ViewWidth.SMALL_MOBILE;\n }\n\n if (windowHeight >= MEDIUM_HEIGHT) {\n viewHeight = ViewHeight.MEDIUM;\n } else if (windowHeight > MOBILE_LANDSCAPE_HEIGHT) {\n viewHeight = ViewHeight.SMALL;\n } else {\n viewHeight = ViewHeight.EXTRA_SMALL;\n }\n\n props.viewWidth && (viewWidth = props.viewWidth);\n props.viewHeight && (viewHeight = props.viewHeight);\n\n if (viewWidth <= ViewWidth.MOBILE) {\n sizeX = SizeType.COMPACT;\n }\n\n if (viewWidth >= ViewWidth.SMALL_TABLET && hasMouse || viewHeight <= ViewHeight.EXTRA_SMALL) {\n sizeY = SizeType.COMPACT;\n }\n\n props.sizeX && (sizeX = props.sizeX);\n props.sizeY && (sizeY = props.sizeY);\n\n return { viewWidth, viewHeight, sizeX, sizeY, hasMouse };\n}\n"],"file":"AdaptivityProvider.js"}
1
+ {"version":3,"sources":["../../../../src/components/AdaptivityProvider/AdaptivityProvider.tsx"],"names":["DESKTOP_SIZE","TABLET_SIZE","SMALL_TABLET_SIZE","MOBILE_SIZE","MOBILE_LANDSCAPE_HEIGHT","MEDIUM_HEIGHT","AdaptivityProvider","props","adaptivityRef","React","useRef","useState","updateAdaptivity","window","current","calculateAdaptivity","innerWidth","innerHeight","useEffect","onResize","calculated","viewWidth","viewHeight","sizeX","sizeY","hasMouse","deviceHasHover","addEventListener","removeEventListener","children","windowWidth","windowHeight","ViewWidth","SMALL_MOBILE","ViewHeight","SMALL","SizeType","REGULAR","_hasMouse","_hasHover","DESKTOP","TABLET","SMALL_TABLET","MOBILE","MEDIUM","EXTRA_SMALL","COMPACT"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { hasMouse as _hasMouse, hasHover as _hasHover } from '@vkontakte/vkjs';\nimport { AdaptivityContext, AdaptivityContextInterface, SizeType, ViewHeight, ViewWidth } from './AdaptivityContext';\nimport { useDOM } from '../../lib/dom';\n\nexport interface AdaptivityProviderProps extends AdaptivityContextInterface {\n children?: React.ReactNode;\n}\n\nexport const DESKTOP_SIZE = 1280;\nexport const TABLET_SIZE = 1024;\nexport const SMALL_TABLET_SIZE = 768;\nexport const MOBILE_SIZE = 320;\n\nexport const MOBILE_LANDSCAPE_HEIGHT = 414;\nexport const MEDIUM_HEIGHT = 720;\n\nexport default function AdaptivityProvider(props: AdaptivityProviderProps) {\n const adaptivityRef = React.useRef<AdaptivityContextInterface>(null);\n const [, updateAdaptivity] = React.useState({});\n\n const { window } = useDOM();\n\n if (!adaptivityRef.current) {\n adaptivityRef.current = calculateAdaptivity(\n window ? window.innerWidth : 0,\n window ? window.innerHeight : 0,\n props,\n );\n }\n\n React.useEffect(() => {\n function onResize() {\n const calculated = calculateAdaptivity(window.innerWidth, window.innerHeight, props);\n const { viewWidth, viewHeight, sizeX, sizeY, hasMouse, deviceHasHover } = adaptivityRef.current;\n\n if (\n viewWidth !== calculated.viewWidth ||\n viewHeight !== calculated.viewHeight ||\n sizeX !== calculated.sizeX ||\n sizeY !== calculated.sizeY ||\n hasMouse !== calculated.hasMouse ||\n deviceHasHover !== calculated.deviceHasHover\n ) {\n adaptivityRef.current = calculated;\n updateAdaptivity({});\n }\n }\n\n onResize();\n window.addEventListener('resize', onResize, false);\n\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }, [props.viewWidth, props.viewHeight, props.sizeX, props.sizeY, props.hasMouse, props.deviceHasHover]);\n\n return (\n <AdaptivityContext.Provider value={adaptivityRef.current}>\n {props.children}\n </AdaptivityContext.Provider>\n );\n}\n\nfunction calculateAdaptivity(windowWidth: number, windowHeight: number, props: AdaptivityProviderProps) {\n let viewWidth = ViewWidth.SMALL_MOBILE;\n let viewHeight = ViewHeight.SMALL;\n let sizeY = SizeType.REGULAR;\n let sizeX = SizeType.REGULAR;\n let hasMouse = props.hasMouse ?? _hasMouse;\n let deviceHasHover = props.deviceHasHover ?? _hasHover;\n\n if (windowWidth >= DESKTOP_SIZE) {\n viewWidth = ViewWidth.DESKTOP;\n } else if (windowWidth >= TABLET_SIZE) {\n viewWidth = ViewWidth.TABLET;\n } else if (windowWidth >= SMALL_TABLET_SIZE) {\n viewWidth = ViewWidth.SMALL_TABLET;\n } else if (windowWidth >= MOBILE_SIZE) {\n viewWidth = ViewWidth.MOBILE;\n } else {\n viewWidth = ViewWidth.SMALL_MOBILE;\n }\n\n if (windowHeight >= MEDIUM_HEIGHT) {\n viewHeight = ViewHeight.MEDIUM;\n } else if (windowHeight > MOBILE_LANDSCAPE_HEIGHT) {\n viewHeight = ViewHeight.SMALL;\n } else {\n viewHeight = ViewHeight.EXTRA_SMALL;\n }\n\n props.viewWidth && (viewWidth = props.viewWidth);\n props.viewHeight && (viewHeight = props.viewHeight);\n\n if (viewWidth <= ViewWidth.MOBILE) {\n sizeX = SizeType.COMPACT;\n }\n\n if (viewWidth >= ViewWidth.SMALL_TABLET && hasMouse || viewHeight <= ViewHeight.EXTRA_SMALL) {\n sizeY = SizeType.COMPACT;\n }\n\n props.sizeX && (sizeX = props.sizeX);\n props.sizeY && (sizeY = props.sizeY);\n\n return { viewWidth, viewHeight, sizeX, sizeY, hasMouse, deviceHasHover };\n}\n"],"file":"AdaptivityProvider.js"}
@@ -96,16 +96,12 @@ var AppRoot = (0, _withAdaptivity.withAdaptivity)(function (_ref) {
96
96
 
97
97
 
98
98
  (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
99
- if (mode === 'full') {
100
- return _utils.noop;
101
- }
102
-
103
99
  var portal = document.createElement('div');
104
100
  portal.classList.add('vkui__portal-root');
105
101
  document.body.appendChild(portal);
106
102
  setPortalRoot(portal);
107
103
  return function () {
108
- return portal.parentElement.removeChild(portal);
104
+ portal.parentElement.removeChild(portal);
109
105
  };
110
106
  }, []); // setup root classes
111
107
 
@@ -176,7 +172,8 @@ var AppRoot = (0, _withAdaptivity.withAdaptivity)(function (_ref) {
176
172
  appRoot: rootRef,
177
173
  portalRoot: portalRoot,
178
174
  embedded: mode === 'embedded',
179
- keyboardInput: isKeyboardInputActive
175
+ keyboardInput: isKeyboardInputActive,
176
+ mode: mode
180
177
  }
181
178
  }, (0, _jsxRuntime.createScopedElement)(_ScrollContext.ScrollContext.Provider, {
182
179
  value: scrollController
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"names":["warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","props","isKeyboardInputActive","rootRef","React","useRef","useState","portalRoot","setPortalRoot","window","document","insets","initialized","current","documentElement","classList","add","classScopingMode","noConflict","process","env","NODE_ENV","noop","portal","createElement","body","appendChild","parentElement","removeChild","parent","classes","concat","remove","key","hasOwnProperty","inset","style","setProperty","removeProperty","SizeType","REGULAR","container","scrollController","useMemo","content","appRoot","keyboardInput"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../../lib/dom';\nimport { classNames } from '../../lib/classNames';\nimport { AppRootContext } from './AppRootContext';\nimport { withAdaptivity, SizeType, AdaptivityProps } from '../../hoc/withAdaptivity';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { classScopingMode } from '../../lib/classScopingMode';\nimport { IconSettingsProvider } from '@vkontakte/icons';\nimport { elementScrollController, globalScrollController, ScrollContext, ScrollContextInterface } from './ScrollContext';\nimport { noop } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useKeyboardInputTracker } from '../../hooks/useKeyboardInputTracker';\nimport { useInsets } from '../../hooks/useInsets';\nimport { Insets } from '@vkontakte/vk-bridge';\nimport './AppRoot.css';\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps extends React.HTMLAttributes<HTMLDivElement>, Pick<AdaptivityProps, 'sizeX' | 'hasMouse'> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: 'partial' | 'embedded' | 'full';\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: 'global' | 'contain';\n}\n\nconst warn = warnOnce('AppRoot');\nexport const AppRoot: React.FC<AppRootProps> = withAdaptivity(({\n children, mode: _mode, embedded: _embedded, sizeX, hasMouse, noLegacyClasses = false, scroll = 'global',\n ...props\n}: AppRootProps) => {\n // normalize mode\n const mode = _mode || (_embedded ? 'embedded' : 'full');\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement>();\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement>(null);\n const { window, document } = useDOM();\n const insets = useInsets();\n\n const initialized = React.useRef(false);\n if (!initialized.current) {\n if (window && mode === 'full') {\n document.documentElement.classList.add('vkui');\n }\n classScopingMode.noConflict = noLegacyClasses;\n initialized.current = true;\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (scroll !== 'global' && mode !== 'embedded') {\n warn('Scroll modes only supported in embedded mode');\n }\n if (_mode && _embedded) {\n warn(`mode=\"${mode}\" overrides embedded`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n if (mode === 'full') {\n return noop;\n }\n\n const portal = document.createElement('div');\n portal.classList.add('vkui__portal-root');\n document.body.appendChild(portal);\n setPortalRoot(portal);\n return () => portal.parentElement.removeChild(portal);\n }, []);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial') {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n const classes = ['vkui__root'].concat(mode === 'embedded' ? 'vkui__root--embedded' : []);\n parent.classList.add(...classes);\n\n return () => {\n parent.classList.remove(...classes);\n if (mode === 'full') {\n document.documentElement.classList.remove('vkui');\n }\n };\n }, []);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial') {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (insets.hasOwnProperty(key) && typeof insets[key as keyof Insets] === 'number') {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot && portalRoot.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot && portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial' || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container = mode === 'embedded' ? rootRef.current.parentElement : document.body;\n container.classList.add('vkui--sizeX-regular');\n return () => container.classList.remove('vkui--sizeX-regular');\n }, [sizeX]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () => scroll === 'contain' ? elementScrollController(rootRef) : globalScrollController(window, document),\n [scroll]);\n\n const content = (\n <AppRootContext.Provider value={{\n appRoot: rootRef,\n portalRoot: portalRoot,\n embedded: mode === 'embedded',\n keyboardInput: isKeyboardInputActive,\n }}>\n <ScrollContext.Provider value={scrollController}>\n <IconSettingsProvider classPrefix=\"vkui\" globalClasses={!noLegacyClasses}>\n {children}\n </IconSettingsProvider>\n </ScrollContext.Provider>\n </AppRootContext.Provider>\n );\n\n return mode === 'partial' ? content : (\n <div ref={rootRef} vkuiClass={classNames('AppRoot', {\n 'AppRoot--no-mouse': !hasMouse,\n 'AppRoot--keyboard-input': isKeyboardInputActive,\n })} {...props}>\n {content}\n </div>\n );\n}, {\n sizeX: true,\n hasMouse: true,\n});\n\nexport default AppRoot;\n"],"file":"AppRoot.js"}
1
+ {"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"names":["warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","props","isKeyboardInputActive","rootRef","React","useRef","useState","portalRoot","setPortalRoot","window","document","insets","initialized","current","documentElement","classList","add","classScopingMode","noConflict","process","env","NODE_ENV","portal","createElement","body","appendChild","parentElement","removeChild","noop","parent","classes","concat","remove","key","hasOwnProperty","inset","style","setProperty","removeProperty","SizeType","REGULAR","container","scrollController","useMemo","content","appRoot","keyboardInput"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../../lib/dom';\nimport { classNames } from '../../lib/classNames';\nimport { AppRootContext } from './AppRootContext';\nimport { withAdaptivity, SizeType, AdaptivityProps } from '../../hoc/withAdaptivity';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { classScopingMode } from '../../lib/classScopingMode';\nimport { IconSettingsProvider } from '@vkontakte/icons';\nimport { elementScrollController, globalScrollController, ScrollContext, ScrollContextInterface } from './ScrollContext';\nimport { noop } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useKeyboardInputTracker } from '../../hooks/useKeyboardInputTracker';\nimport { useInsets } from '../../hooks/useInsets';\nimport { Insets } from '@vkontakte/vk-bridge';\nimport './AppRoot.css';\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps extends React.HTMLAttributes<HTMLDivElement>, Pick<AdaptivityProps, 'sizeX' | 'hasMouse'> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: 'partial' | 'embedded' | 'full';\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: 'global' | 'contain';\n}\n\nconst warn = warnOnce('AppRoot');\nexport const AppRoot: React.FC<AppRootProps> = withAdaptivity(({\n children, mode: _mode, embedded: _embedded, sizeX, hasMouse, noLegacyClasses = false, scroll = 'global',\n ...props\n}: AppRootProps) => {\n // normalize mode\n const mode = _mode || (_embedded ? 'embedded' : 'full');\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement>();\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement>(null);\n const { window, document } = useDOM();\n const insets = useInsets();\n\n const initialized = React.useRef(false);\n if (!initialized.current) {\n if (window && mode === 'full') {\n document.documentElement.classList.add('vkui');\n }\n classScopingMode.noConflict = noLegacyClasses;\n initialized.current = true;\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (scroll !== 'global' && mode !== 'embedded') {\n warn('Scroll modes only supported in embedded mode');\n }\n if (_mode && _embedded) {\n warn(`mode=\"${mode}\" overrides embedded`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n const portal = document.createElement('div');\n portal.classList.add('vkui__portal-root');\n document.body.appendChild(portal);\n setPortalRoot(portal);\n return () => {\n portal.parentElement.removeChild(portal);\n };\n }, []);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial') {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n const classes = ['vkui__root'].concat(mode === 'embedded' ? 'vkui__root--embedded' : []);\n parent.classList.add(...classes);\n\n return () => {\n parent.classList.remove(...classes);\n if (mode === 'full') {\n document.documentElement.classList.remove('vkui');\n }\n };\n }, []);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial') {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (insets.hasOwnProperty(key) && typeof insets[key as keyof Insets] === 'number') {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot && portalRoot.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot && portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial' || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container = mode === 'embedded' ? rootRef.current.parentElement : document.body;\n container.classList.add('vkui--sizeX-regular');\n return () => container.classList.remove('vkui--sizeX-regular');\n }, [sizeX]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () => scroll === 'contain' ? elementScrollController(rootRef) : globalScrollController(window, document),\n [scroll]);\n\n const content = (\n <AppRootContext.Provider value={{\n appRoot: rootRef,\n portalRoot: portalRoot,\n embedded: mode === 'embedded',\n keyboardInput: isKeyboardInputActive,\n mode,\n }}>\n <ScrollContext.Provider value={scrollController}>\n <IconSettingsProvider classPrefix=\"vkui\" globalClasses={!noLegacyClasses}>\n {children}\n </IconSettingsProvider>\n </ScrollContext.Provider>\n </AppRootContext.Provider>\n );\n\n return mode === 'partial' ? content : (\n <div ref={rootRef} vkuiClass={classNames('AppRoot', {\n 'AppRoot--no-mouse': !hasMouse,\n 'AppRoot--keyboard-input': isKeyboardInputActive,\n })} {...props}>\n {content}\n </div>\n );\n}, {\n sizeX: true,\n hasMouse: true,\n});\n\nexport default AppRoot;\n"],"file":"AppRoot.js"}
@@ -3,6 +3,7 @@ export interface AppRootContextInterface {
3
3
  appRoot?: React.RefObject<HTMLDivElement>;
4
4
  portalRoot?: HTMLDivElement;
5
5
  embedded?: boolean;
6
+ mode?: 'partial' | 'embedded' | 'full';
6
7
  keyboardInput?: boolean;
7
8
  }
8
9
  export declare const AppRootContext: React.Context<AppRootContextInterface>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/AppRoot/AppRootContext.ts"],"names":["AppRootContext","React","createContext","portalRoot"],"mappings":";;;;;;;;;AAAA;;AASO,IAAMA,cAAc,gBAAGC,KAAK,CAACC,aAAN,CAA6C;AACzEC,EAAAA,UAAU,EAAE;AAD6D,CAA7C,CAAvB","sourcesContent":["import * as React from 'react';\n\nexport interface AppRootContextInterface {\n appRoot?: React.RefObject<HTMLDivElement>;\n portalRoot?: HTMLDivElement;\n embedded?: boolean;\n keyboardInput?: boolean;\n}\n\nexport const AppRootContext = React.createContext<AppRootContextInterface>({\n portalRoot: null,\n});\n"],"file":"AppRootContext.js"}
1
+ {"version":3,"sources":["../../../../src/components/AppRoot/AppRootContext.ts"],"names":["AppRootContext","React","createContext","portalRoot"],"mappings":";;;;;;;;;AAAA;;AAUO,IAAMA,cAAc,gBAAGC,KAAK,CAACC,aAAN,CAA6C;AACzEC,EAAAA,UAAU,EAAE;AAD6D,CAA7C,CAAvB","sourcesContent":["import * as React from 'react';\n\nexport interface AppRootContextInterface {\n appRoot?: React.RefObject<HTMLDivElement>;\n portalRoot?: HTMLDivElement;\n embedded?: boolean;\n mode?: 'partial' | 'embedded' | 'full';\n keyboardInput?: boolean;\n}\n\nexport const AppRootContext = React.createContext<AppRootContextInterface>({\n portalRoot: null,\n});\n"],"file":"AppRootContext.js"}
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
2
  export declare const AppRootPortal: React.FC<React.PropsWithChildren<{
3
3
  className?: string;
4
+ forcePortal?: boolean;
4
5
  }>>;
@@ -16,14 +16,18 @@ var _reactDom = require("react-dom");
16
16
  var _AppRootContext = require("./AppRootContext");
17
17
 
18
18
  var AppRootPortal = function AppRootPortal(_ref) {
19
+ var _forcePortal;
20
+
19
21
  var children = _ref.children,
20
- className = _ref.className;
22
+ className = _ref.className,
23
+ forcePortal = _ref.forcePortal;
21
24
 
22
25
  var _React$useContext = React.useContext(_AppRootContext.AppRootContext),
23
26
  portalRoot = _React$useContext.portalRoot,
24
- embedded = _React$useContext.embedded;
27
+ mode = _React$useContext.mode;
25
28
 
26
- return embedded && portalRoot ? /*#__PURE__*/(0, _reactDom.createPortal)((0, _jsxRuntime.createScopedElement)("div", {
29
+ forcePortal = (_forcePortal = forcePortal) !== null && _forcePortal !== void 0 ? _forcePortal : mode !== 'full';
30
+ return portalRoot && forcePortal ? /*#__PURE__*/(0, _reactDom.createPortal)((0, _jsxRuntime.createScopedElement)("div", {
27
31
  className: className
28
32
  }, children), portalRoot) : (0, _jsxRuntime.createScopedElement)(React.Fragment, null, children);
29
33
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/AppRoot/AppRootPortal.tsx"],"names":["AppRootPortal","children","className","React","useContext","AppRootContext","portalRoot","embedded"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEO,IAAMA,aAAwE,GAAG,SAA3EA,aAA2E,OAA6B;AAAA,MAA1BC,QAA0B,QAA1BA,QAA0B;AAAA,MAAhBC,SAAgB,QAAhBA,SAAgB;;AACnH,0BAAiCC,KAAK,CAACC,UAAN,CAAiBC,8BAAjB,CAAjC;AAAA,MAAQC,UAAR,qBAAQA,UAAR;AAAA,MAAoBC,QAApB,qBAAoBA,QAApB;;AACA,SAAOA,QAAQ,IAAID,UAAZ,gBACH,4BAAc;AAAK,IAAA,SAAS,EAAEJ;AAAhB,KAA4BD,QAA5B,CAAd,EAA4DK,UAA5D,CADG,GAEH,qCAAC,KAAD,CAAO,QAAP,QAAiBL,QAAjB,CAFJ;AAGD,CALM","sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { AppRootContext } from './AppRootContext';\n\nexport const AppRootPortal: React.FC<React.PropsWithChildren<{ className?: string }>> = ({ children, className }) => {\n const { portalRoot, embedded } = React.useContext(AppRootContext);\n return embedded && portalRoot\n ? createPortal((<div className={className}>{children}</div>), portalRoot)\n : <React.Fragment>{children}</React.Fragment>;\n};\n"],"file":"AppRootPortal.js"}
1
+ {"version":3,"sources":["../../../../src/components/AppRoot/AppRootPortal.tsx"],"names":["AppRootPortal","children","className","forcePortal","React","useContext","AppRootContext","portalRoot","mode"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEO,IAAMA,aAA+F,GAAG,SAAlGA,aAAkG,OAA0C;AAAA;;AAAA,MAAvCC,QAAuC,QAAvCA,QAAuC;AAAA,MAA7BC,SAA6B,QAA7BA,SAA6B;AAAA,MAAlBC,WAAkB,QAAlBA,WAAkB;;AACvJ,0BAA6BC,KAAK,CAACC,UAAN,CAAiBC,8BAAjB,CAA7B;AAAA,MAAQC,UAAR,qBAAQA,UAAR;AAAA,MAAoBC,IAApB,qBAAoBA,IAApB;;AAEAL,EAAAA,WAAW,mBAAGA,WAAH,uDAAkBK,IAAI,KAAK,MAAtC;AACA,SAAOD,UAAU,IAAIJ,WAAd,gBACH,4BAAc;AAAK,IAAA,SAAS,EAAED;AAAhB,KAA4BD,QAA5B,CAAd,EAA4DM,UAA5D,CADG,GAEH,qCAAC,KAAD,CAAO,QAAP,QAAiBN,QAAjB,CAFJ;AAGD,CAPM","sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { AppRootContext } from './AppRootContext';\n\nexport const AppRootPortal: React.FC<React.PropsWithChildren<{ className?: string; forcePortal?: boolean }>> = ({ children, className, forcePortal }) => {\n const { portalRoot, mode } = React.useContext(AppRootContext);\n\n forcePortal = forcePortal ?? mode !== 'full';\n return portalRoot && forcePortal\n ? createPortal((<div className={className}>{children}</div>), portalRoot)\n : <React.Fragment>{children}</React.Fragment>;\n};\n"],"file":"AppRootPortal.js"}
@@ -39,7 +39,7 @@ var _CellDragger = require("./CellDragger/CellDragger");
39
39
 
40
40
  var _CellCheckbox = require("./CellCheckbox/CellCheckbox");
41
41
 
42
- var _excluded = ["mode", "onRemove", "removePlaceholder", "onDragFinish", "before", "after", "disabled", "removable", "draggable", "selectable", "Component", "onChange", "name", "checked", "defaultChecked", "getRootRef", "draggerLabel", "className", "style"],
42
+ var _excluded = ["mode", "onRemove", "removePlaceholder", "onDragFinish", "before", "after", "disabled", "removable", "draggable", "selectable", "Component", "onChange", "name", "value", "checked", "defaultChecked", "getRootRef", "draggerLabel", "className", "style"],
43
43
  _excluded2 = ["dragging", "rootElRef"];
44
44
  var warn = (0, _warnOnce.warnOnce)('Cell');
45
45
 
@@ -58,6 +58,7 @@ var Cell = function Cell(_ref) {
58
58
  Component = _ref.Component,
59
59
  onChange = _ref.onChange,
60
60
  name = _ref.name,
61
+ value = _ref.value,
61
62
  checked = _ref.checked,
62
63
  defaultChecked = _ref.defaultChecked,
63
64
  getRootRef = _ref.getRootRef,
@@ -117,6 +118,7 @@ var Cell = function Cell(_ref) {
117
118
  if (selectable) {
118
119
  var checkboxProps = {
119
120
  name: name,
121
+ value: value,
120
122
  onChange: onChange,
121
123
  defaultChecked: defaultChecked,
122
124
  checked: checked,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Cell/Cell.tsx"],"names":["warn","Cell","propsMode","mode","onRemove","removePlaceholder","onDragFinish","before","after","disabled","deprecatedRemovable","removable","draggable","deprecatedSelectable","selectable","Component","onChange","name","checked","defaultChecked","getRootRef","draggerLabel","className","style","restProps","process","env","NODE_ENV","platform","dragging","rootElRef","draggableProps","React","useContext","ListContext","toggleDrag","useEffect","undefined","dragger","checkbox","checkboxProps","simpleCellDisabled","hasActive","cellClasses","simpleCell","ANDROID","VKCOM","IOS","e","current"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { getClassName } from '../../helpers/getClassName';\nimport { ANDROID, IOS, VKCOM } from '../../lib/platform';\nimport SimpleCell, { SimpleCellProps } from '../SimpleCell/SimpleCell';\nimport { HasPlatform } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useDraggable } from './useDraggable';\nimport { ListContext } from '../List/ListContext';\nimport { CellDragger } from './CellDragger/CellDragger';\nimport { CellCheckbox, CellCheckboxProps } from './CellCheckbox/CellCheckbox';\nimport './Cell.css';\n\nexport interface CellProps extends SimpleCellProps, HasPlatform, RemovableProps {\n mode?: 'removable' | 'selectable';\n /**\n * В режиме перетаскивания ячейка перестает быть кликабельной, то есть при клике переданный onClick вызываться не будет\n */\n draggable?: boolean;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте mode=\"removable\"\n */\n removable?: boolean;\n /**\n * Имя для input в режиме selectable\n */\n name?: string;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте mode=\"selectable\"\n */\n selectable?: boolean;\n /**\n * В режиме selectable реагирует на входящие значения пропса cheсked, как зависящий напрямую от входящего значения\n */\n checked?: boolean;\n /**\n * В режиме selectable реагирует на входящие значения пропса defaultChecked как неконтролируемый компонент\n */\n defaultChecked?: boolean;\n /**\n * Коллбэк срабатывает при завершении перетаскивания.\n * **Важно:** режим перетаскивания не меняет порядок ячеек в DOM. В коллбэке есть объект с полями `from` и `to`.\n * Эти числа нужны для того, чтобы разработчик понимал, с какого индекса на какой произошел переход. В песочнице\n * есть рабочий пример с обработкой этих чисел и перерисовкой списка.\n */\n onDragFinish?: ({ from, to }: { from: number; to: number }) => void;\n /**\n * aria-label для кнопки перетаскивания ячейки\n */\n draggerLabel?: string;\n}\n\nconst warn = warnOnce('Cell');\nexport const Cell: React.FC<CellProps> = ({\n mode: propsMode, // TODO: убрать переименование в propsMode перед 5.0.0\n onRemove,\n removePlaceholder = 'Удалить',\n onDragFinish,\n before,\n after,\n disabled,\n removable: deprecatedRemovable, // TODO: удалить перед 5.0.0\n draggable,\n selectable: deprecatedSelectable, // TODO: удалить перед 5.0.0\n Component,\n onChange,\n name,\n checked,\n defaultChecked,\n getRootRef,\n draggerLabel = 'Перенести ячейку',\n className,\n style,\n ...restProps\n}: CellProps) => {\n // TODO: удалить перед 5.0.0\n let mode: CellProps['mode'] = propsMode;\n\n if (!propsMode && (deprecatedSelectable || deprecatedRemovable)) {\n mode = deprecatedSelectable\n ? 'selectable'\n : 'removable';\n\n if (process.env.NODE_ENV === 'development') {\n deprecatedSelectable && warn('Свойство selectable устарелo и будет удалено в 5.0.0. Используйте mode=\"selectable\".');\n deprecatedRemovable && warn('Свойство removable устарелo и будет удалено в 5.0.0. Используйте mode=\"removable\".');\n }\n }\n // /end TODO\n\n const selectable = mode === 'selectable';\n const removable = mode === 'removable';\n\n const platform = usePlatform();\n\n const { dragging, rootElRef, ...draggableProps } = useDraggable({ onDragFinish });\n\n const { toggleDrag } = React.useContext(ListContext);\n React.useEffect(() => {\n if (dragging) {\n toggleDrag(true);\n return () => toggleDrag(false);\n }\n return undefined;\n }, [dragging]);\n\n let dragger;\n if (draggable) {\n dragger = <CellDragger vkuiClass=\"Cell__dragger\" aria-label={draggerLabel} {...draggableProps} />;\n }\n\n let checkbox;\n if (selectable) {\n const checkboxProps: CellCheckboxProps = { name, onChange, defaultChecked, checked, disabled };\n checkbox = <CellCheckbox vkuiClass=\"Cell__checkbox\" {...checkboxProps} />;\n }\n\n const simpleCellDisabled = draggable && !selectable || removable || disabled;\n const hasActive = !simpleCellDisabled && !dragging;\n\n const cellClasses = classNames(getClassName('Cell', platform), {\n 'Cell--dragging': dragging,\n 'Cell--removable': removable,\n 'Cell--selectable': selectable,\n 'Cell--disabled': disabled,\n });\n\n const simpleCell = (\n <SimpleCell\n hasActive={hasActive}\n hasHover={hasActive}\n {...restProps}\n vkuiClass=\"Cell__content\"\n disabled={simpleCellDisabled}\n Component={selectable ? 'label' : Component}\n before={\n <React.Fragment>\n {draggable && (platform === ANDROID || platform === VKCOM) && dragger}\n {selectable && checkbox}\n {before}\n </React.Fragment>\n }\n after={\n <React.Fragment>\n {draggable && platform === IOS && dragger}\n {after}\n </React.Fragment>\n }\n />\n );\n\n if (removable) {\n return (\n <Removable\n vkuiClass={cellClasses}\n className={className}\n style={style}\n getRootRef={rootElRef}\n removePlaceholder={removePlaceholder}\n onRemove={(e) => onRemove(e, rootElRef?.current)}\n >\n {simpleCell}\n </Removable>\n );\n }\n\n return (\n <div\n vkuiClass={cellClasses}\n className={className}\n style={style}\n ref={rootElRef}\n >\n {simpleCell}\n </div>\n );\n};\n"],"file":"Cell.js"}
1
+ {"version":3,"sources":["../../../../src/components/Cell/Cell.tsx"],"names":["warn","Cell","propsMode","mode","onRemove","removePlaceholder","onDragFinish","before","after","disabled","deprecatedRemovable","removable","draggable","deprecatedSelectable","selectable","Component","onChange","name","value","checked","defaultChecked","getRootRef","draggerLabel","className","style","restProps","process","env","NODE_ENV","platform","dragging","rootElRef","draggableProps","React","useContext","ListContext","toggleDrag","useEffect","undefined","dragger","checkbox","checkboxProps","simpleCellDisabled","hasActive","cellClasses","simpleCell","ANDROID","VKCOM","IOS","e","current"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AA0CA,IAAMA,IAAI,GAAG,wBAAS,MAAT,CAAb;;AACO,IAAMC,IAAyB,GAAG,SAA5BA,IAA4B,OAsBxB;AAAA,MArBTC,SAqBS,QArBfC,IAqBe;AAAA,MApBfC,SAoBe,QApBfA,QAoBe;AAAA,mCAnBfC,iBAmBe;AAAA,MAnBfA,iBAmBe,sCAnBK,SAmBL;AAAA,MAlBfC,YAkBe,QAlBfA,YAkBe;AAAA,MAjBfC,MAiBe,QAjBfA,MAiBe;AAAA,MAhBfC,KAgBe,QAhBfA,KAgBe;AAAA,MAffC,QAee,QAffA,QAee;AAAA,MAdJC,mBAcI,QAdfC,SAce;AAAA,MAbfC,SAae,QAbfA,SAae;AAAA,MAZHC,oBAYG,QAZfC,UAYe;AAAA,MAXfC,SAWe,QAXfA,SAWe;AAAA,MAVfC,QAUe,QAVfA,QAUe;AAAA,MATfC,IASe,QATfA,IASe;AAAA,MARfC,KAQe,QARfA,KAQe;AAAA,MAPfC,OAOe,QAPfA,OAOe;AAAA,MANfC,cAMe,QANfA,cAMe;AAAA,MALfC,UAKe,QALfA,UAKe;AAAA,+BAJfC,YAIe;AAAA,MAJfA,YAIe,kCAJA,kBAIA;AAAA,MAHfC,SAGe,QAHfA,SAGe;AAAA,MAFfC,KAEe,QAFfA,KAEe;AAAA,MADZC,SACY;AACf;AACA,MAAItB,IAAuB,GAAGD,SAA9B;;AAEA,MAAI,CAACA,SAAD,KAAeW,oBAAoB,IAAIH,mBAAvC,CAAJ,EAAiE;AAC/DP,IAAAA,IAAI,GAAGU,oBAAoB,GACvB,YADuB,GAEvB,WAFJ;;AAIA,QAAIa,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1Cf,MAAAA,oBAAoB,IAAIb,IAAI,CAAC,sFAAD,CAA5B;AACAU,MAAAA,mBAAmB,IAAIV,IAAI,CAAC,oFAAD,CAA3B;AACD;AACF,GAbc,CAcf;;;AAEA,MAAMc,UAAU,GAAGX,IAAI,KAAK,YAA5B;AACA,MAAMQ,SAAS,GAAGR,IAAI,KAAK,WAA3B;AAEA,MAAM0B,QAAQ,GAAG,+BAAjB;;AAEA,sBAAmD,iCAAa;AAAEvB,IAAAA,YAAY,EAAZA;AAAF,GAAb,CAAnD;AAAA,MAAQwB,QAAR,iBAAQA,QAAR;AAAA,MAAkBC,SAAlB,iBAAkBA,SAAlB;AAAA,MAAgCC,cAAhC;;AAEA,0BAAuBC,KAAK,CAACC,UAAN,CAAiBC,wBAAjB,CAAvB;AAAA,MAAQC,UAAR,qBAAQA,UAAR;;AACAH,EAAAA,KAAK,CAACI,SAAN,CAAgB,YAAM;AACpB,QAAIP,QAAJ,EAAc;AACZM,MAAAA,UAAU,CAAC,IAAD,CAAV;AACA,aAAO;AAAA,eAAMA,UAAU,CAAC,KAAD,CAAhB;AAAA,OAAP;AACD;;AACD,WAAOE,SAAP;AACD,GAND,EAMG,CAACR,QAAD,CANH;AAQA,MAAIS,OAAJ;;AACA,MAAI3B,SAAJ,EAAe;AACb2B,IAAAA,OAAO,GAAG,qCAAC,wBAAD;AAAa,MAAA,SAAS,EAAC,eAAvB;AAAuC,oBAAYjB;AAAnD,OAAqEU,cAArE,EAAV;AACD;;AAED,MAAIQ,QAAJ;;AACA,MAAI1B,UAAJ,EAAgB;AACd,QAAM2B,aAAgC,GAAG;AAAExB,MAAAA,IAAI,EAAJA,IAAF;AAAQC,MAAAA,KAAK,EAALA,KAAR;AAAeF,MAAAA,QAAQ,EAARA,QAAf;AAAyBI,MAAAA,cAAc,EAAdA,cAAzB;AAAyCD,MAAAA,OAAO,EAAPA,OAAzC;AAAkDV,MAAAA,QAAQ,EAARA;AAAlD,KAAzC;AACA+B,IAAAA,QAAQ,GAAG,qCAAC,0BAAD;AAAc,MAAA,SAAS,EAAC;AAAxB,OAA6CC,aAA7C,EAAX;AACD;;AAED,MAAMC,kBAAkB,GAAG9B,SAAS,IAAI,CAACE,UAAd,IAA4BH,SAA5B,IAAyCF,QAApE;AACA,MAAMkC,SAAS,GAAG,CAACD,kBAAD,IAAuB,CAACZ,QAA1C;AAEA,MAAMc,WAAW,GAAG,4BAAW,gCAAa,MAAb,EAAqBf,QAArB,CAAX,EAA2C;AAC7D,sBAAkBC,QAD2C;AAE7D,uBAAmBnB,SAF0C;AAG7D,wBAAoBG,UAHyC;AAI7D,sBAAkBL;AAJ2C,GAA3C,CAApB;AAOA,MAAMoC,UAAU,GACd,qCAAC,mBAAD;AACE,IAAA,SAAS,EAAEF,SADb;AAEE,IAAA,QAAQ,EAAEA;AAFZ,KAGMlB,SAHN;AAIE,IAAA,SAAS,EAAC,eAJZ;AAKE,IAAA,QAAQ,EAAEiB,kBALZ;AAME,IAAA,SAAS,EAAE5B,UAAU,GAAG,OAAH,GAAaC,SANpC;AAOE,IAAA,MAAM,EACJ,qCAAC,KAAD,CAAO,QAAP,QACGH,SAAS,KAAKiB,QAAQ,KAAKiB,iBAAb,IAAwBjB,QAAQ,KAAKkB,eAA1C,CAAT,IAA6DR,OADhE,EAEGzB,UAAU,IAAI0B,QAFjB,EAGGjC,MAHH,CARJ;AAcE,IAAA,KAAK,EACH,qCAAC,KAAD,CAAO,QAAP,QACGK,SAAS,IAAIiB,QAAQ,KAAKmB,aAA1B,IAAiCT,OADpC,EAEG/B,KAFH;AAfJ,KADF;;AAwBA,MAAIG,SAAJ,EAAe;AACb,WACE,qCAAC,oBAAD;AACE,MAAA,SAAS,EAAEiC,WADb;AAEE,MAAA,SAAS,EAAErB,SAFb;AAGE,MAAA,KAAK,EAAEC,KAHT;AAIE,MAAA,UAAU,EAAEO,SAJd;AAKE,MAAA,iBAAiB,EAAE1B,iBALrB;AAME,MAAA,QAAQ,EAAE,kBAAC4C,CAAD;AAAA,eAAO7C,SAAQ,CAAC6C,CAAD,EAAIlB,SAAJ,aAAIA,SAAJ,uBAAIA,SAAS,CAAEmB,OAAf,CAAf;AAAA;AANZ,OAQGL,UARH,CADF;AAYD;;AAED,SACE;AACE,IAAA,SAAS,EAAED,WADb;AAEE,IAAA,SAAS,EAAErB,SAFb;AAGE,IAAA,KAAK,EAAEC,KAHT;AAIE,IAAA,GAAG,EAAEO;AAJP,KAMGc,UANH,CADF;AAUD,CA5HM","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { getClassName } from '../../helpers/getClassName';\nimport { ANDROID, IOS, VKCOM } from '../../lib/platform';\nimport SimpleCell, { SimpleCellProps } from '../SimpleCell/SimpleCell';\nimport { HasPlatform } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useDraggable } from './useDraggable';\nimport { ListContext } from '../List/ListContext';\nimport { CellDragger } from './CellDragger/CellDragger';\nimport { CellCheckbox, CellCheckboxProps } from './CellCheckbox/CellCheckbox';\nimport './Cell.css';\n\nexport interface CellProps extends SimpleCellProps, HasPlatform, RemovableProps {\n mode?: 'removable' | 'selectable';\n /**\n * В режиме перетаскивания ячейка перестает быть кликабельной, то есть при клике переданный onClick вызываться не будет\n */\n draggable?: boolean;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте mode=\"removable\"\n */\n removable?: boolean;\n /**\n * Имя для input в режиме selectable\n */\n name?: string;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте mode=\"selectable\"\n */\n selectable?: boolean;\n /**\n * В режиме selectable реагирует на входящие значения пропса cheсked, как зависящий напрямую от входящего значения\n */\n checked?: boolean;\n /**\n * В режиме selectable реагирует на входящие значения пропса defaultChecked как неконтролируемый компонент\n */\n defaultChecked?: boolean;\n /**\n * Коллбэк срабатывает при завершении перетаскивания.\n * **Важно:** режим перетаскивания не меняет порядок ячеек в DOM. В коллбэке есть объект с полями `from` и `to`.\n * Эти числа нужны для того, чтобы разработчик понимал, с какого индекса на какой произошел переход. В песочнице\n * есть рабочий пример с обработкой этих чисел и перерисовкой списка.\n */\n onDragFinish?: ({ from, to }: { from: number; to: number }) => void;\n /**\n * aria-label для кнопки перетаскивания ячейки\n */\n draggerLabel?: string;\n}\n\nconst warn = warnOnce('Cell');\nexport const Cell: React.FC<CellProps> = ({\n mode: propsMode, // TODO: убрать переименование в propsMode перед 5.0.0\n onRemove,\n removePlaceholder = 'Удалить',\n onDragFinish,\n before,\n after,\n disabled,\n removable: deprecatedRemovable, // TODO: удалить перед 5.0.0\n draggable,\n selectable: deprecatedSelectable, // TODO: удалить перед 5.0.0\n Component,\n onChange,\n name,\n value,\n checked,\n defaultChecked,\n getRootRef,\n draggerLabel = 'Перенести ячейку',\n className,\n style,\n ...restProps\n}: CellProps) => {\n // TODO: удалить перед 5.0.0\n let mode: CellProps['mode'] = propsMode;\n\n if (!propsMode && (deprecatedSelectable || deprecatedRemovable)) {\n mode = deprecatedSelectable\n ? 'selectable'\n : 'removable';\n\n if (process.env.NODE_ENV === 'development') {\n deprecatedSelectable && warn('Свойство selectable устарелo и будет удалено в 5.0.0. Используйте mode=\"selectable\".');\n deprecatedRemovable && warn('Свойство removable устарелo и будет удалено в 5.0.0. Используйте mode=\"removable\".');\n }\n }\n // /end TODO\n\n const selectable = mode === 'selectable';\n const removable = mode === 'removable';\n\n const platform = usePlatform();\n\n const { dragging, rootElRef, ...draggableProps } = useDraggable({ onDragFinish });\n\n const { toggleDrag } = React.useContext(ListContext);\n React.useEffect(() => {\n if (dragging) {\n toggleDrag(true);\n return () => toggleDrag(false);\n }\n return undefined;\n }, [dragging]);\n\n let dragger;\n if (draggable) {\n dragger = <CellDragger vkuiClass=\"Cell__dragger\" aria-label={draggerLabel} {...draggableProps} />;\n }\n\n let checkbox;\n if (selectable) {\n const checkboxProps: CellCheckboxProps = { name, value, onChange, defaultChecked, checked, disabled };\n checkbox = <CellCheckbox vkuiClass=\"Cell__checkbox\" {...checkboxProps} />;\n }\n\n const simpleCellDisabled = draggable && !selectable || removable || disabled;\n const hasActive = !simpleCellDisabled && !dragging;\n\n const cellClasses = classNames(getClassName('Cell', platform), {\n 'Cell--dragging': dragging,\n 'Cell--removable': removable,\n 'Cell--selectable': selectable,\n 'Cell--disabled': disabled,\n });\n\n const simpleCell = (\n <SimpleCell\n hasActive={hasActive}\n hasHover={hasActive}\n {...restProps}\n vkuiClass=\"Cell__content\"\n disabled={simpleCellDisabled}\n Component={selectable ? 'label' : Component}\n before={\n <React.Fragment>\n {draggable && (platform === ANDROID || platform === VKCOM) && dragger}\n {selectable && checkbox}\n {before}\n </React.Fragment>\n }\n after={\n <React.Fragment>\n {draggable && platform === IOS && dragger}\n {after}\n </React.Fragment>\n }\n />\n );\n\n if (removable) {\n return (\n <Removable\n vkuiClass={cellClasses}\n className={className}\n style={style}\n getRootRef={rootElRef}\n removePlaceholder={removePlaceholder}\n onRemove={(e) => onRemove(e, rootElRef?.current)}\n >\n {simpleCell}\n </Removable>\n );\n }\n\n return (\n <div\n vkuiClass={cellClasses}\n className={className}\n style={style}\n ref={rootElRef}\n >\n {simpleCell}\n </div>\n );\n};\n"],"file":"Cell.js"}
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { PopperCommonProps } from '../Popper/Popper';
3
+ export interface ClickPopperProps extends PopperCommonProps {
4
+ /**
5
+ * Содержимое `ClickPopper`
6
+ */
7
+ content?: React.ReactNode;
8
+ /**
9
+ * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства
10
+ */
11
+ shown?: boolean;
12
+ /**
13
+ * Вызывается при каждом изменении видимости тултипа
14
+ */
15
+ onShownChange?: (shown: boolean) => void;
16
+ /**
17
+ * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элемнету компонента
18
+ */
19
+ children?: React.ReactElement;
20
+ }
21
+ export declare const ClickPopper: React.FC<ClickPopperProps>;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.ClickPopper = void 0;
11
+
12
+ var _jsxRuntime = require("../../lib/jsxRuntime");
13
+
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
+
20
+ var React = _interopRequireWildcard(require("react"));
21
+
22
+ var _dom = require("../../lib/dom");
23
+
24
+ var _Popper = require("../Popper/Popper");
25
+
26
+ var _useExternRef = require("../../hooks/useExternRef");
27
+
28
+ var _useEventListener = require("../../hooks/useEventListener");
29
+
30
+ var _useGlobalEventListener = require("../../hooks/useGlobalEventListener");
31
+
32
+ var _usePatchChildrenRef3 = require("../../hooks/usePatchChildrenRef");
33
+
34
+ var _excluded = ["getRef", "content", "children", "onShownChange", "shown"];
35
+
36
+ var ClickPopper = function ClickPopper(_ref) {
37
+ var getRef = _ref.getRef,
38
+ content = _ref.content,
39
+ children = _ref.children,
40
+ onShownChange = _ref.onShownChange,
41
+ _shown = _ref.shown,
42
+ restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
43
+
44
+ var _React$useState = React.useState(_shown || false),
45
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
46
+ computedShown = _React$useState2[0],
47
+ setComputedShown = _React$useState2[1];
48
+
49
+ var _React$useState3 = React.useState(null),
50
+ _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
51
+ dropdownNode = _React$useState4[0],
52
+ setPopperNode = _React$useState4[1];
53
+
54
+ var shown = typeof _shown === 'boolean' ? _shown : computedShown;
55
+
56
+ var _useDOM = (0, _dom.useDOM)(),
57
+ document = _useDOM.document;
58
+
59
+ var patchedPopperRef = (0, _useExternRef.useExternRef)(setPopperNode, getRef);
60
+
61
+ var _usePatchChildrenRef = (0, _usePatchChildrenRef3.usePatchChildrenRef)(children),
62
+ _usePatchChildrenRef2 = (0, _slicedToArray2.default)(_usePatchChildrenRef, 2),
63
+ childRef = _usePatchChildrenRef2[0],
64
+ child = _usePatchChildrenRef2[1];
65
+
66
+ var setShown = function setShown(value) {
67
+ if (typeof _shown !== 'boolean') {
68
+ setComputedShown(value);
69
+ }
70
+
71
+ typeof onShownChange === 'function' && onShownChange(value);
72
+ };
73
+
74
+ (0, _useGlobalEventListener.useGlobalEventListener)(document, 'click', function (e) {
75
+ if (dropdownNode && !childRef.current.contains(e.target) && !dropdownNode.contains(e.target)) {
76
+ setShown(false);
77
+ }
78
+ });
79
+ var targetClickEvent = (0, _useEventListener.useEventListener)('click', function () {
80
+ setShown(!shown);
81
+ });
82
+ React.useEffect(function () {
83
+ targetClickEvent.add(childRef.current);
84
+ }, []);
85
+ return (0, _jsxRuntime.createScopedElement)(React.Fragment, null, child, shown && (0, _jsxRuntime.createScopedElement)(_Popper.Popper, (0, _extends2.default)({}, restProps, {
86
+ targetRef: childRef,
87
+ getRef: patchedPopperRef
88
+ }), content));
89
+ };
90
+
91
+ exports.ClickPopper = ClickPopper;
92
+ //# sourceMappingURL=ClickPopper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ClickPopper/ClickPopper.tsx"],"names":["ClickPopper","getRef","content","children","onShownChange","_shown","shown","restProps","React","useState","computedShown","setComputedShown","dropdownNode","setPopperNode","document","patchedPopperRef","childRef","child","setShown","value","e","current","contains","target","targetClickEvent","useEffect","add"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAqBO,IAAMA,WAAuC,GAAG,SAA1CA,WAA0C,OAO/B;AAAA,MANtBC,MAMsB,QANtBA,MAMsB;AAAA,MALtBC,OAKsB,QALtBA,OAKsB;AAAA,MAJtBC,QAIsB,QAJtBA,QAIsB;AAAA,MAHtBC,aAGsB,QAHtBA,aAGsB;AAAA,MAFfC,MAEe,QAFtBC,KAEsB;AAAA,MADnBC,SACmB;;AACtB,wBAA0CC,KAAK,CAACC,QAAN,CAAeJ,MAAM,IAAI,KAAzB,CAA1C;AAAA;AAAA,MAAOK,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,yBAAsCH,KAAK,CAACC,QAAN,CAAe,IAAf,CAAtC;AAAA;AAAA,MAAOG,YAAP;AAAA,MAAqBC,aAArB;;AAEA,MAAMP,KAAK,GAAG,OAAOD,MAAP,KAAkB,SAAlB,GAA8BA,MAA9B,GAAuCK,aAArD;;AAEA,gBAAqB,kBAArB;AAAA,MAAQI,QAAR,WAAQA,QAAR;;AAEA,MAAMC,gBAAgB,GAAG,gCAAaF,aAAb,EAA4BZ,MAA5B,CAAzB;;AAEA,6BAA0B,+CAAoBE,QAApB,CAA1B;AAAA;AAAA,MAAOa,QAAP;AAAA,MAAiBC,KAAjB;;AAEA,MAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAoB;AACnC,QAAI,OAAOd,MAAP,KAAkB,SAAtB,EAAiC;AAC/BM,MAAAA,gBAAgB,CAACQ,KAAD,CAAhB;AACD;;AACD,WAAOf,aAAP,KAAyB,UAAzB,IAAuCA,aAAa,CAACe,KAAD,CAApD;AACD,GALD;;AAOA,sDAAuBL,QAAvB,EAAiC,OAAjC,EAA0C,UAACM,CAAD,EAAmB;AAC3D,QAAIR,YAAY,IAAI,CAACI,QAAQ,CAACK,OAAT,CAAiBC,QAAjB,CAA0BF,CAAC,CAACG,MAA5B,CAAjB,IAAgE,CAACX,YAAY,CAACU,QAAb,CAAsBF,CAAC,CAACG,MAAxB,CAArE,EAAsG;AACpGL,MAAAA,QAAQ,CAAC,KAAD,CAAR;AACD;AACF,GAJD;AAMA,MAAMM,gBAAgB,GAAG,wCAAiB,OAAjB,EAA0B,YAAM;AACvDN,IAAAA,QAAQ,CAAC,CAACZ,KAAF,CAAR;AACD,GAFwB,CAAzB;AAIAE,EAAAA,KAAK,CAACiB,SAAN,CAAgB,YAAM;AACpBD,IAAAA,gBAAgB,CAACE,GAAjB,CAAqBV,QAAQ,CAACK,OAA9B;AACD,GAFD,EAEG,EAFH;AAIA,SACE,qCAAC,KAAD,CAAO,QAAP,QACGJ,KADH,EAEGX,KAAK,IACJ,qCAAC,cAAD,6BACMC,SADN;AAEE,IAAA,SAAS,EAAES,QAFb;AAGE,IAAA,MAAM,EAAED;AAHV,MAKGb,OALH,CAHJ,CADF;AAcD,CAtDM","sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../../lib/dom';\nimport { Popper, PopperCommonProps } from '../Popper/Popper';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePatchChildrenRef } from '../../hooks/usePatchChildrenRef';\n\nexport interface ClickPopperProps extends PopperCommonProps {\n /**\n * Содержимое `ClickPopper`\n */\n content?: React.ReactNode;\n /**\n * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства\n */\n shown?: boolean;\n /**\n * Вызывается при каждом изменении видимости тултипа\n */\n onShownChange?: (shown: boolean) => void;\n /**\n * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элемнету компонента\n */\n children?: React.ReactElement;\n}\n\nexport const ClickPopper: React.FC<ClickPopperProps> = ({\n getRef,\n content,\n children,\n onShownChange,\n shown: _shown,\n ...restProps\n}: ClickPopperProps) => {\n const [computedShown, setComputedShown] = React.useState(_shown || false);\n const [dropdownNode, setPopperNode] = React.useState(null);\n\n const shown = typeof _shown === 'boolean' ? _shown : computedShown;\n\n const { document } = useDOM();\n\n const patchedPopperRef = useExternRef(setPopperNode, getRef);\n\n const [childRef, child] = usePatchChildrenRef(children);\n\n const setShown = (value: boolean) => {\n if (typeof _shown !== 'boolean') {\n setComputedShown(value);\n }\n typeof onShownChange === 'function' && onShownChange(value);\n };\n\n useGlobalEventListener(document, 'click', (e: MouseEvent) => {\n if (dropdownNode && !childRef.current.contains(e.target as Node) && !dropdownNode.contains(e.target)) {\n setShown(false);\n }\n });\n\n const targetClickEvent = useEventListener('click', () => {\n setShown(!shown);\n });\n\n React.useEffect(() => {\n targetClickEvent.add(childRef.current);\n }, []);\n\n return (\n <React.Fragment>\n {child}\n {shown &&\n <Popper\n {...restProps}\n targetRef={childRef}\n getRef={patchedPopperRef}\n >\n {content}\n </Popper>\n }\n </React.Fragment>\n );\n};\n"],"file":"ClickPopper.js"}
@@ -6,7 +6,15 @@ export declare enum Appearance {
6
6
  LIGHT = "light"
7
7
  }
8
8
  export declare enum Scheme {
9
+ /**
10
+ * @deprecated будет удалено в 5.0.0
11
+ * версия оставлена для совместимости со старыми версиями клиентов
12
+ */
9
13
  DEPRECATED_CLIENT_LIGHT = "client_light",
14
+ /**
15
+ * @deprecated будет удалено в 5.0.0
16
+ * версия оставлена для совместимости со старыми версиями клиентов
17
+ */
10
18
  DEPRECATED_CLIENT_DARK = "client_dark",
11
19
  /**
12
20
  * @deprecated будет удалено в 5.0.0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProviderContext.tsx"],"names":["Appearance","Scheme","WebviewType","defaultConfigProviderProps","webviewType","VKAPPS","isWebView","vkBridge","scheme","BRIGHT_LIGHT","transitionMotionEnabled","platform","ConfigProviderContext","React","createContext"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;IAEYA,U;;;WAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;GAAAA,U,0BAAAA,U;;IAKAC,M;;;WAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;GAAAA,M,sBAAAA,M;;IAiBAC,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W;;AAiCL,IAAMC,0BAA0B,GAAG;AACxCC,EAAAA,WAAW,EAAEF,WAAW,CAACG,MADe;AAExCC,EAAAA,SAAS,EAAEC,kBAASD,SAAT,EAF6B;AAGxCE,EAAAA,MAAM,EAAEP,MAAM,CAACQ,YAHyB;AAIxCC,EAAAA,uBAAuB,EAAE,IAJe;AAKxCC,EAAAA,QAAQ,EAAE,yBAL8B,CAMxC;AACA;;AAPwC,CAAnC;;AAUA,IAAMC,qBAAqB,gBAAGC,KAAK,CAACC,aAAN,CAAoDX,0BAApD,CAA9B","sourcesContent":["import * as React from 'react';\nimport vkBridge, { AppearanceSchemeType, AppearanceType } from '@vkontakte/vk-bridge';\nimport { PlatformType, platform } from '../../lib/platform';\n\nexport enum Appearance {\n DARK = 'dark',\n LIGHT = 'light',\n}\n\nexport enum Scheme {\n DEPRECATED_CLIENT_LIGHT = 'client_light',\n DEPRECATED_CLIENT_DARK = 'client_dark',\n /**\n * @deprecated будет удалено в 5.0.0\n * версия оставлена для совместимости с vkcom, когда там была только одна схема\n */\n VKCOM = 'vkcom',\n\n BRIGHT_LIGHT = 'bright_light',\n SPACE_GRAY = 'space_gray',\n VKCOM_LIGHT = 'vkcom_light',\n VKCOM_DARK = 'vkcom_dark'\n}\n\nexport type AppearanceScheme = AppearanceSchemeType | Scheme.VKCOM | Scheme.VKCOM_DARK | Scheme.VKCOM_LIGHT | 'inherit';\n\nexport enum WebviewType {\n VKAPPS = 'vkapps',\n INTERNAL = 'internal',\n}\n\nexport interface ConfigProviderContextInterface {\n /**\n * Подсказывает приложению, обёрнутому в `ConfigProvider`, где открыто приложение: внутри webview или в мобильном браузере\n */\n isWebView?: boolean;\n /**\n * Тип вебвью.<br>\n * В случае `WebviewType.VKAPPS` интерфейс будет адаптирован для отображения в вебвью Mini Apps (системные контролы в правой части шапки)\n */\n webviewType?: WebviewType.INTERNAL | WebviewType.VKAPPS;\n /**\n * Тип приложения\n */\n app?: string;\n /**\n * Тип цветовой схемы – `light` или `dark`\n */\n appearance?: AppearanceType;\n /**\n * Включена ли анимация переходов между экранами в `Root` и `View`\n */\n transitionMotionEnabled?: boolean;\n /**\n * Платформа\n */\n platform?: PlatformType;\n}\n\nexport const defaultConfigProviderProps = {\n webviewType: WebviewType.VKAPPS,\n isWebView: vkBridge.isWebView(),\n scheme: Scheme.BRIGHT_LIGHT,\n transitionMotionEnabled: true,\n platform: platform(),\n // appearance is auto-detected by default\n // appearance: Appearance.LIGHT,\n};\n\nexport const ConfigProviderContext = React.createContext<ConfigProviderContextInterface>(defaultConfigProviderProps);\n"],"file":"ConfigProviderContext.js"}
1
+ {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProviderContext.tsx"],"names":["Appearance","Scheme","WebviewType","defaultConfigProviderProps","webviewType","VKAPPS","isWebView","vkBridge","scheme","BRIGHT_LIGHT","transitionMotionEnabled","platform","ConfigProviderContext","React","createContext"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;IAEYA,U;;;WAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;GAAAA,U,0BAAAA,U;;IAKAC,M;;;WAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;GAAAA,M,sBAAAA,M;;IAyBAC,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W;;AAiCL,IAAMC,0BAA0B,GAAG;AACxCC,EAAAA,WAAW,EAAEF,WAAW,CAACG,MADe;AAExCC,EAAAA,SAAS,EAAEC,kBAASD,SAAT,EAF6B;AAGxCE,EAAAA,MAAM,EAAEP,MAAM,CAACQ,YAHyB;AAIxCC,EAAAA,uBAAuB,EAAE,IAJe;AAKxCC,EAAAA,QAAQ,EAAE,yBAL8B,CAMxC;AACA;;AAPwC,CAAnC;;AAUA,IAAMC,qBAAqB,gBAAGC,KAAK,CAACC,aAAN,CAAoDX,0BAApD,CAA9B","sourcesContent":["import * as React from 'react';\nimport vkBridge, { AppearanceSchemeType, AppearanceType } from '@vkontakte/vk-bridge';\nimport { PlatformType, platform } from '../../lib/platform';\n\nexport enum Appearance {\n DARK = 'dark',\n LIGHT = 'light',\n}\n\nexport enum Scheme {\n /**\n * @deprecated будет удалено в 5.0.0\n * версия оставлена для совместимости со старыми версиями клиентов\n */\n DEPRECATED_CLIENT_LIGHT = 'client_light',\n /**\n * @deprecated будет удалено в 5.0.0\n * версия оставлена для совместимости со старыми версиями клиентов\n */\n DEPRECATED_CLIENT_DARK = 'client_dark',\n /**\n * @deprecated будет удалено в 5.0.0\n * версия оставлена для совместимости с vkcom, когда там была только одна схема\n */\n VKCOM = 'vkcom',\n\n BRIGHT_LIGHT = 'bright_light',\n SPACE_GRAY = 'space_gray',\n VKCOM_LIGHT = 'vkcom_light',\n VKCOM_DARK = 'vkcom_dark'\n}\n\nexport type AppearanceScheme = AppearanceSchemeType | Scheme.VKCOM | Scheme.VKCOM_DARK | Scheme.VKCOM_LIGHT | 'inherit';\n\nexport enum WebviewType {\n VKAPPS = 'vkapps',\n INTERNAL = 'internal',\n}\n\nexport interface ConfigProviderContextInterface {\n /**\n * Подсказывает приложению, обёрнутому в `ConfigProvider`, где открыто приложение: внутри webview или в мобильном браузере\n */\n isWebView?: boolean;\n /**\n * Тип вебвью.<br>\n * В случае `WebviewType.VKAPPS` интерфейс будет адаптирован для отображения в вебвью Mini Apps (системные контролы в правой части шапки)\n */\n webviewType?: WebviewType.INTERNAL | WebviewType.VKAPPS;\n /**\n * Тип приложения\n */\n app?: string;\n /**\n * Тип цветовой схемы – `light` или `dark`\n */\n appearance?: AppearanceType;\n /**\n * Включена ли анимация переходов между экранами в `Root` и `View`\n */\n transitionMotionEnabled?: boolean;\n /**\n * Платформа\n */\n platform?: PlatformType;\n}\n\nexport const defaultConfigProviderProps = {\n webviewType: WebviewType.VKAPPS,\n isWebView: vkBridge.isWebView(),\n scheme: Scheme.BRIGHT_LIGHT,\n transitionMotionEnabled: true,\n platform: platform(),\n // appearance is auto-detected by default\n // appearance: Appearance.LIGHT,\n};\n\nexport const ConfigProviderContext = React.createContext<ConfigProviderContextInterface>(defaultConfigProviderProps);\n"],"file":"ConfigProviderContext.js"}
@@ -0,0 +1,49 @@
1
+ import * as React from 'react';
2
+ import { HoverPopperProps } from '../HoverPopper/HoverPopper';
3
+ import { Placement } from '../Popper/Popper';
4
+ import './Dropdown.css';
5
+ export interface DropdownProps {
6
+ /**
7
+ * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства
8
+ */
9
+ placement?: Placement;
10
+ /**
11
+ * Отступ по вспомогательной оси
12
+ */
13
+ offsetSkidding?: number;
14
+ /**
15
+ * Отступ по главной оси
16
+ */
17
+ offsetDistance?: number;
18
+ onPlacementChange?: (data: {
19
+ placement?: Placement;
20
+ }) => void;
21
+ /**
22
+ * Содержимое тултипа
23
+ */
24
+ content?: React.ReactNode;
25
+ /**
26
+ * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства
27
+ */
28
+ shown?: boolean;
29
+ /**
30
+ * Вызывается при каждом изменении видимости тултипа
31
+ */
32
+ onShownChange?: (shown: boolean) => void;
33
+ /**
34
+ * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элементу компонента
35
+ */
36
+ children?: React.ReactElement;
37
+ action?: 'click' | 'hover';
38
+ /**
39
+ * Актуально только для action="hover"
40
+ * Количество миллисекунд, после которых произойдет показ дропдауна
41
+ */
42
+ showDelay?: HoverPopperProps['showDelay'];
43
+ /**
44
+ * Актуально только для action="hover"
45
+ * Количество миллисекунд, после которых произойдет скрытие дропдауна
46
+ */
47
+ hideDelay?: HoverPopperProps['hideDelay'];
48
+ }
49
+ export declare const Dropdown: React.FC<DropdownProps>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Dropdown = void 0;
9
+
10
+ var _jsxRuntime = require("../../lib/jsxRuntime");
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var _HoverPopper = require("../HoverPopper/HoverPopper");
17
+
18
+ var _ClickPopper = require("../ClickPopper/ClickPopper");
19
+
20
+ var _getClassName = require("../../helpers/getClassName");
21
+
22
+ var _usePlatform = require("../../hooks/usePlatform");
23
+
24
+ var _excluded = ["action", "hideDelay", "showDelay"];
25
+
26
+ var Dropdown = function Dropdown(_ref) {
27
+ var _ref$action = _ref.action,
28
+ action = _ref$action === void 0 ? 'click' : _ref$action,
29
+ hideDelay = _ref.hideDelay,
30
+ showDelay = _ref.showDelay,
31
+ popperProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
32
+ var platform = (0, _usePlatform.usePlatform)();
33
+ var Component;
34
+ var actionSpecificProps = {};
35
+
36
+ switch (action) {
37
+ case 'click':
38
+ Component = _ClickPopper.ClickPopper;
39
+ break;
40
+
41
+ case 'hover':
42
+ actionSpecificProps = {
43
+ hideDelay: hideDelay,
44
+ showDelay: showDelay
45
+ };
46
+ Component = _HoverPopper.HoverPopper;
47
+ break;
48
+ }
49
+
50
+ return (0, _jsxRuntime.createScopedElement)(Component, (0, _extends2.default)({
51
+ vkuiClass: (0, _getClassName.getClassName)('Dropdown', platform)
52
+ }, actionSpecificProps, popperProps));
53
+ };
54
+
55
+ exports.Dropdown = Dropdown;
56
+ //# sourceMappingURL=Dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Dropdown/Dropdown.tsx"],"names":["Dropdown","action","hideDelay","showDelay","popperProps","platform","Component","actionSpecificProps","ClickPopper","HoverPopper"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;;;AAkDO,IAAMA,QAAiC,GAAG,SAApCA,QAAoC,OAA+E;AAAA,yBAA5EC,MAA4E;AAAA,MAA5EA,MAA4E,4BAAnE,OAAmE;AAAA,MAA1DC,SAA0D,QAA1DA,SAA0D;AAAA,MAA/CC,SAA+C,QAA/CA,SAA+C;AAAA,MAAjCC,WAAiC;AAC9H,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,MAAIC,SAAJ;AACA,MAAIC,mBAA2C,GAAG,EAAlD;;AAEA,UAAQN,MAAR;AACE,SAAK,OAAL;AACEK,MAAAA,SAAS,GAAGE,wBAAZ;AACA;;AACF,SAAK,OAAL;AACED,MAAAA,mBAAmB,GAAG;AAAEL,QAAAA,SAAS,EAATA,SAAF;AAAaC,QAAAA,SAAS,EAATA;AAAb,OAAtB;AACAG,MAAAA,SAAS,GAAGG,wBAAZ;AACA;AAPJ;;AAUA,SACE,qCAAC,SAAD;AAAW,IAAA,SAAS,EAAE,gCAAa,UAAb,EAAyBJ,QAAzB;AAAtB,KAA8DE,mBAA9D,EAAuFH,WAAvF,EADF;AAGD,CAnBM","sourcesContent":["import * as React from 'react';\nimport { HoverPopper, HoverPopperProps } from '../HoverPopper/HoverPopper';\nimport { ClickPopper } from '../ClickPopper/ClickPopper';\nimport { getClassName } from '../../helpers/getClassName';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Placement } from '../Popper/Popper';\nimport './Dropdown.css';\n\n// Приходится избегать экстендов от HoverPopperProps, ClickPopperProps и PopperProps, потому что react-docgen не умеет в Omit.\n// Ждём либо фикса react-docgen (что вряд ли), либо переезда на react-docgen-typescript, где такой проблемы нет.\nexport interface DropdownProps {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Содержимое тултипа\n */\n content?: React.ReactNode;\n /**\n * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства\n */\n shown?: boolean;\n /**\n * Вызывается при каждом изменении видимости тултипа\n */\n onShownChange?: (shown: boolean) => void;\n /**\n * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элементу компонента\n */\n children?: React.ReactElement;\n\n action?: 'click' | 'hover';\n /**\n * Актуально только для action=\"hover\"\n * Количество миллисекунд, после которых произойдет показ дропдауна\n */\n showDelay?: HoverPopperProps['showDelay'];\n /**\n * Актуально только для action=\"hover\"\n * Количество миллисекунд, после которых произойдет скрытие дропдауна\n */\n hideDelay?: HoverPopperProps['hideDelay'];\n}\n\nexport const Dropdown: React.FC<DropdownProps> = ({ action = 'click', hideDelay, showDelay, ...popperProps }: DropdownProps) => {\n const platform = usePlatform();\n\n let Component;\n let actionSpecificProps: Partial<DropdownProps> = {};\n\n switch (action) {\n case 'click':\n Component = ClickPopper;\n break;\n case 'hover':\n actionSpecificProps = { hideDelay, showDelay };\n Component = HoverPopper;\n break;\n }\n\n return (\n <Component vkuiClass={getClassName('Dropdown', platform)} {...actionSpecificProps} {...popperProps} />\n );\n};\n"],"file":"Dropdown.js"}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { HasComponent } from '../../types';
2
3
  import './Footer.css';
3
- declare type FooterProps = React.AllHTMLAttributes<HTMLElement>;
4
- declare const Footer: React.FC<FooterProps>;
5
- export default Footer;
4
+ export declare type FooterProps = React.AllHTMLAttributes<HTMLElement> & HasComponent;
5
+ export declare const Footer: React.FC<FooterProps>;