@vkontakte/vkui 4.25.2 → 4.26.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 (192) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +89 -55
  4. package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +2 -2
  5. package/.cache/ts/src/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
  6. package/.cache/ts/src/components/Alert/Alert.d.ts +2 -2
  7. package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +0 -1
  8. package/.cache/ts/src/components/CardScroll/CardScroll.d.ts +9 -2
  9. package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +1 -1
  10. package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
  11. package/.cache/ts/src/index.d.ts +3 -3
  12. package/.cache/ts/src/lib/platform.d.ts +1 -1
  13. package/.cache/ts/src/tokenized/{tokenized.d.ts → index.d.ts} +0 -0
  14. package/VKUI_TOKENS_MIGRATION_GUIDE.md +76 -0
  15. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +2 -2
  16. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +5 -9
  17. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  18. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
  19. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +4 -6
  20. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  21. package/dist/cjs/components/Alert/Alert.d.ts +2 -2
  22. package/dist/cjs/components/Alert/Alert.js +4 -7
  23. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  24. package/dist/cjs/components/AppRoot/AppRoot.d.ts +0 -1
  25. package/dist/cjs/components/AppRoot/AppRoot.js +2 -5
  26. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  27. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js +1 -1
  28. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  29. package/dist/cjs/components/Button/Button.js +1 -3
  30. package/dist/cjs/components/Button/Button.js.map +1 -1
  31. package/dist/cjs/components/CardScroll/CardScroll.d.ts +9 -2
  32. package/dist/cjs/components/CardScroll/CardScroll.js +10 -4
  33. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  34. package/dist/cjs/components/ConfigProvider/ConfigProvider.js +40 -6
  35. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  36. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +1 -1
  37. package/dist/cjs/components/ContentCard/ContentCard.js +8 -0
  38. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  39. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +1 -1
  40. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  41. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
  42. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +5 -1
  43. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  44. package/dist/cjs/components/IconButton/IconButton.js +8 -0
  45. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  46. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +14 -5
  47. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  48. package/dist/cjs/components/PromoBanner/PromoBanner.js +7 -0
  49. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  50. package/dist/cjs/components/Root/Root.js +5 -0
  51. package/dist/cjs/components/Root/Root.js.map +1 -1
  52. package/dist/cjs/components/TabbarItem/TabbarItem.js +8 -1
  53. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  54. package/dist/cjs/components/View/View.js +29 -18
  55. package/dist/cjs/components/View/View.js.map +1 -1
  56. package/dist/cjs/index.d.ts +3 -3
  57. package/dist/cjs/index.js +6 -6
  58. package/dist/cjs/index.js.map +1 -1
  59. package/dist/cjs/lib/platform.d.ts +1 -1
  60. package/dist/cjs/lib/platform.js.map +1 -1
  61. package/dist/cjs/tokenized/{tokenized.d.ts → index.d.ts} +0 -0
  62. package/dist/cjs/tokenized/{tokenized.js → index.js} +1 -1
  63. package/dist/cjs/tokenized/index.js.map +1 -0
  64. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +2 -2
  65. package/dist/components/ActionSheetItem/ActionSheetItem.js +4 -6
  66. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  67. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
  68. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
  69. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  70. package/dist/components/Alert/Alert.d.ts +2 -2
  71. package/dist/components/Alert/Alert.js +3 -3
  72. package/dist/components/Alert/Alert.js.map +1 -1
  73. package/dist/components/AppRoot/AppRoot.d.ts +0 -1
  74. package/dist/components/AppRoot/AppRoot.js +1 -3
  75. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  76. package/dist/components/AppearanceProvider/AppearanceProvider.js +2 -2
  77. package/dist/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  78. package/dist/components/Button/Button.js +1 -2
  79. package/dist/components/Button/Button.js.map +1 -1
  80. package/dist/components/CardScroll/CardScroll.d.ts +9 -2
  81. package/dist/components/CardScroll/CardScroll.js +8 -3
  82. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  83. package/dist/components/ConfigProvider/ConfigProvider.js +39 -6
  84. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  85. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +1 -1
  86. package/dist/components/ContentCard/ContentCard.js +7 -0
  87. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  88. package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
  89. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  90. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
  91. package/dist/components/HorizontalScroll/HorizontalScroll.js +3 -1
  92. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  93. package/dist/components/IconButton/IconButton.js +7 -0
  94. package/dist/components/IconButton/IconButton.js.map +1 -1
  95. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +13 -6
  96. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  97. package/dist/components/PromoBanner/PromoBanner.js +6 -0
  98. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  99. package/dist/components/Root/Root.js +5 -0
  100. package/dist/components/Root/Root.js.map +1 -1
  101. package/dist/components/TabbarItem/TabbarItem.js +7 -1
  102. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  103. package/dist/components/View/View.js +29 -18
  104. package/dist/components/View/View.js.map +1 -1
  105. package/dist/components.css +14 -11
  106. package/dist/components.css.map +1 -1
  107. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +4 -6
  108. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  109. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
  110. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  111. package/dist/cssm/components/Alert/Alert.js +3 -3
  112. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  113. package/dist/cssm/components/AppRoot/AppRoot.js +1 -3
  114. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  115. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +2 -2
  116. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  117. package/dist/cssm/components/Button/Button.css +9 -11
  118. package/dist/cssm/components/Button/Button.js +1 -2
  119. package/dist/cssm/components/Button/Button.js.map +1 -1
  120. package/dist/cssm/components/Card/Card.css +6 -1
  121. package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
  122. package/dist/cssm/components/CardScroll/CardScroll.js +8 -3
  123. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  124. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +39 -6
  125. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  126. package/dist/cssm/components/ContentCard/ContentCard.js +7 -0
  127. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  128. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
  129. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  130. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +3 -1
  131. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  132. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
  133. package/dist/cssm/components/IconButton/IconButton.js +7 -0
  134. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  135. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +13 -6
  136. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  137. package/dist/cssm/components/PromoBanner/PromoBanner.js +6 -0
  138. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  139. package/dist/cssm/components/Root/Root.js +5 -0
  140. package/dist/cssm/components/Root/Root.js.map +1 -1
  141. package/dist/cssm/components/TabbarItem/TabbarItem.js +7 -1
  142. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  143. package/dist/cssm/components/View/View.js +29 -18
  144. package/dist/cssm/components/View/View.js.map +1 -1
  145. package/dist/cssm/index.js +3 -3
  146. package/dist/cssm/index.js.map +1 -1
  147. package/dist/cssm/lib/platform.js.map +1 -1
  148. package/dist/cssm/styles/components.css +14 -11
  149. package/dist/cssm/styles/themes.css +1 -1
  150. package/dist/{tokenized/tokenized.js → cssm/tokenized/index.js} +1 -1
  151. package/dist/cssm/tokenized/index.js.map +1 -0
  152. package/dist/index.d.ts +3 -3
  153. package/dist/index.js +3 -3
  154. package/dist/index.js.map +1 -1
  155. package/dist/lib/platform.d.ts +1 -1
  156. package/dist/lib/platform.js.map +1 -1
  157. package/dist/tokenized/{tokenized.d.ts → index.d.ts} +0 -0
  158. package/dist/{cssm/tokenized/tokenized.js → tokenized/index.js} +1 -1
  159. package/dist/tokenized/index.js.map +1 -0
  160. package/dist/vkui.css +15 -12
  161. package/dist/vkui.css.map +1 -1
  162. package/package.json +3 -3
  163. package/postcss.config.js +10 -1
  164. package/src/components/ActionSheetItem/ActionSheetItem.tsx +5 -6
  165. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +1 -2
  166. package/src/components/Alert/Alert.tsx +3 -2
  167. package/src/components/AppRoot/AppRoot.tsx +0 -3
  168. package/src/components/AppearanceProvider/AppearanceProvider.tsx +2 -2
  169. package/src/components/Button/Button.css +9 -39
  170. package/src/components/Button/Button.tsx +3 -4
  171. package/src/components/Card/Card.css +14 -22
  172. package/src/components/CardScroll/CardScroll.css +10 -23
  173. package/src/components/CardScroll/CardScroll.tsx +15 -4
  174. package/src/components/ConfigProvider/ConfigProvider.tsx +43 -7
  175. package/src/components/ContentCard/ContentCard.tsx +6 -0
  176. package/src/components/CustomSelectOption/CustomSelectOption.tsx +1 -1
  177. package/src/components/HorizontalScroll/HorizontalScroll.tsx +8 -2
  178. package/src/components/HorizontalScroll/HorizontalScrollArrow.css +3 -1
  179. package/src/components/IconButton/IconButton.tsx +8 -0
  180. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +19 -7
  181. package/src/components/PromoBanner/PromoBanner.tsx +8 -0
  182. package/src/components/Root/Root.tsx +12 -2
  183. package/src/components/TabbarItem/TabbarItem.tsx +8 -1
  184. package/src/components/View/View.tsx +15 -2
  185. package/src/index.ts +3 -3
  186. package/src/lib/platform.ts +5 -1
  187. package/src/styles/themes.css +6 -0
  188. package/src/testing/utils.tsx +1 -1
  189. package/src/tokenized/{tokenized.ts → index.ts} +0 -0
  190. package/dist/cjs/tokenized/tokenized.js.map +0 -1
  191. package/dist/cssm/tokenized/tokenized.js.map +0 -1
  192. package/dist/tokenized/tokenized.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ContentCard/ContentCard.tsx"],"names":["ContentCard","props","subtitle","header","text","caption","className","mode","style","getRootRef","getRef","maxHeight","image","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","restProps","platform","source","disabled","onClick","href","defaultProps"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport Card, { CardProps } from \"../Card/Card\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./ContentCard.css\";\n\nexport interface ContentCardProps\n extends HasRootRef<HTMLDivElement>,\n Omit<TappableProps, \"getRootRef\" | \"crossOrigin\">,\n Omit<\n React.ImgHTMLAttributes<HTMLImageElement>,\n keyof React.HTMLAttributes<HTMLImageElement>\n >,\n HasRef<HTMLImageElement> {\n /**\n Текст над заголовком\n */\n subtitle?: React.ReactNode;\n /**\n Заголовок\n */\n header?: React.ReactNode;\n /**\n Текст\n */\n text?: React.ReactNode;\n /**\n Нижний текст\n */\n caption?: React.ReactNode;\n /**\n @deprecated будет удалено в 5.0.0. Используйте src\n */\n image?: string;\n /**\n Максимальная высота изображения\n */\n maxHeight?: number;\n mode?: CardProps[\"mode\"];\n}\n\nconst ContentCard: React.FC<ContentCardProps> = (props: ContentCardProps) => {\n const {\n subtitle,\n header,\n text,\n caption,\n // card props\n className,\n mode,\n style,\n getRootRef,\n // img props\n getRef,\n maxHeight,\n image,\n src,\n srcSet,\n alt,\n width,\n height,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n useMap,\n ...restProps\n } = props;\n const platform = usePlatform();\n\n const source = image || src;\n\n return (\n <Card\n mode={mode}\n getRootRef={getRootRef}\n vkuiClass={classNames(getClassName(\"ContentCard\", platform), {\n \"ContentCard--disabled\": restProps.disabled,\n })}\n style={style}\n className={className}\n >\n <Tappable\n {...restProps}\n disabled={restProps.disabled || (!restProps.onClick && !restProps.href)}\n hasHover={false}\n hasActive={false}\n vkuiClass=\"ContentCard__tappable\"\n >\n {(source || srcSet) && (\n <img\n ref={getRef}\n vkuiClass=\"ContentCard__img\"\n src={source}\n srcSet={srcSet}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n useMap={useMap}\n height={height}\n style={{ maxHeight }}\n width=\"100%\"\n />\n )}\n <div vkuiClass=\"ContentCard__body\">\n {hasReactNode(subtitle) && (\n <Caption\n caps\n vkuiClass=\"ContentCard__text\"\n weight=\"semibold\"\n level=\"3\"\n >\n {subtitle}\n </Caption>\n )}\n {hasReactNode(header) && (\n <Title vkuiClass=\"ContentCard__text\" weight=\"semibold\" level=\"3\">\n {header}\n </Title>\n )}\n {hasReactNode(text) && (\n <Text vkuiClass=\"ContentCard__text\" weight=\"regular\">\n {text}\n </Text>\n )}\n {hasReactNode(caption) && (\n <Caption vkuiClass=\"ContentCard__text\" weight=\"regular\" level=\"1\">\n {caption}\n </Caption>\n )}\n </div>\n </Tappable>\n </Card>\n );\n};\n\nContentCard.defaultProps = {\n mode: \"shadow\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default ContentCard;\n"],"file":"ContentCard.js"}
1
+ {"version":3,"sources":["../../../../src/components/ContentCard/ContentCard.tsx"],"names":["warn","ContentCard","props","subtitle","header","text","caption","className","mode","style","getRootRef","getRef","maxHeight","image","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","restProps","platform","source","process","env","NODE_ENV","disabled","onClick","href","defaultProps"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport Card, { CardProps } from \"../Card/Card\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./ContentCard.css\";\n\nexport interface ContentCardProps\n extends HasRootRef<HTMLDivElement>,\n Omit<TappableProps, \"getRootRef\" | \"crossOrigin\">,\n Omit<\n React.ImgHTMLAttributes<HTMLImageElement>,\n keyof React.HTMLAttributes<HTMLImageElement>\n >,\n HasRef<HTMLImageElement> {\n /**\n Текст над заголовком\n */\n subtitle?: React.ReactNode;\n /**\n Заголовок\n */\n header?: React.ReactNode;\n /**\n Текст\n */\n text?: React.ReactNode;\n /**\n Нижний текст\n */\n caption?: React.ReactNode;\n /**\n @deprecated будет удалено в 5.0.0. Используйте src\n */\n image?: string;\n /**\n Максимальная высота изображения\n */\n maxHeight?: number;\n mode?: CardProps[\"mode\"];\n}\n\nconst warn = warnOnce(\"ContentCard\");\nconst ContentCard: React.FC<ContentCardProps> = (props: ContentCardProps) => {\n const {\n subtitle,\n header,\n text,\n caption,\n // card props\n className,\n mode,\n style,\n getRootRef,\n // img props\n getRef,\n maxHeight,\n image,\n src,\n srcSet,\n alt,\n width,\n height,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n useMap,\n ...restProps\n } = props;\n const platform = usePlatform();\n\n const source = image || src;\n\n if (image && process.env.NODE_ENV === \"development\") {\n warn(\"Свойство image устарело и будет удалено в 5.0.0. Используйте src\");\n }\n\n return (\n <Card\n mode={mode}\n getRootRef={getRootRef}\n vkuiClass={classNames(getClassName(\"ContentCard\", platform), {\n \"ContentCard--disabled\": restProps.disabled,\n })}\n style={style}\n className={className}\n >\n <Tappable\n {...restProps}\n disabled={restProps.disabled || (!restProps.onClick && !restProps.href)}\n hasHover={false}\n hasActive={false}\n vkuiClass=\"ContentCard__tappable\"\n >\n {(source || srcSet) && (\n <img\n ref={getRef}\n vkuiClass=\"ContentCard__img\"\n src={source}\n srcSet={srcSet}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n useMap={useMap}\n height={height}\n style={{ maxHeight }}\n width=\"100%\"\n />\n )}\n <div vkuiClass=\"ContentCard__body\">\n {hasReactNode(subtitle) && (\n <Caption\n caps\n vkuiClass=\"ContentCard__text\"\n weight=\"semibold\"\n level=\"3\"\n >\n {subtitle}\n </Caption>\n )}\n {hasReactNode(header) && (\n <Title vkuiClass=\"ContentCard__text\" weight=\"semibold\" level=\"3\">\n {header}\n </Title>\n )}\n {hasReactNode(text) && (\n <Text vkuiClass=\"ContentCard__text\" weight=\"regular\">\n {text}\n </Text>\n )}\n {hasReactNode(caption) && (\n <Caption vkuiClass=\"ContentCard__text\" weight=\"regular\" level=\"1\">\n {caption}\n </Caption>\n )}\n </div>\n </Tappable>\n </Card>\n );\n};\n\nContentCard.defaultProps = {\n mode: \"shadow\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default ContentCard;\n"],"file":"ContentCard.js"}
@@ -46,7 +46,7 @@ var CustomSelectOption = function CustomSelectOption(_ref) {
46
46
  sizeY = _useAdaptivity.sizeY;
47
47
 
48
48
  if (!!option && process.env.NODE_ENV === "development") {
49
- warn("Свойство option было добавлено по ошибке будет и удалено в 5.0.0");
49
+ warn("Свойство option было добавлено по ошибке и будет удалено в 5.0.0.");
50
50
  }
51
51
 
52
52
  return (0, _jsxRuntime.createScopedElement)(_Text.default, (0, _extends2.default)({}, restProps, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CustomSelectOption/CustomSelectOption.tsx"],"names":["warn","CustomSelectOption","children","hovered","selected","before","after","option","description","disabled","restProps","title","undefined","sizeY","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;AAgBA,IAAMA,IAAI,GAAG,wBAAS,oBAAT,CAAb;;AAEA,IAAMC,kBAAqD,GAAG,SAAxDA,kBAAwD,OAU/B;AAAA,MAT7BC,QAS6B,QAT7BA,QAS6B;AAAA,MAR7BC,OAQ6B,QAR7BA,OAQ6B;AAAA,MAP7BC,QAO6B,QAP7BA,QAO6B;AAAA,MAN7BC,MAM6B,QAN7BA,MAM6B;AAAA,MAL7BC,KAK6B,QAL7BA,KAK6B;AAAA,MAJ7BC,MAI6B,QAJ7BA,MAI6B;AAAA,MAH7BC,WAG6B,QAH7BA,WAG6B;AAAA,MAF7BC,QAE6B,QAF7BA,QAE6B;AAAA,MAD1BC,SAC0B;AAC7B,MAAMC,KAAK,GAAG,OAAOT,QAAP,KAAoB,QAApB,GAA+BA,QAA/B,GAA0CU,SAAxD;;AACA,uBAAkB,oCAAlB;AAAA,MAAQC,KAAR,kBAAQA,KAAR;;AAEA,MAAI,CAAC,CAACN,MAAF,IAAYO,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzC,EAAwD;AACtDhB,IAAAA,IAAI,CAAC,kEAAD,CAAJ;AACD;;AAED,SACE,qCAAC,aAAD,6BACMU,SADN;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,MAAM,EAAC,SAHT;AAIE,IAAA,IAAI,EAAC,QAJP;AAKE,IAAA,KAAK,EAAEC,KALT;AAME,qBAAeF,QANjB;AAOE,qBAAeL,QAPjB;AAQE,IAAA,SAAS,EAAE,4BACT,oBADS,sCAEoBS,KAFpB,GAGT;AACE,mCAA6BV,OAAO,IAAI,CAACM,QAD3C;AAEE,sCAAgCL,QAFlC;AAGE,sCAAgCK;AAHlC,KAHS;AARb,MAkBG,yBAAaJ,MAAb,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6CA,MAA7C,CAnBJ,EAqBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA+CH,QAA/C,CADF,EAEG,yBAAaM,WAAb,KACC,qCAAC,gBAAD;AACE,IAAA,KAAK,EAAC,GADR;AAEE,IAAA,MAAM,EAAC,SAFT;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGA,WALH,CAHJ,CArBF,EAiCE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,yBAAaF,KAAb,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA8CA,KAA9C,CAFJ,EAIGF,QAAQ,IACP,qCAAC,iBAAD;AAAY,IAAA,SAAS,EAAC;AAAtB,IALJ,CAjCF,CADF;AA4CD,CA9DD,C,CAgEA;;;eACeH,kB","sourcesContent":["import * as React from \"react\";\nimport { Icon16Done } from \"@vkontakte/icons\";\nimport { classNames } from \"../../lib/classNames\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Text from \"../Typography/Text/Text\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { HasRootRef } from \"../../types\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./CustomSelectOption.css\";\n\nexport interface CustomSelectOptionProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n option?: any;\n selected?: boolean;\n focused?: boolean;\n hovered?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n description?: React.ReactNode;\n disabled?: boolean;\n}\n\nconst warn = warnOnce(\"CustomSelectOption\");\n\nconst CustomSelectOption: React.FC<CustomSelectOptionProps> = ({\n children,\n hovered,\n selected,\n before,\n after,\n option,\n description,\n disabled,\n ...restProps\n}: CustomSelectOptionProps) => {\n const title = typeof children === \"string\" ? children : undefined;\n const { sizeY } = useAdaptivity();\n\n if (!!option && process.env.NODE_ENV === \"development\") {\n warn(\"Свойство option было добавлено по ошибке будет и удалено в 5.0.0\");\n }\n\n return (\n <Text\n {...restProps}\n Component=\"div\"\n weight=\"regular\"\n role=\"option\"\n title={title}\n aria-disabled={disabled}\n aria-selected={selected}\n vkuiClass={classNames(\n \"CustomSelectOption\",\n `CustomSelectOption--sizeY-${sizeY}`,\n {\n \"CustomSelectOption--hover\": hovered && !disabled,\n \"CustomSelectOption--selected\": selected,\n \"CustomSelectOption--disabled\": disabled,\n }\n )}\n >\n {hasReactNode(before) && (\n <div vkuiClass=\"CustomSelectOption__before\">{before}</div>\n )}\n <div vkuiClass=\"CustomSelectOption__main\">\n <div vkuiClass=\"CustomSelectOption__children\">{children}</div>\n {hasReactNode(description) && (\n <Caption\n level=\"1\"\n weight=\"regular\"\n vkuiClass=\"CustomSelectOption__description\"\n >\n {description}\n </Caption>\n )}\n </div>\n <div vkuiClass=\"CustomSelectOption__after\">\n {hasReactNode(after) && (\n <div className=\"CustomSelectOption__afterIn\">{after}</div>\n )}\n {selected && (\n <Icon16Done vkuiClass=\"CustomSelectOption__selectedIcon\" />\n )}\n </div>\n </Text>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default CustomSelectOption;\n"],"file":"CustomSelectOption.js"}
1
+ {"version":3,"sources":["../../../../src/components/CustomSelectOption/CustomSelectOption.tsx"],"names":["warn","CustomSelectOption","children","hovered","selected","before","after","option","description","disabled","restProps","title","undefined","sizeY","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;AAgBA,IAAMA,IAAI,GAAG,wBAAS,oBAAT,CAAb;;AAEA,IAAMC,kBAAqD,GAAG,SAAxDA,kBAAwD,OAU/B;AAAA,MAT7BC,QAS6B,QAT7BA,QAS6B;AAAA,MAR7BC,OAQ6B,QAR7BA,OAQ6B;AAAA,MAP7BC,QAO6B,QAP7BA,QAO6B;AAAA,MAN7BC,MAM6B,QAN7BA,MAM6B;AAAA,MAL7BC,KAK6B,QAL7BA,KAK6B;AAAA,MAJ7BC,MAI6B,QAJ7BA,MAI6B;AAAA,MAH7BC,WAG6B,QAH7BA,WAG6B;AAAA,MAF7BC,QAE6B,QAF7BA,QAE6B;AAAA,MAD1BC,SAC0B;AAC7B,MAAMC,KAAK,GAAG,OAAOT,QAAP,KAAoB,QAApB,GAA+BA,QAA/B,GAA0CU,SAAxD;;AACA,uBAAkB,oCAAlB;AAAA,MAAQC,KAAR,kBAAQA,KAAR;;AAEA,MAAI,CAAC,CAACN,MAAF,IAAYO,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzC,EAAwD;AACtDhB,IAAAA,IAAI,CAAC,mEAAD,CAAJ;AACD;;AAED,SACE,qCAAC,aAAD,6BACMU,SADN;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,MAAM,EAAC,SAHT;AAIE,IAAA,IAAI,EAAC,QAJP;AAKE,IAAA,KAAK,EAAEC,KALT;AAME,qBAAeF,QANjB;AAOE,qBAAeL,QAPjB;AAQE,IAAA,SAAS,EAAE,4BACT,oBADS,sCAEoBS,KAFpB,GAGT;AACE,mCAA6BV,OAAO,IAAI,CAACM,QAD3C;AAEE,sCAAgCL,QAFlC;AAGE,sCAAgCK;AAHlC,KAHS;AARb,MAkBG,yBAAaJ,MAAb,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6CA,MAA7C,CAnBJ,EAqBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA+CH,QAA/C,CADF,EAEG,yBAAaM,WAAb,KACC,qCAAC,gBAAD;AACE,IAAA,KAAK,EAAC,GADR;AAEE,IAAA,MAAM,EAAC,SAFT;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGA,WALH,CAHJ,CArBF,EAiCE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,yBAAaF,KAAb,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA8CA,KAA9C,CAFJ,EAIGF,QAAQ,IACP,qCAAC,iBAAD;AAAY,IAAA,SAAS,EAAC;AAAtB,IALJ,CAjCF,CADF;AA4CD,CA9DD,C,CAgEA;;;eACeH,kB","sourcesContent":["import * as React from \"react\";\nimport { Icon16Done } from \"@vkontakte/icons\";\nimport { classNames } from \"../../lib/classNames\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Text from \"../Typography/Text/Text\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { HasRootRef } from \"../../types\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./CustomSelectOption.css\";\n\nexport interface CustomSelectOptionProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n option?: any;\n selected?: boolean;\n focused?: boolean;\n hovered?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n description?: React.ReactNode;\n disabled?: boolean;\n}\n\nconst warn = warnOnce(\"CustomSelectOption\");\n\nconst CustomSelectOption: React.FC<CustomSelectOptionProps> = ({\n children,\n hovered,\n selected,\n before,\n after,\n option,\n description,\n disabled,\n ...restProps\n}: CustomSelectOptionProps) => {\n const title = typeof children === \"string\" ? children : undefined;\n const { sizeY } = useAdaptivity();\n\n if (!!option && process.env.NODE_ENV === \"development\") {\n warn(\"Свойство option было добавлено по ошибке и будет удалено в 5.0.0.\");\n }\n\n return (\n <Text\n {...restProps}\n Component=\"div\"\n weight=\"regular\"\n role=\"option\"\n title={title}\n aria-disabled={disabled}\n aria-selected={selected}\n vkuiClass={classNames(\n \"CustomSelectOption\",\n `CustomSelectOption--sizeY-${sizeY}`,\n {\n \"CustomSelectOption--hover\": hovered && !disabled,\n \"CustomSelectOption--selected\": selected,\n \"CustomSelectOption--disabled\": disabled,\n }\n )}\n >\n {hasReactNode(before) && (\n <div vkuiClass=\"CustomSelectOption__before\">{before}</div>\n )}\n <div vkuiClass=\"CustomSelectOption__main\">\n <div vkuiClass=\"CustomSelectOption__children\">{children}</div>\n {hasReactNode(description) && (\n <Caption\n level=\"1\"\n weight=\"regular\"\n vkuiClass=\"CustomSelectOption__description\"\n >\n {description}\n </Caption>\n )}\n </div>\n <div vkuiClass=\"CustomSelectOption__after\">\n {hasReactNode(after) && (\n <div className=\"CustomSelectOption__afterIn\">{after}</div>\n )}\n {selected && (\n <Icon16Done vkuiClass=\"CustomSelectOption__selectedIcon\" />\n )}\n </div>\n </Text>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default CustomSelectOption;\n"],"file":"CustomSelectOption.js"}
@@ -12,7 +12,7 @@ export interface HorizontalScrollProps extends React.HTMLAttributes<HTMLDivEleme
12
12
  * Функция для расчета величины прокрутки при клике на правую стрелку.
13
13
  */
14
14
  getScrollToRight?: ScrollPositionHandler;
15
- showArrows?: boolean;
15
+ showArrows?: boolean | "always";
16
16
  scrollAnimationDuration?: number;
17
17
  }
18
18
  declare const _default: React.FC<Pick<HorizontalScrollProps, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "getRef" | "scrollAnimationDuration" | "getScrollToLeft" | "getScrollToRight" | "showArrows"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
@@ -13,6 +13,8 @@ var _jsxRuntime = require("../../lib/jsxRuntime");
13
13
 
14
14
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
15
 
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+
16
18
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
19
 
18
20
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -33,6 +35,8 @@ var _useEventListener = require("../../hooks/useEventListener");
33
35
 
34
36
  var _useExternRef = require("../../hooks/useExternRef");
35
37
 
38
+ var _classNames2 = require("../../lib/classNames");
39
+
36
40
  var _excluded = ["children", "getScrollToLeft", "getScrollToRight", "showArrows", "scrollAnimationDuration", "hasMouse", "getRef"];
37
41
 
38
42
  /**
@@ -177,7 +181,7 @@ var HorizontalScroll = function HorizontalScroll(_ref2) {
177
181
  }, [scrollEvent, scrollerRef]);
178
182
  React.useEffect(onscroll, [scrollerRef, children, onscroll]);
179
183
  return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({}, restProps, {
180
- vkuiClass: (0, _getClassName.getClassName)("HorizontalScroll", platform)
184
+ vkuiClass: (0, _classNames2.classNames)((0, _getClassName.getClassName)("HorizontalScroll", platform), (0, _defineProperty2.default)({}, "HorizontalScroll--withConstArrows", showArrows === "always"))
181
185
  }), showArrows && hasMouse && canScrollLeft && (0, _jsxRuntime.createScopedElement)(_HorizontalScrollArrow.default, {
182
186
  direction: "left",
183
187
  onClick: function onClick() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"names":["now","performance","Date","SCROLL_ONE_FRAME_TIME","doScroll","scrollElement","getScrollPosition","animationQueue","onScrollToRightBorder","onScrollEnd","onScrollStart","initialScrollWidth","scrollAnimationDuration","maxLeft","offsetWidth","startLeft","scrollLeft","endLeft","startTime","scroll","time","elapsed","Math","min","value","currentLeft","ceil","max","requestAnimationFrame","shift","length","HorizontalScroll","children","getScrollToLeft","getScrollToRight","showArrows","hasMouse","getRef","restProps","React","useState","canScrollLeft","setCanScrollLeft","canScrollRight","setCanScrollRight","isCustomScrollingRef","useRef","scrollerRef","platform","scrollTo","current","push","firstElementChild","scrollWidth","onscroll","useCallback","scrollEvent","useEffect","add"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport HorizontalScrollArrow from \"./HorizontalScrollArrow\";\nimport { easeInOutSine } from \"../../lib/fx\";\nimport { useEventListener } from \"../../hooks/useEventListener\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { HasRef } from \"../../types\";\nimport \"./HorizontalScroll.css\";\n\ninterface ScrollContext {\n scrollElement: HTMLElement | null;\n scrollAnimationDuration: number;\n animationQueue: VoidFunction[];\n getScrollPosition: (currentPosition: number) => number;\n onScrollToRightBorder: VoidFunction;\n onScrollEnd: VoidFunction;\n onScrollStart: VoidFunction;\n /**\n * Начальная ширина прокрутки.\n * В некоторых случаях может отличаться от текущей ширины прокрутки из-за transforms: translate\n */\n initialScrollWidth: number;\n}\n\nexport type ScrollPositionHandler = (currentPosition: number) => number;\n\nexport interface HorizontalScrollProps\n extends React.HTMLAttributes<HTMLDivElement>,\n AdaptivityProps,\n HasRef<HTMLDivElement> {\n /**\n * Функция для расчета величины прокрутки при клике на левую стрелку.\n */\n getScrollToLeft?: ScrollPositionHandler;\n /**\n * Функция для расчета величины прокрутки при клике на правую стрелку.\n */\n getScrollToRight?: ScrollPositionHandler;\n showArrows?: boolean;\n scrollAnimationDuration?: number;\n}\n\n/**\n * timing method\n */\nfunction now() {\n return performance && performance.now ? performance.now() : Date.now();\n}\n\n/**\n * Код анимации скрола, на основе полифила: https://github.com/iamdustan/smoothscroll\n * Константа взята из полифила (468), на дизайн-ревью уточнили до 250\n * @var {number} SCROLL_ONE_FRAME_TIME время анимации скролла\n */\nconst SCROLL_ONE_FRAME_TIME = 250;\n\nfunction doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue,\n onScrollToRightBorder,\n onScrollEnd,\n onScrollStart,\n initialScrollWidth,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n}: ScrollContext) {\n if (!scrollElement || !getScrollPosition) {\n return;\n }\n\n /**\n * максимальное значение сдвига влево\n */\n const maxLeft = initialScrollWidth - scrollElement.offsetWidth;\n\n let startLeft = scrollElement.scrollLeft;\n let endLeft = getScrollPosition(startLeft);\n\n onScrollStart();\n\n if (endLeft >= maxLeft) {\n onScrollToRightBorder();\n endLeft = maxLeft;\n }\n\n const startTime = now();\n\n (function scroll() {\n if (!scrollElement) {\n onScrollEnd();\n return;\n }\n\n const time = now();\n const elapsed = Math.min((time - startTime) / scrollAnimationDuration, 1);\n\n const value = easeInOutSine(elapsed);\n\n const currentLeft = startLeft + (endLeft - startLeft) * value;\n scrollElement.scrollLeft = Math.ceil(currentLeft);\n\n if (scrollElement.scrollLeft !== Math.max(0, endLeft)) {\n requestAnimationFrame(scroll);\n return;\n }\n\n onScrollEnd();\n animationQueue.shift();\n if (animationQueue.length > 0) {\n animationQueue[0]();\n }\n })();\n}\n\nconst HorizontalScroll: React.FC<HorizontalScrollProps> = ({\n children,\n getScrollToLeft,\n getScrollToRight,\n showArrows = true,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n hasMouse,\n getRef,\n ...restProps\n}: HorizontalScrollProps) => {\n const [canScrollLeft, setCanScrollLeft] = React.useState(false);\n const [canScrollRight, setCanScrollRight] = React.useState(false);\n\n const isCustomScrollingRef = React.useRef(false);\n\n const scrollerRef = useExternRef(getRef);\n\n const animationQueue = React.useRef<VoidFunction[]>([]);\n\n const platform = usePlatform();\n\n function scrollTo(getScrollPosition: (offset: number) => number) {\n const scrollElement = scrollerRef.current;\n\n animationQueue.current.push(() =>\n doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue: animationQueue.current,\n onScrollToRightBorder: () => setCanScrollRight(false),\n onScrollEnd: () => (isCustomScrollingRef.current = false),\n onScrollStart: () => (isCustomScrollingRef.current = true),\n initialScrollWidth: scrollElement?.firstElementChild?.scrollWidth || 0,\n scrollAnimationDuration,\n })\n );\n if (animationQueue.current.length === 1) {\n animationQueue.current[0]();\n }\n }\n\n const onscroll = React.useCallback(() => {\n if (\n showArrows &&\n hasMouse &&\n scrollerRef.current &&\n !isCustomScrollingRef.current\n ) {\n const scrollElement = scrollerRef.current;\n\n setCanScrollLeft(scrollElement.scrollLeft > 0);\n setCanScrollRight(\n scrollElement.scrollLeft + scrollElement.offsetWidth <\n scrollElement.scrollWidth\n );\n }\n }, [hasMouse, scrollerRef, showArrows]);\n\n const scrollEvent = useEventListener(\"scroll\", onscroll);\n React.useEffect(() => {\n if (scrollerRef.current) {\n scrollEvent.add(scrollerRef.current);\n }\n }, [scrollEvent, scrollerRef]);\n React.useEffect(onscroll, [scrollerRef, children, onscroll]);\n\n return (\n <div {...restProps} vkuiClass={getClassName(\"HorizontalScroll\", platform)}>\n {showArrows && hasMouse && canScrollLeft && (\n <HorizontalScrollArrow\n direction=\"left\"\n onClick={() => {\n if (getScrollToLeft) {\n scrollTo(getScrollToLeft);\n }\n }}\n />\n )}\n {showArrows && hasMouse && canScrollRight && (\n <HorizontalScrollArrow\n direction=\"right\"\n onClick={() => {\n if (getScrollToRight) {\n scrollTo(getScrollToRight);\n }\n }}\n />\n )}\n <div vkuiClass=\"HorizontalScroll__in\" ref={scrollerRef}>\n <div vkuiClass=\"HorizontalScroll__in-wrapper\">{children}</div>\n </div>\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(HorizontalScroll, {\n hasMouse: true,\n});\n"],"file":"HorizontalScroll.js"}
1
+ {"version":3,"sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"names":["now","performance","Date","SCROLL_ONE_FRAME_TIME","doScroll","scrollElement","getScrollPosition","animationQueue","onScrollToRightBorder","onScrollEnd","onScrollStart","initialScrollWidth","scrollAnimationDuration","maxLeft","offsetWidth","startLeft","scrollLeft","endLeft","startTime","scroll","time","elapsed","Math","min","value","currentLeft","ceil","max","requestAnimationFrame","shift","length","HorizontalScroll","children","getScrollToLeft","getScrollToRight","showArrows","hasMouse","getRef","restProps","React","useState","canScrollLeft","setCanScrollLeft","canScrollRight","setCanScrollRight","isCustomScrollingRef","useRef","scrollerRef","platform","scrollTo","current","push","firstElementChild","scrollWidth","onscroll","useCallback","scrollEvent","useEffect","add"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport HorizontalScrollArrow from \"./HorizontalScrollArrow\";\nimport { easeInOutSine } from \"../../lib/fx\";\nimport { useEventListener } from \"../../hooks/useEventListener\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { HasRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./HorizontalScroll.css\";\n\ninterface ScrollContext {\n scrollElement: HTMLElement | null;\n scrollAnimationDuration: number;\n animationQueue: VoidFunction[];\n getScrollPosition: (currentPosition: number) => number;\n onScrollToRightBorder: VoidFunction;\n onScrollEnd: VoidFunction;\n onScrollStart: VoidFunction;\n /**\n * Начальная ширина прокрутки.\n * В некоторых случаях может отличаться от текущей ширины прокрутки из-за transforms: translate\n */\n initialScrollWidth: number;\n}\n\nexport type ScrollPositionHandler = (currentPosition: number) => number;\n\nexport interface HorizontalScrollProps\n extends React.HTMLAttributes<HTMLDivElement>,\n AdaptivityProps,\n HasRef<HTMLDivElement> {\n /**\n * Функция для расчета величины прокрутки при клике на левую стрелку.\n */\n getScrollToLeft?: ScrollPositionHandler;\n /**\n * Функция для расчета величины прокрутки при клике на правую стрелку.\n */\n getScrollToRight?: ScrollPositionHandler;\n showArrows?: boolean | \"always\";\n scrollAnimationDuration?: number;\n}\n\n/**\n * timing method\n */\nfunction now() {\n return performance && performance.now ? performance.now() : Date.now();\n}\n\n/**\n * Код анимации скрола, на основе полифила: https://github.com/iamdustan/smoothscroll\n * Константа взята из полифила (468), на дизайн-ревью уточнили до 250\n * @var {number} SCROLL_ONE_FRAME_TIME время анимации скролла\n */\nconst SCROLL_ONE_FRAME_TIME = 250;\n\nfunction doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue,\n onScrollToRightBorder,\n onScrollEnd,\n onScrollStart,\n initialScrollWidth,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n}: ScrollContext) {\n if (!scrollElement || !getScrollPosition) {\n return;\n }\n\n /**\n * максимальное значение сдвига влево\n */\n const maxLeft = initialScrollWidth - scrollElement.offsetWidth;\n\n let startLeft = scrollElement.scrollLeft;\n let endLeft = getScrollPosition(startLeft);\n\n onScrollStart();\n\n if (endLeft >= maxLeft) {\n onScrollToRightBorder();\n endLeft = maxLeft;\n }\n\n const startTime = now();\n\n (function scroll() {\n if (!scrollElement) {\n onScrollEnd();\n return;\n }\n\n const time = now();\n const elapsed = Math.min((time - startTime) / scrollAnimationDuration, 1);\n\n const value = easeInOutSine(elapsed);\n\n const currentLeft = startLeft + (endLeft - startLeft) * value;\n scrollElement.scrollLeft = Math.ceil(currentLeft);\n\n if (scrollElement.scrollLeft !== Math.max(0, endLeft)) {\n requestAnimationFrame(scroll);\n return;\n }\n\n onScrollEnd();\n animationQueue.shift();\n if (animationQueue.length > 0) {\n animationQueue[0]();\n }\n })();\n}\n\nconst HorizontalScroll: React.FC<HorizontalScrollProps> = ({\n children,\n getScrollToLeft,\n getScrollToRight,\n showArrows = true,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n hasMouse,\n getRef,\n ...restProps\n}: HorizontalScrollProps) => {\n const [canScrollLeft, setCanScrollLeft] = React.useState(false);\n const [canScrollRight, setCanScrollRight] = React.useState(false);\n\n const isCustomScrollingRef = React.useRef(false);\n\n const scrollerRef = useExternRef(getRef);\n\n const animationQueue = React.useRef<VoidFunction[]>([]);\n\n const platform = usePlatform();\n\n function scrollTo(getScrollPosition: (offset: number) => number) {\n const scrollElement = scrollerRef.current;\n\n animationQueue.current.push(() =>\n doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue: animationQueue.current,\n onScrollToRightBorder: () => setCanScrollRight(false),\n onScrollEnd: () => (isCustomScrollingRef.current = false),\n onScrollStart: () => (isCustomScrollingRef.current = true),\n initialScrollWidth: scrollElement?.firstElementChild?.scrollWidth || 0,\n scrollAnimationDuration,\n })\n );\n if (animationQueue.current.length === 1) {\n animationQueue.current[0]();\n }\n }\n\n const onscroll = React.useCallback(() => {\n if (\n showArrows &&\n hasMouse &&\n scrollerRef.current &&\n !isCustomScrollingRef.current\n ) {\n const scrollElement = scrollerRef.current;\n\n setCanScrollLeft(scrollElement.scrollLeft > 0);\n setCanScrollRight(\n scrollElement.scrollLeft + scrollElement.offsetWidth <\n scrollElement.scrollWidth\n );\n }\n }, [hasMouse, scrollerRef, showArrows]);\n\n const scrollEvent = useEventListener(\"scroll\", onscroll);\n React.useEffect(() => {\n if (scrollerRef.current) {\n scrollEvent.add(scrollerRef.current);\n }\n }, [scrollEvent, scrollerRef]);\n React.useEffect(onscroll, [scrollerRef, children, onscroll]);\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(getClassName(\"HorizontalScroll\", platform), {\n [\"HorizontalScroll--withConstArrows\"]: showArrows === \"always\",\n })}\n >\n {showArrows && hasMouse && canScrollLeft && (\n <HorizontalScrollArrow\n direction=\"left\"\n onClick={() => {\n if (getScrollToLeft) {\n scrollTo(getScrollToLeft);\n }\n }}\n />\n )}\n {showArrows && hasMouse && canScrollRight && (\n <HorizontalScrollArrow\n direction=\"right\"\n onClick={() => {\n if (getScrollToRight) {\n scrollTo(getScrollToRight);\n }\n }}\n />\n )}\n <div vkuiClass=\"HorizontalScroll__in\" ref={scrollerRef}>\n <div vkuiClass=\"HorizontalScroll__in-wrapper\">{children}</div>\n </div>\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(HorizontalScroll, {\n hasMouse: true,\n});\n"],"file":"HorizontalScroll.js"}
@@ -25,7 +25,10 @@ var _withAdaptivity = require("../../hoc/withAdaptivity");
25
25
 
26
26
  var _platform = require("../../lib/platform");
27
27
 
28
+ var _warnOnce = require("../../lib/warnOnce");
29
+
28
30
  var _excluded = ["icon", "sizeY", "children", "Component"];
31
+ var warn = (0, _warnOnce.warnOnce)("IconButton");
29
32
 
30
33
  var IconButton = function IconButton(_ref) {
31
34
  var icon = _ref.icon,
@@ -34,6 +37,11 @@ var IconButton = function IconButton(_ref) {
34
37
  Component = _ref.Component,
35
38
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
36
39
  var platform = (0, _usePlatform.usePlatform)();
40
+
41
+ if (icon && process.env.NODE_ENV === "development") {
42
+ warn("Свойство icon устарело и будет удалено в 5.0.0. Используйте children");
43
+ }
44
+
37
45
  return (0, _jsxRuntime.createScopedElement)(_Tappable.default, (0, _extends2.default)({}, restProps, {
38
46
  Component: restProps.href ? "a" : Component,
39
47
  activeEffectDelay: 200,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/IconButton/IconButton.tsx"],"names":["IconButton","icon","sizeY","children","Component","restProps","platform","href","IOS","defaultProps"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAUA,IAAMA,UAAqC,GAAG,SAAxCA,UAAwC,OAMvB;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,KAIqB,QAJrBA,KAIqB;AAAA,MAHrBC,QAGqB,QAHrBA,QAGqB;AAAA,MAFrBC,SAEqB,QAFrBA,SAEqB;AAAA,MADlBC,SACkB;AACrB,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,SACE,qCAAC,iBAAD,6BACMD,SADN;AAEE,IAAA,SAAS,EAAEA,SAAS,CAACE,IAAV,GAAiB,GAAjB,GAAuBH,SAFpC;AAGE,IAAA,iBAAiB,EAAE,GAHrB;AAIE,IAAA,UAAU,EAAEE,QAAQ,KAAKE,aAAb,GAAmB,SAAnB,GAA+B,oBAJ7C;AAKE,IAAA,SAAS,EAAE,4BACT,gCAAa,YAAb,EAA2BF,QAA3B,CADS,8BAEYJ,KAFZ;AALb,MAUGD,IAAI,IAAIE,QAVX,CADF;AAcD,CAvBD;;AAyBAH,UAAU,CAACS,YAAX,GAA0B;AACxBL,EAAAA,SAAS,EAAE;AADa,CAA1B,C,CAIA;;eACe,oCAAeJ,UAAf,EAA2B;AACxCE,EAAAA,KAAK,EAAE;AADiC,CAA3B,C","sourcesContent":["import * as React from \"react\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { IOS } from \"../../lib/platform\";\nimport \"./IconButton.css\";\n\nexport interface IconButtonProps extends TappableProps {\n /**\n * @deprecated будет удалено в 5.0.0. Используйте `children`\n */\n icon?: React.ReactNode;\n}\n\nconst IconButton: React.FC<IconButtonProps> = ({\n icon,\n sizeY,\n children,\n Component,\n ...restProps\n}: IconButtonProps) => {\n const platform = usePlatform();\n\n return (\n <Tappable\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n activeEffectDelay={200}\n activeMode={platform === IOS ? \"opacity\" : \"IconButton--active\"}\n vkuiClass={classNames(\n getClassName(\"IconButton\", platform),\n `IconButton--sizeY-${sizeY}`\n )}\n >\n {icon || children}\n </Tappable>\n );\n};\n\nIconButton.defaultProps = {\n Component: \"button\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(IconButton, {\n sizeY: true,\n});\n"],"file":"IconButton.js"}
1
+ {"version":3,"sources":["../../../../src/components/IconButton/IconButton.tsx"],"names":["warn","IconButton","icon","sizeY","children","Component","restProps","platform","process","env","NODE_ENV","href","IOS","defaultProps"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;AAUA,IAAMA,IAAI,GAAG,wBAAS,YAAT,CAAb;;AACA,IAAMC,UAAqC,GAAG,SAAxCA,UAAwC,OAMvB;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,KAIqB,QAJrBA,KAIqB;AAAA,MAHrBC,QAGqB,QAHrBA,QAGqB;AAAA,MAFrBC,SAEqB,QAFrBA,SAEqB;AAAA,MADlBC,SACkB;AACrB,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,MAAIL,IAAI,IAAIM,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAArC,EAAoD;AAClDV,IAAAA,IAAI,CACF,sEADE,CAAJ;AAGD;;AAED,SACE,qCAAC,iBAAD,6BACMM,SADN;AAEE,IAAA,SAAS,EAAEA,SAAS,CAACK,IAAV,GAAiB,GAAjB,GAAuBN,SAFpC;AAGE,IAAA,iBAAiB,EAAE,GAHrB;AAIE,IAAA,UAAU,EAAEE,QAAQ,KAAKK,aAAb,GAAmB,SAAnB,GAA+B,oBAJ7C;AAKE,IAAA,SAAS,EAAE,4BACT,gCAAa,YAAb,EAA2BL,QAA3B,CADS,8BAEYJ,KAFZ;AALb,MAUGD,IAAI,IAAIE,QAVX,CADF;AAcD,CA7BD;;AA+BAH,UAAU,CAACY,YAAX,GAA0B;AACxBR,EAAAA,SAAS,EAAE;AADa,CAA1B,C,CAIA;;eACe,oCAAeJ,UAAf,EAA2B;AACxCE,EAAAA,KAAK,EAAE;AADiC,CAA3B,C","sourcesContent":["import * as React from \"react\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { IOS } from \"../../lib/platform\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./IconButton.css\";\n\nexport interface IconButtonProps extends TappableProps {\n /**\n * @deprecated будет удалено в 5.0.0. Используйте `children`\n */\n icon?: React.ReactNode;\n}\n\nconst warn = warnOnce(\"IconButton\");\nconst IconButton: React.FC<IconButtonProps> = ({\n icon,\n sizeY,\n children,\n Component,\n ...restProps\n}: IconButtonProps) => {\n const platform = usePlatform();\n\n if (icon && process.env.NODE_ENV === \"development\") {\n warn(\n \"Свойство icon устарело и будет удалено в 5.0.0. Используйте children\"\n );\n }\n\n return (\n <Tappable\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n activeEffectDelay={200}\n activeMode={platform === IOS ? \"opacity\" : \"IconButton--active\"}\n vkuiClass={classNames(\n getClassName(\"IconButton\", platform),\n `IconButton--sizeY-${sizeY}`\n )}\n >\n {icon || children}\n </Tappable>\n );\n};\n\nIconButton.defaultProps = {\n Component: \"button\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(IconButton, {\n sizeY: true,\n});\n"],"file":"IconButton.js"}
@@ -19,6 +19,8 @@ var _getClassName = require("../../helpers/getClassName");
19
19
 
20
20
  var _classNames = require("../../lib/classNames");
21
21
 
22
+ var _warnOnce = require("../../lib/warnOnce");
23
+
22
24
  var _usePlatform = require("../../hooks/usePlatform");
23
25
 
24
26
  var _utils = require("../../lib/utils");
@@ -49,9 +51,12 @@ var ButtonTypography = function ButtonTypography(_ref) {
49
51
  }, children);
50
52
  };
51
53
 
54
+ var warn = (0, _warnOnce.warnOnce)("PanelHeaderButton");
55
+
52
56
  var PanelHeaderButton = function PanelHeaderButton(_ref2) {
53
57
  var children = _ref2.children,
54
- primary = _ref2.primary,
58
+ _ref2$primary = _ref2.primary,
59
+ primary = _ref2$primary === void 0 ? false : _ref2$primary,
55
60
  label = _ref2.label,
56
61
  restProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
57
62
  var isPrimitive = (0, _utils.isPrimitiveReactNode)(children);
@@ -76,6 +81,14 @@ var PanelHeaderButton = function PanelHeaderButton(_ref2) {
76
81
  activeMode = "PanelHeaderButton--active";
77
82
  }
78
83
 
84
+ if (process.env.NODE_ENV === "development") {
85
+ var hasAccessibleName = Boolean((0, _utils.getTitleFromChildren)(children) || (0, _utils.getTitleFromChildren)(label) || restProps["aria-label"] || restProps["aria-labelledby"]);
86
+
87
+ if (!hasAccessibleName) {
88
+ warn("a11y: У кнопки нет названия, которое может прочитать скринридер, и она недоступна для части пользователей. Замените содержимое на текст или добавьте описание действия с помощью пропа aria-label.");
89
+ }
90
+ }
91
+
79
92
  return (0, _jsxRuntime.createScopedElement)(_Tappable.default, (0, _extends2.default)({}, restProps, {
80
93
  hoverMode: hoverMode,
81
94
  Component: restProps.href ? "a" : "button",
@@ -94,8 +107,4 @@ var PanelHeaderButton = function PanelHeaderButton(_ref2) {
94
107
  };
95
108
 
96
109
  exports.PanelHeaderButton = PanelHeaderButton;
97
- PanelHeaderButton.defaultProps = {
98
- primary: false,
99
- "aria-label": "Закрыть"
100
- };
101
110
  //# sourceMappingURL=PanelHeaderButton.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PanelHeaderButton/PanelHeaderButton.tsx"],"names":["ButtonTypography","primary","children","platform","IOS","VKCOM","PanelHeaderButton","label","restProps","isPrimitive","isPrimitiveLabel","hoverMode","activeMode","ANDROID","href","defaultProps"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAYA,IAAMA,gBAAiD,GAAG,SAApDA,gBAAoD,OAG7B;AAAA,MAF3BC,OAE2B,QAF3BA,OAE2B;AAAA,MAD3BC,QAC2B,QAD3BA,QAC2B;AAC3B,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,MAAIA,QAAQ,KAAKC,aAAjB,EAAsB;AACpB,WACE,qCAAC,cAAD;AACE,MAAA,SAAS,EAAC,MADZ;AAEE,MAAA,KAAK,EAAC,GAFR;AAGE,MAAA,MAAM,EAAEH,OAAO,GAAG,UAAH,GAAgB;AAHjC,OAKGC,QALH,CADF;AASD;;AAED,SACE,qCAAC,aAAD;AAAM,IAAA,MAAM,EAAEC,QAAQ,KAAKE,eAAb,GAAqB,SAArB,GAAiC;AAA/C,KAA0DH,QAA1D,CADF;AAGD,CArBD;;AAuBO,IAAMI,iBAAmD,GAAG,SAAtDA,iBAAsD,QAKrC;AAAA,MAJ5BJ,QAI4B,SAJ5BA,QAI4B;AAAA,MAH5BD,OAG4B,SAH5BA,OAG4B;AAAA,MAF5BM,KAE4B,SAF5BA,KAE4B;AAAA,MADzBC,SACyB;AAC5B,MAAMC,WAAW,GAAG,iCAAqBP,QAArB,CAApB;AACA,MAAMQ,gBAAgB,GAAG,iCAAqBH,KAArB,CAAzB;AACA,MAAMJ,QAAQ,GAAG,+BAAjB;AAEA,MAAIQ,SAAJ;AACA,MAAIC,UAAJ;;AAEA,UAAQT,QAAR;AACE,SAAKU,iBAAL;AACEF,MAAAA,SAAS,GAAG,YAAZ;AACAC,MAAAA,UAAU,GAAG,YAAb;AACA;;AACF,SAAKR,aAAL;AACEO,MAAAA,SAAS,GAAG,YAAZ;AACAC,MAAAA,UAAU,GAAG,SAAb;AACA;;AACF,SAAKP,eAAL;AACEM,MAAAA,SAAS,GAAG,0BAAZ;AACAC,MAAAA,UAAU,GAAG,2BAAb;AAXJ;;AAcA,SACE,qCAAC,iBAAD,6BACMJ,SADN;AAEE,IAAA,SAAS,EAAEG,SAFb;AAGE,IAAA,SAAS,EAAEH,SAAS,CAACM,IAAV,GAAiB,GAAjB,GAAuB,QAHpC;AAIE,IAAA,iBAAiB,EAAE,GAJrB;AAKE,IAAA,UAAU,EAAEF,UALd;AAME,IAAA,SAAS,EAAE,4BAAW,gCAAa,mBAAb,EAAkCT,QAAlC,CAAX,EAAwD;AACjE,oCAA8BF,OADmC;AAEjE,sCAAgCQ,WAFiC;AAGjE,yCAAmC,CAACA,WAAD,IAAgB,CAACC;AAHa,KAAxD;AANb,MAYGD,WAAW,GACV,qCAAC,gBAAD;AAAkB,IAAA,OAAO,EAAER;AAA3B,KAAqCC,QAArC,CADU,GAGVA,QAfJ,EAiBGQ,gBAAgB,GACf,qCAAC,gBAAD;AAAkB,IAAA,OAAO,EAAET;AAA3B,KAAqCM,KAArC,CADe,GAGfA,KApBJ,CADF;AAyBD,CApDM;;;AAsDPD,iBAAiB,CAACS,YAAlB,GAAiC;AAC/Bd,EAAAA,OAAO,EAAE,KADsB;AAE/B,gBAAc;AAFiB,CAAjC","sourcesContent":["import * as React from \"react\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { isPrimitiveReactNode } from \"../../lib/utils\";\nimport { IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport Text from \"../Typography/Text/Text\";\nimport Title from \"../Typography/Title/Title\";\nimport \"./PanelHeaderButton.css\";\n\nexport interface PanelHeaderButtonProps extends Omit<TappableProps, \"label\"> {\n primary?: boolean;\n label?: React.ReactNode;\n}\n\ninterface ButtonTypographyProps extends React.AllHTMLAttributes<HTMLElement> {\n primary?: PanelHeaderButtonProps[\"primary\"];\n}\n\nconst ButtonTypography: React.FC<ButtonTypographyProps> = ({\n primary,\n children,\n}: ButtonTypographyProps) => {\n const platform = usePlatform();\n\n if (platform === IOS) {\n return (\n <Title\n Component=\"span\"\n level=\"3\"\n weight={primary ? \"semibold\" : \"regular\"}\n >\n {children}\n </Title>\n );\n }\n\n return (\n <Text weight={platform === VKCOM ? \"regular\" : \"medium\"}>{children}</Text>\n );\n};\n\nexport const PanelHeaderButton: React.FC<PanelHeaderButtonProps> = ({\n children,\n primary,\n label,\n ...restProps\n}: PanelHeaderButtonProps) => {\n const isPrimitive = isPrimitiveReactNode(children);\n const isPrimitiveLabel = isPrimitiveReactNode(label);\n const platform = usePlatform();\n\n let hoverMode;\n let activeMode;\n\n switch (platform) {\n case ANDROID:\n hoverMode = \"background\";\n activeMode = \"background\";\n break;\n case IOS:\n hoverMode = \"background\";\n activeMode = \"opacity\";\n break;\n case VKCOM:\n hoverMode = \"PanelHeaderButton--hover\";\n activeMode = \"PanelHeaderButton--active\";\n }\n\n return (\n <Tappable\n {...restProps}\n hoverMode={hoverMode}\n Component={restProps.href ? \"a\" : \"button\"}\n activeEffectDelay={200}\n activeMode={activeMode}\n vkuiClass={classNames(getClassName(\"PanelHeaderButton\", platform), {\n \"PanelHeaderButton--primary\": primary,\n \"PanelHeaderButton--primitive\": isPrimitive,\n \"PanelHeaderButton--notPrimitive\": !isPrimitive && !isPrimitiveLabel,\n })}\n >\n {isPrimitive ? (\n <ButtonTypography primary={primary}>{children}</ButtonTypography>\n ) : (\n children\n )}\n {isPrimitiveLabel ? (\n <ButtonTypography primary={primary}>{label}</ButtonTypography>\n ) : (\n label\n )}\n </Tappable>\n );\n};\n\nPanelHeaderButton.defaultProps = {\n primary: false,\n \"aria-label\": \"Закрыть\",\n};\n"],"file":"PanelHeaderButton.js"}
1
+ {"version":3,"sources":["../../../../src/components/PanelHeaderButton/PanelHeaderButton.tsx"],"names":["ButtonTypography","primary","children","platform","IOS","VKCOM","warn","PanelHeaderButton","label","restProps","isPrimitive","isPrimitiveLabel","hoverMode","activeMode","ANDROID","process","env","NODE_ENV","hasAccessibleName","Boolean","href"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAYA,IAAMA,gBAAiD,GAAG,SAApDA,gBAAoD,OAG7B;AAAA,MAF3BC,OAE2B,QAF3BA,OAE2B;AAAA,MAD3BC,QAC2B,QAD3BA,QAC2B;AAC3B,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,MAAIA,QAAQ,KAAKC,aAAjB,EAAsB;AACpB,WACE,qCAAC,cAAD;AACE,MAAA,SAAS,EAAC,MADZ;AAEE,MAAA,KAAK,EAAC,GAFR;AAGE,MAAA,MAAM,EAAEH,OAAO,GAAG,UAAH,GAAgB;AAHjC,OAKGC,QALH,CADF;AASD;;AAED,SACE,qCAAC,aAAD;AAAM,IAAA,MAAM,EAAEC,QAAQ,KAAKE,eAAb,GAAqB,SAArB,GAAiC;AAA/C,KAA0DH,QAA1D,CADF;AAGD,CArBD;;AAuBA,IAAMI,IAAI,GAAG,wBAAS,mBAAT,CAAb;;AACO,IAAMC,iBAAmD,GAAG,SAAtDA,iBAAsD,QAKrC;AAAA,MAJ5BL,QAI4B,SAJ5BA,QAI4B;AAAA,4BAH5BD,OAG4B;AAAA,MAH5BA,OAG4B,8BAHlB,KAGkB;AAAA,MAF5BO,KAE4B,SAF5BA,KAE4B;AAAA,MADzBC,SACyB;AAC5B,MAAMC,WAAW,GAAG,iCAAqBR,QAArB,CAApB;AACA,MAAMS,gBAAgB,GAAG,iCAAqBH,KAArB,CAAzB;AACA,MAAML,QAAQ,GAAG,+BAAjB;AAEA,MAAIS,SAAJ;AACA,MAAIC,UAAJ;;AAEA,UAAQV,QAAR;AACE,SAAKW,iBAAL;AACEF,MAAAA,SAAS,GAAG,YAAZ;AACAC,MAAAA,UAAU,GAAG,YAAb;AACA;;AACF,SAAKT,aAAL;AACEQ,MAAAA,SAAS,GAAG,YAAZ;AACAC,MAAAA,UAAU,GAAG,SAAb;AACA;;AACF,SAAKR,eAAL;AACEO,MAAAA,SAAS,GAAG,0BAAZ;AACAC,MAAAA,UAAU,GAAG,2BAAb;AAXJ;;AAcA,MAAIE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1C,QAAMC,iBAAiB,GAAGC,OAAO,CAC/B,iCAAqBjB,QAArB,KACE,iCAAqBM,KAArB,CADF,IAEEC,SAAS,CAAC,YAAD,CAFX,IAGEA,SAAS,CAAC,iBAAD,CAJoB,CAAjC;;AAOA,QAAI,CAACS,iBAAL,EAAwB;AACtBZ,MAAAA,IAAI,CACF,oMADE,CAAJ;AAGD;AACF;;AAED,SACE,qCAAC,iBAAD,6BACMG,SADN;AAEE,IAAA,SAAS,EAAEG,SAFb;AAGE,IAAA,SAAS,EAAEH,SAAS,CAACW,IAAV,GAAiB,GAAjB,GAAuB,QAHpC;AAIE,IAAA,iBAAiB,EAAE,GAJrB;AAKE,IAAA,UAAU,EAAEP,UALd;AAME,IAAA,SAAS,EAAE,4BAAW,gCAAa,mBAAb,EAAkCV,QAAlC,CAAX,EAAwD;AACjE,oCAA8BF,OADmC;AAEjE,sCAAgCS,WAFiC;AAGjE,yCAAmC,CAACA,WAAD,IAAgB,CAACC;AAHa,KAAxD;AANb,MAYGD,WAAW,GACV,qCAAC,gBAAD;AAAkB,IAAA,OAAO,EAAET;AAA3B,KAAqCC,QAArC,CADU,GAGVA,QAfJ,EAiBGS,gBAAgB,GACf,qCAAC,gBAAD;AAAkB,IAAA,OAAO,EAAEV;AAA3B,KAAqCO,KAArC,CADe,GAGfA,KApBJ,CADF;AAyBD,CAnEM","sourcesContent":["import * as React from \"react\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getTitleFromChildren, isPrimitiveReactNode } from \"../../lib/utils\";\nimport { IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport Text from \"../Typography/Text/Text\";\nimport Title from \"../Typography/Title/Title\";\nimport \"./PanelHeaderButton.css\";\n\nexport interface PanelHeaderButtonProps extends Omit<TappableProps, \"label\"> {\n primary?: boolean;\n label?: React.ReactNode;\n}\n\ninterface ButtonTypographyProps extends React.AllHTMLAttributes<HTMLElement> {\n primary?: PanelHeaderButtonProps[\"primary\"];\n}\n\nconst ButtonTypography: React.FC<ButtonTypographyProps> = ({\n primary,\n children,\n}: ButtonTypographyProps) => {\n const platform = usePlatform();\n\n if (platform === IOS) {\n return (\n <Title\n Component=\"span\"\n level=\"3\"\n weight={primary ? \"semibold\" : \"regular\"}\n >\n {children}\n </Title>\n );\n }\n\n return (\n <Text weight={platform === VKCOM ? \"regular\" : \"medium\"}>{children}</Text>\n );\n};\n\nconst warn = warnOnce(\"PanelHeaderButton\");\nexport const PanelHeaderButton: React.FC<PanelHeaderButtonProps> = ({\n children,\n primary = false,\n label,\n ...restProps\n}: PanelHeaderButtonProps) => {\n const isPrimitive = isPrimitiveReactNode(children);\n const isPrimitiveLabel = isPrimitiveReactNode(label);\n const platform = usePlatform();\n\n let hoverMode;\n let activeMode;\n\n switch (platform) {\n case ANDROID:\n hoverMode = \"background\";\n activeMode = \"background\";\n break;\n case IOS:\n hoverMode = \"background\";\n activeMode = \"opacity\";\n break;\n case VKCOM:\n hoverMode = \"PanelHeaderButton--hover\";\n activeMode = \"PanelHeaderButton--active\";\n }\n\n if (process.env.NODE_ENV === \"development\") {\n const hasAccessibleName = Boolean(\n getTitleFromChildren(children) ||\n getTitleFromChildren(label) ||\n restProps[\"aria-label\"] ||\n restProps[\"aria-labelledby\"]\n );\n\n if (!hasAccessibleName) {\n warn(\n \"a11y: У кнопки нет названия, которое может прочитать скринридер, и она недоступна для части пользователей. Замените содержимое на текст или добавьте описание действия с помощью пропа aria-label.\"\n );\n }\n }\n\n return (\n <Tappable\n {...restProps}\n hoverMode={hoverMode}\n Component={restProps.href ? \"a\" : \"button\"}\n activeEffectDelay={200}\n activeMode={activeMode}\n vkuiClass={classNames(getClassName(\"PanelHeaderButton\", platform), {\n \"PanelHeaderButton--primary\": primary,\n \"PanelHeaderButton--primitive\": isPrimitive,\n \"PanelHeaderButton--notPrimitive\": !isPrimitive && !isPrimitiveLabel,\n })}\n >\n {isPrimitive ? (\n <ButtonTypography primary={primary}>{children}</ButtonTypography>\n ) : (\n children\n )}\n {isPrimitiveLabel ? (\n <ButtonTypography primary={primary}>{label}</ButtonTypography>\n ) : (\n label\n )}\n </Tappable>\n );\n};\n"],"file":"PanelHeaderButton.js"}
@@ -37,7 +37,10 @@ var _usePlatform = require("../../hooks/usePlatform");
37
37
 
38
38
  var _getClassName = require("../../helpers/getClassName");
39
39
 
40
+ var _warnOnce = require("../../lib/warnOnce");
41
+
40
42
  var _excluded = ["bannerData", "onClose"];
43
+ var warn = (0, _warnOnce.warnOnce)("PromoBanner");
41
44
 
42
45
  var PromoBanner = function PromoBanner(props) {
43
46
  var platform = (0, _usePlatform.usePlatform)();
@@ -47,6 +50,10 @@ var PromoBanner = function PromoBanner(props) {
47
50
  restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
48
51
  var ageRestrictions = bannerData.ageRestrictions != null ? parseInt(bannerData.ageRestrictions) : bannerData.ageRestriction;
49
52
 
53
+ if (bannerData.ageRestriction && process.env.NODE_ENV === "development") {
54
+ warn("Свойство bannerData.ageRestriction устарело и будет удалено в 5.0.0. Используйте bannerData.ageRestrictions");
55
+ }
56
+
50
57
  var _React$useState = React.useState(""),
51
58
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
52
59
  currentPixel = _React$useState2[0],
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PromoBanner/PromoBanner.tsx"],"names":["PromoBanner","props","platform","bannerData","onClose","restProps","ageRestrictions","parseInt","ageRestriction","React","useState","currentPixel","setCurrentPixel","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","advertisingLabel","isCloseButtonHidden","trackingLink","iconLink","title","ctaText","domain","length"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Icon24Dismiss } from \"@vkontakte/icons\";\nimport Button from \"../Button/Button\";\nimport SimpleCell from \"../SimpleCell/SimpleCell\";\nimport Avatar from \"../Avatar/Avatar\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport \"./PromoBanner.css\";\n\ntype StatsType =\n | \"playbackStarted\" // Начало показа\n | \"click\"; // Клик по баннеру\n\ntype BannerData = {\n title?: string;\n url_types?: string; // eslint-disable-line camelcase\n bannerID?: string;\n imageWidth?: number;\n imageHeight?: number;\n imageLink?: string;\n trackingLink?: string;\n type?: string;\n iconWidth?: number;\n domain?: string;\n ctaText?: string;\n advertisingLabel?: string;\n iconLink?: string;\n statistics?: Array<{ type: StatsType; url: string }>;\n openInBrowser?: boolean;\n iconHeight?: number;\n directLink?: boolean;\n navigationType?: string;\n description?: string;\n ageRestrictions?: string;\n /** @deprecated */\n ageRestriction?: number;\n};\n\nexport interface PromoBannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Данные рекламного баннера, полученные из VKWebAppGetAds */\n bannerData: BannerData;\n /** Флаг скрытия кнопки закрытия рекламы */\n isCloseButtonHidden?: boolean;\n /** Хандлер закрытия рекламы */\n onClose: () => void;\n}\n\nconst PromoBanner = (props: PromoBannerProps) => {\n const platform = usePlatform();\n const { bannerData = {}, onClose, ...restProps } = props;\n\n const ageRestrictions =\n bannerData.ageRestrictions != null\n ? parseInt(bannerData.ageRestrictions)\n : bannerData.ageRestriction;\n\n const [currentPixel, setCurrentPixel] = React.useState(\"\");\n\n const statsPixels = React.useMemo(\n () =>\n (bannerData.statistics\n ? bannerData.statistics.reduce(\n (acc, item) => ({ ...acc, [item.type]: item.url }),\n {}\n )\n : {}) as Record<StatsType, string | void>,\n [bannerData.statistics]\n );\n\n const onClick = React.useCallback(\n () => setCurrentPixel(statsPixels.click || \"\"),\n [statsPixels.click]\n );\n\n React.useEffect(() => {\n if (statsPixels.playbackStarted) {\n setCurrentPixel(statsPixels.playbackStarted);\n }\n }, [statsPixels.playbackStarted]);\n\n return (\n <div vkuiClass={getClassName(\"PromoBanner\", platform)} {...restProps}>\n <div vkuiClass=\"PromoBanner__head\">\n <Caption weight=\"regular\" level=\"1\" vkuiClass=\"PromoBanner__label\">\n {bannerData.advertisingLabel || \"Advertisement\"}\n </Caption>\n {ageRestrictions != null && (\n <Caption weight=\"regular\" level=\"1\" vkuiClass=\"PromoBanner__age\">\n {ageRestrictions}+\n </Caption>\n )}\n\n {!props.isCloseButtonHidden && (\n <div vkuiClass=\"PromoBanner__close\" onClick={props.onClose}>\n <Icon24Dismiss />\n </div>\n )}\n </div>\n <SimpleCell\n href={bannerData.trackingLink}\n onClick={onClick}\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n before={\n <Avatar\n mode=\"image\"\n size={48}\n src={bannerData.iconLink}\n alt={bannerData.title}\n />\n }\n after={<Button mode=\"outline\">{bannerData.ctaText}</Button>}\n description={bannerData.domain}\n >\n {bannerData.title}\n </SimpleCell>\n\n {currentPixel.length > 0 && (\n <div vkuiClass=\"PromoBanner__pixels\">\n <img src={currentPixel} alt=\"\" />\n </div>\n )}\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default PromoBanner;\n"],"file":"PromoBanner.js"}
1
+ {"version":3,"sources":["../../../../src/components/PromoBanner/PromoBanner.tsx"],"names":["warn","PromoBanner","props","platform","bannerData","onClose","restProps","ageRestrictions","parseInt","ageRestriction","process","env","NODE_ENV","React","useState","currentPixel","setCurrentPixel","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","advertisingLabel","isCloseButtonHidden","trackingLink","iconLink","title","ctaText","domain","length"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Icon24Dismiss } from \"@vkontakte/icons\";\nimport Button from \"../Button/Button\";\nimport SimpleCell from \"../SimpleCell/SimpleCell\";\nimport Avatar from \"../Avatar/Avatar\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./PromoBanner.css\";\n\ntype StatsType =\n | \"playbackStarted\" // Начало показа\n | \"click\"; // Клик по баннеру\n\ntype BannerData = {\n title?: string;\n url_types?: string; // eslint-disable-line camelcase\n bannerID?: string;\n imageWidth?: number;\n imageHeight?: number;\n imageLink?: string;\n trackingLink?: string;\n type?: string;\n iconWidth?: number;\n domain?: string;\n ctaText?: string;\n advertisingLabel?: string;\n iconLink?: string;\n statistics?: Array<{ type: StatsType; url: string }>;\n openInBrowser?: boolean;\n iconHeight?: number;\n directLink?: boolean;\n navigationType?: string;\n description?: string;\n ageRestrictions?: string;\n /** @deprecated */\n ageRestriction?: number;\n};\n\nexport interface PromoBannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Данные рекламного баннера, полученные из VKWebAppGetAds */\n bannerData: BannerData;\n /** Флаг скрытия кнопки закрытия рекламы */\n isCloseButtonHidden?: boolean;\n /** Хандлер закрытия рекламы */\n onClose: () => void;\n}\n\nconst warn = warnOnce(\"PromoBanner\");\nconst PromoBanner = (props: PromoBannerProps) => {\n const platform = usePlatform();\n const { bannerData = {}, onClose, ...restProps } = props;\n\n const ageRestrictions =\n bannerData.ageRestrictions != null\n ? parseInt(bannerData.ageRestrictions)\n : bannerData.ageRestriction;\n\n if (bannerData.ageRestriction && process.env.NODE_ENV === \"development\") {\n warn(\n \"Свойство bannerData.ageRestriction устарело и будет удалено в 5.0.0. Используйте bannerData.ageRestrictions\"\n );\n }\n\n const [currentPixel, setCurrentPixel] = React.useState(\"\");\n\n const statsPixels = React.useMemo(\n () =>\n (bannerData.statistics\n ? bannerData.statistics.reduce(\n (acc, item) => ({ ...acc, [item.type]: item.url }),\n {}\n )\n : {}) as Record<StatsType, string | void>,\n [bannerData.statistics]\n );\n\n const onClick = React.useCallback(\n () => setCurrentPixel(statsPixels.click || \"\"),\n [statsPixels.click]\n );\n\n React.useEffect(() => {\n if (statsPixels.playbackStarted) {\n setCurrentPixel(statsPixels.playbackStarted);\n }\n }, [statsPixels.playbackStarted]);\n\n return (\n <div vkuiClass={getClassName(\"PromoBanner\", platform)} {...restProps}>\n <div vkuiClass=\"PromoBanner__head\">\n <Caption weight=\"regular\" level=\"1\" vkuiClass=\"PromoBanner__label\">\n {bannerData.advertisingLabel || \"Advertisement\"}\n </Caption>\n {ageRestrictions != null && (\n <Caption weight=\"regular\" level=\"1\" vkuiClass=\"PromoBanner__age\">\n {ageRestrictions}+\n </Caption>\n )}\n\n {!props.isCloseButtonHidden && (\n <div vkuiClass=\"PromoBanner__close\" onClick={props.onClose}>\n <Icon24Dismiss />\n </div>\n )}\n </div>\n <SimpleCell\n href={bannerData.trackingLink}\n onClick={onClick}\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n before={\n <Avatar\n mode=\"image\"\n size={48}\n src={bannerData.iconLink}\n alt={bannerData.title}\n />\n }\n after={<Button mode=\"outline\">{bannerData.ctaText}</Button>}\n description={bannerData.domain}\n >\n {bannerData.title}\n </SimpleCell>\n\n {currentPixel.length > 0 && (\n <div vkuiClass=\"PromoBanner__pixels\">\n <img src={currentPixel} alt=\"\" />\n </div>\n )}\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default PromoBanner;\n"],"file":"PromoBanner.js"}
@@ -151,6 +151,11 @@ var Root = function Root(_ref) {
151
151
  }
152
152
  };
153
153
 
154
+ if (process.env.NODE_ENV === "development") {
155
+ popout && warn("Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.");
156
+ modal && warn("Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.");
157
+ }
158
+
154
159
  return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({}, restProps, {
155
160
  vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)("Root", platform), {
156
161
  "Root--transition": !disableAnimation && transition,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Root/Root.tsx"],"names":["warn","Root","popout","modal","children","_activeView","activeView","onTransition","nav","restProps","scroll","React","useContext","ScrollContext","platform","document","scrolls","useRef","current","viewNodes","ConfigProviderContext","transitionMotionEnabled","SplitColContext","animate","disableAnimation","views","Children","toArray","useState","transition","prevView","isBack","_setState","transitionTo","panel","viewIds","map","view","props","indexOf","getScroll","y","finishTransition","useCallback","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","IOS","useEffect","clear","set","onAnimationEnd","e","includes","animationName","viewId","isTransitionTarget","compensateScroll","undefined","marginTop"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { IOS } from \"../../lib/platform\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { SplitColContext } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { ScrollContext } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useDOM } from \"../../lib/dom\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport \"./Root.css\";\n\nconst warn = warnOnce(\"Root\");\n\nexport interface RootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst Root: React.FC<RootProps> = ({\n popout = null,\n modal,\n children,\n activeView: _activeView,\n onTransition,\n nav,\n ...restProps\n}: RootProps) => {\n const scroll = React.useContext(ScrollContext);\n const platform = usePlatform();\n const { document } = useDOM();\n const scrolls = React.useRef<Record<string, number>>({}).current;\n const viewNodes = React.useRef<Record<string, HTMLElement | null>>(\n {}\n ).current;\n\n const { transitionMotionEnabled = true } = React.useContext(\n ConfigProviderContext\n );\n const { animate } = React.useContext(SplitColContext);\n const disableAnimation = !transitionMotionEnabled || !animate;\n\n const views = React.Children.toArray(children) as React.ReactElement[];\n\n const [{ prevView, activeView, transition, isBack }, _setState] =\n React.useState<RootState>({\n activeView: _activeView,\n transition: false,\n });\n const transitionTo = (panel: string) => {\n if (panel !== activeView) {\n const viewIds = views.map((view) => getNavId(view.props, warn));\n const isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);\n scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: true,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView]\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [!!popout, activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition]);\n\n const fallbackTransition = useTimeout(\n finishTransition,\n platform === IOS ? 600 : 300\n );\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n disableAnimation ? finishTransition() : fallbackTransition.set();\n }, [disableAnimation, fallbackTransition, finishTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\n \"vkui-root-android-animation-hide-back\",\n \"vkui-root-android-animation-show-forward\",\n \"vkui-root-ios-animation-hide-back\",\n \"vkui-root-ios-animation-show-forward\",\n ].includes(e.animationName)\n ) {\n finishTransition();\n }\n };\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(getClassName(\"Root\", platform), {\n \"Root--transition\": !disableAnimation && transition,\n \"Root--no-motion\": disableAnimation,\n })}\n >\n {views.map((view) => {\n const viewId = getNavId(view.props, warn);\n if (viewId !== activeView && !(transition && viewId === prevView)) {\n return null;\n }\n const isTransitionTarget =\n transition && viewId === (isBack ? prevView : activeView);\n const compensateScroll =\n transition &&\n (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n vkuiClass={classNames(\"Root__view\", {\n \"Root__view--hide-back\":\n transition && viewId === prevView && isBack,\n \"Root__view--hide-forward\":\n transition && viewId === prevView && !isBack,\n \"Root__view--show-back\":\n transition && viewId === activeView && isBack,\n \"Root__view--show-forward\":\n transition && viewId === activeView && !isBack,\n \"Root__view--active\": !transition && viewId === activeView,\n })}\n >\n <NavTransitionProvider\n entering={transition && viewId === activeView}\n >\n <div\n vkuiClass=\"Root__scrollCompensation\"\n style={{\n marginTop: compensateScroll\n ? viewId && -(scrolls[viewId] ?? 0)\n : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </div>\n );\n })}\n <AppRootPortal>\n {!!popout && <div vkuiClass=\"Root__popout\">{popout}</div>}\n {!!modal && <div vkuiClass=\"Root__modal\">{modal}</div>}\n </AppRootPortal>\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Root;\n"],"file":"Root.js"}
1
+ {"version":3,"sources":["../../../../src/components/Root/Root.tsx"],"names":["warn","Root","popout","modal","children","_activeView","activeView","onTransition","nav","restProps","scroll","React","useContext","ScrollContext","platform","document","scrolls","useRef","current","viewNodes","ConfigProviderContext","transitionMotionEnabled","SplitColContext","animate","disableAnimation","views","Children","toArray","useState","transition","prevView","isBack","_setState","transitionTo","panel","viewIds","map","view","props","indexOf","getScroll","y","finishTransition","useCallback","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","IOS","useEffect","clear","set","onAnimationEnd","e","includes","animationName","process","env","NODE_ENV","viewId","isTransitionTarget","compensateScroll","undefined","marginTop"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { IOS } from \"../../lib/platform\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { SplitColContext } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { ScrollContext } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useDOM } from \"../../lib/dom\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport \"./Root.css\";\n\nexport interface RootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst warn = warnOnce(\"Root\");\nconst Root: React.FC<RootProps> = ({\n popout = null,\n modal,\n children,\n activeView: _activeView,\n onTransition,\n nav,\n ...restProps\n}: RootProps) => {\n const scroll = React.useContext(ScrollContext);\n const platform = usePlatform();\n const { document } = useDOM();\n const scrolls = React.useRef<Record<string, number>>({}).current;\n const viewNodes = React.useRef<Record<string, HTMLElement | null>>(\n {}\n ).current;\n\n const { transitionMotionEnabled = true } = React.useContext(\n ConfigProviderContext\n );\n const { animate } = React.useContext(SplitColContext);\n const disableAnimation = !transitionMotionEnabled || !animate;\n\n const views = React.Children.toArray(children) as React.ReactElement[];\n\n const [{ prevView, activeView, transition, isBack }, _setState] =\n React.useState<RootState>({\n activeView: _activeView,\n transition: false,\n });\n const transitionTo = (panel: string) => {\n if (panel !== activeView) {\n const viewIds = views.map((view) => getNavId(view.props, warn));\n const isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);\n scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: true,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView]\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [!!popout, activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition]);\n\n const fallbackTransition = useTimeout(\n finishTransition,\n platform === IOS ? 600 : 300\n );\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n disableAnimation ? finishTransition() : fallbackTransition.set();\n }, [disableAnimation, fallbackTransition, finishTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\n \"vkui-root-android-animation-hide-back\",\n \"vkui-root-android-animation-show-forward\",\n \"vkui-root-ios-animation-hide-back\",\n \"vkui-root-ios-animation-show-forward\",\n ].includes(e.animationName)\n ) {\n finishTransition();\n }\n };\n\n if (process.env.NODE_ENV === \"development\") {\n popout &&\n warn(\n \"Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n modal &&\n warn(\n \"Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n }\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(getClassName(\"Root\", platform), {\n \"Root--transition\": !disableAnimation && transition,\n \"Root--no-motion\": disableAnimation,\n })}\n >\n {views.map((view) => {\n const viewId = getNavId(view.props, warn);\n if (viewId !== activeView && !(transition && viewId === prevView)) {\n return null;\n }\n const isTransitionTarget =\n transition && viewId === (isBack ? prevView : activeView);\n const compensateScroll =\n transition &&\n (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n vkuiClass={classNames(\"Root__view\", {\n \"Root__view--hide-back\":\n transition && viewId === prevView && isBack,\n \"Root__view--hide-forward\":\n transition && viewId === prevView && !isBack,\n \"Root__view--show-back\":\n transition && viewId === activeView && isBack,\n \"Root__view--show-forward\":\n transition && viewId === activeView && !isBack,\n \"Root__view--active\": !transition && viewId === activeView,\n })}\n >\n <NavTransitionProvider\n entering={transition && viewId === activeView}\n >\n <div\n vkuiClass=\"Root__scrollCompensation\"\n style={{\n marginTop: compensateScroll\n ? viewId && -(scrolls[viewId] ?? 0)\n : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </div>\n );\n })}\n <AppRootPortal>\n {!!popout && <div vkuiClass=\"Root__popout\">{popout}</div>}\n {!!modal && <div vkuiClass=\"Root__modal\">{modal}</div>}\n </AppRootPortal>\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Root;\n"],"file":"Root.js"}
@@ -27,7 +27,10 @@ var _Tappable = _interopRequireDefault(require("../Tappable/Tappable"));
27
27
 
28
28
  var _platform = require("../../lib/platform");
29
29
 
30
+ var _warnOnce = require("../../lib/warnOnce");
31
+
30
32
  var _excluded = ["children", "selected", "label", "indicator", "text", "href", "Component", "disabled"];
33
+ var warn = (0, _warnOnce.warnOnce)("TabbarItem");
31
34
 
32
35
  var TabbarItem = function TabbarItem(_ref) {
33
36
  var children = _ref.children,
@@ -40,7 +43,11 @@ var TabbarItem = function TabbarItem(_ref) {
40
43
  Component = _ref$Component === void 0 ? href ? "a" : "button" : _ref$Component,
41
44
  disabled = _ref.disabled,
42
45
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
43
- var platform = (0, _usePlatform.usePlatform)(); // @ts-ignore ругается на то, что у AllHTMLAttributes type это строка, а button не любую строку считает валидным значением
46
+ var platform = (0, _usePlatform.usePlatform)();
47
+
48
+ if (label && process.env.NODE_ENV === "development") {
49
+ warn("Свойство label устарело и будет удалено в 5.0.0. Используйте indicator.");
50
+ }
44
51
 
45
52
  return (0, _jsxRuntime.createScopedElement)(Component, (0, _extends2.default)({}, restProps, {
46
53
  disabled: disabled,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/TabbarItem/TabbarItem.tsx"],"names":["TabbarItem","children","selected","label","indicator","text","href","Component","disabled","restProps","platform","Platform","IOS"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAuBA,IAAMA,UAAoD,GAAG,SAAvDA,UAAuD,OAUtC;AAAA,MATrBC,QASqB,QATrBA,QASqB;AAAA,MARrBC,QAQqB,QARrBA,QAQqB;AAAA,MAPrBC,KAOqB,QAPrBA,KAOqB;AAAA,MANrBC,SAMqB,QANrBA,SAMqB;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,IAIqB,QAJrBA,IAIqB;AAAA,4BAHrBC,SAGqB;AAAA,MAHrBA,SAGqB,+BAHTD,IAAI,GAAG,GAAH,GAAS,QAGJ;AAAA,MAFrBE,QAEqB,QAFrBA,QAEqB;AAAA,MADlBC,SACkB;AACrB,MAAMC,QAAQ,GAAG,+BAAjB,CADqB,CAGrB;;AACA,SACE,qCAAC,SAAD,6BACMD,SADN;AAEE,IAAA,QAAQ,EAAED,QAFZ;AAGE,IAAA,IAAI,EAAEF,IAHR;AAIE,IAAA,SAAS,EAAE,4BAAW,gCAAa,YAAb,EAA2BI,QAA3B,CAAX,EAAiD;AAC1D,8BAAwBR,QADkC;AAE1D,0BAAoB,CAAC,CAACG;AAFoC,KAAjD;AAJb,MASE,qCAAC,iBAAD;AACE,IAAA,IAAI,EAAC,cADP;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,QAAQ,EAAEG,QAHZ;AAIE,IAAA,UAAU,EACRE,QAAQ,KAAKC,mBAASC,GAAtB,GACI,8BADJ,GAEI,YAPR;AASE,IAAA,iBAAiB,EAAEF,QAAQ,KAAKC,mBAASC,GAAtB,GAA4B,CAA5B,GAAgC,GATrD;AAUE,IAAA,QAAQ,EAAE,KAVZ;AAWE,IAAA,SAAS,EAAC;AAXZ,IATF,EAsBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGX,QADH,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,yBAAaG,SAAb,KAA2BA,SAD9B,EAEG,CAACA,SAAD,IAAcD,KAAd,IACC,qCAAC,gBAAD;AAAS,IAAA,IAAI,EAAC,GAAd;AAAkB,IAAA,IAAI,EAAC;AAAvB,KACGA,KADH,CAHJ,CAFF,CADF,EAYGE,IAAI,IAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,IAAnC,CAZX,CAtBF,CADF;AAuCD,CArDD,C,CAuDA;;;eACeL,U","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Counter from \"../Counter/Counter\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { Platform } from \"../../lib/platform\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport \"./TabbarItem.css\";\n\nexport interface TabbarItemProps\n extends Omit<React.AllHTMLAttributes<HTMLElement>, \"label\">, // TODO убрать Omit после удаления свойства label\n HasRootRef<HTMLElement>,\n HasComponent {\n selected?: boolean;\n /**\n * Тест рядом с иконкой\n */\n text?: React.ReactNode;\n /**\n * Индикатор над иконкой. Принимает `<Badge mode=\"prominent\" />` или `<Counter size=\"s\" mode=\"prominent\" />`\n */\n indicator?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте `indicator`\n */\n label?: React.ReactNode;\n}\n\nconst TabbarItem: React.FunctionComponent<TabbarItemProps> = ({\n children,\n selected,\n label,\n indicator,\n text,\n href,\n Component = href ? \"a\" : \"button\",\n disabled,\n ...restProps\n}: TabbarItemProps) => {\n const platform = usePlatform();\n\n // @ts-ignore ругается на то, что у AllHTMLAttributes type это строка, а button не любую строку считает валидным значением\n return (\n <Component\n {...restProps}\n disabled={disabled}\n href={href}\n vkuiClass={classNames(getClassName(\"TabbarItem\", platform), {\n \"TabbarItem--selected\": selected,\n \"TabbarItem--text\": !!text,\n })}\n >\n <Tappable\n role=\"presentation\"\n Component=\"div\"\n disabled={disabled}\n activeMode={\n platform === Platform.IOS\n ? \"TabbarItem__tappable--active\"\n : \"background\"\n }\n activeEffectDelay={platform === Platform.IOS ? 0 : 300}\n hasHover={false}\n vkuiClass=\"TabbarItem__tappable\"\n />\n <div vkuiClass=\"TabbarItem__in\">\n <div vkuiClass=\"TabbarItem__icon\">\n {children}\n <div vkuiClass=\"TabbarItem__label\">\n {hasReactNode(indicator) && indicator}\n {!indicator && label && (\n <Counter size=\"s\" mode=\"prominent\">\n {label}\n </Counter>\n )}\n </div>\n </div>\n {text && <div vkuiClass=\"TabbarItem__text\">{text}</div>}\n </div>\n </Component>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default TabbarItem;\n"],"file":"TabbarItem.js"}
1
+ {"version":3,"sources":["../../../../src/components/TabbarItem/TabbarItem.tsx"],"names":["warn","TabbarItem","children","selected","label","indicator","text","href","Component","disabled","restProps","platform","process","env","NODE_ENV","Platform","IOS"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;AAsBA,IAAMA,IAAI,GAAG,wBAAS,YAAT,CAAb;;AACA,IAAMC,UAAoD,GAAG,SAAvDA,UAAuD,OAUtC;AAAA,MATrBC,QASqB,QATrBA,QASqB;AAAA,MARrBC,QAQqB,QARrBA,QAQqB;AAAA,MAPrBC,KAOqB,QAPrBA,KAOqB;AAAA,MANrBC,SAMqB,QANrBA,SAMqB;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,IAIqB,QAJrBA,IAIqB;AAAA,4BAHrBC,SAGqB;AAAA,MAHrBA,SAGqB,+BAHTD,IAAI,GAAG,GAAH,GAAS,QAGJ;AAAA,MAFrBE,QAEqB,QAFrBA,QAEqB;AAAA,MADlBC,SACkB;AACrB,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,MAAIP,KAAK,IAAIQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAtC,EAAqD;AACnDd,IAAAA,IAAI,CACF,yEADE,CAAJ;AAGD;;AAED,SACE,qCAAC,SAAD,6BACMU,SADN;AAEE,IAAA,QAAQ,EAAED,QAFZ;AAGE,IAAA,IAAI,EAAEF,IAHR;AAIE,IAAA,SAAS,EAAE,4BAAW,gCAAa,YAAb,EAA2BI,QAA3B,CAAX,EAAiD;AAC1D,8BAAwBR,QADkC;AAE1D,0BAAoB,CAAC,CAACG;AAFoC,KAAjD;AAJb,MASE,qCAAC,iBAAD;AACE,IAAA,IAAI,EAAC,cADP;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,QAAQ,EAAEG,QAHZ;AAIE,IAAA,UAAU,EACRE,QAAQ,KAAKI,mBAASC,GAAtB,GACI,8BADJ,GAEI,YAPR;AASE,IAAA,iBAAiB,EAAEL,QAAQ,KAAKI,mBAASC,GAAtB,GAA4B,CAA5B,GAAgC,GATrD;AAUE,IAAA,QAAQ,EAAE,KAVZ;AAWE,IAAA,SAAS,EAAC;AAXZ,IATF,EAsBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGd,QADH,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,yBAAaG,SAAb,KAA2BA,SAD9B,EAEG,CAACA,SAAD,IAAcD,KAAd,IACC,qCAAC,gBAAD;AAAS,IAAA,IAAI,EAAC,GAAd;AAAkB,IAAA,IAAI,EAAC;AAAvB,KACGA,KADH,CAHJ,CAFF,CADF,EAYGE,IAAI,IAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,IAAnC,CAZX,CAtBF,CADF;AAuCD,CA1DD,C,CA4DA;;;eACeL,U","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Counter from \"../Counter/Counter\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { Platform } from \"../../lib/platform\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./TabbarItem.css\";\n\nexport interface TabbarItemProps\n extends Omit<React.AllHTMLAttributes<HTMLElement>, \"label\">, // TODO убрать Omit после удаления свойства label\n HasRootRef<HTMLElement>,\n HasComponent {\n selected?: boolean;\n /**\n * Тест рядом с иконкой\n */\n text?: React.ReactNode;\n /**\n * Индикатор над иконкой. Принимает `<Badge mode=\"prominent\" />` или `<Counter size=\"s\" mode=\"prominent\" />`\n */\n indicator?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте `indicator`\n */\n label?: React.ReactNode;\n}\n\nconst warn = warnOnce(\"TabbarItem\");\nconst TabbarItem: React.FunctionComponent<TabbarItemProps> = ({\n children,\n selected,\n label,\n indicator,\n text,\n href,\n Component = href ? \"a\" : \"button\",\n disabled,\n ...restProps\n}: TabbarItemProps) => {\n const platform = usePlatform();\n\n if (label && process.env.NODE_ENV === \"development\") {\n warn(\n \"Свойство label устарело и будет удалено в 5.0.0. Используйте indicator.\"\n );\n }\n\n return (\n <Component\n {...restProps}\n disabled={disabled}\n href={href}\n vkuiClass={classNames(getClassName(\"TabbarItem\", platform), {\n \"TabbarItem--selected\": selected,\n \"TabbarItem--text\": !!text,\n })}\n >\n <Tappable\n role=\"presentation\"\n Component=\"div\"\n disabled={disabled}\n activeMode={\n platform === Platform.IOS\n ? \"TabbarItem__tappable--active\"\n : \"background\"\n }\n activeEffectDelay={platform === Platform.IOS ? 0 : 300}\n hasHover={false}\n vkuiClass=\"TabbarItem__tappable\"\n />\n <div vkuiClass=\"TabbarItem__in\">\n <div vkuiClass=\"TabbarItem__icon\">\n {children}\n <div vkuiClass=\"TabbarItem__label\">\n {hasReactNode(indicator) && indicator}\n {!indicator && label && (\n <Counter size=\"s\" mode=\"prominent\">\n {label}\n </Counter>\n )}\n </div>\n </div>\n {text && <div vkuiClass=\"TabbarItem__text\">{text}</div>}\n </div>\n </Component>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default TabbarItem;\n"],"file":"TabbarItem.js"}
@@ -62,7 +62,6 @@ var _warnOnce = require("../../lib/warnOnce");
62
62
  var _utils = require("./utils");
63
63
 
64
64
  var _excluded = ["popout", "modal", "platform", "activePanel", "splitCol", "configProvider", "history", "nav", "onTransition", "onSwipeBack", "onSwipeBackStart", "onSwipeBackCancel", "window", "document", "scroll"];
65
- var warn = (0, _warnOnce.warnOnce)("View");
66
65
  var SwipeBackResults;
67
66
 
68
67
  (function (SwipeBackResults) {
@@ -72,6 +71,7 @@ var SwipeBackResults;
72
71
 
73
72
  var scrollsCache = {};
74
73
  exports.scrollsCache = scrollsCache;
74
+ var warn = (0, _warnOnce.warnOnce)("View");
75
75
 
76
76
  var View = /*#__PURE__*/function (_React$Component) {
77
77
  (0, _inherits2.default)(View, _React$Component);
@@ -217,6 +217,17 @@ var View = /*#__PURE__*/function (_React$Component) {
217
217
  get: function get() {
218
218
  return React.Children.toArray(this.props.children);
219
219
  }
220
+ }, {
221
+ key: "componentDidMount",
222
+ value: function componentDidMount() {
223
+ if (process.env.NODE_ENV === "development") {
224
+ var _this$props2 = this.props,
225
+ popout = _this$props2.popout,
226
+ modal = _this$props2.modal;
227
+ popout && warn("Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.");
228
+ modal && warn("Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.");
229
+ }
230
+ }
220
231
  }, {
221
232
  key: "componentWillUnmount",
222
233
  value: function componentWillUnmount() {
@@ -462,23 +473,23 @@ var View = /*#__PURE__*/function (_React$Component) {
462
473
  value: function render() {
463
474
  var _this4 = this;
464
475
 
465
- var _this$props2 = this.props,
466
- popout = _this$props2.popout,
467
- modal = _this$props2.modal,
468
- platform = _this$props2.platform,
469
- _1 = _this$props2.activePanel,
470
- splitCol = _this$props2.splitCol,
471
- configProvider = _this$props2.configProvider,
472
- history = _this$props2.history,
473
- nav = _this$props2.nav,
474
- onTransition = _this$props2.onTransition,
475
- onSwipeBack = _this$props2.onSwipeBack,
476
- onSwipeBackStart = _this$props2.onSwipeBackStart,
477
- onSwipeBackCancel = _this$props2.onSwipeBackCancel,
478
- window = _this$props2.window,
479
- document = _this$props2.document,
480
- scroll = _this$props2.scroll,
481
- restProps = (0, _objectWithoutProperties2.default)(_this$props2, _excluded);
476
+ var _this$props3 = this.props,
477
+ popout = _this$props3.popout,
478
+ modal = _this$props3.modal,
479
+ platform = _this$props3.platform,
480
+ _1 = _this$props3.activePanel,
481
+ splitCol = _this$props3.splitCol,
482
+ configProvider = _this$props3.configProvider,
483
+ history = _this$props3.history,
484
+ nav = _this$props3.nav,
485
+ onTransition = _this$props3.onTransition,
486
+ onSwipeBack = _this$props3.onSwipeBack,
487
+ onSwipeBackStart = _this$props3.onSwipeBackStart,
488
+ onSwipeBackCancel = _this$props3.onSwipeBackCancel,
489
+ window = _this$props3.window,
490
+ document = _this$props3.document,
491
+ scroll = _this$props3.scroll,
492
+ restProps = (0, _objectWithoutProperties2.default)(_this$props3, _excluded);
482
493
  var _this$state = this.state,
483
494
  prevPanel = _this$state.prevPanel,
484
495
  nextPanel = _this$state.nextPanel,