@gravity-ui/page-constructor 4.1.2 → 4.4.1
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/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js +7 -3
- package/build/cjs/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js +1 -1
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.css +50 -0
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.d.ts +2 -0
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +27 -0
- package/build/cjs/blocks/Questions/Questions.css +0 -48
- package/build/cjs/blocks/Questions/Questions.js +7 -27
- package/build/cjs/blocks/Questions/models.d.ts +10 -0
- package/build/cjs/blocks/Questions/models.js +13 -0
- package/build/cjs/components/BackLink/BackLink.d.ts +2 -1
- package/build/cjs/components/BackLink/BackLink.js +2 -2
- package/build/cjs/components/FileLink/FileLink.js +2 -2
- package/build/cjs/components/FullscreenImage/FullscreenImage.js +1 -1
- package/build/cjs/components/FullscreenImage/i18n/en.json +2 -1
- package/build/cjs/components/FullscreenImage/i18n/ru.json +2 -1
- package/build/cjs/components/HTML/HTML.d.ts +3 -1
- package/build/cjs/components/HTML/HTML.js +2 -1
- package/build/cjs/components/Image/i18n/en.json +1 -1
- package/build/cjs/components/Image/i18n/ru.json +1 -1
- package/build/cjs/components/Link/Link.d.ts +2 -2
- package/build/cjs/components/Link/Link.js +6 -6
- package/build/cjs/components/Media/Media.js +1 -2
- package/build/cjs/components/Media/Video/Video.js +3 -3
- package/build/cjs/components/ReactPlayer/ReactPlayer.js +4 -3
- package/build/cjs/components/ReactPlayer/i18n/en.json +3 -0
- package/build/cjs/components/ReactPlayer/i18n/index.d.ts +2 -0
- package/build/cjs/components/ReactPlayer/i18n/index.js +8 -0
- package/build/cjs/components/ReactPlayer/i18n/ru.json +3 -0
- package/build/cjs/components/Table/Table.js +11 -5
- package/build/cjs/components/YFMWrapper/YFMWrapper.d.ts +3 -3
- package/build/cjs/components/YFMWrapper/YFMWrapper.js +1 -1
- package/build/cjs/components/constants.d.ts +0 -4
- package/build/cjs/components/constants.js +1 -5
- package/build/cjs/grid/Col/Col.d.ts +3 -4
- package/build/cjs/grid/Col/Col.js +2 -2
- package/build/cjs/models/constructor-items/blocks.d.ts +8 -0
- package/build/cjs/models/constructor-items/common.d.ts +11 -4
- package/build/cjs/sub-blocks/Content/ContentList/ContentList.js +11 -1
- package/build/cjs/sub-blocks/LayoutItem/utils.d.ts +1 -0
- package/build/cjs/utils/blocks.d.ts +1 -1
- package/build/cjs/utils/blocks.js +2 -2
- package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js +7 -3
- package/build/esm/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js +1 -1
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.css +50 -0
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.d.ts +3 -0
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +23 -0
- package/build/esm/blocks/Questions/Questions.css +0 -48
- package/build/esm/blocks/Questions/Questions.js +6 -26
- package/build/esm/blocks/Questions/models.d.ts +10 -0
- package/build/esm/blocks/Questions/models.js +10 -0
- package/build/esm/components/BackLink/BackLink.d.ts +2 -1
- package/build/esm/components/BackLink/BackLink.js +2 -2
- package/build/esm/components/FileLink/FileLink.js +2 -2
- package/build/esm/components/FullscreenImage/FullscreenImage.js +1 -1
- package/build/esm/components/FullscreenImage/i18n/en.json +2 -1
- package/build/esm/components/FullscreenImage/i18n/ru.json +2 -1
- package/build/esm/components/HTML/HTML.d.ts +3 -1
- package/build/esm/components/HTML/HTML.js +2 -1
- package/build/esm/components/Image/i18n/en.json +1 -1
- package/build/esm/components/Image/i18n/ru.json +1 -1
- package/build/esm/components/Link/Link.d.ts +2 -2
- package/build/esm/components/Link/Link.js +7 -7
- package/build/esm/components/Media/Media.js +1 -2
- package/build/esm/components/Media/Video/Video.js +3 -3
- package/build/esm/components/ReactPlayer/ReactPlayer.js +4 -3
- package/build/esm/components/ReactPlayer/i18n/en.json +3 -0
- package/build/esm/components/ReactPlayer/i18n/index.d.ts +2 -0
- package/build/esm/components/ReactPlayer/i18n/index.js +5 -0
- package/build/esm/components/ReactPlayer/i18n/ru.json +3 -0
- package/build/esm/components/Table/Table.js +11 -5
- package/build/esm/components/YFMWrapper/YFMWrapper.d.ts +3 -3
- package/build/esm/components/YFMWrapper/YFMWrapper.js +1 -1
- package/build/esm/components/constants.d.ts +0 -4
- package/build/esm/components/constants.js +0 -4
- package/build/esm/grid/Col/Col.d.ts +3 -4
- package/build/esm/grid/Col/Col.js +2 -2
- package/build/esm/models/constructor-items/blocks.d.ts +8 -0
- package/build/esm/models/constructor-items/common.d.ts +11 -4
- package/build/esm/sub-blocks/Content/ContentList/ContentList.js +11 -1
- package/build/esm/sub-blocks/LayoutItem/utils.d.ts +1 -0
- package/build/esm/utils/blocks.d.ts +1 -1
- package/build/esm/utils/blocks.js +2 -2
- package/package.json +3 -3
- package/server/components/constants.d.ts +0 -4
- package/server/components/constants.js +1 -5
- package/server/models/constructor-items/blocks.d.ts +8 -0
- package/server/models/constructor-items/common.d.ts +11 -4
- package/server/utils/blocks.d.ts +1 -1
- package/server/utils/blocks.js +2 -2
- package/widget/index.js +1 -1
|
@@ -18,6 +18,7 @@ const DEFAULT_SIZES = {
|
|
|
18
18
|
};
|
|
19
19
|
const ExtendedFeaturesBlock = ({ title, description, items, colSizes = DEFAULT_SIZES, animated, }) => {
|
|
20
20
|
const theme = (0, theme_1.useTheme)();
|
|
21
|
+
const itemTitleHeadingTag = title ? 'h3' : 'h2';
|
|
21
22
|
return (react_1.default.createElement(components_1.AnimateBlock, { className: b(), animate: animated },
|
|
22
23
|
react_1.default.createElement(components_1.Title, { title: title, subtitle: description, className: b('header') }),
|
|
23
24
|
react_1.default.createElement("div", { className: b('items') },
|
|
@@ -31,9 +32,12 @@ const ExtendedFeaturesBlock = ({ title, description, items, colSizes = DEFAULT_S
|
|
|
31
32
|
return (react_1.default.createElement(grid_1.Col, { className: b('item'), key: text || itemTitle, sizes: colSizes },
|
|
32
33
|
iconData && react_1.default.createElement(Image_1.default, Object.assign({}, iconData, { className: b('icon') })),
|
|
33
34
|
react_1.default.createElement("div", { className: b('container') },
|
|
34
|
-
itemTitle &&
|
|
35
|
-
react_1.default.createElement(
|
|
36
|
-
|
|
35
|
+
itemTitle &&
|
|
36
|
+
react_1.default.createElement(itemTitleHeadingTag, {
|
|
37
|
+
className: b('item-title'),
|
|
38
|
+
}, react_1.default.createElement(react_1.default.Fragment, null,
|
|
39
|
+
react_1.default.createElement(components_1.HTML, null, itemTitle),
|
|
40
|
+
label && (react_1.default.createElement("span", { className: b('item-label') }, label)))),
|
|
37
41
|
react_1.default.createElement(sub_blocks_1.Content, { text: text, links: itemLinks, size: "s", colSizes: { all: 12, md: 12 }, buttons: buttons, additionalInfo: additionalInfo }))));
|
|
38
42
|
})))));
|
|
39
43
|
};
|
|
@@ -30,7 +30,7 @@ const PromoFeaturesBlock = (props) => {
|
|
|
30
30
|
[themeMod]: Boolean(themeMod),
|
|
31
31
|
}) },
|
|
32
32
|
react_1.default.createElement("div", { className: b('card-info') },
|
|
33
|
-
react_1.default.createElement("
|
|
33
|
+
react_1.default.createElement("h3", { className: b('card-title') }, cardTitle),
|
|
34
34
|
react_1.default.createElement("div", { className: b('card-text') },
|
|
35
35
|
react_1.default.createElement(YFMWrapper_1.default, { content: text, modifiers: { constructor: true } }))),
|
|
36
36
|
media && react_1.default.createElement(Media_1.default, Object.assign({ className: b('card-media') }, media))));
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
.pc-QuestionsBlockItem__title {
|
|
2
|
+
margin: 0;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
/* use this for style redefinitions to awoid problems with
|
|
6
|
+
unpredictable css rules order in build */
|
|
7
|
+
.pc-QuestionsBlockItem {
|
|
8
|
+
padding-bottom: 32px;
|
|
9
|
+
border-bottom: 1px solid var(--g-color-line-generic);
|
|
10
|
+
}
|
|
11
|
+
.pc-QuestionsBlockItem + .pc-QuestionsBlockItem {
|
|
12
|
+
padding-top: 32px;
|
|
13
|
+
}
|
|
14
|
+
.pc-QuestionsBlockItem__title {
|
|
15
|
+
font-size: var(--g-text-header-1-font-size);
|
|
16
|
+
line-height: var(--g-text-header-1-line-height);
|
|
17
|
+
color: var(--pc-text-header-color);
|
|
18
|
+
font-weight: var(--g-text-accent-font-weight);
|
|
19
|
+
position: relative;
|
|
20
|
+
padding-right: 24px;
|
|
21
|
+
cursor: pointer;
|
|
22
|
+
}
|
|
23
|
+
.pc-QuestionsBlockItem__title a {
|
|
24
|
+
outline: none;
|
|
25
|
+
color: var(--g-color-text-link);
|
|
26
|
+
text-decoration: none;
|
|
27
|
+
cursor: pointer;
|
|
28
|
+
}
|
|
29
|
+
.utilityfocus .pc-QuestionsBlockItem__title a:focus {
|
|
30
|
+
outline: 2px solid #ffdb4d;
|
|
31
|
+
}
|
|
32
|
+
.pc-QuestionsBlockItem__title a:hover, .pc-QuestionsBlockItem__title a:active {
|
|
33
|
+
--pc-text-header-color: var(--g-color-text-link-hover);
|
|
34
|
+
color: var(--g-color-text-link-hover);
|
|
35
|
+
}
|
|
36
|
+
.pc-QuestionsBlockItem__arrow {
|
|
37
|
+
position: absolute;
|
|
38
|
+
right: 0;
|
|
39
|
+
top: 0;
|
|
40
|
+
color: var(--g-color-text-primary);
|
|
41
|
+
}
|
|
42
|
+
.pc-QuestionsBlockItem__link {
|
|
43
|
+
font-size: var(--g-text-body-2-font-size);
|
|
44
|
+
line-height: var(--g-text-body-2-line-height);
|
|
45
|
+
}
|
|
46
|
+
.pc-QuestionsBlockItem__text {
|
|
47
|
+
font-size: var(--g-text-body-2-font-size);
|
|
48
|
+
line-height: var(--g-text-body-2-line-height);
|
|
49
|
+
margin-top: 12px;
|
|
50
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QuestionBlockItem = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const uikit_1 = require("@gravity-ui/uikit");
|
|
7
|
+
const components_1 = require("../../../components");
|
|
8
|
+
const Link_1 = tslib_1.__importDefault(require("../../../components/Link/Link"));
|
|
9
|
+
const utils_1 = require("../../../utils");
|
|
10
|
+
const models_1 = require("../models");
|
|
11
|
+
const b = (0, utils_1.block)('QuestionsBlockItem');
|
|
12
|
+
const QuestionBlockItem = ({ title: itemTitle, text: itemText, link, listStyle = 'dash', isOpened, onClick, }) => {
|
|
13
|
+
const { onKeyDown } = (0, uikit_1.useActionHandlers)(onClick);
|
|
14
|
+
return (react_1.default.createElement("div", { className: b(), itemScope: true, itemProp: models_1.FaqMicrodataValues.QuestionProp, itemType: models_1.FaqMicrodataValues.QuestionType, role: 'listitem' },
|
|
15
|
+
react_1.default.createElement("h3", { className: b('title'), onClick: onClick, "aria-expanded": isOpened, role: 'button', tabIndex: 0, onKeyDown: onKeyDown },
|
|
16
|
+
react_1.default.createElement(components_1.HTML, { itemProp: models_1.FaqMicrodataValues.QuestionNameProp }, itemTitle),
|
|
17
|
+
react_1.default.createElement(components_1.ToggleArrow, { open: isOpened, size: 16, type: 'vertical', iconType: "navigation", className: b('arrow') })),
|
|
18
|
+
react_1.default.createElement(components_1.Foldable, { isOpened: isOpened },
|
|
19
|
+
react_1.default.createElement("div", { className: b('text'), itemScope: true, itemProp: models_1.FaqMicrodataValues.AnswerProp, itemType: models_1.FaqMicrodataValues.AnswerType, "aria-hidden": !isOpened },
|
|
20
|
+
react_1.default.createElement(components_1.YFMWrapper, { content: itemText, modifiers: {
|
|
21
|
+
constructor: true,
|
|
22
|
+
constructorListStyle: true,
|
|
23
|
+
constructorListStyleDash: listStyle === 'dash',
|
|
24
|
+
}, itemProp: models_1.FaqMicrodataValues.QuestionTextProp }),
|
|
25
|
+
link && react_1.default.createElement(Link_1.default, Object.assign({}, link, { tabIndex: isOpened ? 0 : -1, className: b('link') }))))));
|
|
26
|
+
};
|
|
27
|
+
exports.QuestionBlockItem = QuestionBlockItem;
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
.pc-QuestionsBlock__item-title {
|
|
2
|
-
margin: 0;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
1
|
/* use this for style redefinitions to awoid problems with
|
|
6
2
|
unpredictable css rules order in build */
|
|
7
3
|
.pc-QuestionsBlock__title {
|
|
@@ -10,50 +6,6 @@ unpredictable css rules order in build */
|
|
|
10
6
|
margin-bottom: 32px;
|
|
11
7
|
margin-right: 64px;
|
|
12
8
|
}
|
|
13
|
-
.pc-QuestionsBlock__item {
|
|
14
|
-
padding-bottom: 32px;
|
|
15
|
-
border-bottom: 1px solid var(--g-color-line-generic);
|
|
16
|
-
}
|
|
17
|
-
.pc-QuestionsBlock__item + .pc-QuestionsBlock__item {
|
|
18
|
-
padding-top: 32px;
|
|
19
|
-
}
|
|
20
|
-
.pc-QuestionsBlock__item-title {
|
|
21
|
-
font-size: var(--g-text-header-1-font-size);
|
|
22
|
-
line-height: var(--g-text-header-1-line-height);
|
|
23
|
-
color: var(--pc-text-header-color);
|
|
24
|
-
font-weight: var(--g-text-accent-font-weight);
|
|
25
|
-
position: relative;
|
|
26
|
-
padding-right: 24px;
|
|
27
|
-
cursor: pointer;
|
|
28
|
-
}
|
|
29
|
-
.pc-QuestionsBlock__item-title a {
|
|
30
|
-
outline: none;
|
|
31
|
-
color: var(--g-color-text-link);
|
|
32
|
-
text-decoration: none;
|
|
33
|
-
cursor: pointer;
|
|
34
|
-
}
|
|
35
|
-
.utilityfocus .pc-QuestionsBlock__item-title a:focus {
|
|
36
|
-
outline: 2px solid #ffdb4d;
|
|
37
|
-
}
|
|
38
|
-
.pc-QuestionsBlock__item-title a:hover, .pc-QuestionsBlock__item-title a:active {
|
|
39
|
-
--pc-text-header-color: var(--g-color-text-link-hover);
|
|
40
|
-
color: var(--g-color-text-link-hover);
|
|
41
|
-
}
|
|
42
|
-
.pc-QuestionsBlock__text {
|
|
43
|
-
font-size: var(--g-text-body-2-font-size);
|
|
44
|
-
line-height: var(--g-text-body-2-line-height);
|
|
45
|
-
margin-top: 12px;
|
|
46
|
-
}
|
|
47
|
-
.pc-QuestionsBlock__arrow {
|
|
48
|
-
position: absolute;
|
|
49
|
-
right: 0;
|
|
50
|
-
top: 0;
|
|
51
|
-
color: var(--g-color-text-primary);
|
|
52
|
-
}
|
|
53
|
-
.pc-QuestionsBlock__link {
|
|
54
|
-
font-size: var(--g-text-body-2-font-size);
|
|
55
|
-
line-height: var(--g-text-body-2-line-height);
|
|
56
|
-
}
|
|
57
9
|
@media (max-width: 769px) {
|
|
58
10
|
.pc-QuestionsBlock__title {
|
|
59
11
|
margin-right: 0;
|
|
@@ -2,54 +2,34 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const react_1 = tslib_1.__importStar(require("react"));
|
|
5
|
-
const components_1 = require("../../components");
|
|
6
|
-
const Link_1 = tslib_1.__importDefault(require("../../components/Link/Link"));
|
|
7
5
|
const grid_1 = require("../../grid");
|
|
8
6
|
const sub_blocks_1 = require("../../sub-blocks");
|
|
9
7
|
const utils_1 = require("../../utils");
|
|
8
|
+
const QuestionBlockItem_1 = require("./QuestionBlockItem/QuestionBlockItem");
|
|
9
|
+
const models_1 = require("./models");
|
|
10
10
|
const b = (0, utils_1.block)('QuestionsBlock');
|
|
11
|
-
const FaqMicrodataValues = {
|
|
12
|
-
PageType: 'https://schema.org/FAQPage',
|
|
13
|
-
QuestionType: 'https://schema.org/Question',
|
|
14
|
-
QuestionProp: 'mainEntity',
|
|
15
|
-
QuestionNameProp: 'name',
|
|
16
|
-
QuestionTextProp: 'text',
|
|
17
|
-
AnswerType: 'https://schema.org/Answer',
|
|
18
|
-
AnswerProp: 'acceptedAnswer',
|
|
19
|
-
AnswerTextProp: 'text',
|
|
20
|
-
};
|
|
21
11
|
const QuestionsBlock = (props) => {
|
|
22
12
|
const { title, text, additionalInfo, links, buttons, items } = props;
|
|
23
13
|
const [opened, setOpened] = (0, react_1.useState)([0]);
|
|
24
14
|
const toggleItem = (index) => {
|
|
25
15
|
let newState;
|
|
26
16
|
if (opened.includes(index)) {
|
|
27
|
-
newState = opened.filter((
|
|
17
|
+
newState = opened.filter((itemIndex) => itemIndex !== index);
|
|
28
18
|
}
|
|
29
19
|
else {
|
|
30
20
|
newState = [...opened, index];
|
|
31
21
|
}
|
|
32
22
|
setOpened(newState);
|
|
33
23
|
};
|
|
34
|
-
return (react_1.default.createElement("div", { className: b(), itemScope: true, itemType: FaqMicrodataValues.PageType },
|
|
24
|
+
return (react_1.default.createElement("div", { className: b(), itemScope: true, itemType: models_1.FaqMicrodataValues.PageType },
|
|
35
25
|
react_1.default.createElement(grid_1.Row, null,
|
|
36
26
|
react_1.default.createElement(grid_1.Col, { sizes: { all: 12, md: 4 } },
|
|
37
27
|
react_1.default.createElement("div", { className: b('title') },
|
|
38
28
|
react_1.default.createElement(sub_blocks_1.Content, { title: title, text: text, additionalInfo: additionalInfo, links: links, buttons: buttons, colSizes: { all: 12, md: 12 } }))),
|
|
39
|
-
react_1.default.createElement(grid_1.Col, { sizes: { all: 12, md: 8 } }, items.map(({ title: itemTitle, text: itemText, link, listStyle = 'dash' }, index) => {
|
|
29
|
+
react_1.default.createElement(grid_1.Col, { sizes: { all: 12, md: 8 }, role: 'list' }, items.map(({ title: itemTitle, text: itemText, link, listStyle = 'dash' }, index) => {
|
|
40
30
|
const isOpened = opened.includes(index);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
react_1.default.createElement(components_1.HTML, { itemProp: FaqMicrodataValues.QuestionNameProp }, itemTitle),
|
|
44
|
-
react_1.default.createElement(components_1.ToggleArrow, { open: isOpened, size: 16, type: 'vertical', iconType: "navigation", className: b('arrow') })),
|
|
45
|
-
react_1.default.createElement(components_1.Foldable, { isOpened: isOpened },
|
|
46
|
-
react_1.default.createElement("div", { className: b('text'), itemScope: true, itemProp: FaqMicrodataValues.AnswerProp, itemType: FaqMicrodataValues.AnswerType },
|
|
47
|
-
react_1.default.createElement(components_1.YFMWrapper, { content: itemText, modifiers: {
|
|
48
|
-
constructor: true,
|
|
49
|
-
constructorListStyle: true,
|
|
50
|
-
constructorListStyleDash: listStyle === 'dash',
|
|
51
|
-
}, itemProp: FaqMicrodataValues.QuestionTextProp }),
|
|
52
|
-
link && react_1.default.createElement(Link_1.default, Object.assign({}, link, { className: b('link') }))))));
|
|
31
|
+
const onClick = () => toggleItem(index);
|
|
32
|
+
return (react_1.default.createElement(QuestionBlockItem_1.QuestionBlockItem, { key: itemTitle, title: itemTitle, text: itemText, link: link, listStyle: listStyle, isOpened: isOpened, onClick: onClick }));
|
|
53
33
|
})))));
|
|
54
34
|
};
|
|
55
35
|
exports.default = QuestionsBlock;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const FaqMicrodataValues: {
|
|
2
|
+
readonly PageType: "https://schema.org/FAQPage";
|
|
3
|
+
readonly QuestionType: "https://schema.org/Question";
|
|
4
|
+
readonly QuestionProp: "mainEntity";
|
|
5
|
+
readonly QuestionNameProp: "name";
|
|
6
|
+
readonly QuestionTextProp: "text";
|
|
7
|
+
readonly AnswerType: "https://schema.org/Answer";
|
|
8
|
+
readonly AnswerProp: "acceptedAnswer";
|
|
9
|
+
readonly AnswerTextProp: "text";
|
|
10
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FaqMicrodataValues = void 0;
|
|
4
|
+
exports.FaqMicrodataValues = {
|
|
5
|
+
PageType: 'https://schema.org/FAQPage',
|
|
6
|
+
QuestionType: 'https://schema.org/Question',
|
|
7
|
+
QuestionProp: 'mainEntity',
|
|
8
|
+
QuestionNameProp: 'name',
|
|
9
|
+
QuestionTextProp: 'text',
|
|
10
|
+
AnswerType: 'https://schema.org/Answer',
|
|
11
|
+
AnswerProp: 'acceptedAnswer',
|
|
12
|
+
AnswerTextProp: 'text',
|
|
13
|
+
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { ButtonSize } from '@gravity-ui/uikit';
|
|
3
|
+
import { Tabbable } from '../../models';
|
|
3
4
|
export type Theme = 'default' | 'special';
|
|
4
|
-
export interface BackLinkProps {
|
|
5
|
+
export interface BackLinkProps extends Tabbable {
|
|
5
6
|
url: string;
|
|
6
7
|
title: ReactNode;
|
|
7
8
|
theme?: Theme;
|
|
@@ -9,7 +9,7 @@ const icons_1 = require("../../icons");
|
|
|
9
9
|
const models_1 = require("../../models");
|
|
10
10
|
function BackLink(props) {
|
|
11
11
|
const { history } = (0, react_1.useContext)(locationContext_1.LocationContext);
|
|
12
|
-
const { url, title, theme = 'default', size = 'l', className, shouldHandleBackAction = false, onClick, } = props;
|
|
12
|
+
const { url, title, theme = 'default', size = 'l', className, shouldHandleBackAction = false, onClick, tabIndex, } = props;
|
|
13
13
|
const handleAnalytics = (0, hooks_1.useAnalytics)(models_1.DefaultEventNames.ShareButton, url);
|
|
14
14
|
const backActionHandler = (0, react_1.useCallback)(async () => {
|
|
15
15
|
handleAnalytics();
|
|
@@ -26,7 +26,7 @@ function BackLink(props) {
|
|
|
26
26
|
history.push({ pathname: url });
|
|
27
27
|
}
|
|
28
28
|
}, [handleAnalytics, history, onClick, url]);
|
|
29
|
-
return (react_1.default.createElement(uikit_1.Button, { className: className, view: theme === 'special' ? 'flat-contrast' : 'flat-secondary', size: size, href: shouldHandleBackAction ? undefined : url, onClick: shouldHandleBackAction ? backActionHandler : undefined },
|
|
29
|
+
return (react_1.default.createElement(uikit_1.Button, { className: className, view: theme === 'special' ? 'flat-contrast' : 'flat-secondary', size: size, href: shouldHandleBackAction ? undefined : url, onClick: shouldHandleBackAction ? backActionHandler : undefined, tabIndex: tabIndex },
|
|
30
30
|
react_1.default.createElement(uikit_1.Icon, { data: icons_1.ArrowSidebar, size: 24 }),
|
|
31
31
|
react_1.default.createElement("span", null, title)));
|
|
32
32
|
}
|
|
@@ -41,13 +41,13 @@ const LabelSizeMap = {
|
|
|
41
41
|
};
|
|
42
42
|
const FileLink = (props) => {
|
|
43
43
|
const { hostname } = (0, react_1.useContext)(locationContext_1.LocationContext);
|
|
44
|
-
const { href, text, type = 'vertical', textSize = 'm', className, theme = 'default', onClick, } = props;
|
|
44
|
+
const { href, text, type = 'vertical', textSize = 'm', className, theme = 'default', onClick, tabIndex, } = props;
|
|
45
45
|
const fileExt = getFileExt(href);
|
|
46
46
|
const labelTheme = (FileExtensionThemes[fileExt] || 'unknown');
|
|
47
47
|
const labelSize = LabelSizeMap[textSize];
|
|
48
48
|
return (react_1.default.createElement("div", { className: b({ ext: fileExt, type, size: textSize, theme }, className) },
|
|
49
49
|
react_1.default.createElement(uikit_1.Label, { className: b('file-label'), size: labelSize, theme: labelTheme }, fileExt),
|
|
50
50
|
react_1.default.createElement("div", { className: b('link') },
|
|
51
|
-
react_1.default.createElement("a", Object.assign({ href: href }, (0, utils_1.getLinkProps)(href, hostname)
|
|
51
|
+
react_1.default.createElement("a", Object.assign({ href: href, onClick: onClick, tabIndex: tabIndex }, (0, utils_1.getLinkProps)(href, hostname)), text))));
|
|
52
52
|
};
|
|
53
53
|
exports.default = FileLink;
|
|
@@ -25,7 +25,7 @@ const FullscreenImage = (props) => {
|
|
|
25
25
|
react_1.default.createElement(uikit_1.Icon, { data: icons_1.Fullscreen, width: FULL_SCREEN_ICON_SIZE, height: FULL_SCREEN_ICON_SIZE, className: b('icon') }))),
|
|
26
26
|
isOpened && (react_1.default.createElement(uikit_1.Modal, { open: isOpened, onClose: closeModal, className: b('modal') },
|
|
27
27
|
react_1.default.createElement("div", { className: b('modal-content') },
|
|
28
|
-
react_1.default.createElement("div", { className: b('icon-wrapper', { visible: true }), onClick: closeModal },
|
|
28
|
+
react_1.default.createElement("div", { className: b('icon-wrapper', { visible: true }), onClick: closeModal, "aria-label": (0, i18n_1.default)('close') },
|
|
29
29
|
react_1.default.createElement(uikit_1.Icon, { data: icons_1.PreviewClose, width: CLOSE_ICON_SIZE, height: CLOSE_ICON_SIZE, className: b('icon', { hover: true }) })),
|
|
30
30
|
react_1.default.createElement(Image_1.default, Object.assign({}, props, { className: b('modal-image', modalImageClass) })))))));
|
|
31
31
|
};
|
|
@@ -5,12 +5,14 @@ export interface HTMLProps {
|
|
|
5
5
|
block?: boolean;
|
|
6
6
|
className?: string;
|
|
7
7
|
itemProp?: string;
|
|
8
|
+
id?: string;
|
|
8
9
|
}
|
|
9
|
-
declare const HTML: ({ children, block, className, itemProp }: WithChildren<HTMLProps>) => React.DetailedReactHTMLElement<{
|
|
10
|
+
declare const HTML: ({ children, block, className, itemProp, id }: WithChildren<HTMLProps>) => React.DetailedReactHTMLElement<{
|
|
10
11
|
dangerouslySetInnerHTML: {
|
|
11
12
|
__html: string | (string & React.ReactElement<any, string | React.JSXElementConstructor<any>>) | (string & React.ReactFragment) | (string & React.ReactPortal);
|
|
12
13
|
};
|
|
13
14
|
className: string | undefined;
|
|
14
15
|
itemProp: string | undefined;
|
|
16
|
+
id: string | undefined;
|
|
15
17
|
}, HTMLElement> | null;
|
|
16
18
|
export default HTML;
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
5
|
const utils_1 = require("../../utils");
|
|
6
|
-
const HTML = ({ children, block = false, className, itemProp }) => {
|
|
6
|
+
const HTML = ({ children, block = false, className, itemProp, id }) => {
|
|
7
7
|
if (!children) {
|
|
8
8
|
return null;
|
|
9
9
|
}
|
|
@@ -11,6 +11,7 @@ const HTML = ({ children, block = false, className, itemProp }) => {
|
|
|
11
11
|
dangerouslySetInnerHTML: { __html: children },
|
|
12
12
|
className,
|
|
13
13
|
itemProp,
|
|
14
|
+
id,
|
|
14
15
|
});
|
|
15
16
|
};
|
|
16
17
|
exports.default = HTML;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ClassNameProps, LinkProps, WithChildren } from '../../models';
|
|
2
|
-
export type LinkFullProps = LinkProps & ClassNameProps;
|
|
1
|
+
import { ClassNameProps, LinkProps, Tabbable, WithChildren } from '../../models';
|
|
2
|
+
export type LinkFullProps = LinkProps & ClassNameProps & Tabbable;
|
|
3
3
|
declare const LinkBlock: (props: WithChildren<LinkFullProps>) => JSX.Element;
|
|
4
4
|
export default LinkBlock;
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const react_1 = tslib_1.__importStar(require("react"));
|
|
5
5
|
const uikit_1 = require("@gravity-ui/uikit");
|
|
6
|
-
const localeContext_1 = require("../../context/localeContext
|
|
7
|
-
const locationContext_1 = require("../../context/locationContext
|
|
6
|
+
const localeContext_1 = require("../../context/localeContext");
|
|
7
|
+
const locationContext_1 = require("../../context/locationContext");
|
|
8
8
|
const hooks_1 = require("../../hooks");
|
|
9
9
|
const useMetrika_1 = require("../../hooks/useMetrika");
|
|
10
10
|
const icons_1 = require("../../icons");
|
|
@@ -27,7 +27,7 @@ function getArrowSize(size) {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
const LinkBlock = (props) => {
|
|
30
|
-
const { text, url, arrow, metrikaGoals, pixelEvents, analyticsEvents, theme = 'file-link', colorTheme = 'light', textSize = 'm', className, target, children, } = props;
|
|
30
|
+
const { text, url, arrow, metrikaGoals, pixelEvents, analyticsEvents, theme = 'file-link', colorTheme = 'light', textSize = 'm', className, target, children, tabIndex, } = props;
|
|
31
31
|
const handleMetrika = (0, useMetrika_1.useMetrika)();
|
|
32
32
|
const handleAnalytics = (0, hooks_1.useAnalytics)(models_1.DefaultEventNames.Link, url);
|
|
33
33
|
const { hostname } = (0, react_1.useContext)(locationContext_1.LocationContext);
|
|
@@ -41,14 +41,14 @@ const LinkBlock = (props) => {
|
|
|
41
41
|
const getLinkByType = () => {
|
|
42
42
|
switch (theme) {
|
|
43
43
|
case 'back':
|
|
44
|
-
return react_1.default.createElement(BackLink_1.default, { title: children || text, url: href, onClick: onClick });
|
|
44
|
+
return (react_1.default.createElement(BackLink_1.default, { title: children || text, url: href, onClick: onClick, tabIndex: tabIndex }));
|
|
45
45
|
case 'file-link':
|
|
46
46
|
case 'underline':
|
|
47
|
-
return (react_1.default.createElement(FileLink_1.default, { text: children || text, href: href, type: "horizontal", textSize: textSize, onClick: onClick }));
|
|
47
|
+
return (react_1.default.createElement(FileLink_1.default, { text: children || text, href: href, type: "horizontal", textSize: textSize, onClick: onClick, tabIndex: tabIndex }));
|
|
48
48
|
case 'normal': {
|
|
49
49
|
const linkProps = (0, utils_1.getLinkProps)(url, hostname, target);
|
|
50
50
|
const content = children || text;
|
|
51
|
-
return (react_1.default.createElement("a", Object.assign({ className: b('link', { theme: colorTheme, 'has-arrow': arrow }), href: href, onClick: onClick }, linkProps), arrow ? (react_1.default.createElement(react_1.Fragment, null,
|
|
51
|
+
return (react_1.default.createElement("a", Object.assign({ className: b('link', { theme: colorTheme, 'has-arrow': arrow }), href: href, onClick: onClick, tabIndex: tabIndex }, linkProps), arrow ? (react_1.default.createElement(react_1.Fragment, null,
|
|
52
52
|
react_1.default.createElement("span", { className: b('content') }, content),
|
|
53
53
|
WORD_JOINER_SYM,
|
|
54
54
|
react_1.default.createElement(uikit_1.Icon, { className: b('arrow'), data: icons_1.Chevron, size: getArrowSize(textSize) }))) : (content)));
|
|
@@ -11,8 +11,7 @@ const Image_1 = tslib_1.__importDefault(require("./Image/Image"));
|
|
|
11
11
|
const Video_1 = tslib_1.__importDefault(require("./Video/Video"));
|
|
12
12
|
const b = (0, utils_1.block)('Media');
|
|
13
13
|
const Media = (props) => {
|
|
14
|
-
const { image, video, youtube, dataLens, color, height, previewImg, parallax = false, metrika, fullscreen, analyticsEvents, } = props;
|
|
15
|
-
const { className, imageClassName, videoClassName, youtubeClassName, playVideo = true, isBackground, playButton, customBarControlsClassName, } = props;
|
|
14
|
+
const { image, video, youtube, dataLens, color, height, previewImg, parallax = false, metrika, fullscreen, analyticsEvents, className, imageClassName, videoClassName, youtubeClassName, playVideo = true, isBackground, playButton, customBarControlsClassName, } = props;
|
|
16
15
|
const [hasVideoFallback, setHasVideoFallback] = (0, react_1.useState)(false);
|
|
17
16
|
const content = (0, react_1.useMemo)(() => {
|
|
18
17
|
let result = [];
|
|
@@ -30,8 +30,8 @@ const Video = (props) => {
|
|
|
30
30
|
}
|
|
31
31
|
}, [playVideo, video, setHasVideoFallback]);
|
|
32
32
|
const reactPlayerBlock = (0, react_1.useMemo)(() => {
|
|
33
|
-
const { src, loop, controls, muted, autoplay = true, elapsedTime, playButton } = video;
|
|
34
|
-
return (react_1.default.createElement(ReactPlayer_1.default, { className: b('react-player', videoClassName), src: src, previewImgUrl: previewImg, loop: Boolean(loop), controls: controls, muted: muted, autoplay: autoplay && playVideo, elapsedTime: elapsedTime, playButton: playButton || commonPlayButton, customBarControlsClassName: customBarControlsClassName, metrika: metrika, analyticsEvents: analyticsEvents, height: height }));
|
|
33
|
+
const { src, loop, controls, muted, autoplay = true, elapsedTime, playButton, ariaLabel, } = video;
|
|
34
|
+
return (react_1.default.createElement(ReactPlayer_1.default, { className: b('react-player', videoClassName), src: src, previewImgUrl: previewImg, loop: Boolean(loop), controls: controls, muted: muted, autoplay: autoplay && playVideo, elapsedTime: elapsedTime, playButton: playButton || commonPlayButton, customBarControlsClassName: customBarControlsClassName, metrika: metrika, analyticsEvents: analyticsEvents, height: height, ariaLabel: ariaLabel }));
|
|
35
35
|
}, [
|
|
36
36
|
video,
|
|
37
37
|
height,
|
|
@@ -48,7 +48,7 @@ const Video = (props) => {
|
|
|
48
48
|
react_1.default.createElement("video", { disablePictureInPicture: true, playsInline: true,
|
|
49
49
|
// @ts-ignore
|
|
50
50
|
// eslint-disable-next-line react/no-unknown-property
|
|
51
|
-
pip: "false", className: b('item'), ref: ref, preload: "metadata", muted: true }, (0, utils_2.getVideoTypesWithPriority)(video.src).map(({ src, type }, index) => (react_1.default.createElement("source", { key: index, src: src, type: type })))))) : null;
|
|
51
|
+
pip: "false", className: b('item'), ref: ref, preload: "metadata", muted: true, "aria-label": video.ariaLabel }, (0, utils_2.getVideoTypesWithPriority)(video.src).map(({ src, type }, index) => (react_1.default.createElement("source", { key: index, src: src, type: type })))))) : null;
|
|
52
52
|
}, [video, videoClassName, hasVideoFallback, height]);
|
|
53
53
|
switch (video.type) {
|
|
54
54
|
case models_1.MediaVideoType.Player:
|
|
@@ -14,6 +14,7 @@ const icons_1 = require("../../icons");
|
|
|
14
14
|
const models_1 = require("../../models");
|
|
15
15
|
const utils_1 = require("../../utils");
|
|
16
16
|
const CustomBarControls_1 = tslib_1.__importDefault(require("./CustomBarControls"));
|
|
17
|
+
const i18n_1 = tslib_1.__importDefault(require("./i18n"));
|
|
17
18
|
const utils_2 = require("./utils");
|
|
18
19
|
const b = (0, utils_1.block)('ReactPlayer');
|
|
19
20
|
const FPS = 60;
|
|
@@ -21,7 +22,7 @@ const FPS = 60;
|
|
|
21
22
|
exports.ReactPlayerBlock = react_1.default.forwardRef((props, originRef) => {
|
|
22
23
|
const isMobile = (0, react_1.useContext)(mobileContext_1.MobileContext);
|
|
23
24
|
const { metrika } = (0, react_1.useContext)(metrikaContext_1.MetrikaContext);
|
|
24
|
-
const { src, previewImgUrl, loop = false, controls = models_1.MediaVideoControlsType.Default, muted: initiallyMuted = false, elapsedTime, playButton, className, customBarControlsClassName, showPreview, onClickPreview, metrika: videoMetrika, analyticsEvents, height, } = props;
|
|
25
|
+
const { src, previewImgUrl, loop = false, controls = models_1.MediaVideoControlsType.Default, muted: initiallyMuted = false, elapsedTime, playButton, className, customBarControlsClassName, showPreview, onClickPreview, metrika: videoMetrika, analyticsEvents, height, ariaLabel, } = props;
|
|
25
26
|
const { type = models_1.PlayButtonType.Default, theme = models_1.PlayButtonThemes.Blue, text, className: buttonClassName, } = playButton || {};
|
|
26
27
|
const autoPlay = Boolean(!isMobile && !previewImgUrl && props.autoplay);
|
|
27
28
|
const mute = initiallyMuted || autoPlay;
|
|
@@ -105,7 +106,7 @@ exports.ReactPlayerBlock = react_1.default.forwardRef((props, originRef) => {
|
|
|
105
106
|
playButtonContent = react_1.default.createElement(uikit_1.Icon, { className: b('icon'), data: icons_1.PlayVideo, size: 24 });
|
|
106
107
|
break;
|
|
107
108
|
}
|
|
108
|
-
return (react_1.default.createElement("button", { className: b('button', { theme, text: Boolean(text) }, buttonClassName) }, playButtonContent));
|
|
109
|
+
return (react_1.default.createElement("button", { className: b('button', { theme, text: Boolean(text) }, buttonClassName), "aria-label": (0, i18n_1.default)('play') }, playButtonContent));
|
|
109
110
|
}, [type, theme, text, buttonClassName]);
|
|
110
111
|
const changeMute = (0, react_1.useCallback)((isMuted) => {
|
|
111
112
|
if (isMuted && playerRef) {
|
|
@@ -195,7 +196,7 @@ exports.ReactPlayerBlock = react_1.default.forwardRef((props, originRef) => {
|
|
|
195
196
|
}, elapsedTimePercent: elapsedTimePercent }));
|
|
196
197
|
}, [controls, isPlaying, customBarControlsClassName, changeMute]);
|
|
197
198
|
return (react_1.default.createElement("div", { className: b({ wrapper: !currentHeight }, className), ref: ref, onClick: handleClick },
|
|
198
|
-
react_1.default.createElement(react_player_1.default, { className: b('player'), url: videoSrc, muted: muted, controls: controls === models_1.MediaVideoControlsType.Default, height: currentHeight || '100%', width: width || '100%', light: previewImgUrl, playing: isPlaying, playIcon: playIcon, progressInterval: FPS, onClickPreview: handleClickPreview, onStart: onStart, onReady: setPlayerRef, onPlay: onPlay, onPause: onPause, onProgress: onProgress, onEnded: onEnded }),
|
|
199
|
+
react_1.default.createElement(react_player_1.default, { className: b('player'), url: videoSrc, muted: muted, controls: controls === models_1.MediaVideoControlsType.Default, height: currentHeight || '100%', width: width || '100%', light: previewImgUrl, playing: isPlaying, playIcon: playIcon, progressInterval: FPS, onClickPreview: handleClickPreview, onStart: onStart, onReady: setPlayerRef, onPlay: onPlay, onPause: onPause, onProgress: onProgress, onEnded: onEnded, "aria-label": ariaLabel }),
|
|
199
200
|
renderCustomBarControls(muted, playedPercent)));
|
|
200
201
|
});
|
|
201
202
|
function getHeight(width) {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const registerKeyset_1 = require("../../../utils/registerKeyset");
|
|
5
|
+
const en_json_1 = tslib_1.__importDefault(require("./en.json"));
|
|
6
|
+
const ru_json_1 = tslib_1.__importDefault(require("./ru.json"));
|
|
7
|
+
const COMPONENT = 'ReactPlayer';
|
|
8
|
+
exports.default = (0, registerKeyset_1.registerKeyset)({ en: en_json_1.default, ru: ru_json_1.default }, COMPONENT);
|
|
@@ -4,28 +4,34 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
5
|
const __1 = require("../");
|
|
6
6
|
const utils_1 = require("../../utils");
|
|
7
|
+
function getMarkerId(index) {
|
|
8
|
+
if (isNaN(index)) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return `marker-${index}`;
|
|
12
|
+
}
|
|
7
13
|
const b = (0, utils_1.block)('table');
|
|
8
14
|
class Table extends react_1.default.Component {
|
|
9
15
|
render() {
|
|
10
|
-
const { content, legend, marker = 'disk', className } = this.props;
|
|
16
|
+
const { content, legend, marker = 'disk', className, caption } = this.props;
|
|
11
17
|
if (!content || !content.length || !content[0].length) {
|
|
12
18
|
return null;
|
|
13
19
|
}
|
|
14
|
-
return (react_1.default.createElement("div", { className: b(null, className) },
|
|
20
|
+
return (react_1.default.createElement("div", { className: b(null, className), role: 'table', "aria-label": caption },
|
|
15
21
|
this.renderTable(content, marker, legend),
|
|
16
22
|
legend && this.renderLegend(legend, marker)));
|
|
17
23
|
}
|
|
18
24
|
renderTable(content, marker, legend) {
|
|
19
25
|
const justify = this.getDefaultJustify(content, this.props.justify);
|
|
20
|
-
return (react_1.default.createElement("div", { className: b('table') }, content.map((row, i) => (react_1.default.createElement("div", { key: i, className: b('row') }, row.map((cell, j) => (react_1.default.createElement("div", { key: j, className: b('cell', { justify: justify[j] }) }, legend && i && j ? (this.renderMarker(marker, cell)) : (react_1.default.createElement(__1.HTML, null, cell))))))))));
|
|
26
|
+
return (react_1.default.createElement("div", { className: b('table'), role: 'rowgroup' }, content.map((row, i) => (react_1.default.createElement("div", { key: i, className: b('row'), role: 'row' }, row.map((cell, j) => (react_1.default.createElement("div", { key: j, className: b('cell', { justify: justify[j] }), role: 'cell' }, legend && i && j ? (this.renderMarker(marker, cell)) : (react_1.default.createElement(__1.HTML, null, cell))))))))));
|
|
21
27
|
}
|
|
22
28
|
renderMarker(type, cell) {
|
|
23
|
-
return react_1.default.createElement("div", { className: b('marker', { type, index: String(cell) }) });
|
|
29
|
+
return (react_1.default.createElement("div", { "aria-labelledby": getMarkerId(Number(cell)), className: b('marker', { type, index: String(cell) }) }));
|
|
24
30
|
}
|
|
25
31
|
renderLegend(legend, marker) {
|
|
26
32
|
return (react_1.default.createElement("div", { className: b('legend') }, legend.map((item, index) => (react_1.default.createElement("div", { key: item, className: b('legend-item') },
|
|
27
33
|
this.renderMarker(marker, String(index)),
|
|
28
|
-
react_1.default.createElement(__1.YFMWrapper, { className: b('legent-item-text'), content: item, modifiers: { constructor: true } }))))));
|
|
34
|
+
react_1.default.createElement(__1.YFMWrapper, { className: b('legent-item-text'), content: item, modifiers: { constructor: true }, id: getMarkerId(index) }))))));
|
|
29
35
|
}
|
|
30
36
|
getDefaultJustify(content, justify) {
|
|
31
37
|
return justify || new Array(content[0].length).fill('center');
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ClassNameProps, Modifiers } from '../../models';
|
|
2
|
-
export interface YFMWrapperProps {
|
|
3
|
-
className?: string;
|
|
2
|
+
export interface YFMWrapperProps extends ClassNameProps {
|
|
4
3
|
content: string;
|
|
5
4
|
modifiers?: Modifiers;
|
|
6
5
|
itemProp?: string;
|
|
6
|
+
id?: string;
|
|
7
7
|
}
|
|
8
|
-
declare const YFMWrapper: ({ content, modifiers, className, itemProp, }: YFMWrapperProps
|
|
8
|
+
declare const YFMWrapper: ({ content, modifiers, className, itemProp, id }: YFMWrapperProps) => JSX.Element;
|
|
9
9
|
export default YFMWrapper;
|
|
@@ -8,5 +8,5 @@ const bem_cn_lite_1 = tslib_1.__importDefault(require("bem-cn-lite"));
|
|
|
8
8
|
const snakecase_keys_1 = tslib_1.__importDefault(require("snakecase-keys"));
|
|
9
9
|
const components_1 = require("../../components");
|
|
10
10
|
const yfm = (0, bem_cn_lite_1.default)('yfm');
|
|
11
|
-
const YFMWrapper = ({ content, modifiers, className, itemProp, }) => (react_1.default.createElement(components_1.HTML, { className: yfm(modifiers ? (0, snakecase_keys_1.default)(modifiers) : {}, className), itemProp: itemProp }, content));
|
|
11
|
+
const YFMWrapper = ({ content, modifiers, className, itemProp, id }) => (react_1.default.createElement(components_1.HTML, { className: yfm(modifiers ? (0, snakecase_keys_1.default)(modifiers) : {}, className), itemProp: itemProp, id: id }, content));
|
|
12
12
|
exports.default = YFMWrapper;
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HEADER_HEIGHT = exports.
|
|
3
|
+
exports.HEADER_HEIGHT = exports.UIKIT_ROOT_CLASS = exports.DEFAULT_THEME = void 0;
|
|
4
4
|
const models_1 = require("../models");
|
|
5
5
|
exports.DEFAULT_THEME = models_1.Theme.Light;
|
|
6
6
|
exports.UIKIT_ROOT_CLASS = 'g-root';
|
|
7
|
-
exports.KEY = {
|
|
8
|
-
ENTER: 'Enter',
|
|
9
|
-
TAB: 'Tab',
|
|
10
|
-
};
|
|
11
7
|
exports.HEADER_HEIGHT = 64;
|