@megafon/ui-shared 4.6.0 → 4.8.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 +26 -0
- package/dist/es/components/AccordionBox/AccordionBox.d.ts +2 -0
- package/dist/es/components/AccordionBox/AccordionBox.js +1 -0
- package/dist/es/components/AudioPlayer/AudioPlayer.d.ts +10 -0
- package/dist/es/components/AudioPlayer/AudioPlayer.js +116 -0
- package/dist/es/components/AudioPlayer/AudioProgress.d.ts +14 -0
- package/dist/es/components/AudioPlayer/AudioProgress.js +117 -0
- package/dist/es/components/AudioPlayer/AudioRange.d.ts +14 -0
- package/dist/es/components/AudioPlayer/AudioRange.js +31 -0
- package/dist/es/components/AudioPlayer/AudioVolume.d.ts +7 -0
- package/dist/es/components/AudioPlayer/AudioVolume.js +83 -0
- package/dist/es/components/AudioPlayer/style/AudioPlayer.css +58 -0
- package/dist/es/components/AudioPlayer/style/AudioProgress.css +35 -0
- package/dist/es/components/AudioPlayer/style/AudioRange.css +68 -0
- package/dist/es/components/AudioPlayer/style/AudioVolume.css +34 -0
- package/dist/es/components/AudioPlayer/timerFormatUtil.d.ts +2 -0
- package/dist/es/components/AudioPlayer/timerFormatUtil.js +33 -0
- package/dist/es/components/Breadcrumbs/Breadcrumbs.css +0 -6
- package/dist/es/components/Breadcrumbs/Breadcrumbs.d.ts +22 -12
- package/dist/es/components/Breadcrumbs/Breadcrumbs.js +43 -37
- package/dist/es/components/Breadcrumbs/components/BreadcrumbsItem.css +16 -0
- package/dist/es/components/Breadcrumbs/components/BreadcrumbsItem.d.ts +29 -0
- package/dist/es/components/Breadcrumbs/components/BreadcrumbsItem.js +82 -0
- package/dist/es/components/FaqWrapper/FaqWrapper.d.ts +3 -0
- package/dist/es/components/FaqWrapper/FaqWrapper.js +11 -0
- package/dist/es/components/PageTitle/PageTitle.d.ts +2 -0
- package/dist/es/components/PageTitle/PageTitle.js +4 -0
- package/dist/es/components/VideoBanner/VideoBanner.d.ts +2 -0
- package/dist/es/components/VideoBanner/VideoBanner.js +6 -2
- package/dist/es/index.d.ts +7 -0
- package/dist/es/index.js +7 -0
- package/dist/lib/components/AccordionBox/AccordionBox.d.ts +2 -0
- package/dist/lib/components/AccordionBox/AccordionBox.js +1 -0
- package/dist/lib/components/AudioPlayer/AudioPlayer.d.ts +10 -0
- package/dist/lib/components/AudioPlayer/AudioPlayer.js +133 -0
- package/dist/lib/components/AudioPlayer/AudioProgress.d.ts +14 -0
- package/dist/lib/components/AudioPlayer/AudioProgress.js +141 -0
- package/dist/lib/components/AudioPlayer/AudioRange.d.ts +14 -0
- package/dist/lib/components/AudioPlayer/AudioRange.js +42 -0
- package/dist/lib/components/AudioPlayer/AudioVolume.d.ts +7 -0
- package/dist/lib/components/AudioPlayer/AudioVolume.js +99 -0
- package/dist/lib/components/AudioPlayer/style/AudioPlayer.css +58 -0
- package/dist/lib/components/AudioPlayer/style/AudioProgress.css +35 -0
- package/dist/lib/components/AudioPlayer/style/AudioRange.css +68 -0
- package/dist/lib/components/AudioPlayer/style/AudioVolume.css +34 -0
- package/dist/lib/components/AudioPlayer/timerFormatUtil.d.ts +2 -0
- package/dist/lib/components/AudioPlayer/timerFormatUtil.js +42 -0
- package/dist/lib/components/Breadcrumbs/Breadcrumbs.css +0 -6
- package/dist/lib/components/Breadcrumbs/Breadcrumbs.d.ts +22 -12
- package/dist/lib/components/Breadcrumbs/Breadcrumbs.js +51 -41
- package/dist/lib/components/Breadcrumbs/components/BreadcrumbsItem.css +16 -0
- package/dist/lib/components/Breadcrumbs/components/BreadcrumbsItem.d.ts +29 -0
- package/dist/lib/components/Breadcrumbs/components/BreadcrumbsItem.js +99 -0
- package/dist/lib/components/FaqWrapper/FaqWrapper.d.ts +3 -0
- package/dist/lib/components/FaqWrapper/FaqWrapper.js +21 -0
- package/dist/lib/components/PageTitle/PageTitle.d.ts +2 -0
- package/dist/lib/components/PageTitle/PageTitle.js +4 -0
- package/dist/lib/components/VideoBanner/VideoBanner.d.ts +2 -0
- package/dist/lib/components/VideoBanner/VideoBanner.js +6 -2
- package/dist/lib/index.d.ts +7 -0
- package/dist/lib/index.js +56 -0
- package/package.json +5 -5
@@ -21,12 +21,6 @@ h5 {
|
|
21
21
|
.mfui-breadcrumbs_color_white .mfui-breadcrumbs__item:before {
|
22
22
|
color: var(--stcWhite);
|
23
23
|
}
|
24
|
-
.mfui-breadcrumbs__icon {
|
25
|
-
position: relative;
|
26
|
-
width: 14px;
|
27
|
-
height: 3px;
|
28
|
-
margin-right: 10px;
|
29
|
-
}
|
30
24
|
.mfui-breadcrumbs__item {
|
31
25
|
position: relative;
|
32
26
|
margin-right: 10px;
|
@@ -1,27 +1,37 @@
|
|
1
1
|
import React from 'react';
|
2
|
+
import { TextColor } from './components/BreadcrumbsItem';
|
2
3
|
import './Breadcrumbs.less';
|
3
4
|
declare type ItemObjectType = {
|
4
5
|
title?: string;
|
5
6
|
href?: string;
|
6
7
|
};
|
7
8
|
declare type ItemType = JSX.Element | ItemObjectType;
|
8
|
-
export declare
|
9
|
-
readonly DEFAULT: "default";
|
10
|
-
readonly BLACK: "black";
|
11
|
-
readonly WHITE: "white";
|
12
|
-
};
|
13
|
-
declare type TextColorType = typeof TextColor[keyof typeof TextColor];
|
9
|
+
export declare type TextColorType = typeof TextColor[keyof typeof TextColor];
|
14
10
|
export declare type Props = {
|
15
|
-
|
16
|
-
root?: Record<string, string>;
|
17
|
-
link?: Record<string, string>;
|
18
|
-
};
|
11
|
+
/** Дополнительный класс корневого элемента */
|
19
12
|
className?: string;
|
13
|
+
/** Список элементов */
|
14
|
+
items: ItemType[];
|
15
|
+
/** Цвет */
|
16
|
+
color?: TextColorType;
|
17
|
+
/** Включить микроразметку */
|
18
|
+
hasMicrodata?: boolean;
|
19
|
+
/** Дополнительные классы для корневого и внутренних элементов */
|
20
20
|
classes?: {
|
21
21
|
item?: string;
|
22
|
+
itemTitle?: string;
|
23
|
+
lastItemTitle?: string;
|
24
|
+
link?: string;
|
25
|
+
};
|
26
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
27
|
+
dataAttrs?: {
|
28
|
+
root?: Record<string, string>;
|
29
|
+
item?: Record<string, string>;
|
30
|
+
itemInner?: Record<string, string>;
|
31
|
+
itemTitle?: Record<string, string>;
|
32
|
+
itemMeta?: Record<string, string>;
|
33
|
+
link?: Record<string, string>;
|
22
34
|
};
|
23
|
-
items: ItemType[];
|
24
|
-
color?: TextColorType;
|
25
35
|
};
|
26
36
|
declare const Breadcrumbs: React.FC<Props>;
|
27
37
|
export default Breadcrumbs;
|
@@ -3,23 +3,14 @@ import "core-js/modules/es.object.values";
|
|
3
3
|
import "core-js/modules/es.string.link";
|
4
4
|
import _extends from "@babel/runtime/helpers/extends";
|
5
5
|
import React from 'react';
|
6
|
-
import { TextLink } from '@megafon/ui-core';
|
7
6
|
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
8
7
|
import PropTypes from 'prop-types';
|
8
|
+
import BreadcrumbsItem, { TextColor } from "./components/BreadcrumbsItem";
|
9
9
|
import "./Breadcrumbs.css";
|
10
|
-
export var TextColor = {
|
11
|
-
DEFAULT: 'default',
|
12
|
-
BLACK: 'black',
|
13
|
-
WHITE: 'white'
|
14
|
-
};
|
15
10
|
|
16
|
-
function isObjectElement(item) {
|
11
|
+
var isObjectElement = function isObjectElement(item) {
|
17
12
|
return !React.isValidElement(item);
|
18
|
-
}
|
19
|
-
|
20
|
-
function isJSXElement(item) {
|
21
|
-
return React.isValidElement(item);
|
22
|
-
}
|
13
|
+
};
|
23
14
|
|
24
15
|
var cn = cnCreate('mfui-breadcrumbs');
|
25
16
|
|
@@ -30,49 +21,64 @@ var Breadcrumbs = function Breadcrumbs(_ref) {
|
|
30
21
|
className = _ref.className,
|
31
22
|
_ref$classes = _ref.classes,
|
32
23
|
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
33
|
-
dataAttrs = _ref.dataAttrs
|
34
|
-
|
24
|
+
dataAttrs = _ref.dataAttrs,
|
25
|
+
_ref$hasMicrodata = _ref.hasMicrodata,
|
26
|
+
hasMicrodata = _ref$hasMicrodata === void 0 ? false : _ref$hasMicrodata;
|
27
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
35
28
|
className: cn({
|
36
29
|
color: color
|
37
30
|
}, className)
|
31
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), hasMicrodata && {
|
32
|
+
itemScope: true,
|
33
|
+
itemType: 'https://schema.org/BreadcrumbList'
|
38
34
|
}), items.map(function (item, i) {
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
dataAttrs:
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
35
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
36
|
+
className: cn('item', classes.item)
|
37
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, i + 1), {
|
38
|
+
key: i
|
39
|
+
}), isObjectElement(item) ? /*#__PURE__*/React.createElement(BreadcrumbsItem, {
|
40
|
+
title: item.title,
|
41
|
+
href: item.href,
|
42
|
+
color: color,
|
43
|
+
index: i,
|
44
|
+
isLastItem: i === items.length - 1,
|
45
|
+
hasMicrodata: hasMicrodata,
|
46
|
+
dataAttrs: {
|
47
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.itemInner,
|
48
|
+
link: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link,
|
49
|
+
itemTitle: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.itemTitle,
|
50
|
+
meta: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.itemMeta
|
51
|
+
},
|
52
|
+
classes: {
|
53
|
+
link: classes === null || classes === void 0 ? void 0 : classes.link,
|
54
|
+
itemTitle: classes === null || classes === void 0 ? void 0 : classes.itemTitle,
|
55
|
+
lastItemTitle: classes === null || classes === void 0 ? void 0 : classes.lastItemTitle
|
56
|
+
}
|
57
|
+
}) : item);
|
60
58
|
}));
|
61
59
|
};
|
62
60
|
|
63
61
|
Breadcrumbs.propTypes = {
|
64
62
|
dataAttrs: PropTypes.shape({
|
65
63
|
root: PropTypes.objectOf(PropTypes.string.isRequired),
|
64
|
+
item: PropTypes.objectOf(PropTypes.string.isRequired),
|
65
|
+
itemInner: PropTypes.objectOf(PropTypes.string.isRequired),
|
66
|
+
itemTitle: PropTypes.objectOf(PropTypes.string.isRequired),
|
67
|
+
itemMeta: PropTypes.objectOf(PropTypes.string.isRequired),
|
66
68
|
link: PropTypes.objectOf(PropTypes.string.isRequired)
|
67
69
|
}),
|
68
70
|
className: PropTypes.string,
|
69
71
|
classes: PropTypes.shape({
|
70
|
-
item: PropTypes.string
|
72
|
+
item: PropTypes.string,
|
73
|
+
itemTitle: PropTypes.string,
|
74
|
+
lastItemTitle: PropTypes.string,
|
75
|
+
link: PropTypes.string
|
71
76
|
}),
|
72
77
|
items: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element.isRequired), PropTypes.arrayOf(PropTypes.shape({
|
73
78
|
title: PropTypes.string,
|
74
79
|
href: PropTypes.string
|
75
80
|
}).isRequired)]).isRequired,
|
76
|
-
color: PropTypes.oneOf(Object.values(TextColor))
|
81
|
+
color: PropTypes.oneOf(Object.values(TextColor)),
|
82
|
+
hasMicrodata: PropTypes.bool
|
77
83
|
};
|
78
84
|
export default Breadcrumbs;
|
@@ -0,0 +1,16 @@
|
|
1
|
+
h1,
|
2
|
+
h2,
|
3
|
+
h3,
|
4
|
+
h4,
|
5
|
+
h5 {
|
6
|
+
margin: 0;
|
7
|
+
}
|
8
|
+
.mfui-breadcrumbs-item_color_default {
|
9
|
+
color: var(--content);
|
10
|
+
}
|
11
|
+
.mfui-breadcrumbs-item_color_black {
|
12
|
+
color: var(--stcBlack);
|
13
|
+
}
|
14
|
+
.mfui-breadcrumbs-item_color_white {
|
15
|
+
color: var(--stcWhite);
|
16
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import './BreadcrumbsItem.less';
|
3
|
+
export declare const TextColor: {
|
4
|
+
readonly DEFAULT: "default";
|
5
|
+
readonly BLACK: "black";
|
6
|
+
readonly WHITE: "white";
|
7
|
+
};
|
8
|
+
declare type TextColorType = typeof TextColor[keyof typeof TextColor];
|
9
|
+
export declare type Props = {
|
10
|
+
title?: string;
|
11
|
+
href?: string;
|
12
|
+
color?: TextColorType;
|
13
|
+
index?: number;
|
14
|
+
isLastItem?: boolean;
|
15
|
+
hasMicrodata?: boolean;
|
16
|
+
classes?: {
|
17
|
+
link?: string;
|
18
|
+
itemTitle?: string;
|
19
|
+
lastItemTitle?: string;
|
20
|
+
};
|
21
|
+
dataAttrs?: {
|
22
|
+
root?: Record<string, string>;
|
23
|
+
link?: Record<string, string>;
|
24
|
+
itemTitle?: Record<string, string>;
|
25
|
+
meta?: Record<string, string>;
|
26
|
+
};
|
27
|
+
};
|
28
|
+
declare const BreadcrumbsItem: React.FC<Props>;
|
29
|
+
export default BreadcrumbsItem;
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import "core-js/modules/es.object.values";
|
2
|
+
import "core-js/modules/es.string.link";
|
3
|
+
import _extends from "@babel/runtime/helpers/extends";
|
4
|
+
import React from 'react';
|
5
|
+
import { TextLink } from '@megafon/ui-core';
|
6
|
+
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
7
|
+
import PropTypes from 'prop-types';
|
8
|
+
import "./BreadcrumbsItem.css";
|
9
|
+
export var TextColor = {
|
10
|
+
DEFAULT: 'default',
|
11
|
+
BLACK: 'black',
|
12
|
+
WHITE: 'white'
|
13
|
+
};
|
14
|
+
var cn = cnCreate('mfui-breadcrumbs-item');
|
15
|
+
|
16
|
+
var BreadcrumbsItem = function BreadcrumbsItem(_ref) {
|
17
|
+
var title = _ref.title,
|
18
|
+
href = _ref.href,
|
19
|
+
color = _ref.color,
|
20
|
+
_ref$index = _ref.index,
|
21
|
+
index = _ref$index === void 0 ? 0 : _ref$index,
|
22
|
+
_ref$isLastItem = _ref.isLastItem,
|
23
|
+
isLastItem = _ref$isLastItem === void 0 ? false : _ref$isLastItem,
|
24
|
+
_ref$hasMicrodata = _ref.hasMicrodata,
|
25
|
+
hasMicrodata = _ref$hasMicrodata === void 0 ? false : _ref$hasMicrodata,
|
26
|
+
classes = _ref.classes,
|
27
|
+
dataAttrs = _ref.dataAttrs;
|
28
|
+
|
29
|
+
if (isLastItem) {
|
30
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
31
|
+
className: cn({
|
32
|
+
color: color
|
33
|
+
})
|
34
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root, index + 1)), /*#__PURE__*/React.createElement("span", _extends({
|
35
|
+
className: classes === null || classes === void 0 ? void 0 : classes.lastItemTitle
|
36
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.itemTitle, index + 1)), title));
|
37
|
+
}
|
38
|
+
|
39
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
40
|
+
className: cn()
|
41
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root, index + 1), hasMicrodata && {
|
42
|
+
itemScope: true,
|
43
|
+
itemProp: 'itemListElement',
|
44
|
+
itemType: 'https://schema.org/ListItem'
|
45
|
+
}), /*#__PURE__*/React.createElement(TextLink, {
|
46
|
+
className: classes === null || classes === void 0 ? void 0 : classes.link,
|
47
|
+
href: href,
|
48
|
+
color: color,
|
49
|
+
dataAttrs: {
|
50
|
+
root: (dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link) ? _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link, index + 1)) : undefined
|
51
|
+
},
|
52
|
+
itemProp: hasMicrodata ? 'item' : undefined
|
53
|
+
}, /*#__PURE__*/React.createElement("span", _extends({
|
54
|
+
className: classes === null || classes === void 0 ? void 0 : classes.itemTitle
|
55
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.itemTitle, index + 1), hasMicrodata && {
|
56
|
+
itemProp: 'name'
|
57
|
+
}), title)), hasMicrodata && /*#__PURE__*/React.createElement("meta", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.meta, index + 1), {
|
58
|
+
itemProp: "position",
|
59
|
+
content: String(index + 1)
|
60
|
+
})));
|
61
|
+
};
|
62
|
+
|
63
|
+
BreadcrumbsItem.propTypes = {
|
64
|
+
title: PropTypes.string,
|
65
|
+
href: PropTypes.string,
|
66
|
+
color: PropTypes.oneOf(Object.values(TextColor)),
|
67
|
+
index: PropTypes.number,
|
68
|
+
isLastItem: PropTypes.bool,
|
69
|
+
hasMicrodata: PropTypes.bool,
|
70
|
+
classes: PropTypes.shape({
|
71
|
+
link: PropTypes.string,
|
72
|
+
itemTitle: PropTypes.string,
|
73
|
+
lastItemTitle: PropTypes.string
|
74
|
+
}),
|
75
|
+
dataAttrs: PropTypes.shape({
|
76
|
+
root: PropTypes.objectOf(PropTypes.string),
|
77
|
+
link: PropTypes.objectOf(PropTypes.string),
|
78
|
+
itemTitle: PropTypes.objectOf(PropTypes.string),
|
79
|
+
meta: PropTypes.objectOf(PropTypes.string)
|
80
|
+
})
|
81
|
+
};
|
82
|
+
export default BreadcrumbsItem;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
|
3
|
+
var FaqWrapper = function FaqWrapper(_ref) {
|
4
|
+
var children = _ref.children;
|
5
|
+
return /*#__PURE__*/React.createElement("div", {
|
6
|
+
itemScope: true,
|
7
|
+
itemType: "http://schema.org/FAQPage"
|
8
|
+
}, children);
|
9
|
+
};
|
10
|
+
|
11
|
+
export default FaqWrapper;
|
@@ -16,6 +16,8 @@ declare type Props = {
|
|
16
16
|
badge?: string;
|
17
17
|
/** Растягивание компонента на всю доступную ширину */
|
18
18
|
isFullWidth?: boolean;
|
19
|
+
/** Включить микроразметку для хлебных крошек */
|
20
|
+
hasBreadcrumbsMicrodata?: boolean;
|
19
21
|
/** Класс для корневого элемента */
|
20
22
|
className?: string;
|
21
23
|
/** Дополнительные классы для внутренних элементов */
|
@@ -14,6 +14,8 @@ var PageTitle = function PageTitle(_ref) {
|
|
14
14
|
badge = _ref.badge,
|
15
15
|
_ref$isFullWidth = _ref.isFullWidth,
|
16
16
|
isFullWidth = _ref$isFullWidth === void 0 ? true : _ref$isFullWidth,
|
17
|
+
_ref$hasBreadcrumbsMi = _ref.hasBreadcrumbsMicrodata,
|
18
|
+
hasBreadcrumbsMicrodata = _ref$hasBreadcrumbsMi === void 0 ? false : _ref$hasBreadcrumbsMi,
|
17
19
|
className = _ref.className,
|
18
20
|
_ref$classes = _ref.classes,
|
19
21
|
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
@@ -43,6 +45,7 @@ var PageTitle = function PageTitle(_ref) {
|
|
43
45
|
className: cn([className]),
|
44
46
|
ref: rootRef
|
45
47
|
}), (breadcrumbs === null || breadcrumbs === void 0 ? void 0 : breadcrumbs.length) && /*#__PURE__*/React.createElement(Breadcrumbs, {
|
48
|
+
hasMicrodata: hasBreadcrumbsMicrodata,
|
46
49
|
items: breadcrumbs,
|
47
50
|
dataAttrs: {
|
48
51
|
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.breadcrumbs,
|
@@ -65,6 +68,7 @@ PageTitle.propTypes = {
|
|
65
68
|
}).isRequired),
|
66
69
|
badge: PropTypes.string,
|
67
70
|
isFullWidth: PropTypes.bool,
|
71
|
+
hasBreadcrumbsMicrodata: PropTypes.bool,
|
68
72
|
className: PropTypes.string,
|
69
73
|
classes: PropTypes.shape({
|
70
74
|
breadcrumbs: PropTypes.string
|
@@ -96,6 +96,8 @@ interface IVideoBannerProps {
|
|
96
96
|
imageDesktopWide?: string;
|
97
97
|
/** Хлебные крошки */
|
98
98
|
breadcrumbs?: BreadCrumbsItemsType;
|
99
|
+
/** Включить микроразметку хлебных крошек */
|
100
|
+
hasBreadcrumbsMicrodata?: boolean;
|
99
101
|
}
|
100
102
|
declare const VideoBanner: React.FC<IVideoBannerProps>;
|
101
103
|
export default VideoBanner;
|
@@ -65,7 +65,9 @@ var VideoBanner = function VideoBanner(_ref2) {
|
|
65
65
|
isMuted = _ref2$isMuted === void 0 ? true : _ref2$isMuted,
|
66
66
|
breadcrumbs = _ref2.breadcrumbs,
|
67
67
|
_ref2$videoMobile = _ref2.videoMobile,
|
68
|
-
videoMobile = _ref2$videoMobile === void 0 ? false : _ref2$videoMobile
|
68
|
+
videoMobile = _ref2$videoMobile === void 0 ? false : _ref2$videoMobile,
|
69
|
+
_ref2$hasBreadcrumbsM = _ref2.hasBreadcrumbsMicrodata,
|
70
|
+
hasBreadcrumbsMicrodata = _ref2$hasBreadcrumbsM === void 0 ? false : _ref2$hasBreadcrumbsM;
|
69
71
|
|
70
72
|
var _React$useState = React.useState(true),
|
71
73
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
@@ -207,6 +209,7 @@ var VideoBanner = function VideoBanner(_ref2) {
|
|
207
209
|
}), /*#__PURE__*/React.createElement(ContentArea, null, /*#__PURE__*/React.createElement("div", {
|
208
210
|
className: cn('wrapper')
|
209
211
|
}, !!(breadcrumbs === null || breadcrumbs === void 0 ? void 0 : breadcrumbs.length) && /*#__PURE__*/React.createElement(Breadcrumbs, {
|
212
|
+
hasMicrodata: hasBreadcrumbsMicrodata,
|
210
213
|
dataAttrs: {
|
211
214
|
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.breadcrumbs,
|
212
215
|
link: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.breadcrumbsLink
|
@@ -278,6 +281,7 @@ VideoBanner.propTypes = {
|
|
278
281
|
breadcrumbs: PropTypes.arrayOf(PropTypes.shape({
|
279
282
|
title: PropTypes.string.isRequired,
|
280
283
|
href: PropTypes.string
|
281
|
-
}).isRequired)
|
284
|
+
}).isRequired),
|
285
|
+
hasBreadcrumbsMicrodata: PropTypes.bool
|
282
286
|
};
|
283
287
|
export default VideoBanner;
|
package/dist/es/index.d.ts
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
export { default as AccordionBox } from './components/AccordionBox/AccordionBox';
|
2
|
+
export { default as AudioPlayer } from './components/AudioPlayer/AudioPlayer';
|
3
|
+
export { default as AudioProgress } from './components/AudioPlayer/AudioProgress';
|
4
|
+
export { default as AudioRange } from './components/AudioPlayer/AudioRange';
|
5
|
+
export { default as AudioVolume } from './components/AudioPlayer/AudioVolume';
|
2
6
|
export { default as BannerBox } from './components/BannerBox/BannerBox';
|
3
7
|
export { default as BenefitsIcons } from './components/BenefitsIcons/BenefitsIcons';
|
4
8
|
export { default as BenefitsIconsTile } from './components/BenefitsIcons/BenefitsIconsTile';
|
5
9
|
export { default as BenefitsPictures } from './components/BenefitsPictures/BenefitsPictures';
|
6
10
|
export { default as Breadcrumbs } from './components/Breadcrumbs/Breadcrumbs';
|
11
|
+
export { default as BreadcrumbsItem } from './components/Breadcrumbs/components/BreadcrumbsItem';
|
7
12
|
export { default as ButtonBanner } from './components/ButtonBanner/ButtonBanner';
|
8
13
|
export { default as ButtonLinkBox } from './components/ButtonLinkBox/ButtonLinkBox';
|
9
14
|
export { default as Card } from './components/Card/Card';
|
@@ -12,6 +17,7 @@ export { default as CarouselBox } from './components/CarouselBox/CarouselBox';
|
|
12
17
|
export { default as Container } from './components/Container/Container';
|
13
18
|
export { default as DownloadLink } from './components/DownloadLinks/DownloadLink';
|
14
19
|
export { default as DownloadLinks } from './components/DownloadLinks/DownloadLinks';
|
20
|
+
export { default as FaqWrapper } from './components/FaqWrapper/FaqWrapper';
|
15
21
|
export { default as Instructions } from './components/Instructions/Instructions';
|
16
22
|
export { default as PageTitle } from './components/PageTitle/PageTitle';
|
17
23
|
export { default as Partners } from './components/Partners/Partners';
|
@@ -31,6 +37,7 @@ export { default as TextBox } from './components/TextBox/TextBox';
|
|
31
37
|
export { default as TextBoxPicture } from './components/TextBox/TextBoxPicture';
|
32
38
|
export { default as TextWithIcon } from './components/TextWithIcon/TextWithIcon';
|
33
39
|
export { default as TextWithIconItem } from './components/TextWithIcon/TextWithIconItem';
|
40
|
+
export { default as timerFormatUtil } from './components/AudioPlayer/timerFormatUtil';
|
34
41
|
export { default as TitleDescriptionBox } from './components/TitleDescriptionBox/TitleDescriptionBox';
|
35
42
|
export { default as VideoBanner } from './components/VideoBanner/VideoBanner';
|
36
43
|
export { default as VideoBlock } from './components/VideoBlock/VideoBlock';
|
package/dist/es/index.js
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
export { default as AccordionBox } from "./components/AccordionBox/AccordionBox";
|
2
|
+
export { default as AudioPlayer } from "./components/AudioPlayer/AudioPlayer";
|
3
|
+
export { default as AudioProgress } from "./components/AudioPlayer/AudioProgress";
|
4
|
+
export { default as AudioRange } from "./components/AudioPlayer/AudioRange";
|
5
|
+
export { default as AudioVolume } from "./components/AudioPlayer/AudioVolume";
|
2
6
|
export { default as BannerBox } from "./components/BannerBox/BannerBox";
|
3
7
|
export { default as BenefitsIcons } from "./components/BenefitsIcons/BenefitsIcons";
|
4
8
|
export { default as BenefitsIconsTile } from "./components/BenefitsIcons/BenefitsIconsTile";
|
5
9
|
export { default as BenefitsPictures } from "./components/BenefitsPictures/BenefitsPictures";
|
6
10
|
export { default as Breadcrumbs } from "./components/Breadcrumbs/Breadcrumbs";
|
11
|
+
export { default as BreadcrumbsItem } from "./components/Breadcrumbs/components/BreadcrumbsItem";
|
7
12
|
export { default as ButtonBanner } from "./components/ButtonBanner/ButtonBanner";
|
8
13
|
export { default as ButtonLinkBox } from "./components/ButtonLinkBox/ButtonLinkBox";
|
9
14
|
export { default as Card } from "./components/Card/Card";
|
@@ -12,6 +17,7 @@ export { default as CarouselBox } from "./components/CarouselBox/CarouselBox";
|
|
12
17
|
export { default as Container } from "./components/Container/Container";
|
13
18
|
export { default as DownloadLink } from "./components/DownloadLinks/DownloadLink";
|
14
19
|
export { default as DownloadLinks } from "./components/DownloadLinks/DownloadLinks";
|
20
|
+
export { default as FaqWrapper } from "./components/FaqWrapper/FaqWrapper";
|
15
21
|
export { default as Instructions } from "./components/Instructions/Instructions";
|
16
22
|
export { default as PageTitle } from "./components/PageTitle/PageTitle";
|
17
23
|
export { default as Partners } from "./components/Partners/Partners";
|
@@ -31,6 +37,7 @@ export { default as TextBox } from "./components/TextBox/TextBox";
|
|
31
37
|
export { default as TextBoxPicture } from "./components/TextBox/TextBoxPicture";
|
32
38
|
export { default as TextWithIcon } from "./components/TextWithIcon/TextWithIcon";
|
33
39
|
export { default as TextWithIconItem } from "./components/TextWithIcon/TextWithIconItem";
|
40
|
+
export { default as timerFormatUtil } from "./components/AudioPlayer/timerFormatUtil";
|
34
41
|
export { default as TitleDescriptionBox } from "./components/TitleDescriptionBox/TitleDescriptionBox";
|
35
42
|
export { default as VideoBanner } from "./components/VideoBanner/VideoBanner";
|
36
43
|
export { default as VideoBlock } from "./components/VideoBlock/VideoBlock";
|
@@ -21,6 +21,8 @@ export interface IAccordionBox {
|
|
21
21
|
title: string;
|
22
22
|
/** Состояние аккордеона, заданное извне */
|
23
23
|
isOpened?: boolean;
|
24
|
+
/** Включить микроразметку */
|
25
|
+
hasMicrodata?: boolean;
|
24
26
|
/** Отключить ограничение ширины */
|
25
27
|
isFullWidth?: boolean;
|
26
28
|
/** Центрирование по горизонтали для расширения 1280+ */
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import './style/AudioPlayer.less';
|
3
|
+
export interface IAudioPlayerProps {
|
4
|
+
audioSrc: string;
|
5
|
+
audioTitle: string;
|
6
|
+
position?: 'left' | 'center' | 'right';
|
7
|
+
isFullWidth?: boolean;
|
8
|
+
}
|
9
|
+
declare const AudioPlayer: React.FC<IAudioPlayerProps>;
|
10
|
+
export default AudioPlayer;
|
@@ -0,0 +1,133 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports["default"] = void 0;
|
7
|
+
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
9
|
+
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
11
|
+
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
13
|
+
|
14
|
+
var _uiCore = require("@megafon/ui-core");
|
15
|
+
|
16
|
+
var _uiHelpers = require("@megafon/ui-helpers");
|
17
|
+
|
18
|
+
var _AudioProgress = _interopRequireDefault(require("./AudioProgress"));
|
19
|
+
|
20
|
+
var _AudioVolume = _interopRequireDefault(require("./AudioVolume"));
|
21
|
+
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
23
|
+
|
24
|
+
var IconPause = function IconPause(props) {
|
25
|
+
return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({
|
26
|
+
viewBox: "0 0 32 32"
|
27
|
+
}, props), /*#__PURE__*/_react["default"].createElement("path", {
|
28
|
+
d: "M11 10.5v11a.5.5 0 00.5.5h2a.5.5 0 00.5-.5v-11a.5.5 0 00-.5-.5h-2a.5.5 0 00-.5.5zm7 0v11a.5.5 0 00.5.5h2a.5.5 0 00.5-.5v-11a.5.5 0 00-.5-.5h-2a.5.5 0 00-.5.5z"
|
29
|
+
}));
|
30
|
+
};
|
31
|
+
|
32
|
+
var IconPlay = function IconPlay(props) {
|
33
|
+
return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({
|
34
|
+
viewBox: "0 0 32 32"
|
35
|
+
}, props), /*#__PURE__*/_react["default"].createElement("path", {
|
36
|
+
d: "M11.5 22.13V9.87a.5.5 0 01.752-.431l10.508 6.13a.5.5 0 010 .863l-10.508 6.13a.5.5 0 01-.752-.433z"
|
37
|
+
}));
|
38
|
+
};
|
39
|
+
|
40
|
+
var cn = (0, _uiHelpers.cnCreate)('mfui-audio-player');
|
41
|
+
|
42
|
+
var AudioPlayer = function AudioPlayer(_ref) {
|
43
|
+
var audioSrc = _ref.audioSrc,
|
44
|
+
audioTitle = _ref.audioTitle,
|
45
|
+
_ref$position = _ref.position,
|
46
|
+
position = _ref$position === void 0 ? 'center' : _ref$position,
|
47
|
+
isFullWidth = _ref.isFullWidth;
|
48
|
+
|
49
|
+
var audioRef = _react["default"].useRef(null);
|
50
|
+
|
51
|
+
var _React$useState = _react["default"].useState(false),
|
52
|
+
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
53
|
+
isPlaying = _React$useState2[0],
|
54
|
+
setIsPlaying = _React$useState2[1];
|
55
|
+
|
56
|
+
var _React$useState3 = _react["default"].useState(false),
|
57
|
+
_React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
|
58
|
+
isPause = _React$useState4[0],
|
59
|
+
setIsPause = _React$useState4[1];
|
60
|
+
|
61
|
+
var handlePLay = function handlePLay() {
|
62
|
+
var _a;
|
63
|
+
|
64
|
+
setIsPlaying(true);
|
65
|
+
setIsPause(false);
|
66
|
+
(_a = audioRef.current) === null || _a === void 0 ? void 0 : _a.play();
|
67
|
+
};
|
68
|
+
|
69
|
+
var handlePause = function handlePause() {
|
70
|
+
var _a;
|
71
|
+
|
72
|
+
setIsPlaying(false);
|
73
|
+
setIsPause(true);
|
74
|
+
(_a = audioRef.current) === null || _a === void 0 ? void 0 : _a.pause();
|
75
|
+
};
|
76
|
+
|
77
|
+
var handleChangeAudioCurrentTime = function handleChangeAudioCurrentTime(currentTime) {
|
78
|
+
if (!audioRef || !audioRef.current) {
|
79
|
+
return;
|
80
|
+
}
|
81
|
+
|
82
|
+
audioRef.current.currentTime = currentTime;
|
83
|
+
};
|
84
|
+
|
85
|
+
var handleChangeAudioVolume = function handleChangeAudioVolume(volume) {
|
86
|
+
if (!audioRef || !audioRef.current) {
|
87
|
+
return;
|
88
|
+
}
|
89
|
+
|
90
|
+
audioRef.current.volume = volume;
|
91
|
+
audioRef.current.muted = !volume;
|
92
|
+
};
|
93
|
+
|
94
|
+
var playingIconHandleClick = _react["default"].useMemo(function () {
|
95
|
+
return isPlaying ? handlePause : handlePLay;
|
96
|
+
}, [isPlaying]);
|
97
|
+
|
98
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
99
|
+
className: cn({
|
100
|
+
'full-width': isFullWidth,
|
101
|
+
position: position
|
102
|
+
})
|
103
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
104
|
+
className: cn('player')
|
105
|
+
}, /*#__PURE__*/_react["default"].createElement("audio", {
|
106
|
+
className: cn('audio'),
|
107
|
+
ref: audioRef,
|
108
|
+
controls: false
|
109
|
+
}, /*#__PURE__*/_react["default"].createElement("source", {
|
110
|
+
src: audioSrc,
|
111
|
+
type: "audio/mpeg"
|
112
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
113
|
+
className: cn('playing-controls')
|
114
|
+
}, /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
|
115
|
+
icon: isPlaying ? /*#__PURE__*/_react["default"].createElement(IconPause, null) : /*#__PURE__*/_react["default"].createElement(IconPlay, null),
|
116
|
+
onClick: playingIconHandleClick,
|
117
|
+
sizeAll: "small",
|
118
|
+
className: cn('button')
|
119
|
+
})), /*#__PURE__*/_react["default"].createElement(_AudioProgress["default"], {
|
120
|
+
audioRef: audioRef,
|
121
|
+
audioTitle: audioTitle,
|
122
|
+
isPlaying: isPlaying,
|
123
|
+
isPause: isPause,
|
124
|
+
onChangeAudioCurrentTime: handleChangeAudioCurrentTime,
|
125
|
+
onPLay: handlePLay,
|
126
|
+
onSetIsPlaying: setIsPlaying
|
127
|
+
}), /*#__PURE__*/_react["default"].createElement(_AudioVolume["default"], {
|
128
|
+
onChangeAudioVolume: handleChangeAudioVolume
|
129
|
+
})));
|
130
|
+
};
|
131
|
+
|
132
|
+
var _default = AudioPlayer;
|
133
|
+
exports["default"] = _default;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import './style/AudioProgress.less';
|
3
|
+
export declare const INTERVAL_DELAY = 1000;
|
4
|
+
export interface IAudioProgressProps {
|
5
|
+
audioRef: React.MutableRefObject<HTMLAudioElement | null>;
|
6
|
+
audioTitle: string;
|
7
|
+
isPlaying: boolean;
|
8
|
+
isPause: boolean;
|
9
|
+
onChangeAudioCurrentTime: (currentTime: number) => void;
|
10
|
+
onPLay: () => void;
|
11
|
+
onSetIsPlaying: (value: boolean) => void;
|
12
|
+
}
|
13
|
+
declare const AudioProgress: React.FC<IAudioProgressProps>;
|
14
|
+
export default AudioProgress;
|