@megafon/ui-shared 2.0.0-beta.99 → 2.0.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 (211) hide show
  1. package/CHANGELOG.md +1610 -0
  2. package/README.md +0 -5
  3. package/dist/es/components/AccordionBox/AccordionBox.css +13 -0
  4. package/dist/es/components/AccordionBox/AccordionBox.d.ts +16 -1
  5. package/dist/es/components/AccordionBox/AccordionBox.js +29 -13
  6. package/dist/es/components/BannerBox/BannerBox.js +3 -2
  7. package/dist/es/components/BenefitsIcons/BenefitsIcons.d.ts +13 -2
  8. package/dist/es/components/BenefitsIcons/BenefitsIcons.js +82 -17
  9. package/dist/es/components/BenefitsIcons/BenefitsIconsTile.d.ts +2 -1
  10. package/dist/es/components/BenefitsIcons/BenefitsIconsTile.js +15 -14
  11. package/dist/es/components/BenefitsIcons/style/BenefitsIcons.css +3 -3
  12. package/dist/es/components/BenefitsIcons/style/BenefitsIconsTile.css +19 -12
  13. package/dist/es/components/BenefitsIcons/types.d.ts +7 -2
  14. package/dist/es/components/BenefitsIcons/types.js +4 -0
  15. package/dist/es/components/BenefitsPictures/BenefitsPictures.d.ts +10 -1
  16. package/dist/es/components/BenefitsPictures/BenefitsPictures.js +28 -12
  17. package/dist/es/components/BenefitsPictures/BenfitsPictures.css +4 -4
  18. package/dist/es/components/Breadcrumbs/Breadcrumbs.css +46 -0
  19. package/dist/es/components/Breadcrumbs/Breadcrumbs.d.ts +21 -0
  20. package/dist/es/components/Breadcrumbs/Breadcrumbs.js +49 -0
  21. package/dist/es/components/ButtonBanner/ButtonBanner.css +122 -0
  22. package/dist/es/components/ButtonBanner/ButtonBanner.d.ts +54 -0
  23. package/dist/es/components/ButtonBanner/ButtonBanner.js +107 -0
  24. package/dist/es/components/ButtonLinkBox/ButtonLinkBox.css +3 -3
  25. package/dist/es/components/ButtonLinkBox/ButtonLinkBox.d.ts +22 -2
  26. package/dist/es/components/ButtonLinkBox/ButtonLinkBox.js +37 -8
  27. package/dist/es/components/Card/Card.css +71 -44
  28. package/dist/es/components/Card/Card.d.ts +33 -3
  29. package/dist/es/components/Card/Card.js +103 -42
  30. package/dist/es/components/CardsBox/CardsBox.d.ts +10 -2
  31. package/dist/es/components/CardsBox/CardsBox.js +26 -13
  32. package/dist/es/components/CarouselBox/CarouselBox.js +3 -2
  33. package/dist/es/components/Container/Container.css +1815 -547
  34. package/dist/es/components/Container/Container.d.ts +11 -1
  35. package/dist/es/components/Container/Container.js +28 -6
  36. package/dist/es/components/DownloadLinks/DownloadLink.css +5 -5
  37. package/dist/es/components/DownloadLinks/DownloadLink.d.ts +7 -0
  38. package/dist/es/components/DownloadLinks/DownloadLink.js +28 -6
  39. package/dist/es/components/DownloadLinks/DownloadLinks.css +9 -6
  40. package/dist/es/components/DownloadLinks/DownloadLinks.d.ts +2 -0
  41. package/dist/es/components/DownloadLinks/DownloadLinks.js +18 -3
  42. package/dist/es/components/Instructions/Instructions.css +189 -130
  43. package/dist/es/components/Instructions/Instructions.d.ts +21 -2
  44. package/dist/es/components/Instructions/Instructions.js +115 -74
  45. package/dist/es/components/Instructions/img/iphone12.png +0 -0
  46. package/dist/es/components/PageTitle/PageTitle.css +80 -0
  47. package/dist/es/components/PageTitle/PageTitle.d.ts +23 -0
  48. package/dist/es/components/PageTitle/PageTitle.js +65 -0
  49. package/dist/es/components/Partners/Partners.css +22 -31
  50. package/dist/es/components/Partners/Partners.d.ts +13 -1
  51. package/dist/es/components/Partners/Partners.js +40 -18
  52. package/dist/es/components/PictureWithDescription/PictureWithDescription.css +25 -10
  53. package/dist/es/components/PictureWithDescription/PictureWithDescription.d.ts +13 -0
  54. package/dist/es/components/PictureWithDescription/PictureWithDescription.js +31 -7
  55. package/dist/es/components/Property/Property.css +79 -71
  56. package/dist/es/components/Property/Property.d.ts +21 -2
  57. package/dist/es/components/Property/Property.js +80 -34
  58. package/dist/es/components/Property/PropertyDescription.css +3 -3
  59. package/dist/es/components/Property/PropertyDescription.js +19 -21
  60. package/dist/es/components/Property/types.d.ts +7 -2
  61. package/dist/es/components/Steps/Steps.css +41 -0
  62. package/dist/es/components/Steps/Steps.d.ts +10 -0
  63. package/dist/es/components/Steps/Steps.js +35 -0
  64. package/dist/es/components/Steps/StepsItem.css +37 -0
  65. package/dist/es/components/Steps/StepsItem.d.ts +10 -0
  66. package/dist/es/components/Steps/StepsItem.js +26 -0
  67. package/dist/es/components/StoreBanner/StoreBanner.css +289 -0
  68. package/dist/es/components/StoreBanner/StoreBanner.d.ts +65 -0
  69. package/dist/es/components/StoreBanner/StoreBanner.js +145 -0
  70. package/dist/es/components/StoreBanner/doc/img/new-iphone-screen.png +0 -0
  71. package/dist/es/components/StoreBanner/doc/img/qr-code.png +0 -0
  72. package/dist/es/components/StoreBanner/doc/img/screen.png +0 -0
  73. package/dist/es/components/StoreBanner/img/android.png +0 -0
  74. package/dist/es/components/StoreBanner/img/black-iphone.png +0 -0
  75. package/dist/es/components/StoreBanner/img/new-iphone.png +0 -0
  76. package/dist/es/components/StoreBanner/img/white-iphone.png +0 -0
  77. package/dist/es/components/StoreButton/StoreButton.css +15 -0
  78. package/dist/es/components/StoreButton/StoreButton.d.ts +17 -0
  79. package/dist/es/components/StoreButton/StoreButton.js +37 -0
  80. package/dist/es/components/StoreButton/img/app-store.png +0 -0
  81. package/dist/es/components/StoreButton/img/google-play.png +0 -0
  82. package/dist/es/components/StoreButton/img/huawei-store.png +0 -0
  83. package/dist/es/components/Table/Table.css +67 -67
  84. package/dist/es/components/Table/Table.js +4 -4
  85. package/dist/es/components/Table/TableRow.js +1 -0
  86. package/dist/es/components/TabsBox/TabsBox.d.ts +4 -1
  87. package/dist/es/components/TabsBox/TabsBox.js +24 -3
  88. package/dist/es/components/TextBox/TextBox.css +7 -1
  89. package/dist/es/components/TextBox/TextBox.d.ts +8 -0
  90. package/dist/es/components/TextBox/TextBox.js +37 -5
  91. package/dist/es/components/TextBox/TextBoxPicture.css +24 -0
  92. package/dist/es/components/TextBox/TextBoxPicture.d.ts +17 -0
  93. package/dist/es/components/TextBox/TextBoxPicture.js +32 -0
  94. package/dist/es/components/TitleDescriptionBox/TitleDescriptionBox.css +15 -4
  95. package/dist/es/components/TitleDescriptionBox/TitleDescriptionBox.d.ts +8 -2
  96. package/dist/es/components/TitleDescriptionBox/TitleDescriptionBox.js +34 -14
  97. package/dist/es/components/VideoBanner/VideoBanner.css +155 -76
  98. package/dist/es/components/VideoBanner/VideoBanner.d.ts +64 -13
  99. package/dist/es/components/VideoBanner/VideoBanner.js +202 -70
  100. package/dist/es/components/VideoBlock/VideoBlock.css +32 -28
  101. package/dist/es/components/VideoBlock/VideoBlock.d.ts +20 -6
  102. package/dist/es/components/VideoBlock/VideoBlock.js +63 -44
  103. package/dist/es/constants/throttleTime.d.ts +4 -0
  104. package/dist/es/constants/throttleTime.js +3 -0
  105. package/dist/es/index.d.ts +8 -0
  106. package/dist/es/index.js +8 -0
  107. package/dist/lib/components/AccordionBox/AccordionBox.css +13 -0
  108. package/dist/lib/components/AccordionBox/AccordionBox.d.ts +16 -1
  109. package/dist/lib/components/AccordionBox/AccordionBox.js +31 -19
  110. package/dist/lib/components/BannerBox/BannerBox.js +3 -5
  111. package/dist/lib/components/BenefitsIcons/BenefitsIcons.d.ts +13 -2
  112. package/dist/lib/components/BenefitsIcons/BenefitsIcons.js +84 -20
  113. package/dist/lib/components/BenefitsIcons/BenefitsIconsTile.d.ts +2 -1
  114. package/dist/lib/components/BenefitsIcons/BenefitsIconsTile.js +15 -16
  115. package/dist/lib/components/BenefitsIcons/style/BenefitsIcons.css +3 -3
  116. package/dist/lib/components/BenefitsIcons/style/BenefitsIconsTile.css +19 -12
  117. package/dist/lib/components/BenefitsIcons/types.d.ts +7 -2
  118. package/dist/lib/components/BenefitsIcons/types.js +7 -2
  119. package/dist/lib/components/BenefitsPictures/BenefitsPictures.d.ts +10 -1
  120. package/dist/lib/components/BenefitsPictures/BenefitsPictures.js +32 -15
  121. package/dist/lib/components/BenefitsPictures/BenfitsPictures.css +4 -4
  122. package/dist/lib/components/Breadcrumbs/Breadcrumbs.css +46 -0
  123. package/dist/lib/components/Breadcrumbs/Breadcrumbs.d.ts +21 -0
  124. package/dist/lib/components/Breadcrumbs/Breadcrumbs.js +65 -0
  125. package/dist/lib/components/ButtonBanner/ButtonBanner.css +122 -0
  126. package/dist/lib/components/ButtonBanner/ButtonBanner.d.ts +54 -0
  127. package/dist/lib/components/ButtonBanner/ButtonBanner.js +133 -0
  128. package/dist/lib/components/ButtonLinkBox/ButtonLinkBox.css +3 -3
  129. package/dist/lib/components/ButtonLinkBox/ButtonLinkBox.d.ts +22 -2
  130. package/dist/lib/components/ButtonLinkBox/ButtonLinkBox.js +45 -11
  131. package/dist/lib/components/Card/Card.css +71 -44
  132. package/dist/lib/components/Card/Card.d.ts +33 -3
  133. package/dist/lib/components/Card/Card.js +118 -59
  134. package/dist/lib/components/CardsBox/CardsBox.d.ts +10 -2
  135. package/dist/lib/components/CardsBox/CardsBox.js +30 -16
  136. package/dist/lib/components/CarouselBox/CarouselBox.js +3 -5
  137. package/dist/lib/components/Container/Container.css +1815 -547
  138. package/dist/lib/components/Container/Container.d.ts +11 -1
  139. package/dist/lib/components/Container/Container.js +32 -11
  140. package/dist/lib/components/DownloadLinks/DownloadLink.css +5 -5
  141. package/dist/lib/components/DownloadLinks/DownloadLink.d.ts +7 -0
  142. package/dist/lib/components/DownloadLinks/DownloadLink.js +32 -11
  143. package/dist/lib/components/DownloadLinks/DownloadLinks.css +9 -6
  144. package/dist/lib/components/DownloadLinks/DownloadLinks.d.ts +2 -0
  145. package/dist/lib/components/DownloadLinks/DownloadLinks.js +20 -6
  146. package/dist/lib/components/Instructions/Instructions.css +189 -130
  147. package/dist/lib/components/Instructions/Instructions.d.ts +21 -2
  148. package/dist/lib/components/Instructions/Instructions.js +148 -104
  149. package/dist/lib/components/Instructions/img/iphone12.png +0 -0
  150. package/dist/lib/components/PageTitle/PageTitle.css +80 -0
  151. package/dist/lib/components/PageTitle/PageTitle.d.ts +23 -0
  152. package/dist/lib/components/PageTitle/PageTitle.js +85 -0
  153. package/dist/lib/components/Partners/Partners.css +22 -31
  154. package/dist/lib/components/Partners/Partners.d.ts +13 -1
  155. package/dist/lib/components/Partners/Partners.js +43 -23
  156. package/dist/lib/components/PictureWithDescription/PictureWithDescription.css +25 -10
  157. package/dist/lib/components/PictureWithDescription/PictureWithDescription.d.ts +13 -0
  158. package/dist/lib/components/PictureWithDescription/PictureWithDescription.js +33 -8
  159. package/dist/lib/components/Property/Property.css +79 -71
  160. package/dist/lib/components/Property/Property.d.ts +21 -2
  161. package/dist/lib/components/Property/Property.js +93 -53
  162. package/dist/lib/components/Property/PropertyDescription.css +3 -3
  163. package/dist/lib/components/Property/PropertyDescription.js +21 -25
  164. package/dist/lib/components/Property/types.d.ts +7 -2
  165. package/dist/lib/components/Steps/Steps.css +41 -0
  166. package/dist/lib/components/Steps/Steps.d.ts +10 -0
  167. package/dist/lib/components/Steps/Steps.js +55 -0
  168. package/dist/lib/components/Steps/StepsItem.css +37 -0
  169. package/dist/lib/components/Steps/StepsItem.d.ts +10 -0
  170. package/dist/lib/components/Steps/StepsItem.js +39 -0
  171. package/dist/lib/components/StoreBanner/StoreBanner.css +289 -0
  172. package/dist/lib/components/StoreBanner/StoreBanner.d.ts +65 -0
  173. package/dist/lib/components/StoreBanner/StoreBanner.js +169 -0
  174. package/dist/lib/components/StoreBanner/doc/img/new-iphone-screen.png +0 -0
  175. package/dist/lib/components/StoreBanner/doc/img/qr-code.png +0 -0
  176. package/dist/lib/components/StoreBanner/doc/img/screen.png +0 -0
  177. package/dist/lib/components/StoreBanner/img/android.png +0 -0
  178. package/dist/lib/components/StoreBanner/img/black-iphone.png +0 -0
  179. package/dist/lib/components/StoreBanner/img/new-iphone.png +0 -0
  180. package/dist/lib/components/StoreBanner/img/white-iphone.png +0 -0
  181. package/dist/lib/components/StoreButton/StoreButton.css +15 -0
  182. package/dist/lib/components/StoreButton/StoreButton.d.ts +17 -0
  183. package/dist/lib/components/StoreButton/StoreButton.js +58 -0
  184. package/dist/lib/components/StoreButton/img/app-store.png +0 -0
  185. package/dist/lib/components/StoreButton/img/google-play.png +0 -0
  186. package/dist/lib/components/StoreButton/img/huawei-store.png +0 -0
  187. package/dist/lib/components/Table/Table.css +67 -67
  188. package/dist/lib/components/Table/Table.js +6 -8
  189. package/dist/lib/components/Table/TableRow.js +1 -0
  190. package/dist/lib/components/TabsBox/TabsBox.d.ts +4 -1
  191. package/dist/lib/components/TabsBox/TabsBox.js +25 -2
  192. package/dist/lib/components/TextBox/TextBox.css +7 -1
  193. package/dist/lib/components/TextBox/TextBox.d.ts +8 -0
  194. package/dist/lib/components/TextBox/TextBox.js +39 -6
  195. package/dist/lib/components/TextBox/TextBoxPicture.css +24 -0
  196. package/dist/lib/components/TextBox/TextBoxPicture.d.ts +17 -0
  197. package/dist/lib/components/TextBox/TextBoxPicture.js +49 -0
  198. package/dist/lib/components/TitleDescriptionBox/TitleDescriptionBox.css +15 -4
  199. package/dist/lib/components/TitleDescriptionBox/TitleDescriptionBox.d.ts +8 -2
  200. package/dist/lib/components/TitleDescriptionBox/TitleDescriptionBox.js +39 -19
  201. package/dist/lib/components/VideoBanner/VideoBanner.css +155 -76
  202. package/dist/lib/components/VideoBanner/VideoBanner.d.ts +64 -13
  203. package/dist/lib/components/VideoBanner/VideoBanner.js +225 -89
  204. package/dist/lib/components/VideoBlock/VideoBlock.css +32 -28
  205. package/dist/lib/components/VideoBlock/VideoBlock.d.ts +20 -6
  206. package/dist/lib/components/VideoBlock/VideoBlock.js +76 -68
  207. package/dist/lib/constants/throttleTime.d.ts +4 -0
  208. package/dist/lib/constants/throttleTime.js +10 -0
  209. package/dist/lib/index.d.ts +8 -0
  210. package/dist/lib/index.js +64 -0
  211. package/package.json +19 -75
@@ -1,74 +1,83 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
- require("core-js/modules/es.object.values");
6
-
7
- require("core-js/modules/es.string.link");
8
-
9
3
  Object.defineProperty(exports, "__esModule", {
10
4
  value: true
11
5
  });
12
- exports["default"] = exports.ObjectFit = void 0;
6
+ exports["default"] = exports.ObjectFit = exports.Target = void 0;
13
7
 
14
8
  require("core-js/modules/es.object.values");
15
9
 
16
10
  require("core-js/modules/es.string.link");
17
11
 
18
- var React = _interopRequireWildcard(require("react"));
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
19
15
 
20
16
  var _uiCore = require("@megafon/ui-core");
21
17
 
18
+ var _uiHelpers = require("@megafon/ui-helpers");
19
+
22
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
23
21
 
24
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
23
 
26
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
27
-
28
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
-
24
+ var Target = {
25
+ SELF: '_self',
26
+ BLANK: '_blank'
27
+ };
28
+ exports.Target = Target;
30
29
  var ObjectFit = {
31
30
  FILL: 'fill',
32
31
  CONTAIN: 'contain'
33
32
  };
34
33
  exports.ObjectFit = ObjectFit;
35
- var cn = (0, _uiCore.cnCreate)('mfui-beta-card');
34
+ var cn = (0, _uiHelpers.cnCreate)('mfui-card');
36
35
 
37
36
  var Card = function Card(_ref) {
38
- var imageSrc = _ref.imageSrc,
37
+ var dataAttrs = _ref.dataAttrs,
38
+ className = _ref.className,
39
+ _ref$classes = _ref.classes,
40
+ classes = _ref$classes === void 0 ? {} : _ref$classes,
41
+ rootRef = _ref.rootRef,
42
+ imageSrc = _ref.imageSrc,
39
43
  svgSrc = _ref.svgSrc,
40
44
  title = _ref.title,
41
45
  text = _ref.text,
42
46
  button = _ref.button,
43
47
  link = _ref.link,
48
+ _ref$isCenteredText = _ref.isCenteredText,
49
+ isCenteredText = _ref$isCenteredText === void 0 ? false : _ref$isCenteredText,
44
50
  _ref$isLeftHAlign = _ref.isLeftHAlign,
45
51
  isLeftHAlign = _ref$isLeftHAlign === void 0 ? false : _ref$isLeftHAlign,
52
+ _ref$isFullHeight = _ref.isFullHeight,
53
+ isFullHeight = _ref$isFullHeight === void 0 ? false : _ref$isFullHeight,
46
54
  href = _ref.href,
55
+ target = _ref.target,
47
56
  _ref$objectFit = _ref.objectFit,
48
57
  objectFit = _ref$objectFit === void 0 ? 'fill' : _ref$objectFit;
49
58
  var isAlignAvailable = !button || !link;
50
59
  var isCardLink = !!href;
51
- var isRenderBtn = !!button && !isCardLink;
52
60
  var Element = href ? _uiCore.Link : 'div';
53
- var renderImage = React.useCallback(function () {
61
+
62
+ var renderImage = _react["default"].useCallback(function () {
54
63
  switch (true) {
55
64
  case !!imageSrc:
56
65
  {
57
- return /*#__PURE__*/React.createElement("div", {
66
+ return /*#__PURE__*/_react["default"].createElement("div", {
58
67
  className: cn('pic-wrapper', {
59
- 'object-fit': objectFit,
60
- 'img': true
68
+ 'object-fit': objectFit
61
69
  })
62
- }, /*#__PURE__*/React.createElement("img", {
70
+ }, /*#__PURE__*/_react["default"].createElement("img", {
63
71
  className: cn('img'),
64
- src: imageSrc
72
+ src: imageSrc,
73
+ alt: ""
65
74
  }));
66
75
  }
67
76
 
68
77
  case !!svgSrc:
69
78
  {
70
- return /*#__PURE__*/React.createElement("div", {
71
- className: cn('pic-wrapper')
79
+ return /*#__PURE__*/_react["default"].createElement("div", {
80
+ className: cn('svg-wrapper')
72
81
  }, svgSrc);
73
82
  }
74
83
 
@@ -76,65 +85,115 @@ var Card = function Card(_ref) {
76
85
  return null;
77
86
  }
78
87
  }, [imageSrc, svgSrc, objectFit]);
79
- var renderLink = React.useCallback(function (_ref2) {
80
- var linkHref = _ref2.href,
81
- linkTitle = _ref2.title;
82
- var isFakeLink = !linkHref;
83
88
 
84
- if (isFakeLink || isCardLink) {
85
- return /*#__PURE__*/React.createElement("span", {
89
+ var renderLink = _react["default"].useCallback(function () {
90
+ if (!link) {
91
+ return null;
92
+ }
93
+
94
+ var linkHref = link.href,
95
+ linkTitle = link.title,
96
+ linkTarget = link.target,
97
+ download = link.download;
98
+
99
+ if (!linkHref || isCardLink) {
100
+ return /*#__PURE__*/_react["default"].createElement("span", {
86
101
  className: cn('fake-link')
87
102
  }, linkTitle);
88
103
  }
89
104
 
90
- return /*#__PURE__*/React.createElement(_uiCore.TextLink, {
91
- className: cn('link'),
92
- href: linkHref
105
+ return /*#__PURE__*/_react["default"].createElement(_uiCore.TextLink, {
106
+ className: cn('link', [classes.link]),
107
+ href: linkHref,
108
+ target: linkTarget,
109
+ download: download
93
110
  }, linkTitle);
94
- }, [isCardLink]);
95
- var renderBtn = React.useCallback(function (_ref3) {
96
- var btnHref = _ref3.href,
97
- btnTitle = _ref3.title;
98
- return /*#__PURE__*/React.createElement(_uiCore.Button, {
99
- className: cn('button'),
100
- href: btnHref
111
+ }, [link, isCardLink, classes]);
112
+
113
+ var renderBtn = _react["default"].useCallback(function () {
114
+ if (!button || isCardLink) {
115
+ return null;
116
+ }
117
+
118
+ var btnHref = button.href,
119
+ btnTitle = button.title,
120
+ btnTarget = button.target,
121
+ buttonDownload = button.download;
122
+ return /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
123
+ className: cn('button', [classes.button]),
124
+ href: btnHref,
125
+ target: btnTarget,
126
+ download: buttonDownload
101
127
  }, btnTitle);
102
- }, []);
103
- return /*#__PURE__*/React.createElement("div", {
128
+ }, [button, isCardLink, classes]);
129
+
130
+ var renderBtnsWrapper = _react["default"].useCallback(function () {
131
+ var btnElem = renderBtn();
132
+ var linkElem = renderLink();
133
+
134
+ if (!btnElem && !linkElem) {
135
+ return null;
136
+ }
137
+
138
+ return /*#__PURE__*/_react["default"].createElement("div", {
139
+ className: cn('btns-wrapper', {
140
+ 'left-align': isAlignAvailable && isLeftHAlign
141
+ })
142
+ }, btnElem, linkElem);
143
+ }, [renderBtn, renderLink, isAlignAvailable, isLeftHAlign]);
144
+
145
+ return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs), {
104
146
  className: cn('', {
105
- 'href': !!href
106
- })
107
- }, /*#__PURE__*/React.createElement(Element, {
108
- href: href
109
- }, /*#__PURE__*/React.createElement("div", {
110
- className: cn('inner')
111
- }, renderImage(), /*#__PURE__*/React.createElement(_uiCore.Header, {
147
+ href: !!href,
148
+ 'full-height': isFullHeight,
149
+ 'centered-text': isCenteredText
150
+ }, [className, classes.root]),
151
+ ref: rootRef
152
+ }), /*#__PURE__*/_react["default"].createElement(Element, {
153
+ href: href,
154
+ target: target,
155
+ className: cn('inner', [classes.inner])
156
+ }, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, renderImage(), /*#__PURE__*/_react["default"].createElement(_uiCore.Header, {
112
157
  as: "h3",
113
158
  className: cn('title')
114
- }, title), /*#__PURE__*/React.createElement(_uiCore.Paragraph, {
115
- hasMargin: false
116
- }, text), /*#__PURE__*/React.createElement("div", {
117
- className: cn('btns-wrapper', {
118
- 'left-align': isAlignAvailable && isLeftHAlign
119
- })
120
- }, isRenderBtn && renderBtn(button), link && renderLink(link)))));
159
+ }, title), !!text && /*#__PURE__*/_react["default"].createElement("div", {
160
+ className: cn('text')
161
+ }, text), renderBtnsWrapper())));
121
162
  };
122
163
 
123
164
  Card.propTypes = {
165
+ dataAttrs: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
166
+ className: _propTypes["default"].string,
167
+ classes: _propTypes["default"].shape({
168
+ root: _propTypes["default"].string,
169
+ button: _propTypes["default"].string,
170
+ link: _propTypes["default"].string,
171
+ inner: _propTypes["default"].string
172
+ }),
173
+ rootRef: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].oneOfType([_propTypes["default"].shape({
174
+ current: _propTypes["default"].elementType
175
+ }), _propTypes["default"].any])]),
124
176
  imageSrc: _propTypes["default"].string,
125
177
  svgSrc: _propTypes["default"].node,
126
- title: _propTypes["default"].string.isRequired,
127
- text: _propTypes["default"].string.isRequired,
178
+ title: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node, _propTypes["default"].arrayOf(_propTypes["default"].node)]).isRequired,
179
+ text: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node, _propTypes["default"].arrayOf(_propTypes["default"].node)]),
128
180
  button: _propTypes["default"].shape({
129
181
  title: _propTypes["default"].string.isRequired,
130
- href: _propTypes["default"].string.isRequired
182
+ href: _propTypes["default"].string.isRequired,
183
+ target: _propTypes["default"].oneOf(Object.values(Target)),
184
+ download: _propTypes["default"].bool
131
185
  }),
132
186
  link: _propTypes["default"].shape({
133
187
  title: _propTypes["default"].string.isRequired,
134
- href: _propTypes["default"].string
188
+ href: _propTypes["default"].string,
189
+ target: _propTypes["default"].oneOf(Object.values(Target)),
190
+ download: _propTypes["default"].bool
135
191
  }),
192
+ isCenteredText: _propTypes["default"].bool,
136
193
  isLeftHAlign: _propTypes["default"].bool,
194
+ isFullHeight: _propTypes["default"].bool,
137
195
  href: _propTypes["default"].string,
196
+ target: _propTypes["default"].oneOf(Object.values(Target)),
138
197
  objectFit: _propTypes["default"].oneOf(Object.values(ObjectFit))
139
198
  };
140
199
  var _default = Card;
@@ -1,7 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { ICard } from '../Card/Card';
3
- interface ICardsBox {
3
+ interface ICardsBoxProps {
4
+ /** Ссылка на корневой элемент */
5
+ rootRef?: React.Ref<HTMLDivElement>;
6
+ /** Дата атрибуты для корневого элемента */
7
+ dataAttrs?: {
8
+ [key: string]: string;
9
+ };
10
+ /** Обработчик смены слайда (должен быть обернут в useCallback) */
11
+ onChange?: (currentIndex: number, previousIndex: number, slidesPerView?: number | 'auto') => void;
4
12
  children: Array<React.ReactElement<ICard>> | React.ReactElement<ICard>;
5
13
  }
6
- declare const CardsBox: React.FC<ICardsBox>;
14
+ declare const CardsBox: React.FC<ICardsBoxProps>;
7
15
  export default CardsBox;
@@ -2,8 +2,6 @@
2
2
 
3
3
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
4
 
5
- require("core-js/modules/es.array.map");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -11,17 +9,23 @@ exports["default"] = void 0;
11
9
 
12
10
  require("core-js/modules/es.array.map");
13
11
 
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
15
 
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
17
 
18
18
  var React = _interopRequireWildcard(require("react"));
19
19
 
20
- var PropTypes = _interopRequireWildcard(require("prop-types"));
20
+ var _uiCore = require("@megafon/ui-core");
21
+
22
+ var _uiHelpers = require("@megafon/ui-helpers");
21
23
 
22
24
  var _lodash = _interopRequireDefault(require("lodash.throttle"));
23
25
 
24
- var _uiCore = require("@megafon/ui-core");
26
+ var PropTypes = _interopRequireWildcard(require("prop-types"));
27
+
28
+ var _throttleTime = _interopRequireDefault(require("../../constants/throttleTime"));
25
29
 
26
30
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
27
31
 
@@ -32,17 +36,20 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
32
36
  var _SlidesSettings;
33
37
 
34
38
  var MAX_CARDS_COUNT_IN_GRID_ON_MOBILE = 2;
35
- var SlidesSettings = (_SlidesSettings = {}, (0, _defineProperty2["default"])(_SlidesSettings, _uiCore.breakpoints.mobileSmallStart, {
39
+ var SlidesSettings = (_SlidesSettings = {}, (0, _defineProperty2["default"])(_SlidesSettings, _uiHelpers.breakpoints.MOBILE_SMALL_START, {
36
40
  slidesPerView: 1,
37
41
  spaceBetween: 16
38
- }), (0, _defineProperty2["default"])(_SlidesSettings, _uiCore.breakpoints.mobileBigStart, {
42
+ }), (0, _defineProperty2["default"])(_SlidesSettings, _uiHelpers.breakpoints.MOBILE_BIG_START, {
39
43
  slidesPerView: 2,
40
44
  spaceBetween: 20
41
45
  }), _SlidesSettings);
42
- var cn = (0, _uiCore.cnCreate)('mfui-beta-cards-box');
46
+ var cn = (0, _uiHelpers.cnCreate)('mfui-cards-box');
43
47
 
44
48
  var CardsBox = function CardsBox(_ref) {
45
- var children = _ref.children;
49
+ var rootRef = _ref.rootRef,
50
+ dataAttrs = _ref.dataAttrs,
51
+ onChange = _ref.onChange,
52
+ children = _ref.children;
46
53
 
47
54
  var _React$useState = React.useState(false),
48
55
  _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
@@ -64,28 +71,35 @@ var CardsBox = function CardsBox(_ref) {
64
71
  }, [children]);
65
72
  var renderCarousel = React.useCallback(function () {
66
73
  return /*#__PURE__*/React.createElement(_uiCore.Carousel, {
67
- slidesSettings: SlidesSettings
74
+ slidesSettings: SlidesSettings,
75
+ onChange: onChange
68
76
  }, children);
69
- }, [children]);
77
+ }, [children, onChange]);
70
78
  React.useEffect(function () {
71
79
  var resizeHandler = function resizeHandler() {
72
- return window.innerWidth <= _uiCore.breakpoints.mobileBigEnd ? setIsMobile(true) : setIsMobile(false);
80
+ return window.innerWidth <= _uiHelpers.breakpoints.MOBILE_BIG_END ? setIsMobile(true) : setIsMobile(false);
73
81
  };
74
82
 
75
- var resizeHandlerThrottled = (0, _lodash["default"])(resizeHandler, _uiCore.throttleTime.resize);
83
+ var resizeHandlerThrottled = (0, _lodash["default"])(resizeHandler, _throttleTime["default"].resize);
76
84
  resizeHandler();
77
85
  window.addEventListener('resize', resizeHandlerThrottled);
78
86
  return function () {
79
87
  window.removeEventListener('resize', resizeHandlerThrottled);
80
88
  };
81
89
  }, []);
82
- return /*#__PURE__*/React.createElement("div", {
83
- className: cn()
84
- }, isRenderCarousel ? renderCarousel() : renderGrid());
90
+ return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
91
+ className: cn(),
92
+ ref: rootRef
93
+ }, (0, _uiHelpers.filterDataAttrs)(dataAttrs)), isRenderCarousel ? renderCarousel() : renderGrid());
85
94
  };
86
95
 
87
96
  CardsBox.propTypes = {
88
- children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element.isRequired), PropTypes.element]).isRequired
97
+ rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
98
+ current: PropTypes.elementType
99
+ }), PropTypes.any])]),
100
+ children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element.isRequired), PropTypes.element]).isRequired,
101
+ dataAttrs: PropTypes.objectOf(PropTypes.string.isRequired),
102
+ onChange: PropTypes.func
89
103
  };
90
104
  var _default = CardsBox;
91
105
  exports["default"] = _default;
@@ -2,10 +2,6 @@
2
2
 
3
3
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
4
 
5
- require("core-js/modules/es.symbol");
6
-
7
- require("core-js/modules/es.array.index-of");
8
-
9
5
  Object.defineProperty(exports, "__esModule", {
10
6
  value: true
11
7
  });
@@ -19,6 +15,8 @@ var React = _interopRequireWildcard(require("react"));
19
15
 
20
16
  var _uiCore = require("@megafon/ui-core");
21
17
 
18
+ var _uiHelpers = require("@megafon/ui-helpers");
19
+
22
20
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
23
21
 
24
22
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -36,7 +34,7 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
36
34
  return t;
37
35
  };
38
36
 
39
- var cn = (0, _uiCore.cnCreate)('mfui-beta-carousel-box');
37
+ var cn = (0, _uiHelpers.cnCreate)('mfui-carousel-box');
40
38
 
41
39
  var CarouselBox = function CarouselBox(_a) {
42
40
  var children = _a.children,