@megafon/ui-shared 3.0.3 → 3.1.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 +22 -0
- package/dist/es/components/AccordionBox/AccordionBox.d.ts +5 -0
- package/dist/es/components/AccordionBox/AccordionBox.js +6 -1
- package/dist/es/components/BenefitsIcons/BenefitsIcons.js +1 -1
- package/dist/es/components/Breadcrumbs/Breadcrumbs.css +2 -2
- package/dist/es/components/Breadcrumbs/Breadcrumbs.d.ts +7 -2
- package/dist/es/components/Breadcrumbs/Breadcrumbs.js +48 -18
- package/dist/es/components/ButtonBanner/ButtonBanner.d.ts +1 -0
- package/dist/es/components/ButtonBanner/ButtonBanner.js +5 -1
- package/dist/es/components/ButtonLinkBox/ButtonLinkBox.d.ts +2 -0
- package/dist/es/components/ButtonLinkBox/ButtonLinkBox.js +9 -1
- package/dist/es/components/Card/Card.d.ts +4 -2
- package/dist/es/components/Card/Card.js +16 -6
- package/dist/es/components/DownloadLinks/DownloadLink.css +1 -1
- package/dist/es/components/DownloadLinks/DownloadLink.d.ts +5 -0
- package/dist/es/components/DownloadLinks/DownloadLink.js +14 -6
- package/dist/es/components/Instructions/Instructions.d.ts +7 -0
- package/dist/es/components/Instructions/Instructions.js +55 -45
- package/dist/es/components/PageTitle/PageTitle.d.ts +6 -0
- package/dist/es/components/PageTitle/PageTitle.js +15 -4
- package/dist/es/components/Partners/Partners.d.ts +5 -4
- package/dist/es/components/Partners/Partners.js +15 -7
- package/dist/es/components/Property/Property.d.ts +3 -2
- package/dist/es/components/Property/Property.js +9 -3
- package/dist/es/components/Property/PropertyDescription.js +11 -5
- package/dist/es/components/Property/types.d.ts +3 -0
- package/dist/es/components/StoreBanner/StoreBanner.d.ts +4 -0
- package/dist/es/components/StoreBanner/StoreBanner.js +19 -4
- package/dist/es/components/StoreButton/StoreButton.d.ts +1 -1
- package/dist/es/components/StoreButton/StoreButton.js +26 -7
- package/dist/es/components/Table/Table.css +1 -1
- package/dist/es/components/TextWithIcon/TextWithIconItem.d.ts +1 -1
- package/dist/es/components/TextWithIcon/TextWithIconItem.js +1 -1
- package/dist/es/components/VideoBanner/VideoBanner.d.ts +7 -2
- package/dist/es/components/VideoBanner/VideoBanner.js +21 -5
- package/dist/es/components/VideoBlock/VideoBlock.d.ts +3 -2
- package/dist/es/components/VideoBlock/VideoBlock.js +9 -3
- package/dist/lib/components/AccordionBox/AccordionBox.d.ts +5 -0
- package/dist/lib/components/AccordionBox/AccordionBox.js +6 -1
- package/dist/lib/components/BenefitsIcons/BenefitsIcons.js +1 -1
- package/dist/lib/components/Breadcrumbs/Breadcrumbs.css +2 -2
- package/dist/lib/components/Breadcrumbs/Breadcrumbs.d.ts +7 -2
- package/dist/lib/components/Breadcrumbs/Breadcrumbs.js +49 -17
- package/dist/lib/components/ButtonBanner/ButtonBanner.d.ts +1 -0
- package/dist/lib/components/ButtonBanner/ButtonBanner.js +5 -1
- package/dist/lib/components/ButtonLinkBox/ButtonLinkBox.d.ts +2 -0
- package/dist/lib/components/ButtonLinkBox/ButtonLinkBox.js +9 -1
- package/dist/lib/components/Card/Card.d.ts +4 -2
- package/dist/lib/components/Card/Card.js +16 -6
- package/dist/lib/components/DownloadLinks/DownloadLink.css +1 -1
- package/dist/lib/components/DownloadLinks/DownloadLink.d.ts +5 -0
- package/dist/lib/components/DownloadLinks/DownloadLink.js +13 -5
- package/dist/lib/components/Instructions/Instructions.d.ts +7 -0
- package/dist/lib/components/Instructions/Instructions.js +55 -44
- package/dist/lib/components/PageTitle/PageTitle.d.ts +6 -0
- package/dist/lib/components/PageTitle/PageTitle.js +17 -5
- package/dist/lib/components/Partners/Partners.d.ts +5 -4
- package/dist/lib/components/Partners/Partners.js +15 -7
- package/dist/lib/components/Property/Property.d.ts +3 -2
- package/dist/lib/components/Property/Property.js +9 -3
- package/dist/lib/components/Property/PropertyDescription.js +11 -4
- package/dist/lib/components/Property/types.d.ts +3 -0
- package/dist/lib/components/StoreBanner/StoreBanner.d.ts +4 -0
- package/dist/lib/components/StoreBanner/StoreBanner.js +19 -4
- package/dist/lib/components/StoreButton/StoreButton.d.ts +1 -1
- package/dist/lib/components/StoreButton/StoreButton.js +30 -9
- package/dist/lib/components/Table/Table.css +1 -1
- package/dist/lib/components/TextWithIcon/TextWithIconItem.d.ts +1 -1
- package/dist/lib/components/TextWithIcon/TextWithIconItem.js +1 -1
- package/dist/lib/components/VideoBanner/VideoBanner.d.ts +7 -2
- package/dist/lib/components/VideoBanner/VideoBanner.js +21 -5
- package/dist/lib/components/VideoBlock/VideoBlock.d.ts +3 -2
- package/dist/lib/components/VideoBlock/VideoBlock.js +9 -3
- package/package.json +3 -3
@@ -1,10 +1,11 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import './Breadcrumbs.less';
|
3
|
-
declare type
|
4
|
-
component?: React.ReactElement;
|
3
|
+
declare type ItemObjectType = {
|
5
4
|
title?: string;
|
6
5
|
href?: string;
|
6
|
+
component?: React.ReactElement;
|
7
7
|
};
|
8
|
+
declare type ItemType = JSX.Element | ItemObjectType;
|
8
9
|
export declare const TextColor: {
|
9
10
|
readonly DEFAULT: "default";
|
10
11
|
readonly BLACK: "black";
|
@@ -12,6 +13,10 @@ export declare const TextColor: {
|
|
12
13
|
};
|
13
14
|
declare type TextColorType = typeof TextColor[keyof typeof TextColor];
|
14
15
|
export declare type Props = {
|
16
|
+
dataAttrs?: {
|
17
|
+
root?: Record<string, string>;
|
18
|
+
link?: Record<string, string>;
|
19
|
+
};
|
15
20
|
className?: string;
|
16
21
|
classes?: {
|
17
22
|
item?: string;
|
@@ -9,6 +9,10 @@ require("core-js/modules/es.array.map");
|
|
9
9
|
|
10
10
|
require("core-js/modules/es.object.values");
|
11
11
|
|
12
|
+
require("core-js/modules/es.string.link");
|
13
|
+
|
14
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
15
|
+
|
12
16
|
var _react = _interopRequireDefault(require("react"));
|
13
17
|
|
14
18
|
var _uiCore = require("@megafon/ui-core");
|
@@ -25,6 +29,15 @@ var TextColor = {
|
|
25
29
|
WHITE: 'white'
|
26
30
|
};
|
27
31
|
exports.TextColor = TextColor;
|
32
|
+
|
33
|
+
function isObjectElement(item) {
|
34
|
+
return !_react["default"].isValidElement(item);
|
35
|
+
}
|
36
|
+
|
37
|
+
function isJSXElement(item) {
|
38
|
+
return _react["default"].isValidElement(item);
|
39
|
+
}
|
40
|
+
|
28
41
|
var cn = (0, _uiHelpers.cnCreate)('mfui-breadcrumbs');
|
29
42
|
|
30
43
|
var Breadcrumbs = function Breadcrumbs(_ref) {
|
@@ -33,34 +46,53 @@ var Breadcrumbs = function Breadcrumbs(_ref) {
|
|
33
46
|
color = _ref$color === void 0 ? 'black' : _ref$color,
|
34
47
|
className = _ref.className,
|
35
48
|
_ref$classes = _ref.classes,
|
36
|
-
classes = _ref$classes === void 0 ? {} : _ref$classes
|
37
|
-
|
49
|
+
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
50
|
+
dataAttrs = _ref.dataAttrs;
|
51
|
+
return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
38
52
|
className: cn({
|
39
53
|
color: color
|
40
54
|
}, className)
|
41
|
-
}, items.map(function (
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
55
|
+
}), items.map(function (item, i) {
|
56
|
+
if (isJSXElement(item)) {
|
57
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
58
|
+
className: cn('item', classes.item),
|
59
|
+
key: i
|
60
|
+
}, item);
|
61
|
+
}
|
62
|
+
|
63
|
+
if (isObjectElement(item)) {
|
64
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
65
|
+
className: cn('item', classes.item),
|
66
|
+
key: item.component ? i : item.title
|
67
|
+
}, item.component || /*#__PURE__*/_react["default"].createElement(_uiCore.TextLink, {
|
68
|
+
href: item.href,
|
69
|
+
color: color,
|
70
|
+
dataAttrs: {
|
71
|
+
root: (dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link) ? (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link, i + 1)) : undefined
|
72
|
+
}
|
73
|
+
}, item.title));
|
74
|
+
}
|
75
|
+
|
76
|
+
return null;
|
52
77
|
}));
|
53
78
|
};
|
54
79
|
|
55
80
|
Breadcrumbs.propTypes = {
|
81
|
+
dataAttrs: _propTypes["default"].shape({
|
82
|
+
root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
83
|
+
link: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
84
|
+
}),
|
56
85
|
className: _propTypes["default"].string,
|
57
86
|
classes: _propTypes["default"].shape({
|
58
87
|
item: _propTypes["default"].string
|
59
88
|
}),
|
60
|
-
items: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
61
|
-
title: _propTypes["default"].string
|
62
|
-
href: _propTypes["default"].string
|
63
|
-
|
89
|
+
items: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].element.isRequired), _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
90
|
+
title: _propTypes["default"].string,
|
91
|
+
href: _propTypes["default"].string,
|
92
|
+
|
93
|
+
/* @deprecated */
|
94
|
+
component: _propTypes["default"].element
|
95
|
+
}).isRequired)]).isRequired,
|
64
96
|
color: _propTypes["default"].oneOf(Object.values(TextColor))
|
65
97
|
};
|
66
98
|
var _default = Breadcrumbs;
|
@@ -19,6 +19,7 @@ export interface IButtonBannerProps {
|
|
19
19
|
/** Дополнительные data атрибуты к внутренним элементам */
|
20
20
|
dataAttrs?: {
|
21
21
|
root?: Record<string, string>;
|
22
|
+
button?: Record<string, string>;
|
22
23
|
};
|
23
24
|
/** Дополнительный css класс для корневого элемента */
|
24
25
|
className?: string;
|
@@ -71,6 +71,9 @@ var ButtonBanner = function ButtonBanner(_ref) {
|
|
71
71
|
onButtonClick = _ref.onButtonClick;
|
72
72
|
|
73
73
|
var buttonElem = /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
|
74
|
+
dataAttrs: {
|
75
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button
|
76
|
+
},
|
74
77
|
className: cn('button', [classes.button]),
|
75
78
|
href: buttonUrl,
|
76
79
|
target: buttonTarget,
|
@@ -111,7 +114,8 @@ var ButtonBanner = function ButtonBanner(_ref) {
|
|
111
114
|
|
112
115
|
ButtonBanner.propTypes = {
|
113
116
|
dataAttrs: PropTypes.shape({
|
114
|
-
root: PropTypes.objectOf(PropTypes.string.isRequired)
|
117
|
+
root: PropTypes.objectOf(PropTypes.string.isRequired),
|
118
|
+
button: PropTypes.objectOf(PropTypes.string.isRequired)
|
115
119
|
}),
|
116
120
|
className: PropTypes.string,
|
117
121
|
classes: PropTypes.shape({
|
@@ -4,6 +4,8 @@ export interface IButtonLinkBoxProps {
|
|
4
4
|
/** Дополнительные data атрибуты к внутренним элементам */
|
5
5
|
dataAttrs?: {
|
6
6
|
root?: Record<string, string>;
|
7
|
+
link?: Record<string, string>;
|
8
|
+
button?: Record<string, string>;
|
7
9
|
};
|
8
10
|
/** Дополнительный класс корневого элемента */
|
9
11
|
className?: string;
|
@@ -54,6 +54,9 @@ var ButtonLinkBox = function ButtonLinkBox(_ref) {
|
|
54
54
|
}), buttonTitle && /*#__PURE__*/_react["default"].createElement("div", {
|
55
55
|
className: cn('row')
|
56
56
|
}, /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
|
57
|
+
dataAttrs: {
|
58
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button
|
59
|
+
},
|
57
60
|
className: classes.button,
|
58
61
|
href: buttonUrl,
|
59
62
|
theme: buttonColor,
|
@@ -63,6 +66,9 @@ var ButtonLinkBox = function ButtonLinkBox(_ref) {
|
|
63
66
|
}, buttonTitle)), linkTitle && /*#__PURE__*/_react["default"].createElement("div", {
|
64
67
|
className: cn('row')
|
65
68
|
}, /*#__PURE__*/_react["default"].createElement(_uiCore.TextLink, {
|
69
|
+
dataAttrs: {
|
70
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link
|
71
|
+
},
|
66
72
|
className: classes.link,
|
67
73
|
href: linkUrl,
|
68
74
|
download: linkDownload,
|
@@ -74,7 +80,9 @@ var ButtonLinkBox = function ButtonLinkBox(_ref) {
|
|
74
80
|
|
75
81
|
ButtonLinkBox.propTypes = {
|
76
82
|
dataAttrs: PropTypes.shape({
|
77
|
-
root: PropTypes.objectOf(PropTypes.string.isRequired)
|
83
|
+
root: PropTypes.objectOf(PropTypes.string.isRequired),
|
84
|
+
link: PropTypes.objectOf(PropTypes.string.isRequired),
|
85
|
+
button: PropTypes.objectOf(PropTypes.string.isRequired)
|
78
86
|
}),
|
79
87
|
className: PropTypes.string,
|
80
88
|
classes: PropTypes.shape({
|
@@ -23,9 +23,11 @@ export declare const ObjectFit: {
|
|
23
23
|
};
|
24
24
|
declare type ObjectFitType = typeof ObjectFit[keyof typeof ObjectFit];
|
25
25
|
export interface ICard {
|
26
|
-
/**
|
26
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
27
27
|
dataAttrs?: {
|
28
|
-
|
28
|
+
root?: Record<string, string>;
|
29
|
+
link?: Record<string, string>;
|
30
|
+
button?: Record<string, string>;
|
29
31
|
};
|
30
32
|
/** Дополнительный класс корневого элемента */
|
31
33
|
className?: string;
|
@@ -103,12 +103,15 @@ var Card = function Card(_ref) {
|
|
103
103
|
}
|
104
104
|
|
105
105
|
return /*#__PURE__*/_react["default"].createElement(_uiCore.TextLink, {
|
106
|
-
className: cn('link', [classes.link]),
|
107
106
|
href: linkHref,
|
107
|
+
download: download,
|
108
108
|
target: linkTarget,
|
109
|
-
|
109
|
+
dataAttrs: {
|
110
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link
|
111
|
+
},
|
112
|
+
className: cn('link', [classes.link])
|
110
113
|
}, linkTitle);
|
111
|
-
}, [link, isCardLink, classes]);
|
114
|
+
}, [link, isCardLink, classes, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link]);
|
112
115
|
|
113
116
|
var renderBtn = _react["default"].useCallback(function () {
|
114
117
|
if (!button || isCardLink) {
|
@@ -120,12 +123,15 @@ var Card = function Card(_ref) {
|
|
120
123
|
btnTarget = button.target,
|
121
124
|
buttonDownload = button.download;
|
122
125
|
return /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
|
126
|
+
dataAttrs: {
|
127
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button
|
128
|
+
},
|
123
129
|
className: cn('button', [classes.button]),
|
124
130
|
href: btnHref,
|
125
131
|
target: btnTarget,
|
126
132
|
download: buttonDownload
|
127
133
|
}, btnTitle);
|
128
|
-
}, [button, isCardLink, classes]);
|
134
|
+
}, [button, isCardLink, classes, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button]);
|
129
135
|
|
130
136
|
var renderBtnsWrapper = _react["default"].useCallback(function () {
|
131
137
|
var btnElem = renderBtn();
|
@@ -142,7 +148,7 @@ var Card = function Card(_ref) {
|
|
142
148
|
}, btnElem, linkElem);
|
143
149
|
}, [renderBtn, renderLink, isAlignAvailable, isLeftHAlign]);
|
144
150
|
|
145
|
-
return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs), {
|
151
|
+
return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
146
152
|
className: cn('', {
|
147
153
|
href: !!href,
|
148
154
|
'full-height': isFullHeight,
|
@@ -162,7 +168,11 @@ var Card = function Card(_ref) {
|
|
162
168
|
};
|
163
169
|
|
164
170
|
Card.propTypes = {
|
165
|
-
dataAttrs: _propTypes["default"].
|
171
|
+
dataAttrs: _propTypes["default"].shape({
|
172
|
+
root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
173
|
+
link: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
174
|
+
button: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
175
|
+
}),
|
166
176
|
className: _propTypes["default"].string,
|
167
177
|
classes: _propTypes["default"].shape({
|
168
178
|
root: _propTypes["default"].string,
|
@@ -1,6 +1,11 @@
|
|
1
1
|
import * as React from 'react';
|
2
2
|
import './DownloadLink.less';
|
3
3
|
export interface IDownloadLink {
|
4
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
5
|
+
dataAttrs?: {
|
6
|
+
root?: Record<string, string>;
|
7
|
+
link?: Record<string, string>;
|
8
|
+
};
|
4
9
|
/** Ссылка на корневой элемент */
|
5
10
|
rootRef?: React.Ref<HTMLDivElement>;
|
6
11
|
/** Адресы ссылки */
|
@@ -46,25 +46,33 @@ var DownloadLink = function DownloadLink(_ref) {
|
|
46
46
|
className = _ref.className,
|
47
47
|
_ref$classes = _ref.classes,
|
48
48
|
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
49
|
-
rootRef = _ref.rootRef
|
50
|
-
|
49
|
+
rootRef = _ref.rootRef,
|
50
|
+
dataAttrs = _ref.dataAttrs;
|
51
|
+
return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
51
52
|
className: cn([className, classes.root]),
|
52
53
|
ref: rootRef
|
53
|
-
}, /*#__PURE__*/React.createElement("div", {
|
54
|
+
}), /*#__PURE__*/React.createElement("div", {
|
54
55
|
className: cn('icon')
|
55
56
|
}, /*#__PURE__*/React.createElement(DownloadIcon, {
|
56
57
|
className: cn('icon-svg')
|
57
58
|
})), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_uiCore.TextLink, {
|
58
|
-
|
59
|
+
download: true,
|
59
60
|
href: href,
|
60
61
|
onClick: onClick,
|
61
|
-
|
62
|
+
dataAttrs: {
|
63
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link
|
64
|
+
},
|
65
|
+
className: cn('link', [classes.link])
|
62
66
|
}, text), /*#__PURE__*/React.createElement("p", {
|
63
67
|
className: cn('info')
|
64
68
|
}, "".concat(extension).concat(extension && fileSize ? ',' : '', " ").concat(fileSize))));
|
65
69
|
};
|
66
70
|
|
67
71
|
DownloadLink.propTypes = {
|
72
|
+
dataAttrs: PropTypes.shape({
|
73
|
+
root: PropTypes.objectOf(PropTypes.string.isRequired),
|
74
|
+
link: PropTypes.objectOf(PropTypes.string.isRequired)
|
75
|
+
}),
|
68
76
|
rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
|
69
77
|
current: PropTypes.elementType
|
70
78
|
}), PropTypes.any])]),
|
@@ -22,6 +22,13 @@ export declare type InstructionItemType = {
|
|
22
22
|
isVideo: boolean;
|
23
23
|
};
|
24
24
|
export interface IInstructionsProps {
|
25
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
26
|
+
dataAttrs?: {
|
27
|
+
root?: Record<string, string>;
|
28
|
+
item?: Record<string, string>;
|
29
|
+
image?: Record<string, string>;
|
30
|
+
mobileItemText?: Record<string, string>;
|
31
|
+
};
|
25
32
|
/** Ссылка на корневой элемент */
|
26
33
|
rootRef?: Ref<HTMLDivElement>;
|
27
34
|
/** Дополнительные классы для внутренних элементов */
|
@@ -7,6 +7,8 @@ exports["default"] = exports.pictureMaskTypes = exports.pictureAlignTypes = void
|
|
7
7
|
|
8
8
|
require("core-js/modules/es.array.map");
|
9
9
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
11
|
+
|
10
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
11
13
|
|
12
14
|
var _react = _interopRequireDefault(require("react"));
|
@@ -45,7 +47,8 @@ var cn = (0, _uiHelpers.cnCreate)('mfui-instructions');
|
|
45
47
|
var swiperSlideCn = cn('slide');
|
46
48
|
|
47
49
|
var Instructions = function Instructions(_ref) {
|
48
|
-
var
|
50
|
+
var dataAttrs = _ref.dataAttrs,
|
51
|
+
rootRef = _ref.rootRef,
|
49
52
|
_ref$classes = _ref.classes;
|
50
53
|
_ref$classes = _ref$classes === void 0 ? {} : _ref$classes;
|
51
54
|
var instructionItem = _ref$classes.instructionItem,
|
@@ -95,37 +98,38 @@ var Instructions = function Instructions(_ref) {
|
|
95
98
|
};
|
96
99
|
}, [swiperInstance]);
|
97
100
|
|
98
|
-
var renderVideo = _react["default"].useCallback(function (mediaUrl) {
|
99
|
-
return /*#__PURE__*/_react["default"].createElement("video", {
|
100
|
-
className: cn('swiper-img'),
|
101
|
-
autoPlay: true,
|
102
|
-
muted: true,
|
101
|
+
var renderVideo = _react["default"].useCallback(function (mediaUrl, index) {
|
102
|
+
return /*#__PURE__*/_react["default"].createElement("video", (0, _extends2["default"])({
|
103
103
|
loop: true,
|
104
|
-
|
105
|
-
|
104
|
+
muted: true,
|
105
|
+
autoPlay: true,
|
106
|
+
playsInline: true,
|
107
|
+
className: cn('swiper-img')
|
108
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.image, index + 1)), /*#__PURE__*/_react["default"].createElement("source", {
|
106
109
|
src: mediaUrl,
|
107
110
|
type: "video/mp4"
|
108
111
|
}));
|
109
|
-
}, []);
|
112
|
+
}, [dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.image]);
|
110
113
|
|
111
114
|
var renderSlider = _react["default"].useCallback(function () {
|
112
115
|
return /*#__PURE__*/_react["default"].createElement(_react2.Swiper, {
|
113
116
|
className: cn('swiper'),
|
114
117
|
onSwiper: getSwiperInstance,
|
115
118
|
noSwipingClass: swiperSlideCn
|
116
|
-
}, instructionItems.map(function (_ref2,
|
119
|
+
}, instructionItems.map(function (_ref2, i) {
|
117
120
|
var mediaUrl = _ref2.mediaUrl,
|
118
121
|
isVideo = _ref2.isVideo;
|
119
122
|
return /*#__PURE__*/_react["default"].createElement(_react2.SwiperSlide, {
|
120
123
|
className: swiperSlideCn,
|
121
|
-
key:
|
122
|
-
}, isVideo ? renderVideo(mediaUrl) : /*#__PURE__*/_react["default"].createElement("img", {
|
123
|
-
|
124
|
-
src: mediaUrl
|
125
|
-
|
126
|
-
|
124
|
+
key: i + mediaUrl
|
125
|
+
}, isVideo ? renderVideo(mediaUrl, i) : /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({
|
126
|
+
alt: "",
|
127
|
+
src: mediaUrl
|
128
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.image, i + 1), {
|
129
|
+
className: cn('swiper-img', [instructionItemImg])
|
130
|
+
})));
|
127
131
|
}));
|
128
|
-
}, [getSwiperInstance, instructionItemImg, instructionItems, renderVideo]);
|
132
|
+
}, [getSwiperInstance, instructionItemImg, instructionItems, renderVideo, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.image]);
|
129
133
|
|
130
134
|
var renderTitle = _react["default"].useCallback(function (resolution) {
|
131
135
|
return /*#__PURE__*/_react["default"].createElement(_uiCore.Header, {
|
@@ -161,28 +165,28 @@ var Instructions = function Instructions(_ref) {
|
|
161
165
|
'text-after': !!text,
|
162
166
|
desktop: true
|
163
167
|
})
|
164
|
-
}, instructionItems.map(function (_ref3,
|
168
|
+
}, instructionItems.map(function (_ref3, i) {
|
165
169
|
var itemTitle = _ref3.title;
|
166
170
|
return (
|
167
171
|
/*#__PURE__*/
|
168
172
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
|
169
|
-
_react["default"].createElement("li", {
|
173
|
+
_react["default"].createElement("li", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, i + 1), {
|
170
174
|
className: cn('articles-item', {
|
171
|
-
active: slideIndex ===
|
172
|
-
}, [getActiveCustomClass(
|
173
|
-
"data-index":
|
174
|
-
onClick: handleArticleClick(
|
175
|
-
key:
|
176
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
175
|
+
active: slideIndex === i
|
176
|
+
}, [getActiveCustomClass(i, slideIndex), instructionItem, desktopInstructionItem]),
|
177
|
+
"data-index": i,
|
178
|
+
onClick: handleArticleClick(i),
|
179
|
+
key: i
|
180
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
177
181
|
className: cn('articles-item-dot')
|
178
182
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
179
183
|
className: cn('articles-item-dot-number')
|
180
|
-
},
|
184
|
+
}, i + 1)), /*#__PURE__*/_react["default"].createElement("div", {
|
181
185
|
className: cn('articles-item-title', [desktopItemTitle])
|
182
186
|
}, itemTitle))
|
183
187
|
);
|
184
188
|
}));
|
185
|
-
}, [desktopInstructionItem, desktopItemTitle, getActiveCustomClass, handleArticleClick, instructionItem, instructionItems, slideIndex, text]);
|
189
|
+
}, [desktopInstructionItem, desktopItemTitle, getActiveCustomClass, handleArticleClick, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, instructionItem, instructionItems, slideIndex, text]);
|
186
190
|
|
187
191
|
var renderMobileArticles = _react["default"].useCallback(function () {
|
188
192
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
@@ -191,36 +195,37 @@ var Instructions = function Instructions(_ref) {
|
|
191
195
|
})
|
192
196
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
193
197
|
className: cn('articles-title-block')
|
194
|
-
}, instructionItems.map(function (_ref4,
|
198
|
+
}, instructionItems.map(function (_ref4, i) {
|
195
199
|
var itemTitle = _ref4.title;
|
196
|
-
return slideIndex ===
|
197
|
-
|
198
|
-
"data-index":
|
199
|
-
|
200
|
-
|
200
|
+
return slideIndex === i && /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
|
201
|
+
key: i,
|
202
|
+
"data-index": i
|
203
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.mobileItemText, i + 1), {
|
204
|
+
className: cn('articles-title', [mobileItemTitle])
|
205
|
+
}), itemTitle);
|
201
206
|
})), /*#__PURE__*/_react["default"].createElement("ul", {
|
202
207
|
className: cn('articles-dots', {
|
203
208
|
'text-after': !!text
|
204
209
|
})
|
205
|
-
}, instructionItems.map(function (_item,
|
206
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
207
|
-
key:
|
210
|
+
}, instructionItems.map(function (_item, i) {
|
211
|
+
return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, i + 1), {
|
212
|
+
key: i,
|
208
213
|
className: cn('articles-dot', {
|
209
|
-
active: slideIndex ===
|
210
|
-
}, [getActiveCustomClass(
|
211
|
-
onClick: handleArticleClick(
|
212
|
-
}, /*#__PURE__*/_react["default"].createElement("span", {
|
214
|
+
active: slideIndex === i
|
215
|
+
}, [getActiveCustomClass(i, slideIndex), instructionItem, mobileInstructionItem]),
|
216
|
+
onClick: handleArticleClick(i)
|
217
|
+
}), /*#__PURE__*/_react["default"].createElement("span", {
|
213
218
|
className: cn('articles-dot-number')
|
214
|
-
},
|
219
|
+
}, i + 1));
|
215
220
|
})));
|
216
|
-
}, [getActiveCustomClass, handleArticleClick, instructionItem, instructionItems, mobileInstructionItem, mobileItemTitle, slideIndex, text]);
|
221
|
+
}, [dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.mobileItemText, getActiveCustomClass, handleArticleClick, instructionItem, instructionItems, mobileInstructionItem, mobileItemTitle, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, slideIndex, text]);
|
217
222
|
|
218
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
223
|
+
return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
219
224
|
className: cn({
|
220
225
|
mask: pictureMask
|
221
226
|
}),
|
222
227
|
ref: rootRef
|
223
|
-
}, /*#__PURE__*/_react["default"].createElement(_uiCore.Grid, {
|
228
|
+
}), /*#__PURE__*/_react["default"].createElement(_uiCore.Grid, {
|
224
229
|
hAlign: "center"
|
225
230
|
}, /*#__PURE__*/_react["default"].createElement(_uiCore.GridColumn, {
|
226
231
|
all: "12"
|
@@ -238,6 +243,12 @@ var Instructions = function Instructions(_ref) {
|
|
238
243
|
};
|
239
244
|
|
240
245
|
Instructions.propTypes = {
|
246
|
+
dataAttrs: _propTypes["default"].shape({
|
247
|
+
root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
248
|
+
item: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
249
|
+
image: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
250
|
+
mobileItemText: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
251
|
+
}),
|
241
252
|
rootRef: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].oneOfType([_propTypes["default"].shape({
|
242
253
|
current: _propTypes["default"].elementType
|
243
254
|
}), _propTypes["default"].any])]),
|
@@ -2,6 +2,12 @@ import * as React from 'react';
|
|
2
2
|
import './PageTitle.less';
|
3
3
|
import { Props as BreadcrumbsType } from '../Breadcrumbs/Breadcrumbs';
|
4
4
|
declare type Props = {
|
5
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
6
|
+
dataAttrs?: {
|
7
|
+
root?: Record<string, string>;
|
8
|
+
breadcrumbs?: Record<string, string>;
|
9
|
+
breadcrumbsLink?: Record<string, string>;
|
10
|
+
};
|
5
11
|
/** Текст заголовка */
|
6
12
|
title: string | React.ReactNode | React.ReactNode[];
|
7
13
|
/** Хлебные крошки */
|
@@ -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
|
var React = _interopRequireWildcard(require("react"));
|
11
13
|
|
12
14
|
var _uiCore = require("@megafon/ui-core");
|
@@ -17,16 +19,17 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
19
|
|
18
20
|
var _Breadcrumbs = _interopRequireDefault(require("../Breadcrumbs/Breadcrumbs"));
|
19
21
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
21
|
-
|
22
22
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
23
23
|
|
24
24
|
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; }
|
25
25
|
|
26
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
27
|
+
|
26
28
|
var cn = (0, _uiHelpers.cnCreate)('mfui-page-title');
|
27
29
|
|
28
30
|
var PageTitle = function PageTitle(_ref) {
|
29
|
-
var
|
31
|
+
var dataAttrs = _ref.dataAttrs,
|
32
|
+
title = _ref.title,
|
30
33
|
breadcrumbs = _ref.breadcrumbs,
|
31
34
|
badge = _ref.badge,
|
32
35
|
_ref$isFullWidth = _ref.isFullWidth,
|
@@ -56,16 +59,25 @@ var PageTitle = function PageTitle(_ref) {
|
|
56
59
|
mobile: "12"
|
57
60
|
}, renderPageTitle()));
|
58
61
|
}, [renderPageTitle]);
|
59
|
-
return /*#__PURE__*/React.createElement("div", {
|
62
|
+
return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
60
63
|
className: cn([className]),
|
61
64
|
ref: rootRef
|
62
|
-
}, (breadcrumbs === null || breadcrumbs === void 0 ? void 0 : breadcrumbs.length) && /*#__PURE__*/React.createElement(_Breadcrumbs["default"], {
|
65
|
+
}), (breadcrumbs === null || breadcrumbs === void 0 ? void 0 : breadcrumbs.length) && /*#__PURE__*/React.createElement(_Breadcrumbs["default"], {
|
63
66
|
items: breadcrumbs,
|
67
|
+
dataAttrs: {
|
68
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.breadcrumbs,
|
69
|
+
link: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.breadcrumbsLink
|
70
|
+
},
|
64
71
|
className: cn('breadcrumbs', [classes.breadcrumbs])
|
65
72
|
}), isFullWidth ? renderPageTitle() : renderPageTitleWithGrid());
|
66
73
|
};
|
67
74
|
|
68
75
|
PageTitle.propTypes = {
|
76
|
+
dataAttrs: _propTypes["default"].shape({
|
77
|
+
root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
78
|
+
breadcrumbs: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
79
|
+
breadcrumbsLink: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
80
|
+
}),
|
69
81
|
title: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node, _propTypes["default"].arrayOf(_propTypes["default"].node)]).isRequired,
|
70
82
|
breadcrumbs: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
71
83
|
title: _propTypes["default"].string.isRequired,
|
@@ -6,6 +6,11 @@ export declare type ItemType = {
|
|
6
6
|
alt: string;
|
7
7
|
};
|
8
8
|
export interface IPartnersProps {
|
9
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
10
|
+
dataAttrs?: {
|
11
|
+
root?: Record<string, string>;
|
12
|
+
item?: Record<string, string>;
|
13
|
+
};
|
9
14
|
/** Ссылка на корневой элемент */
|
10
15
|
rootRef?: React.Ref<HTMLDivElement>;
|
11
16
|
/** Дополнительные классы для корневого и внутренних элементов */
|
@@ -13,10 +18,6 @@ export interface IPartnersProps {
|
|
13
18
|
root?: string;
|
14
19
|
itemClass?: string;
|
15
20
|
};
|
16
|
-
/** Дата атрибуты для корневого элемента */
|
17
|
-
dataAttrs?: {
|
18
|
-
[key: string]: string;
|
19
|
-
};
|
20
21
|
/** Дополнительный класс корневого элемента */
|
21
22
|
className?: string;
|
22
23
|
/** Список логотипов */
|