@megafon/ui-shared 5.11.0 → 5.12.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/CHANGELOG.md +19 -0
- package/dist/es/components/BenefitsIcons/BenefitsIcons.d.ts +4 -0
- package/dist/es/components/BenefitsIcons/BenefitsIcons.js +25 -6
- package/dist/es/components/BenefitsIcons/BenefitsIconsTile.js +24 -10
- package/dist/es/components/BenefitsIcons/types.d.ts +12 -0
- package/dist/es/components/ImageBanner/ImageBanner.css +3 -0
- package/dist/es/components/ImageBanner/ImageBanner.d.ts +7 -0
- package/dist/es/components/ImageBanner/ImageBanner.js +15 -7
- package/dist/es/components/Instructions/Instructions.css +176 -39
- package/dist/es/components/Instructions/Instructions.d.ts +9 -0
- package/dist/es/components/Instructions/Instructions.js +35 -21
- package/dist/es/components/Instructions/img/iphone15.png +0 -0
- package/dist/es/components/Instructions/img/laptop-new.png +0 -0
- package/dist/es/helpers/getColumnConfig.d.ts +1 -1
- package/dist/lib/components/BenefitsIcons/BenefitsIcons.d.ts +4 -0
- package/dist/lib/components/BenefitsIcons/BenefitsIcons.js +24 -5
- package/dist/lib/components/BenefitsIcons/BenefitsIconsTile.js +26 -11
- package/dist/lib/components/BenefitsIcons/types.d.ts +12 -0
- package/dist/lib/components/ImageBanner/ImageBanner.css +3 -0
- package/dist/lib/components/ImageBanner/ImageBanner.d.ts +7 -0
- package/dist/lib/components/ImageBanner/ImageBanner.js +15 -7
- package/dist/lib/components/Instructions/Instructions.css +176 -39
- package/dist/lib/components/Instructions/Instructions.d.ts +9 -0
- package/dist/lib/components/Instructions/Instructions.js +39 -22
- package/dist/lib/components/Instructions/img/iphone15.png +0 -0
- package/dist/lib/components/Instructions/img/laptop-new.png +0 -0
- package/dist/lib/helpers/getColumnConfig.d.ts +1 -1
- package/package.json +3 -3
@@ -27,7 +27,9 @@ export var pictureMaskTypes = {
|
|
27
27
|
BLACK_IPHONE: 'black-iphone',
|
28
28
|
WHITE_IPHONE: 'white-iphone',
|
29
29
|
LAPTOP: 'laptop',
|
30
|
+
LAPTOP_NEW: 'laptop-new',
|
30
31
|
IPHONE_12: 'iphone-12',
|
32
|
+
IPHONE_15: 'iphone-15',
|
31
33
|
IPHONE_CROPPED: 'iphone-cropped',
|
32
34
|
NONE: 'none'
|
33
35
|
};
|
@@ -38,6 +40,10 @@ export var arrowTheme = {
|
|
38
40
|
PURPLE: 'purple',
|
39
41
|
DARK: 'dark'
|
40
42
|
};
|
43
|
+
export var elementOrderTypes = {
|
44
|
+
DEFAULT: 'default',
|
45
|
+
REVERSED: 'reversed'
|
46
|
+
};
|
41
47
|
var testIdPrefix = 'Instructions';
|
42
48
|
var cn = cnCreate('mfui-instructions');
|
43
49
|
var swiperSlideCn = cn('slide');
|
@@ -72,6 +78,8 @@ var Instructions = function Instructions(_ref) {
|
|
72
78
|
showArrows = _ref.showArrows,
|
73
79
|
_ref$arrowsTheme = _ref.arrowsTheme,
|
74
80
|
arrowsTheme = _ref$arrowsTheme === void 0 ? arrowTheme.DARK : _ref$arrowsTheme,
|
81
|
+
_ref$elementOrder = _ref.elementOrder,
|
82
|
+
elementOrder = _ref$elementOrder === void 0 ? 'default' : _ref$elementOrder,
|
75
83
|
children = _ref.children;
|
76
84
|
|
77
85
|
var _React$useState = React.useState(),
|
@@ -84,6 +92,7 @@ var Instructions = function Instructions(_ref) {
|
|
84
92
|
slideIndex = _React$useState4[0],
|
85
93
|
setSlideIndex = _React$useState4[1];
|
86
94
|
|
95
|
+
var isMobileReversed = elementOrder === 'reversed';
|
87
96
|
var getSwiperInstance = React.useCallback(function (swiper) {
|
88
97
|
setSwiperInstance(swiper);
|
89
98
|
getSwiper && getSwiper(swiper);
|
@@ -133,6 +142,22 @@ var Instructions = function Instructions(_ref) {
|
|
133
142
|
type: "video/mp4"
|
134
143
|
}));
|
135
144
|
}, [dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.image]);
|
145
|
+
var renderMobileDots = React.useCallback(function () {
|
146
|
+
return /*#__PURE__*/React.createElement("ul", {
|
147
|
+
className: cn('articles-dots', {
|
148
|
+
reversed: isMobileReversed
|
149
|
+
}),
|
150
|
+
"data-testid": "".concat(testIdPrefix, "-articles-dots-mobile")
|
151
|
+
}, instructionItems.map(function (_item, i) {
|
152
|
+
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, i + 1), {
|
153
|
+
key: i,
|
154
|
+
className: cn('articles-dot', {
|
155
|
+
active: slideIndex === i
|
156
|
+
}, [getActiveCustomClass(i, slideIndex), instructionItem, mobileInstructionItem]),
|
157
|
+
onClick: handleArticleClick(i)
|
158
|
+
}));
|
159
|
+
}));
|
160
|
+
}, [instructionItems, dataAttrs, slideIndex, instructionItem, mobileInstructionItem, getActiveCustomClass, handleArticleClick, isMobileReversed]);
|
136
161
|
var renderSlider = React.useCallback(function () {
|
137
162
|
return /*#__PURE__*/React.createElement(Swiper, {
|
138
163
|
noSwiping: false,
|
@@ -235,7 +260,9 @@ var Instructions = function Instructions(_ref) {
|
|
235
260
|
}),
|
236
261
|
"data-testid": "".concat(testIdPrefix, "-articles-list-mobile")
|
237
262
|
}, /*#__PURE__*/React.createElement("div", {
|
238
|
-
className: cn('articles-title-block'
|
263
|
+
className: cn('articles-title-block', {
|
264
|
+
reversed: isMobileReversed
|
265
|
+
})
|
239
266
|
}, instructionItems.map(function (_ref6, i) {
|
240
267
|
var itemTitle = _ref6.title;
|
241
268
|
return slideIndex === i && /*#__PURE__*/React.createElement("div", _extends({
|
@@ -244,23 +271,8 @@ var Instructions = function Instructions(_ref) {
|
|
244
271
|
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.mobileItemText, i + 1), {
|
245
272
|
className: cn('articles-title', [mobileItemTitle])
|
246
273
|
}), itemTitle);
|
247
|
-
})), /*#__PURE__*/React.createElement("ul", {
|
248
|
-
className: cn('articles-dots', {
|
249
|
-
'text-after': !!text
|
250
|
-
}),
|
251
|
-
"data-testid": "".concat(testIdPrefix, "-articles-dots-mobile")
|
252
|
-
}, instructionItems.map(function (_item, i) {
|
253
|
-
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, i + 1), {
|
254
|
-
key: i,
|
255
|
-
className: cn('articles-dot', {
|
256
|
-
active: slideIndex === i
|
257
|
-
}, [getActiveCustomClass(i, slideIndex), instructionItem, mobileInstructionItem]),
|
258
|
-
onClick: handleArticleClick(i)
|
259
|
-
}), /*#__PURE__*/React.createElement("span", {
|
260
|
-
className: cn('articles-dot-number')
|
261
|
-
}, i + 1));
|
262
274
|
})));
|
263
|
-
}, [dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.mobileItemText,
|
275
|
+
}, [dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.mobileItemText, instructionItems, mobileItemTitle, slideIndex, isMobileReversed]);
|
264
276
|
var renderArrows = React.useCallback(function () {
|
265
277
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(NavArrow, {
|
266
278
|
dataAttrs: {
|
@@ -287,7 +299,8 @@ var Instructions = function Instructions(_ref) {
|
|
287
299
|
}, [handlePrevClick, handleNextClick, arrowsTheme, arrowPrev, arrowNext, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrowPrev, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrowNext, slideIndex, instructionItems.length]);
|
288
300
|
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
289
301
|
className: cn({
|
290
|
-
mask: pictureMask
|
302
|
+
mask: pictureMask,
|
303
|
+
reversed: isMobileReversed
|
291
304
|
}),
|
292
305
|
ref: rootRef
|
293
306
|
}), /*#__PURE__*/React.createElement(Grid, {
|
@@ -304,11 +317,11 @@ var Instructions = function Instructions(_ref) {
|
|
304
317
|
background: pictureBackgroundColor
|
305
318
|
}),
|
306
319
|
"data-testid": "".concat(testIdPrefix, "-picture")
|
307
|
-
}, renderPicture(), !!showArrows && renderArrows(), renderQrCode()), /*#__PURE__*/React.createElement("div", {
|
320
|
+
}, isMobileReversed && renderMobileArticles(), renderPicture(), !!showArrows && renderArrows(), renderQrCode()), renderMobileDots(), /*#__PURE__*/React.createElement("div", {
|
308
321
|
className: cn('articles', {
|
309
322
|
align: pictureAlign
|
310
323
|
})
|
311
|
-
}, !!title && renderTitle('desktop'), renderMobileArticles(), renderDesktopArticles(), text && renderText(), children)))));
|
324
|
+
}, !!title && renderTitle('desktop'), !isMobileReversed && renderMobileArticles(), renderDesktopArticles(), text && renderText(), children)))));
|
312
325
|
};
|
313
326
|
|
314
327
|
Instructions.propTypes = {
|
@@ -345,10 +358,11 @@ Instructions.propTypes = {
|
|
345
358
|
}).isRequired).isRequired,
|
346
359
|
pictureAlign: PropTypes.oneOf([pictureAlignTypes.LEFT, pictureAlignTypes.RIGHT]),
|
347
360
|
pictureVerticalAlign: PropTypes.oneOf([pictureVerticalAlignTypes.CENTER, pictureVerticalAlignTypes.TOP, pictureVerticalAlignTypes.UNSET]),
|
348
|
-
pictureMask: PropTypes.oneOf([pictureMaskTypes.ANDROID, pictureMaskTypes.ANDROID_CROPPED, pictureMaskTypes.NEW_IPHONE, pictureMaskTypes.WHITE_IPHONE, pictureMaskTypes.BLACK_IPHONE, pictureMaskTypes.LAPTOP, pictureMaskTypes.IPHONE_12, pictureMaskTypes.IPHONE_CROPPED, pictureMaskTypes.NONE]),
|
361
|
+
pictureMask: PropTypes.oneOf([pictureMaskTypes.ANDROID, pictureMaskTypes.ANDROID_CROPPED, pictureMaskTypes.NEW_IPHONE, pictureMaskTypes.WHITE_IPHONE, pictureMaskTypes.BLACK_IPHONE, pictureMaskTypes.LAPTOP, pictureMaskTypes.LAPTOP_NEW, pictureMaskTypes.IPHONE_12, pictureMaskTypes.IPHONE_15, pictureMaskTypes.IPHONE_CROPPED, pictureMaskTypes.NONE]),
|
349
362
|
pictureBackgroundColor: PropTypes.oneOf([pictureBackgroundColorTypes.SPB_SKY_0]),
|
350
363
|
showArrows: PropTypes.bool,
|
351
364
|
arrowsTheme: PropTypes.oneOf([arrowTheme.DARK, arrowTheme.PURPLE]),
|
365
|
+
elementOrder: PropTypes.oneOf([elementOrderTypes.DEFAULT, elementOrderTypes.REVERSED]),
|
352
366
|
getSwiper: PropTypes.func
|
353
367
|
};
|
354
368
|
export default Instructions;
|
Binary file
|
Binary file
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
export declare const getColumnConfig: (isFullWidth: boolean) => Pick<React.PropsWithChildren<import("
|
2
|
+
export declare const getColumnConfig: (isFullWidth: boolean) => Pick<React.PropsWithChildren<import("@megafon/ui-core/dist/lib/components/Grid/GridColumn").IGridColumn>, "all" | "wide" | "mobile" | "desktop" | "tablet">;
|
@@ -2,6 +2,10 @@ import * as React from 'react';
|
|
2
2
|
import { IconPosition, IBenefit, BackgroundType } from './types';
|
3
3
|
import './style/BenefitsIcons.less';
|
4
4
|
export interface IBenefitsIcons {
|
5
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
6
|
+
dataAttrs?: {
|
7
|
+
root?: Record<string, string>;
|
8
|
+
};
|
5
9
|
/** Ссылка на корневой элемент */
|
6
10
|
rootRef?: React.Ref<HTMLDivElement>;
|
7
11
|
/** Позиция иконки */
|
@@ -43,7 +43,8 @@ var testIdPrefix = 'BenefitsIcons';
|
|
43
43
|
var cn = (0, _uiHelpers.cnCreate)('mfui-benefits-icons');
|
44
44
|
|
45
45
|
var BenefitsIcons = function BenefitsIcons(_ref) {
|
46
|
-
var
|
46
|
+
var dataAttrs = _ref.dataAttrs,
|
47
|
+
rootRef = _ref.rootRef,
|
47
48
|
_ref$iconPosition = _ref.iconPosition,
|
48
49
|
iconPosition = _ref$iconPosition === void 0 ? 'left-top' : _ref$iconPosition,
|
49
50
|
_ref$background = _ref.background,
|
@@ -86,13 +87,13 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
|
|
86
87
|
window.removeEventListener('resize', resizeHandlerThrottled);
|
87
88
|
};
|
88
89
|
}, [iconPosition, inOneColumn, resizeHandler]);
|
89
|
-
return /*#__PURE__*/React.createElement("div", {
|
90
|
+
return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
90
91
|
className: cn({
|
91
92
|
'one-column': inOneColumn,
|
92
93
|
background: background
|
93
94
|
}, [className, classes.root]),
|
94
95
|
ref: rootRef
|
95
|
-
}, /*#__PURE__*/React.createElement("div", {
|
96
|
+
}), /*#__PURE__*/React.createElement("div", {
|
96
97
|
className: cn('inner')
|
97
98
|
}, /*#__PURE__*/React.createElement(_uiCore.Grid, {
|
98
99
|
className: classes.grid,
|
@@ -110,7 +111,9 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
|
|
110
111
|
var title = _ref2.title,
|
111
112
|
text = _ref2.text,
|
112
113
|
icon = _ref2.icon,
|
113
|
-
alt = _ref2.alt
|
114
|
+
alt = _ref2.alt,
|
115
|
+
itemClasses = _ref2.classes,
|
116
|
+
itemDataAttrs = _ref2.dataAttrs;
|
114
117
|
var columnConfig = inOneColumn ? (0, _helpers.getOneColumnConfig)(iconPosition) : (0, _helpers["default"])(iconPosition, items.length, i);
|
115
118
|
return /*#__PURE__*/React.createElement(_uiCore.GridColumn, (0, _extends2["default"])({
|
116
119
|
className: cn('column', [classes.gridColumn]),
|
@@ -122,6 +125,8 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
|
|
122
125
|
}
|
123
126
|
}, columnConfig), /*#__PURE__*/React.createElement(_BenefitsIconsTile["default"], {
|
124
127
|
className: cn('tile', [classes.item]),
|
128
|
+
classes: itemClasses,
|
129
|
+
dataAttrs: itemDataAttrs,
|
125
130
|
title: title,
|
126
131
|
text: text,
|
127
132
|
icon: icon,
|
@@ -133,6 +138,9 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
|
|
133
138
|
};
|
134
139
|
|
135
140
|
BenefitsIcons.propTypes = {
|
141
|
+
dataAttrs: _propTypes["default"].shape({
|
142
|
+
root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
143
|
+
}),
|
136
144
|
rootRef: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].oneOfType([_propTypes["default"].shape({
|
137
145
|
current: _propTypes["default"].elementType
|
138
146
|
}), _propTypes["default"].any])]),
|
@@ -140,9 +148,20 @@ BenefitsIcons.propTypes = {
|
|
140
148
|
background: _propTypes["default"].oneOf(Object.values(_types.BackgroundEnum)),
|
141
149
|
inOneColumn: _propTypes["default"].bool,
|
142
150
|
items: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
151
|
+
dataAttrs: _propTypes["default"].shape({
|
152
|
+
root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
153
|
+
}),
|
154
|
+
classes: _propTypes["default"].shape({
|
155
|
+
root: _propTypes["default"].string,
|
156
|
+
icon: _propTypes["default"].string,
|
157
|
+
title: _propTypes["default"].string,
|
158
|
+
text: _propTypes["default"].string,
|
159
|
+
contentWrapper: _propTypes["default"].string
|
160
|
+
}),
|
143
161
|
title: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node, _propTypes["default"].arrayOf(_propTypes["default"].node)]),
|
144
162
|
text: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node, _propTypes["default"].arrayOf(_propTypes["default"].node)]),
|
145
|
-
icon: _propTypes["default"].node.isRequired
|
163
|
+
icon: _propTypes["default"].node.isRequired,
|
164
|
+
alt: _propTypes["default"].string
|
146
165
|
}).isRequired).isRequired,
|
147
166
|
className: _propTypes["default"].string,
|
148
167
|
classes: _propTypes["default"].shape({
|
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
});
|
8
8
|
exports["default"] = void 0;
|
9
9
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
11
|
+
|
10
12
|
require("core-js/modules/es.object.values.js");
|
11
13
|
|
12
14
|
var React = _interopRequireWildcard(require("react"));
|
@@ -19,17 +21,20 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
21
|
|
20
22
|
var _types = require("./types");
|
21
23
|
|
22
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
23
|
-
|
24
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
25
25
|
|
26
26
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
|
27
27
|
|
28
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
29
|
+
|
28
30
|
var testIdPrefix = 'BenefitsIconsTile';
|
29
31
|
var cn = (0, _uiHelpers.cnCreate)('mfui-benefits-icons-tile');
|
30
32
|
|
31
33
|
var BenefitsIconsTile = function BenefitsIconsTile(_ref) {
|
32
|
-
var
|
34
|
+
var dataAttrs = _ref.dataAttrs,
|
35
|
+
_ref$classes = _ref.classes,
|
36
|
+
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
37
|
+
title = _ref.title,
|
33
38
|
text = _ref.text,
|
34
39
|
icon = _ref.icon,
|
35
40
|
iconPosition = _ref.iconPosition,
|
@@ -40,7 +45,7 @@ var BenefitsIconsTile = function BenefitsIconsTile(_ref) {
|
|
40
45
|
var renderIcon = function renderIcon() {
|
41
46
|
if (typeof icon === 'string') {
|
42
47
|
return /*#__PURE__*/React.createElement("img", {
|
43
|
-
className: cn('img-icon'),
|
48
|
+
className: cn('img-icon', [classes.icon]),
|
44
49
|
src: icon,
|
45
50
|
alt: alt,
|
46
51
|
"data-testid": "".concat(testIdPrefix, "-img")
|
@@ -48,32 +53,42 @@ var BenefitsIconsTile = function BenefitsIconsTile(_ref) {
|
|
48
53
|
}
|
49
54
|
|
50
55
|
return /*#__PURE__*/React.createElement("div", {
|
51
|
-
className: cn('svg-icon'),
|
56
|
+
className: cn('svg-icon', [classes.icon]),
|
52
57
|
"data-testid": "".concat(testIdPrefix, "-svg")
|
53
58
|
}, icon);
|
54
59
|
};
|
55
60
|
|
56
|
-
return /*#__PURE__*/React.createElement("div", {
|
61
|
+
return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
57
62
|
className: cn({
|
58
63
|
'icon-position': iconPosition,
|
59
64
|
background: background,
|
60
65
|
image: typeof icon === 'string'
|
61
|
-
}, [className]),
|
66
|
+
}, [className, classes.root]),
|
62
67
|
"data-testid": "".concat(testIdPrefix, "-root")
|
63
|
-
}, /*#__PURE__*/React.createElement("div", {
|
68
|
+
}), /*#__PURE__*/React.createElement("div", {
|
64
69
|
className: cn('inner')
|
65
70
|
}, renderIcon(), /*#__PURE__*/React.createElement("div", {
|
66
|
-
className: cn('content-wrapper')
|
71
|
+
className: cn('content-wrapper', [classes.contentWrapper])
|
67
72
|
}, title && /*#__PURE__*/React.createElement(_uiCore.Header, {
|
68
|
-
className: cn('title'),
|
73
|
+
className: cn('title', [classes.title]),
|
69
74
|
as: "h5"
|
70
75
|
}, title), text && /*#__PURE__*/React.createElement("div", {
|
71
|
-
className: cn('content')
|
76
|
+
className: cn('content', [classes.text])
|
72
77
|
}, text))));
|
73
78
|
};
|
74
79
|
|
75
80
|
BenefitsIconsTile.propTypes = {
|
81
|
+
dataAttrs: _propTypes["default"].shape({
|
82
|
+
root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
83
|
+
}),
|
76
84
|
className: _propTypes["default"].string,
|
85
|
+
classes: _propTypes["default"].shape({
|
86
|
+
root: _propTypes["default"].string,
|
87
|
+
icon: _propTypes["default"].string,
|
88
|
+
title: _propTypes["default"].string,
|
89
|
+
text: _propTypes["default"].string,
|
90
|
+
contentWrapper: _propTypes["default"].string
|
91
|
+
}),
|
77
92
|
title: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node, _propTypes["default"].arrayOf(_propTypes["default"].node)]),
|
78
93
|
text: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node, _propTypes["default"].arrayOf(_propTypes["default"].node)]),
|
79
94
|
iconPosition: _propTypes["default"].oneOf(Object.values(_types.IconPositionEnum)),
|
@@ -1,6 +1,18 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
declare type TGridSizeValues = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12';
|
3
3
|
export interface IBenefit {
|
4
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
5
|
+
dataAttrs?: {
|
6
|
+
root?: Record<string, string>;
|
7
|
+
};
|
8
|
+
/** Дополнительные классы для корневого и внутренних элементов */
|
9
|
+
classes?: {
|
10
|
+
root?: string;
|
11
|
+
icon?: string;
|
12
|
+
title?: string;
|
13
|
+
text?: string;
|
14
|
+
contentWrapper?: string;
|
15
|
+
};
|
4
16
|
/** Заголовок бенефита */
|
5
17
|
title?: string | React.ReactNode | React.ReactNode[];
|
6
18
|
/** Основной текст в бенефите */
|
@@ -43,6 +43,13 @@ export interface IImageBannerProps {
|
|
43
43
|
classes?: {
|
44
44
|
root?: string;
|
45
45
|
image?: string;
|
46
|
+
title?: string;
|
47
|
+
description?: string;
|
48
|
+
cost?: string;
|
49
|
+
badgesContainer?: string;
|
50
|
+
badges?: string;
|
51
|
+
badge?: string;
|
52
|
+
adBlock?: string;
|
46
53
|
};
|
47
54
|
/** Ссылка на корневой элемент */
|
48
55
|
rootRef?: Ref<HTMLDivElement>;
|
@@ -121,11 +121,12 @@ var ImageBanner = function ImageBanner(_ref2) {
|
|
121
121
|
var hasImage = !!(imageMobile || imageMobile2x || imageDesktop || imageDesktop2x);
|
122
122
|
|
123
123
|
var renderBadges = !!badges.length && /*#__PURE__*/_react["default"].createElement("div", {
|
124
|
-
className: cn('badges')
|
124
|
+
className: cn('badges', [classes.badges])
|
125
125
|
}, badges.map(function (_ref3) {
|
126
126
|
var text = _ref3.text,
|
127
127
|
iconType = _ref3.iconType;
|
128
128
|
return /*#__PURE__*/_react["default"].createElement(_uiCore.PriceBadge, {
|
129
|
+
className: classes.badge,
|
129
130
|
theme: navTheme,
|
130
131
|
iconType: iconType,
|
131
132
|
key: text
|
@@ -133,22 +134,22 @@ var ImageBanner = function ImageBanner(_ref2) {
|
|
133
134
|
}));
|
134
135
|
|
135
136
|
var renderAdBlock = !!adBlock && /*#__PURE__*/_react["default"].createElement("div", {
|
136
|
-
className: cn('ad-block')
|
137
|
+
className: cn('ad-block', [classes.adBlock])
|
137
138
|
}, adBlock);
|
138
139
|
|
139
140
|
var renderContent = /*#__PURE__*/_react["default"].createElement("div", {
|
140
141
|
className: cn('content')
|
141
142
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
142
|
-
className: cn('badges-container')
|
143
|
+
className: cn('badges-container', [classes.badgesContainer])
|
143
144
|
}, renderBadges, renderAdBlock), !!title && /*#__PURE__*/_react["default"].createElement(_uiCore.Header, {
|
144
|
-
className: cn('title'),
|
145
|
+
className: cn('title', [classes.title]),
|
145
146
|
color: "inherit"
|
146
147
|
}, typeof title === 'string' ? (0, _uiHelpers.convert)(title, _uiHelpers.titleConvertConfig) : title), !!description && /*#__PURE__*/_react["default"].createElement(_uiCore.Header, {
|
147
|
-
className: cn('description'),
|
148
|
+
className: cn('description', [classes.description]),
|
148
149
|
as: "h5",
|
149
150
|
color: "inherit"
|
150
151
|
}, typeof description === 'string' ? (0, _uiHelpers.convert)(description, _uiHelpers.titleConvertConfig) : description), !!cost && /*#__PURE__*/_react["default"].createElement("div", {
|
151
|
-
className: cn('cost')
|
152
|
+
className: cn('cost', [classes.cost])
|
152
153
|
}, (0, _uiHelpers.convert)(cost, typographyConfig)), !!children && !!_react["default"].Children.count(children) && /*#__PURE__*/_react["default"].createElement("div", {
|
153
154
|
className: cn('children')
|
154
155
|
}, children));
|
@@ -191,7 +192,14 @@ ImageBanner.propTypes = {
|
|
191
192
|
className: PropTypes.string,
|
192
193
|
classes: PropTypes.shape({
|
193
194
|
root: PropTypes.string,
|
194
|
-
image: PropTypes.string
|
195
|
+
image: PropTypes.string,
|
196
|
+
title: PropTypes.string,
|
197
|
+
description: PropTypes.string,
|
198
|
+
cost: PropTypes.string,
|
199
|
+
badgesContainer: PropTypes.string,
|
200
|
+
badges: PropTypes.string,
|
201
|
+
badge: PropTypes.string,
|
202
|
+
adBlock: PropTypes.string
|
195
203
|
}),
|
196
204
|
rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
|
197
205
|
current: PropTypes.elementType
|