@megafon/ui-shared 3.0.0-beta.9 → 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 +48 -67
- package/README.md +2 -2
- 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/Container/Container.css +163 -0
- 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.css +21 -22
- package/dist/es/components/StoreBanner/StoreBanner.d.ts +4 -0
- package/dist/es/components/StoreBanner/StoreBanner.js +19 -4
- package/dist/es/components/StoreBanner/doc/img/qr-code.png +0 -0
- 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/TextBox/TextBox.css +9 -0
- package/dist/es/components/TextWithIcon/TextWithIcon.css +15 -0
- package/dist/es/components/TextWithIcon/TextWithIcon.d.ts +19 -0
- package/dist/es/components/TextWithIcon/TextWithIcon.js +40 -0
- package/dist/es/components/TextWithIcon/TextWithIconItem.css +49 -0
- package/dist/es/components/TextWithIcon/TextWithIconItem.d.ts +18 -0
- package/dist/es/components/TextWithIcon/TextWithIconItem.js +35 -0
- 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 +4 -3
- package/dist/es/components/VideoBlock/VideoBlock.js +12 -6
- package/dist/es/index.d.ts +2 -0
- package/dist/es/index.js +2 -0
- 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/Container/Container.css +163 -0
- 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.css +21 -22
- package/dist/lib/components/StoreBanner/StoreBanner.d.ts +4 -0
- package/dist/lib/components/StoreBanner/StoreBanner.js +19 -4
- package/dist/lib/components/StoreBanner/doc/img/qr-code.png +0 -0
- 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/TextBox/TextBox.css +9 -0
- package/dist/lib/components/TextWithIcon/TextWithIcon.css +15 -0
- package/dist/lib/components/TextWithIcon/TextWithIcon.d.ts +19 -0
- package/dist/lib/components/TextWithIcon/TextWithIcon.js +60 -0
- package/dist/lib/components/TextWithIcon/TextWithIconItem.css +49 -0
- package/dist/lib/components/TextWithIcon/TextWithIconItem.d.ts +18 -0
- package/dist/lib/components/TextWithIcon/TextWithIconItem.js +54 -0
- 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 +4 -3
- package/dist/lib/components/VideoBlock/VideoBlock.js +12 -6
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.js +16 -0
- package/package.json +5 -5
@@ -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
|
/** Список логотипов */
|
@@ -57,6 +57,8 @@ var Partners = function Partners(_ref) {
|
|
57
57
|
onNextClick = _ref.onNextClick,
|
58
58
|
onPrevClick = _ref.onPrevClick;
|
59
59
|
var renderItem = React.useCallback(function (item) {
|
60
|
+
var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
61
|
+
|
60
62
|
if (!item) {
|
61
63
|
return null;
|
62
64
|
}
|
@@ -65,10 +67,13 @@ var Partners = function Partners(_ref) {
|
|
65
67
|
href = item.href,
|
66
68
|
alt = item.alt;
|
67
69
|
return /*#__PURE__*/React.createElement(_uiCore.Tile, {
|
68
|
-
className: cn('tile'),
|
69
70
|
href: href,
|
70
71
|
shadowLevel: "low",
|
71
|
-
isInteractive: !!href
|
72
|
+
isInteractive: !!href,
|
73
|
+
className: cn('tile'),
|
74
|
+
dataAttrs: {
|
75
|
+
root: (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, index + 1))
|
76
|
+
}
|
72
77
|
}, /*#__PURE__*/React.createElement("div", {
|
73
78
|
className: cn('tile-inner', [itemClass])
|
74
79
|
}, /*#__PURE__*/React.createElement("div", {
|
@@ -78,7 +83,7 @@ var Partners = function Partners(_ref) {
|
|
78
83
|
alt: alt,
|
79
84
|
className: cn('tile-img')
|
80
85
|
}))));
|
81
|
-
}, [itemClass]);
|
86
|
+
}, [itemClass, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item]);
|
82
87
|
var renderGrid = React.useCallback(function () {
|
83
88
|
return /*#__PURE__*/React.createElement(_uiCore.Grid, {
|
84
89
|
guttersLeft: "medium",
|
@@ -88,7 +93,7 @@ var Partners = function Partners(_ref) {
|
|
88
93
|
key: i + item.src,
|
89
94
|
all: "3",
|
90
95
|
mobile: "6"
|
91
|
-
}, renderItem(item));
|
96
|
+
}, renderItem(item, i));
|
92
97
|
}));
|
93
98
|
}, [items, renderItem]);
|
94
99
|
var renderCarousel = React.useCallback(function () {
|
@@ -104,13 +109,13 @@ var Partners = function Partners(_ref) {
|
|
104
109
|
return /*#__PURE__*/React.createElement("div", {
|
105
110
|
key: i + item.src,
|
106
111
|
className: cn('slide')
|
107
|
-
}, renderItem(item), renderItem(bottomRow[i]));
|
112
|
+
}, renderItem(item, i), renderItem(bottomRow[i], i));
|
108
113
|
}));
|
109
114
|
}, [items, onChange, onNextClick, onPrevClick, renderItem]);
|
110
115
|
return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
|
111
116
|
ref: rootRef,
|
112
117
|
className: cn([root, className])
|
113
|
-
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs)), items.length > MAX_GRID_ITEMS_LENGTH ? renderCarousel() : renderGrid());
|
118
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), items.length > MAX_GRID_ITEMS_LENGTH ? renderCarousel() : renderGrid());
|
114
119
|
};
|
115
120
|
|
116
121
|
Partners.propTypes = {
|
@@ -121,7 +126,10 @@ Partners.propTypes = {
|
|
121
126
|
root: PropTypes.string,
|
122
127
|
itemClass: PropTypes.string
|
123
128
|
}),
|
124
|
-
dataAttrs: PropTypes.
|
129
|
+
dataAttrs: PropTypes.shape({
|
130
|
+
root: PropTypes.objectOf(PropTypes.string.isRequired),
|
131
|
+
item: PropTypes.objectOf(PropTypes.string.isRequired)
|
132
|
+
}),
|
125
133
|
className: PropTypes.string,
|
126
134
|
items: PropTypes.arrayOf(PropTypes.shape({
|
127
135
|
href: PropTypes.string,
|
@@ -18,9 +18,10 @@ export interface IProperty {
|
|
18
18
|
icon?: React.ReactNode;
|
19
19
|
/** Растягивание компонента на всю доступную ширину */
|
20
20
|
fullWidth?: boolean;
|
21
|
-
/**
|
21
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
22
22
|
dataAttrs?: {
|
23
|
-
|
23
|
+
root?: Record<string, string>;
|
24
|
+
moreLink?: Record<string, string>;
|
24
25
|
};
|
25
26
|
/** Дополнительные классы для внутренних элементов */
|
26
27
|
classes?: {
|
@@ -66,13 +66,16 @@ var Property = function Property(_ref) {
|
|
66
66
|
}, /*#__PURE__*/_react["default"].createElement(_PropertyDescription["default"], {
|
67
67
|
value: value,
|
68
68
|
isCollapsible: isCollapsible,
|
69
|
+
dataAttrs: {
|
70
|
+
moreLink: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.moreLink
|
71
|
+
},
|
69
72
|
classes: {
|
70
73
|
open: classes.openedDescription,
|
71
74
|
toggle: classes.toggleDescription
|
72
75
|
}
|
73
76
|
}));
|
74
77
|
});
|
75
|
-
}, [classes.openedDescription, classes.toggleDescription]);
|
78
|
+
}, [classes.openedDescription, classes.toggleDescription, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.moreLink]);
|
76
79
|
|
77
80
|
var getColumnConfig = _react["default"].useCallback(function () {
|
78
81
|
return fullWidth ? {
|
@@ -90,7 +93,7 @@ var Property = function Property(_ref) {
|
|
90
93
|
'border-bottom': borderBottom
|
91
94
|
}, [className]),
|
92
95
|
ref: rootRef
|
93
|
-
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs)), /*#__PURE__*/_react["default"].createElement(_uiCore.Grid, null, /*#__PURE__*/_react["default"].createElement(_uiCore.GridColumn, getColumnConfig(), /*#__PURE__*/_react["default"].createElement("div", {
|
96
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/_react["default"].createElement(_uiCore.Grid, null, /*#__PURE__*/_react["default"].createElement(_uiCore.GridColumn, getColumnConfig(), /*#__PURE__*/_react["default"].createElement("div", {
|
94
97
|
className: cn('wrapper')
|
95
98
|
}, badge && /*#__PURE__*/_react["default"].createElement("div", {
|
96
99
|
className: cn('badge-wrapper')
|
@@ -141,7 +144,10 @@ Property.propTypes = {
|
|
141
144
|
mergedValue: _propTypes["default"].string,
|
142
145
|
icon: _propTypes["default"].node,
|
143
146
|
fullWidth: _propTypes["default"].bool,
|
144
|
-
dataAttrs: _propTypes["default"].
|
147
|
+
dataAttrs: _propTypes["default"].shape({
|
148
|
+
root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
149
|
+
moreLink: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
150
|
+
}),
|
145
151
|
classes: _propTypes["default"].shape({
|
146
152
|
title: _propTypes["default"].string,
|
147
153
|
openedDescription: _propTypes["default"].string,
|
@@ -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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
11
13
|
|
12
14
|
var React = _interopRequireWildcard(require("react"));
|
@@ -33,7 +35,8 @@ var PropertyDescription = function PropertyDescription(_ref) {
|
|
33
35
|
_ref$isCollapsible = _ref.isCollapsible,
|
34
36
|
isCollapsible = _ref$isCollapsible === void 0 ? false : _ref$isCollapsible,
|
35
37
|
_ref$classes = _ref.classes,
|
36
|
-
classes = _ref$classes === void 0 ? {} : _ref$classes
|
38
|
+
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
39
|
+
dataAttrs = _ref.dataAttrs;
|
37
40
|
|
38
41
|
var _React$useState = React.useState(false),
|
39
42
|
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
@@ -47,10 +50,11 @@ var PropertyDescription = function PropertyDescription(_ref) {
|
|
47
50
|
if (isCollapsible) {
|
48
51
|
return /*#__PURE__*/React.createElement("div", {
|
49
52
|
className: cn([isOpened ? classes.open : undefined])
|
50
|
-
}, /*#__PURE__*/React.createElement("span", {
|
51
|
-
className: cn('collapse', classes.toggle),
|
53
|
+
}, /*#__PURE__*/React.createElement("span", (0, _extends2["default"])({
|
52
54
|
onClick: handleClickDesc
|
53
|
-
},
|
55
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.moreLink), {
|
56
|
+
className: cn('collapse', classes.toggle)
|
57
|
+
}), isOpened ? 'Скрыть' : 'Подробнее'), /*#__PURE__*/React.createElement(_uiCore.Collapse, {
|
54
58
|
className: cn('content'),
|
55
59
|
classNameContainer: cn('content-inner'),
|
56
60
|
isOpened: isOpened
|
@@ -68,6 +72,9 @@ PropertyDescription.propTypes = {
|
|
68
72
|
classes: _propTypes["default"].shape({
|
69
73
|
open: _propTypes["default"].string,
|
70
74
|
toggle: _propTypes["default"].string
|
75
|
+
}),
|
76
|
+
dataAttrs: _propTypes["default"].shape({
|
77
|
+
moreLink: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
71
78
|
})
|
72
79
|
};
|
73
80
|
var _default = PropertyDescription;
|
@@ -159,7 +159,16 @@ h5 {
|
|
159
159
|
display: flex;
|
160
160
|
}
|
161
161
|
.mfui-store-banner__qr-code {
|
162
|
+
-ms-flex-item-align: center;
|
163
|
+
align-self: center;
|
164
|
+
-webkit-box-sizing: border-box;
|
165
|
+
box-sizing: border-box;
|
166
|
+
width: 90px;
|
167
|
+
height: 90px;
|
162
168
|
margin-right: 16px;
|
169
|
+
border: 1px solid var(--spbSky1);
|
170
|
+
border-radius: 8px;
|
171
|
+
background-color: var(--base);
|
163
172
|
}
|
164
173
|
@media screen and (max-width: 767px) {
|
165
174
|
.mfui-store-banner__qr-code {
|
@@ -180,6 +189,9 @@ h5 {
|
|
180
189
|
.mfui-store-banner__store-link {
|
181
190
|
width: 136px;
|
182
191
|
height: 40px;
|
192
|
+
margin-right: 8px;
|
193
|
+
margin-bottom: 10px;
|
194
|
+
margin-left: 8px;
|
183
195
|
}
|
184
196
|
@media screen and (max-width: 767px) {
|
185
197
|
.mfui-store-banner__store-link {
|
@@ -187,9 +199,8 @@ h5 {
|
|
187
199
|
height: 35px;
|
188
200
|
}
|
189
201
|
}
|
190
|
-
.mfui-store-banner__store-link:
|
191
|
-
margin-
|
192
|
-
margin-bottom: 10px;
|
202
|
+
.mfui-store-banner__store-link:last-child {
|
203
|
+
margin-bottom: 0;
|
193
204
|
}
|
194
205
|
.mfui-store-banner__stores {
|
195
206
|
display: -webkit-box;
|
@@ -208,6 +219,11 @@ h5 {
|
|
208
219
|
justify-content: center;
|
209
220
|
}
|
210
221
|
}
|
222
|
+
@media screen and (min-width: 768px) {
|
223
|
+
.mfui-store-banner__stores {
|
224
|
+
margin-left: -8px;
|
225
|
+
}
|
226
|
+
}
|
211
227
|
.mfui-store-banner__text {
|
212
228
|
margin-bottom: 32px;
|
213
229
|
}
|
@@ -229,16 +245,10 @@ h5 {
|
|
229
245
|
-o-object-fit: contain;
|
230
246
|
object-fit: contain;
|
231
247
|
}
|
232
|
-
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
233
|
-
.mfui-store-banner__links_three .mfui-store-banner__qr-code {
|
234
|
-
width: 120px;
|
235
|
-
height: 120px;
|
236
|
-
}
|
237
|
-
}
|
238
248
|
@media screen and (min-width: 1280px) {
|
239
249
|
.mfui-store-banner__links_three .mfui-store-banner__qr-code {
|
240
|
-
max-width:
|
241
|
-
max-height:
|
250
|
+
max-width: 90px;
|
251
|
+
max-height: 90px;
|
242
252
|
}
|
243
253
|
}
|
244
254
|
.mfui-store-banner__links_three .mfui-store-banner__qr-code + .mfui-store-banner__stores {
|
@@ -260,12 +270,6 @@ h5 {
|
|
260
270
|
margin: 0 auto;
|
261
271
|
}
|
262
272
|
}
|
263
|
-
.mfui-store-banner__links_three .mfui-store-banner__qr-code + .mfui-store-banner__stores .mfui-store-banner__store-link {
|
264
|
-
margin-right: 16px;
|
265
|
-
}
|
266
|
-
.mfui-store-banner__links_three .mfui-store-banner__qr-code + .mfui-store-banner__stores .mfui-store-banner__store-link:not(:first-child) {
|
267
|
-
margin-right: 0;
|
268
|
-
}
|
269
273
|
.mfui-store-banner__links_three .mfui-store-banner__store-link {
|
270
274
|
width: 136px;
|
271
275
|
height: 40px;
|
@@ -284,8 +288,3 @@ h5 {
|
|
284
288
|
margin-bottom: 16px;
|
285
289
|
}
|
286
290
|
}
|
287
|
-
@media screen and (max-width: 1023px) {
|
288
|
-
.mfui-store-banner__links_three .mfui-store-banner__store-link:not(:first-child) {
|
289
|
-
margin-right: 0;
|
290
|
-
}
|
291
|
-
}
|
@@ -59,6 +59,10 @@ export interface IStoreBannerProps {
|
|
59
59
|
/** Дополнительные data атрибуты к внутренним элементам */
|
60
60
|
dataAttrs?: {
|
61
61
|
root?: Record<string, string>;
|
62
|
+
button?: Record<string, string>;
|
63
|
+
linkApple?: Record<string, string>;
|
64
|
+
linkGoogle?: Record<string, string>;
|
65
|
+
linkHuawei?: Record<string, string>;
|
62
66
|
};
|
63
67
|
}
|
64
68
|
declare const StoreBanner: React.FC<IStoreBannerProps>;
|
@@ -40,7 +40,6 @@ var DeviceMask = {
|
|
40
40
|
WHITE_IPHONE: 'white-iphone'
|
41
41
|
};
|
42
42
|
exports.DeviceMask = DeviceMask;
|
43
|
-
var DEFAULT_TEXT_BUTTON = 'Установите приложение';
|
44
43
|
var cn = (0, _uiHelpers.cnCreate)('mfui-store-banner');
|
45
44
|
|
46
45
|
var StoreBanner = function StoreBanner(_ref) {
|
@@ -58,11 +57,11 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
58
57
|
linkHuawei = _ref.linkHuawei,
|
59
58
|
linkButton = _ref.linkButton,
|
60
59
|
_ref$textButton = _ref.textButton,
|
61
|
-
textButton = _ref$textButton === void 0 ?
|
60
|
+
textButton = _ref$textButton === void 0 ? 'Установите приложение' : _ref$textButton,
|
62
61
|
qrCode = _ref.qrCode,
|
63
62
|
imageSrc = _ref.imageSrc,
|
64
63
|
_ref$theme = _ref.theme,
|
65
|
-
theme = _ref$theme === void 0 ?
|
64
|
+
theme = _ref$theme === void 0 ? 'default' : _ref$theme,
|
66
65
|
deviceMask = _ref.deviceMask,
|
67
66
|
rootRef = _ref.rootRef,
|
68
67
|
dataAttrs = _ref.dataAttrs,
|
@@ -104,6 +103,9 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
104
103
|
}), !linkButton && /*#__PURE__*/React.createElement("div", {
|
105
104
|
className: cn('stores')
|
106
105
|
}, linkApple && /*#__PURE__*/React.createElement(_StoreButton["default"], {
|
106
|
+
dataAttrs: {
|
107
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.linkApple
|
108
|
+
},
|
107
109
|
theme: _StoreButton.Theme.APP_STORE,
|
108
110
|
href: linkApple,
|
109
111
|
onClick: onClickApple,
|
@@ -111,6 +113,9 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
111
113
|
'app-store': true
|
112
114
|
}, appleLinkClassName)
|
113
115
|
}), linkGoogle && /*#__PURE__*/React.createElement(_StoreButton["default"], {
|
116
|
+
dataAttrs: {
|
117
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.linkGoogle
|
118
|
+
},
|
114
119
|
theme: _StoreButton.Theme.GOOGLE_PLAY,
|
115
120
|
href: linkGoogle,
|
116
121
|
className: cn('store-link', {
|
@@ -118,6 +123,9 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
118
123
|
}, googleLinkClassName),
|
119
124
|
onClick: onClickGoogle
|
120
125
|
}), linkHuawei && /*#__PURE__*/React.createElement(_StoreButton["default"], {
|
126
|
+
dataAttrs: {
|
127
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.linkHuawei
|
128
|
+
},
|
121
129
|
theme: _StoreButton.Theme.HUAWEI_STORE,
|
122
130
|
href: linkHuawei,
|
123
131
|
className: cn('store-link', {
|
@@ -125,6 +133,9 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
125
133
|
}, huaweiLinkClassName),
|
126
134
|
onClick: onClickHuawei
|
127
135
|
})), linkButton && /*#__PURE__*/React.createElement(_uiCore.Button, {
|
136
|
+
dataAttrs: {
|
137
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button
|
138
|
+
},
|
128
139
|
className: cn('button'),
|
129
140
|
href: linkButton,
|
130
141
|
theme: theme === 'green' ? 'purple' : 'green'
|
@@ -164,7 +175,11 @@ StoreBanner.propTypes = {
|
|
164
175
|
}), _propTypes["default"].any])]),
|
165
176
|
theme: _propTypes["default"].oneOf(Object.values(Theme)),
|
166
177
|
dataAttrs: _propTypes["default"].shape({
|
167
|
-
root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
178
|
+
root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
179
|
+
button: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
180
|
+
linkApple: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
181
|
+
linkGoogle: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
182
|
+
linkHuawei: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
168
183
|
})
|
169
184
|
};
|
170
185
|
var _default = StoreBanner;
|
Binary file
|
@@ -7,7 +7,7 @@ export declare enum Theme {
|
|
7
7
|
HUAWEI_STORE = "huawei-store"
|
8
8
|
}
|
9
9
|
declare type LinkPropTypes = React.ComponentProps<typeof Link>;
|
10
|
-
export declare type Props = Required<Pick<LinkPropTypes, 'href'>> & Pick<LinkPropTypes, 'onClick'> & {
|
10
|
+
export declare type Props = Required<Pick<LinkPropTypes, 'href'>> & Pick<LinkPropTypes, 'onClick' | 'dataAttrs'> & {
|
11
11
|
/** Тема кнопки */
|
12
12
|
theme: Theme;
|
13
13
|
/** Дополнительный класс */
|