@megafon/ui-shared 8.10.2 → 8.11.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.
- package/dist/es/components/BlogBox/BlogBox.d.ts +3 -0
- package/dist/es/components/BlogBox/BlogBox.js +8 -3
- package/dist/es/components/BlogBox/components/BlogBoxTile.d.ts +5 -1
- package/dist/es/components/BlogBox/components/BlogBoxTile.js +3 -2
- package/dist/es/components/DarkGradientCards/DarkGradientCards.d.ts +5 -0
- package/dist/es/components/DarkGradientCards/DarkGradientCards.js +9 -4
- package/dist/es/components/DarkGradientCards/components/DarkGradientCard.d.ts +1 -0
- package/dist/es/components/DarkGradientCards/components/DarkGradientCard.js +1 -1
- package/dist/es/components/PromoCards/PromoCards.d.ts +3 -0
- package/dist/es/components/PromoCards/PromoCards.js +6 -1
- package/dist/es/components/PromoCards/components/PromoCard/PromoCard.d.ts +2 -0
- package/dist/es/components/PromoCards/components/PromoCard/PromoCard.js +5 -1
- package/dist/es/components/SidePictureCards/SidePictureCards.d.ts +5 -0
- package/dist/es/components/SidePictureCards/SidePictureCards.js +5 -2
- package/dist/es/components/SidePictureCards/components/SidePictureCard.d.ts +2 -0
- package/dist/es/components/SidePictureCards/components/SidePictureCard.js +8 -3
- package/dist/es/components/SidePictureCards/types.d.ts +3 -1
- package/dist/lib/components/BlogBox/BlogBox.d.ts +3 -0
- package/dist/lib/components/BlogBox/BlogBox.js +8 -3
- package/dist/lib/components/BlogBox/components/BlogBoxTile.d.ts +5 -1
- package/dist/lib/components/BlogBox/components/BlogBoxTile.js +3 -2
- package/dist/lib/components/DarkGradientCards/DarkGradientCards.d.ts +5 -0
- package/dist/lib/components/DarkGradientCards/DarkGradientCards.js +9 -4
- package/dist/lib/components/DarkGradientCards/components/DarkGradientCard.d.ts +1 -0
- package/dist/lib/components/DarkGradientCards/components/DarkGradientCard.js +1 -1
- package/dist/lib/components/PromoCards/PromoCards.d.ts +3 -0
- package/dist/lib/components/PromoCards/PromoCards.js +6 -1
- package/dist/lib/components/PromoCards/components/PromoCard/PromoCard.d.ts +2 -0
- package/dist/lib/components/PromoCards/components/PromoCard/PromoCard.js +5 -1
- package/dist/lib/components/SidePictureCards/SidePictureCards.d.ts +5 -0
- package/dist/lib/components/SidePictureCards/SidePictureCards.js +5 -2
- package/dist/lib/components/SidePictureCards/components/SidePictureCard.d.ts +2 -0
- package/dist/lib/components/SidePictureCards/components/SidePictureCard.js +8 -3
- package/dist/lib/components/SidePictureCards/types.d.ts +3 -1
- package/package.json +3 -3
|
@@ -14,6 +14,7 @@ export interface IBlogBox {
|
|
|
14
14
|
classes?: {
|
|
15
15
|
root?: string;
|
|
16
16
|
item?: string;
|
|
17
|
+
itemTitle?: string;
|
|
17
18
|
button?: string;
|
|
18
19
|
};
|
|
19
20
|
/** Дополнительные data атрибуты к внутренним элементам */
|
|
@@ -23,6 +24,8 @@ export interface IBlogBox {
|
|
|
23
24
|
item?: Record<string, string>;
|
|
24
25
|
button?: Record<string, string>;
|
|
25
26
|
};
|
|
27
|
+
/** Ссылка на корневой элемент */
|
|
28
|
+
rootRef?: React.Ref<HTMLDivElement>;
|
|
26
29
|
}
|
|
27
30
|
declare const BlogBox: React.FC<IBlogBox>;
|
|
28
31
|
export default BlogBox;
|
|
@@ -17,7 +17,8 @@ var BlogBox = function BlogBox(_ref) {
|
|
|
17
17
|
hasAlignLeft = _ref$hasAlignLeft === void 0 ? false : _ref$hasAlignLeft,
|
|
18
18
|
className = _ref.className,
|
|
19
19
|
classes = _ref.classes,
|
|
20
|
-
dataAttrs = _ref.dataAttrs
|
|
20
|
+
dataAttrs = _ref.dataAttrs,
|
|
21
|
+
rootRef = _ref.rootRef;
|
|
21
22
|
var _useResolutions = useResolutions(),
|
|
22
23
|
isDesktop = _useResolutions.isDesktop;
|
|
23
24
|
var visibleItems = items.slice(0, maxItemsCount);
|
|
@@ -36,7 +37,8 @@ var BlogBox = function BlogBox(_ref) {
|
|
|
36
37
|
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
37
38
|
className: cn({
|
|
38
39
|
'align-left': isAlignLeft
|
|
39
|
-
}, [className, classes === null || classes === void 0 ? void 0 : classes.root])
|
|
40
|
+
}, [className, classes === null || classes === void 0 ? void 0 : classes.root]),
|
|
41
|
+
ref: rootRef
|
|
40
42
|
}), /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.list), {
|
|
41
43
|
className: cn('list', {
|
|
42
44
|
row: isRow,
|
|
@@ -50,7 +52,10 @@ var BlogBox = function BlogBox(_ref) {
|
|
|
50
52
|
}, [classes === null || classes === void 0 ? void 0 : classes.item]),
|
|
51
53
|
key: "".concat(item.title, "_").concat(i)
|
|
52
54
|
}), /*#__PURE__*/React.createElement(BlogBoxTile, _extends({}, item, {
|
|
53
|
-
view: view
|
|
55
|
+
view: view,
|
|
56
|
+
classes: {
|
|
57
|
+
title: classes === null || classes === void 0 ? void 0 : classes.itemTitle
|
|
58
|
+
}
|
|
54
59
|
})));
|
|
55
60
|
})), (button === null || button === void 0 ? void 0 : button.title) && /*#__PURE__*/React.createElement("div", {
|
|
56
61
|
className: cn('button-wrapper')
|
|
@@ -4,6 +4,10 @@ import './BlogBoxTile.scss';
|
|
|
4
4
|
type TileSettingsType = {
|
|
5
5
|
view: TileViewType;
|
|
6
6
|
};
|
|
7
|
-
export type BlogBoxTileType = TileDataType & TileSettingsType
|
|
7
|
+
export type BlogBoxTileType = TileDataType & TileSettingsType & {
|
|
8
|
+
classes?: {
|
|
9
|
+
title?: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
8
12
|
declare const BlogBoxTile: React.FC<BlogBoxTileType>;
|
|
9
13
|
export default BlogBoxTile;
|
|
@@ -16,7 +16,8 @@ var BlogBoxTile = function BlogBoxTile(_ref) {
|
|
|
16
16
|
srcThumbnail = _ref$image.srcThumbnail,
|
|
17
17
|
_ref$image$alt = _ref$image.alt,
|
|
18
18
|
alt = _ref$image$alt === void 0 ? 'image' : _ref$image$alt,
|
|
19
|
-
view = _ref.view
|
|
19
|
+
view = _ref.view,
|
|
20
|
+
classes = _ref.classes;
|
|
20
21
|
var _useResolutions = useResolutions(),
|
|
21
22
|
isMobile = _useResolutions.isMobile;
|
|
22
23
|
var isViewThumbnail = view === 'thumbnail';
|
|
@@ -54,7 +55,7 @@ var BlogBoxTile = function BlogBoxTile(_ref) {
|
|
|
54
55
|
}, /*#__PURE__*/React.createElement("div", {
|
|
55
56
|
className: cn('date')
|
|
56
57
|
}, date), /*#__PURE__*/React.createElement("div", {
|
|
57
|
-
className: cn('title')
|
|
58
|
+
className: cn('title', [classes === null || classes === void 0 ? void 0 : classes.title])
|
|
58
59
|
}, title)));
|
|
59
60
|
};
|
|
60
61
|
export default BlogBoxTile;
|
|
@@ -16,6 +16,7 @@ export interface IDarkGradientCards {
|
|
|
16
16
|
classes?: {
|
|
17
17
|
root?: string;
|
|
18
18
|
item?: string;
|
|
19
|
+
itemTitle?: string;
|
|
19
20
|
};
|
|
20
21
|
/** Дополнительные data атрибуты к внутренним элементам */
|
|
21
22
|
dataAttrs?: {
|
|
@@ -23,6 +24,10 @@ export interface IDarkGradientCards {
|
|
|
23
24
|
carousel?: Record<string, string>;
|
|
24
25
|
item?: Record<string, string>;
|
|
25
26
|
};
|
|
27
|
+
/** Обработчик смены слайда карусели */
|
|
28
|
+
onCarouselChange?: CarouselProps['onChange'];
|
|
29
|
+
/** Ссылка на корневой элемент */
|
|
30
|
+
rootRef?: React.Ref<HTMLDivElement>;
|
|
26
31
|
}
|
|
27
32
|
declare const DarkGradientCards: React.FC<IDarkGradientCards>;
|
|
28
33
|
export default DarkGradientCards;
|
|
@@ -23,7 +23,9 @@ var DarkGradientCards = function DarkGradientCards(_ref) {
|
|
|
23
23
|
className = _ref.className,
|
|
24
24
|
_ref$classes = _ref.classes,
|
|
25
25
|
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
|
26
|
-
dataAttrs = _ref.dataAttrs
|
|
26
|
+
dataAttrs = _ref.dataAttrs,
|
|
27
|
+
onCarouselChange = _ref.onCarouselChange,
|
|
28
|
+
rootRef = _ref.rootRef;
|
|
27
29
|
var _useResolutions = useResolutions(),
|
|
28
30
|
isDesktopWide = _useResolutions.isDesktopWide;
|
|
29
31
|
var isCarouselActive = items.length > MIN_ITEMS_COUNT || items.length === MIN_ITEMS_COUNT && !isDesktopWide;
|
|
@@ -33,7 +35,8 @@ var DarkGradientCards = function DarkGradientCards(_ref) {
|
|
|
33
35
|
size: i === 0 ? 'big' : 'small',
|
|
34
36
|
className: cn('card'),
|
|
35
37
|
classes: {
|
|
36
|
-
root: classes.item
|
|
38
|
+
root: classes.item,
|
|
39
|
+
title: classes.itemTitle
|
|
37
40
|
},
|
|
38
41
|
dataAttrs: {
|
|
39
42
|
root: _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, i + 1))
|
|
@@ -44,7 +47,8 @@ var DarkGradientCards = function DarkGradientCards(_ref) {
|
|
|
44
47
|
return null;
|
|
45
48
|
}
|
|
46
49
|
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
47
|
-
className: cn([className, classes.root])
|
|
50
|
+
className: cn([className, classes.root]),
|
|
51
|
+
ref: rootRef
|
|
48
52
|
}), isCarouselActive ? /*#__PURE__*/React.createElement(Carousel, {
|
|
49
53
|
dataAttrs: {
|
|
50
54
|
root: _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.carousel))
|
|
@@ -53,7 +57,8 @@ var DarkGradientCards = function DarkGradientCards(_ref) {
|
|
|
53
57
|
navTheme: carouselNavTheme,
|
|
54
58
|
threshold: CAROUSEL_THRESHOLD,
|
|
55
59
|
gradient: true,
|
|
56
|
-
gradientColor: carouselGradientColor
|
|
60
|
+
gradientColor: carouselGradientColor,
|
|
61
|
+
onChange: onCarouselChange
|
|
57
62
|
}, cards) : /*#__PURE__*/React.createElement("div", {
|
|
58
63
|
className: cn('cards')
|
|
59
64
|
}, cards));
|
|
@@ -38,7 +38,7 @@ var DarkGradientCard = function DarkGradientCard(_ref) {
|
|
|
38
38
|
}), /*#__PURE__*/React.createElement("div", {
|
|
39
39
|
className: cn('inner')
|
|
40
40
|
}, /*#__PURE__*/React.createElement("div", {
|
|
41
|
-
className: cn('title')
|
|
41
|
+
className: cn('title', [classes.title])
|
|
42
42
|
}, convert(title, {})), subtitle && /*#__PURE__*/React.createElement("div", {
|
|
43
43
|
className: cn('subtitle')
|
|
44
44
|
}, convert(subtitle, {})), !!moreText && /*#__PURE__*/React.createElement("div", {
|
|
@@ -15,12 +15,15 @@ export interface IPromoCards extends IPromoCardSettings {
|
|
|
15
15
|
classes?: {
|
|
16
16
|
root?: string;
|
|
17
17
|
card?: string;
|
|
18
|
+
cardTitle?: string;
|
|
18
19
|
};
|
|
19
20
|
/** Дополнительные data атрибуты к внутренним элементам */
|
|
20
21
|
dataAttrs?: {
|
|
21
22
|
root?: Record<string, string>;
|
|
22
23
|
card?: Record<string, string>;
|
|
23
24
|
};
|
|
25
|
+
/** Обработчик смены слайда карусели */
|
|
26
|
+
onCarouselChange?: CarouselProps['onChange'];
|
|
24
27
|
/** Ссылка на элемент */
|
|
25
28
|
rootRef?: React.Ref<HTMLDivElement>;
|
|
26
29
|
/** Дочерние элементы. Минимальное количество 2 элемента */
|
|
@@ -26,6 +26,7 @@ var PromoCards = function PromoCards(_ref) {
|
|
|
26
26
|
dataAttrs = _ref.dataAttrs,
|
|
27
27
|
className = _ref.className,
|
|
28
28
|
classes = _ref.classes,
|
|
29
|
+
onCarouselChange = _ref.onCarouselChange,
|
|
29
30
|
rootRef = _ref.rootRef,
|
|
30
31
|
children = _ref.children;
|
|
31
32
|
var itemsLength = (items === null || items === void 0 ? void 0 : items.length) || 0;
|
|
@@ -36,6 +37,9 @@ var PromoCards = function PromoCards(_ref) {
|
|
|
36
37
|
var renderItems = (items || []).map(function (item, i) {
|
|
37
38
|
return /*#__PURE__*/React.createElement(PromoCard, _extends({}, item, {
|
|
38
39
|
className: classes === null || classes === void 0 ? void 0 : classes.card,
|
|
40
|
+
classes: {
|
|
41
|
+
title: classes === null || classes === void 0 ? void 0 : classes.cardTitle
|
|
42
|
+
},
|
|
39
43
|
dataAttrs: {
|
|
40
44
|
root: filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.card, i + 1)
|
|
41
45
|
},
|
|
@@ -50,7 +54,8 @@ var PromoCards = function PromoCards(_ref) {
|
|
|
50
54
|
slidesSettings: slidesSettings,
|
|
51
55
|
navTheme: carouselNavTheme,
|
|
52
56
|
gradient: true,
|
|
53
|
-
gradientColor: carouselGradientColor
|
|
57
|
+
gradientColor: carouselGradientColor,
|
|
58
|
+
onChange: onCarouselChange
|
|
54
59
|
}, childrenLength ? children : renderItems));
|
|
55
60
|
};
|
|
56
61
|
export default PromoCards;
|
|
@@ -7,6 +7,7 @@ export interface IPromoCard extends IPromoCardData, IPromoCardSettings {
|
|
|
7
7
|
/** Дополнительные css классы для корневого элемента */
|
|
8
8
|
classes?: {
|
|
9
9
|
root?: string;
|
|
10
|
+
title?: string;
|
|
10
11
|
};
|
|
11
12
|
/** Дополнительные data атрибуты к корневому и внутренним элементам */
|
|
12
13
|
dataAttrs?: {
|
|
@@ -14,6 +15,7 @@ export interface IPromoCard extends IPromoCardData, IPromoCardSettings {
|
|
|
14
15
|
image?: Record<string, string>;
|
|
15
16
|
badge?: Record<string, string>;
|
|
16
17
|
logo?: Record<string, string>;
|
|
18
|
+
title?: Record<string, string>;
|
|
17
19
|
subtitle?: Record<string, string>;
|
|
18
20
|
list?: Record<string, string>;
|
|
19
21
|
adTitle?: Record<string, string>;
|
|
@@ -145,7 +145,11 @@ var PromoCard = function PromoCard(_ref2) {
|
|
|
145
145
|
src: logo.src,
|
|
146
146
|
alt: logo.alt || ''
|
|
147
147
|
})), /*#__PURE__*/React.createElement(Header, {
|
|
148
|
-
as: "h3"
|
|
148
|
+
as: "h3",
|
|
149
|
+
className: classes === null || classes === void 0 ? void 0 : classes.title,
|
|
150
|
+
dataAttrs: {
|
|
151
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.title
|
|
152
|
+
}
|
|
149
153
|
}, convert(title, {})), !!subtitle && /*#__PURE__*/React.createElement("div", {
|
|
150
154
|
className: cn('subtitle')
|
|
151
155
|
}, /*#__PURE__*/React.createElement(Paragraph, {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { Carousel } from '@megafon/ui-core';
|
|
2
3
|
import { BackgroundType, CardDataType } from './types';
|
|
4
|
+
type CarouselProps = React.ComponentProps<typeof Carousel>;
|
|
3
5
|
export interface ISidePictureCards {
|
|
4
6
|
/** Карточки. Минимальное количество 2 карточки */
|
|
5
7
|
items: CardDataType[];
|
|
@@ -13,12 +15,15 @@ export interface ISidePictureCards {
|
|
|
13
15
|
classes?: {
|
|
14
16
|
root?: string;
|
|
15
17
|
item?: string;
|
|
18
|
+
itemTitle?: string;
|
|
16
19
|
};
|
|
17
20
|
/** Дополнительные data атрибуты к внутренним элементам */
|
|
18
21
|
dataAttrs?: {
|
|
19
22
|
root?: Record<string, string>;
|
|
20
23
|
item?: Record<string, string>;
|
|
21
24
|
};
|
|
25
|
+
/** Обработчик смены слайда карусели */
|
|
26
|
+
onCarouselChange?: CarouselProps['onChange'];
|
|
22
27
|
/** Ссылка на корневой элемент */
|
|
23
28
|
rootRef?: React.Ref<HTMLDivElement>;
|
|
24
29
|
}
|
|
@@ -25,6 +25,7 @@ var SidePictureCards = function SidePictureCards(_ref) {
|
|
|
25
25
|
_ref$classes = _ref.classes,
|
|
26
26
|
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
|
27
27
|
dataAttrs = _ref.dataAttrs,
|
|
28
|
+
onCarouselChange = _ref.onCarouselChange,
|
|
28
29
|
rootRef = _ref.rootRef;
|
|
29
30
|
if (items.length < MIN_ITEMS_COUNT) {
|
|
30
31
|
return null;
|
|
@@ -34,7 +35,8 @@ var SidePictureCards = function SidePictureCards(_ref) {
|
|
|
34
35
|
background: background,
|
|
35
36
|
key: "".concat(item === null || item === void 0 ? void 0 : item.title, "_").concat(index),
|
|
36
37
|
classes: {
|
|
37
|
-
root: classes.item
|
|
38
|
+
root: classes.item,
|
|
39
|
+
title: classes.itemTitle
|
|
38
40
|
},
|
|
39
41
|
dataAttrs: {
|
|
40
42
|
root: _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, index + 1))
|
|
@@ -44,7 +46,8 @@ var SidePictureCards = function SidePictureCards(_ref) {
|
|
|
44
46
|
var renderContent = function renderContent() {
|
|
45
47
|
if (hasCarousel) {
|
|
46
48
|
return /*#__PURE__*/React.createElement(Carousel, {
|
|
47
|
-
slidesSettings: slidesSettings
|
|
49
|
+
slidesSettings: slidesSettings,
|
|
50
|
+
onChange: onCarouselChange
|
|
48
51
|
}, items.map(renderItem));
|
|
49
52
|
}
|
|
50
53
|
return /*#__PURE__*/React.createElement(Grid, {
|
|
@@ -5,10 +5,12 @@ export type SidePictureCardType = CardDataType & {
|
|
|
5
5
|
background: BackgroundType;
|
|
6
6
|
classes?: {
|
|
7
7
|
root?: string;
|
|
8
|
+
title?: string;
|
|
8
9
|
button?: string;
|
|
9
10
|
};
|
|
10
11
|
dataAttrs?: {
|
|
11
12
|
root?: Record<string, string>;
|
|
13
|
+
title?: Record<string, string>;
|
|
12
14
|
button?: Record<string, string>;
|
|
13
15
|
};
|
|
14
16
|
};
|
|
@@ -26,7 +26,8 @@ var SidePictureCard = function SidePictureCard(_ref) {
|
|
|
26
26
|
buttonTitle = _ref2.title,
|
|
27
27
|
buttonHref = _ref2.href,
|
|
28
28
|
buttonTarget = _ref2.target,
|
|
29
|
-
buttonRel = _ref2.rel
|
|
29
|
+
buttonRel = _ref2.rel,
|
|
30
|
+
onButtonClick = _ref2.onClick;
|
|
30
31
|
var isLink = !!href && !buttonHref;
|
|
31
32
|
var ElementType = isLink ? 'a' : 'div';
|
|
32
33
|
var currentRel = setRelAttribute(rel, target);
|
|
@@ -63,7 +64,10 @@ var SidePictureCard = function SidePictureCard(_ref) {
|
|
|
63
64
|
}), /*#__PURE__*/React.createElement("div", {
|
|
64
65
|
className: cn('content')
|
|
65
66
|
}, !!title && /*#__PURE__*/React.createElement(Header, {
|
|
66
|
-
className: cn('title'),
|
|
67
|
+
className: cn('title', [classes === null || classes === void 0 ? void 0 : classes.title]),
|
|
68
|
+
dataAttrs: {
|
|
69
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.title
|
|
70
|
+
},
|
|
67
71
|
as: "h3"
|
|
68
72
|
}, convert(title, {})), /*#__PURE__*/React.createElement("div", {
|
|
69
73
|
className: cn('items')
|
|
@@ -74,7 +78,8 @@ var SidePictureCard = function SidePictureCard(_ref) {
|
|
|
74
78
|
},
|
|
75
79
|
href: buttonHref,
|
|
76
80
|
target: buttonTarget,
|
|
77
|
-
rel: currentButtonRel
|
|
81
|
+
rel: currentButtonRel,
|
|
82
|
+
onClick: onButtonClick
|
|
78
83
|
}, buttonTitle)), /*#__PURE__*/React.createElement("picture", {
|
|
79
84
|
className: cn('picture')
|
|
80
85
|
}, /*#__PURE__*/React.createElement("source", {
|
|
@@ -4,11 +4,13 @@ type ButtonType = {
|
|
|
4
4
|
/** Название */
|
|
5
5
|
title: string;
|
|
6
6
|
/** Ссылка */
|
|
7
|
-
href
|
|
7
|
+
href?: string;
|
|
8
8
|
/** Атрибут ссылки target */
|
|
9
9
|
target?: TargetType;
|
|
10
10
|
/** Атрибут ссылки rel */
|
|
11
11
|
rel?: string;
|
|
12
|
+
/** Обработчик клика */
|
|
13
|
+
onClick?: (e: React.SyntheticEvent<EventTarget>) => void;
|
|
12
14
|
};
|
|
13
15
|
type ImageType = {
|
|
14
16
|
/** Изображение на разрешении экрана 0-1279 */
|
|
@@ -14,6 +14,7 @@ export interface IBlogBox {
|
|
|
14
14
|
classes?: {
|
|
15
15
|
root?: string;
|
|
16
16
|
item?: string;
|
|
17
|
+
itemTitle?: string;
|
|
17
18
|
button?: string;
|
|
18
19
|
};
|
|
19
20
|
/** Дополнительные data атрибуты к внутренним элементам */
|
|
@@ -23,6 +24,8 @@ export interface IBlogBox {
|
|
|
23
24
|
item?: Record<string, string>;
|
|
24
25
|
button?: Record<string, string>;
|
|
25
26
|
};
|
|
27
|
+
/** Ссылка на корневой элемент */
|
|
28
|
+
rootRef?: React.Ref<HTMLDivElement>;
|
|
26
29
|
}
|
|
27
30
|
declare const BlogBox: React.FC<IBlogBox>;
|
|
28
31
|
export default BlogBox;
|
|
@@ -26,7 +26,8 @@ var BlogBox = function BlogBox(_ref) {
|
|
|
26
26
|
hasAlignLeft = _ref$hasAlignLeft === void 0 ? false : _ref$hasAlignLeft,
|
|
27
27
|
className = _ref.className,
|
|
28
28
|
classes = _ref.classes,
|
|
29
|
-
dataAttrs = _ref.dataAttrs
|
|
29
|
+
dataAttrs = _ref.dataAttrs,
|
|
30
|
+
rootRef = _ref.rootRef;
|
|
30
31
|
var _useResolutions = (0, _useResolutions2["default"])(),
|
|
31
32
|
isDesktop = _useResolutions.isDesktop;
|
|
32
33
|
var visibleItems = items.slice(0, maxItemsCount);
|
|
@@ -45,7 +46,8 @@ var BlogBox = function BlogBox(_ref) {
|
|
|
45
46
|
return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
46
47
|
className: cn({
|
|
47
48
|
'align-left': isAlignLeft
|
|
48
|
-
}, [className, classes === null || classes === void 0 ? void 0 : classes.root])
|
|
49
|
+
}, [className, classes === null || classes === void 0 ? void 0 : classes.root]),
|
|
50
|
+
ref: rootRef
|
|
49
51
|
}), /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.list), {
|
|
50
52
|
className: cn('list', {
|
|
51
53
|
row: isRow,
|
|
@@ -59,7 +61,10 @@ var BlogBox = function BlogBox(_ref) {
|
|
|
59
61
|
}, [classes === null || classes === void 0 ? void 0 : classes.item]),
|
|
60
62
|
key: "".concat(item.title, "_").concat(i)
|
|
61
63
|
}), /*#__PURE__*/React.createElement(_BlogBoxTile["default"], (0, _extends2["default"])({}, item, {
|
|
62
|
-
view: view
|
|
64
|
+
view: view,
|
|
65
|
+
classes: {
|
|
66
|
+
title: classes === null || classes === void 0 ? void 0 : classes.itemTitle
|
|
67
|
+
}
|
|
63
68
|
})));
|
|
64
69
|
})), (button === null || button === void 0 ? void 0 : button.title) && /*#__PURE__*/React.createElement("div", {
|
|
65
70
|
className: cn('button-wrapper')
|
|
@@ -4,6 +4,10 @@ import './BlogBoxTile.scss';
|
|
|
4
4
|
type TileSettingsType = {
|
|
5
5
|
view: TileViewType;
|
|
6
6
|
};
|
|
7
|
-
export type BlogBoxTileType = TileDataType & TileSettingsType
|
|
7
|
+
export type BlogBoxTileType = TileDataType & TileSettingsType & {
|
|
8
|
+
classes?: {
|
|
9
|
+
title?: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
8
12
|
declare const BlogBoxTile: React.FC<BlogBoxTileType>;
|
|
9
13
|
export default BlogBoxTile;
|
|
@@ -25,7 +25,8 @@ var BlogBoxTile = function BlogBoxTile(_ref) {
|
|
|
25
25
|
srcThumbnail = _ref$image.srcThumbnail,
|
|
26
26
|
_ref$image$alt = _ref$image.alt,
|
|
27
27
|
alt = _ref$image$alt === void 0 ? 'image' : _ref$image$alt,
|
|
28
|
-
view = _ref.view
|
|
28
|
+
view = _ref.view,
|
|
29
|
+
classes = _ref.classes;
|
|
29
30
|
var _useResolutions = (0, _useResolutions2["default"])(),
|
|
30
31
|
isMobile = _useResolutions.isMobile;
|
|
31
32
|
var isViewThumbnail = view === 'thumbnail';
|
|
@@ -63,7 +64,7 @@ var BlogBoxTile = function BlogBoxTile(_ref) {
|
|
|
63
64
|
}, /*#__PURE__*/React.createElement("div", {
|
|
64
65
|
className: cn('date')
|
|
65
66
|
}, date), /*#__PURE__*/React.createElement("div", {
|
|
66
|
-
className: cn('title')
|
|
67
|
+
className: cn('title', [classes === null || classes === void 0 ? void 0 : classes.title])
|
|
67
68
|
}, title)));
|
|
68
69
|
};
|
|
69
70
|
var _default = exports["default"] = BlogBoxTile;
|
|
@@ -16,6 +16,7 @@ export interface IDarkGradientCards {
|
|
|
16
16
|
classes?: {
|
|
17
17
|
root?: string;
|
|
18
18
|
item?: string;
|
|
19
|
+
itemTitle?: string;
|
|
19
20
|
};
|
|
20
21
|
/** Дополнительные data атрибуты к внутренним элементам */
|
|
21
22
|
dataAttrs?: {
|
|
@@ -23,6 +24,10 @@ export interface IDarkGradientCards {
|
|
|
23
24
|
carousel?: Record<string, string>;
|
|
24
25
|
item?: Record<string, string>;
|
|
25
26
|
};
|
|
27
|
+
/** Обработчик смены слайда карусели */
|
|
28
|
+
onCarouselChange?: CarouselProps['onChange'];
|
|
29
|
+
/** Ссылка на корневой элемент */
|
|
30
|
+
rootRef?: React.Ref<HTMLDivElement>;
|
|
26
31
|
}
|
|
27
32
|
declare const DarkGradientCards: React.FC<IDarkGradientCards>;
|
|
28
33
|
export default DarkGradientCards;
|
|
@@ -32,7 +32,9 @@ var DarkGradientCards = function DarkGradientCards(_ref) {
|
|
|
32
32
|
className = _ref.className,
|
|
33
33
|
_ref$classes = _ref.classes,
|
|
34
34
|
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
|
35
|
-
dataAttrs = _ref.dataAttrs
|
|
35
|
+
dataAttrs = _ref.dataAttrs,
|
|
36
|
+
onCarouselChange = _ref.onCarouselChange,
|
|
37
|
+
rootRef = _ref.rootRef;
|
|
36
38
|
var _useResolutions = (0, _useResolutions2["default"])(),
|
|
37
39
|
isDesktopWide = _useResolutions.isDesktopWide;
|
|
38
40
|
var isCarouselActive = items.length > MIN_ITEMS_COUNT || items.length === MIN_ITEMS_COUNT && !isDesktopWide;
|
|
@@ -42,7 +44,8 @@ var DarkGradientCards = function DarkGradientCards(_ref) {
|
|
|
42
44
|
size: i === 0 ? 'big' : 'small',
|
|
43
45
|
className: cn('card'),
|
|
44
46
|
classes: {
|
|
45
|
-
root: classes.item
|
|
47
|
+
root: classes.item,
|
|
48
|
+
title: classes.itemTitle
|
|
46
49
|
},
|
|
47
50
|
dataAttrs: {
|
|
48
51
|
root: (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, i + 1))
|
|
@@ -53,7 +56,8 @@ var DarkGradientCards = function DarkGradientCards(_ref) {
|
|
|
53
56
|
return null;
|
|
54
57
|
}
|
|
55
58
|
return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
56
|
-
className: cn([className, classes.root])
|
|
59
|
+
className: cn([className, classes.root]),
|
|
60
|
+
ref: rootRef
|
|
57
61
|
}), isCarouselActive ? /*#__PURE__*/React.createElement(_uiCore.Carousel, {
|
|
58
62
|
dataAttrs: {
|
|
59
63
|
root: (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.carousel))
|
|
@@ -62,7 +66,8 @@ var DarkGradientCards = function DarkGradientCards(_ref) {
|
|
|
62
66
|
navTheme: carouselNavTheme,
|
|
63
67
|
threshold: CAROUSEL_THRESHOLD,
|
|
64
68
|
gradient: true,
|
|
65
|
-
gradientColor: carouselGradientColor
|
|
69
|
+
gradientColor: carouselGradientColor,
|
|
70
|
+
onChange: onCarouselChange
|
|
66
71
|
}, cards) : /*#__PURE__*/React.createElement("div", {
|
|
67
72
|
className: cn('cards')
|
|
68
73
|
}, cards));
|
|
@@ -47,7 +47,7 @@ var DarkGradientCard = function DarkGradientCard(_ref) {
|
|
|
47
47
|
}), /*#__PURE__*/React.createElement("div", {
|
|
48
48
|
className: cn('inner')
|
|
49
49
|
}, /*#__PURE__*/React.createElement("div", {
|
|
50
|
-
className: cn('title')
|
|
50
|
+
className: cn('title', [classes.title])
|
|
51
51
|
}, (0, _uiHelpers.convert)(title, {})), subtitle && /*#__PURE__*/React.createElement("div", {
|
|
52
52
|
className: cn('subtitle')
|
|
53
53
|
}, (0, _uiHelpers.convert)(subtitle, {})), !!moreText && /*#__PURE__*/React.createElement("div", {
|
|
@@ -15,12 +15,15 @@ export interface IPromoCards extends IPromoCardSettings {
|
|
|
15
15
|
classes?: {
|
|
16
16
|
root?: string;
|
|
17
17
|
card?: string;
|
|
18
|
+
cardTitle?: string;
|
|
18
19
|
};
|
|
19
20
|
/** Дополнительные data атрибуты к внутренним элементам */
|
|
20
21
|
dataAttrs?: {
|
|
21
22
|
root?: Record<string, string>;
|
|
22
23
|
card?: Record<string, string>;
|
|
23
24
|
};
|
|
25
|
+
/** Обработчик смены слайда карусели */
|
|
26
|
+
onCarouselChange?: CarouselProps['onChange'];
|
|
24
27
|
/** Ссылка на элемент */
|
|
25
28
|
rootRef?: React.Ref<HTMLDivElement>;
|
|
26
29
|
/** Дочерние элементы. Минимальное количество 2 элемента */
|
|
@@ -36,6 +36,7 @@ var PromoCards = function PromoCards(_ref) {
|
|
|
36
36
|
dataAttrs = _ref.dataAttrs,
|
|
37
37
|
className = _ref.className,
|
|
38
38
|
classes = _ref.classes,
|
|
39
|
+
onCarouselChange = _ref.onCarouselChange,
|
|
39
40
|
rootRef = _ref.rootRef,
|
|
40
41
|
children = _ref.children;
|
|
41
42
|
var itemsLength = (items === null || items === void 0 ? void 0 : items.length) || 0;
|
|
@@ -46,6 +47,9 @@ var PromoCards = function PromoCards(_ref) {
|
|
|
46
47
|
var renderItems = (items || []).map(function (item, i) {
|
|
47
48
|
return /*#__PURE__*/React.createElement(_PromoCard["default"], (0, _extends2["default"])({}, item, {
|
|
48
49
|
className: classes === null || classes === void 0 ? void 0 : classes.card,
|
|
50
|
+
classes: {
|
|
51
|
+
title: classes === null || classes === void 0 ? void 0 : classes.cardTitle
|
|
52
|
+
},
|
|
49
53
|
dataAttrs: {
|
|
50
54
|
root: (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.card, i + 1)
|
|
51
55
|
},
|
|
@@ -60,7 +64,8 @@ var PromoCards = function PromoCards(_ref) {
|
|
|
60
64
|
slidesSettings: slidesSettings,
|
|
61
65
|
navTheme: carouselNavTheme,
|
|
62
66
|
gradient: true,
|
|
63
|
-
gradientColor: carouselGradientColor
|
|
67
|
+
gradientColor: carouselGradientColor,
|
|
68
|
+
onChange: onCarouselChange
|
|
64
69
|
}, childrenLength ? children : renderItems));
|
|
65
70
|
};
|
|
66
71
|
var _default = exports["default"] = PromoCards;
|
|
@@ -7,6 +7,7 @@ export interface IPromoCard extends IPromoCardData, IPromoCardSettings {
|
|
|
7
7
|
/** Дополнительные css классы для корневого элемента */
|
|
8
8
|
classes?: {
|
|
9
9
|
root?: string;
|
|
10
|
+
title?: string;
|
|
10
11
|
};
|
|
11
12
|
/** Дополнительные data атрибуты к корневому и внутренним элементам */
|
|
12
13
|
dataAttrs?: {
|
|
@@ -14,6 +15,7 @@ export interface IPromoCard extends IPromoCardData, IPromoCardSettings {
|
|
|
14
15
|
image?: Record<string, string>;
|
|
15
16
|
badge?: Record<string, string>;
|
|
16
17
|
logo?: Record<string, string>;
|
|
18
|
+
title?: Record<string, string>;
|
|
17
19
|
subtitle?: Record<string, string>;
|
|
18
20
|
list?: Record<string, string>;
|
|
19
21
|
adTitle?: Record<string, string>;
|
|
@@ -154,7 +154,11 @@ var PromoCard = function PromoCard(_ref2) {
|
|
|
154
154
|
src: logo.src,
|
|
155
155
|
alt: logo.alt || ''
|
|
156
156
|
})), /*#__PURE__*/React.createElement(_uiCore.Header, {
|
|
157
|
-
as: "h3"
|
|
157
|
+
as: "h3",
|
|
158
|
+
className: classes === null || classes === void 0 ? void 0 : classes.title,
|
|
159
|
+
dataAttrs: {
|
|
160
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.title
|
|
161
|
+
}
|
|
158
162
|
}, (0, _uiHelpers.convert)(title, {})), !!subtitle && /*#__PURE__*/React.createElement("div", {
|
|
159
163
|
className: cn('subtitle')
|
|
160
164
|
}, /*#__PURE__*/React.createElement(_uiCore.Paragraph, {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { Carousel } from '@megafon/ui-core';
|
|
2
3
|
import { BackgroundType, CardDataType } from './types';
|
|
4
|
+
type CarouselProps = React.ComponentProps<typeof Carousel>;
|
|
3
5
|
export interface ISidePictureCards {
|
|
4
6
|
/** Карточки. Минимальное количество 2 карточки */
|
|
5
7
|
items: CardDataType[];
|
|
@@ -13,12 +15,15 @@ export interface ISidePictureCards {
|
|
|
13
15
|
classes?: {
|
|
14
16
|
root?: string;
|
|
15
17
|
item?: string;
|
|
18
|
+
itemTitle?: string;
|
|
16
19
|
};
|
|
17
20
|
/** Дополнительные data атрибуты к внутренним элементам */
|
|
18
21
|
dataAttrs?: {
|
|
19
22
|
root?: Record<string, string>;
|
|
20
23
|
item?: Record<string, string>;
|
|
21
24
|
};
|
|
25
|
+
/** Обработчик смены слайда карусели */
|
|
26
|
+
onCarouselChange?: CarouselProps['onChange'];
|
|
22
27
|
/** Ссылка на корневой элемент */
|
|
23
28
|
rootRef?: React.Ref<HTMLDivElement>;
|
|
24
29
|
}
|
|
@@ -35,6 +35,7 @@ var SidePictureCards = function SidePictureCards(_ref) {
|
|
|
35
35
|
_ref$classes = _ref.classes,
|
|
36
36
|
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
|
37
37
|
dataAttrs = _ref.dataAttrs,
|
|
38
|
+
onCarouselChange = _ref.onCarouselChange,
|
|
38
39
|
rootRef = _ref.rootRef;
|
|
39
40
|
if (items.length < MIN_ITEMS_COUNT) {
|
|
40
41
|
return null;
|
|
@@ -44,7 +45,8 @@ var SidePictureCards = function SidePictureCards(_ref) {
|
|
|
44
45
|
background: background,
|
|
45
46
|
key: "".concat(item === null || item === void 0 ? void 0 : item.title, "_").concat(index),
|
|
46
47
|
classes: {
|
|
47
|
-
root: classes.item
|
|
48
|
+
root: classes.item,
|
|
49
|
+
title: classes.itemTitle
|
|
48
50
|
},
|
|
49
51
|
dataAttrs: {
|
|
50
52
|
root: (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, index + 1))
|
|
@@ -54,7 +56,8 @@ var SidePictureCards = function SidePictureCards(_ref) {
|
|
|
54
56
|
var renderContent = function renderContent() {
|
|
55
57
|
if (hasCarousel) {
|
|
56
58
|
return /*#__PURE__*/React.createElement(_uiCore.Carousel, {
|
|
57
|
-
slidesSettings: slidesSettings
|
|
59
|
+
slidesSettings: slidesSettings,
|
|
60
|
+
onChange: onCarouselChange
|
|
58
61
|
}, items.map(renderItem));
|
|
59
62
|
}
|
|
60
63
|
return /*#__PURE__*/React.createElement(_uiCore.Grid, {
|
|
@@ -5,10 +5,12 @@ export type SidePictureCardType = CardDataType & {
|
|
|
5
5
|
background: BackgroundType;
|
|
6
6
|
classes?: {
|
|
7
7
|
root?: string;
|
|
8
|
+
title?: string;
|
|
8
9
|
button?: string;
|
|
9
10
|
};
|
|
10
11
|
dataAttrs?: {
|
|
11
12
|
root?: Record<string, string>;
|
|
13
|
+
title?: Record<string, string>;
|
|
12
14
|
button?: Record<string, string>;
|
|
13
15
|
};
|
|
14
16
|
};
|
|
@@ -32,7 +32,8 @@ var SidePictureCard = function SidePictureCard(_ref) {
|
|
|
32
32
|
buttonTitle = _ref2.title,
|
|
33
33
|
buttonHref = _ref2.href,
|
|
34
34
|
buttonTarget = _ref2.target,
|
|
35
|
-
buttonRel = _ref2.rel
|
|
35
|
+
buttonRel = _ref2.rel,
|
|
36
|
+
onButtonClick = _ref2.onClick;
|
|
36
37
|
var isLink = !!href && !buttonHref;
|
|
37
38
|
var ElementType = isLink ? 'a' : 'div';
|
|
38
39
|
var currentRel = (0, _setRelAttribute.setRelAttribute)(rel, target);
|
|
@@ -69,7 +70,10 @@ var SidePictureCard = function SidePictureCard(_ref) {
|
|
|
69
70
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
70
71
|
className: cn('content')
|
|
71
72
|
}, !!title && /*#__PURE__*/_react["default"].createElement(_uiCore.Header, {
|
|
72
|
-
className: cn('title'),
|
|
73
|
+
className: cn('title', [classes === null || classes === void 0 ? void 0 : classes.title]),
|
|
74
|
+
dataAttrs: {
|
|
75
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.title
|
|
76
|
+
},
|
|
73
77
|
as: "h3"
|
|
74
78
|
}, (0, _uiHelpers.convert)(title, {})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
75
79
|
className: cn('items')
|
|
@@ -80,7 +84,8 @@ var SidePictureCard = function SidePictureCard(_ref) {
|
|
|
80
84
|
},
|
|
81
85
|
href: buttonHref,
|
|
82
86
|
target: buttonTarget,
|
|
83
|
-
rel: currentButtonRel
|
|
87
|
+
rel: currentButtonRel,
|
|
88
|
+
onClick: onButtonClick
|
|
84
89
|
}, buttonTitle)), /*#__PURE__*/_react["default"].createElement("picture", {
|
|
85
90
|
className: cn('picture')
|
|
86
91
|
}, /*#__PURE__*/_react["default"].createElement("source", {
|
|
@@ -4,11 +4,13 @@ type ButtonType = {
|
|
|
4
4
|
/** Название */
|
|
5
5
|
title: string;
|
|
6
6
|
/** Ссылка */
|
|
7
|
-
href
|
|
7
|
+
href?: string;
|
|
8
8
|
/** Атрибут ссылки target */
|
|
9
9
|
target?: TargetType;
|
|
10
10
|
/** Атрибут ссылки rel */
|
|
11
11
|
rel?: string;
|
|
12
|
+
/** Обработчик клика */
|
|
13
|
+
onClick?: (e: React.SyntheticEvent<EventTarget>) => void;
|
|
12
14
|
};
|
|
13
15
|
type ImageType = {
|
|
14
16
|
/** Изображение на разрешении экрана 0-1279 */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@megafon/ui-shared",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.11.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist"
|
|
6
6
|
],
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
79
|
"@babel/runtime": "^7.8.4",
|
|
80
|
-
"@megafon/ui-core": "^8.
|
|
80
|
+
"@megafon/ui-core": "^8.14.0",
|
|
81
81
|
"@megafon/ui-helpers": "^4.0.2",
|
|
82
82
|
"@megafon/ui-icons": "^3.12.1",
|
|
83
83
|
"core-js": "^3.6.4",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"lodash.throttle": "^4.1.1",
|
|
86
86
|
"swiper": "^11.1.1"
|
|
87
87
|
},
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "eff55b645b52da10c43471a9960e5136e7584856"
|
|
89
89
|
}
|