@gravity-ui/page-constructor 4.39.0 → 4.40.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/build/cjs/blocks/Icons/Icons.css +4 -0
- package/build/cjs/blocks/Icons/Icons.d.ts +1 -1
- package/build/cjs/blocks/Icons/Icons.js +2 -2
- package/build/cjs/components/ContentList/ContentList.css +4 -0
- package/build/cjs/components/ContentList/ContentList.js +1 -1
- package/build/cjs/components/Media/Image/Image.js +1 -1
- package/build/cjs/constructor-items.d.ts +1 -1
- package/build/cjs/containers/PageConstructor/PageConstructor.js +2 -2
- package/build/cjs/models/constructor-items/blocks.d.ts +1 -0
- package/build/cjs/text-transform/config.js +1 -1
- package/build/esm/blocks/Icons/Icons.css +4 -0
- package/build/esm/blocks/Icons/Icons.d.ts +1 -1
- package/build/esm/blocks/Icons/Icons.js +2 -2
- package/build/esm/components/ContentList/ContentList.css +4 -0
- package/build/esm/components/ContentList/ContentList.js +1 -1
- package/build/esm/components/Media/Image/Image.js +1 -1
- package/build/esm/constructor-items.d.ts +1 -1
- package/build/esm/containers/PageConstructor/PageConstructor.js +2 -2
- package/build/esm/models/constructor-items/blocks.d.ts +1 -0
- package/build/esm/text-transform/config.js +1 -1
- package/package.json +1 -1
- package/server/models/constructor-items/blocks.d.ts +1 -0
- package/server/text-transform/config.js +1 -1
- package/widget/index.js +1 -1
|
@@ -10,14 +10,14 @@ const b = (0, utils_1.block)('icons-block');
|
|
|
10
10
|
const getItemContent = (item) => (react_1.default.createElement(react_1.Fragment, null,
|
|
11
11
|
react_1.default.createElement(components_1.Image, { className: b('image'), src: item.src }),
|
|
12
12
|
react_1.default.createElement("p", { className: b('text') }, item.text)));
|
|
13
|
-
const Icons = ({ title, description, size = 's', items }) => {
|
|
13
|
+
const Icons = ({ title, description, size = 's', colSizes = { all: 12 }, items }) => {
|
|
14
14
|
const { hostname } = (0, react_1.useContext)(locationContext_1.LocationContext);
|
|
15
15
|
const handleAnalytics = (0, hooks_1.useAnalytics)();
|
|
16
16
|
const onClick = (0, react_1.useCallback)(({ analyticsEvents, url }) => {
|
|
17
17
|
handleAnalytics(analyticsEvents, { url });
|
|
18
18
|
}, [handleAnalytics]);
|
|
19
19
|
return (react_1.default.createElement("div", { className: b({ size }) },
|
|
20
|
-
(title || description) && (react_1.default.createElement(components_1.Title, { className: b('header'), title: title, subtitle: description, colSizes:
|
|
20
|
+
(title || description) && (react_1.default.createElement(components_1.Title, { className: b('header'), title: title, subtitle: description, colSizes: colSizes })),
|
|
21
21
|
items.map((item) => {
|
|
22
22
|
const itemContent = getItemContent(item);
|
|
23
23
|
const { url, text } = item;
|
|
@@ -25,7 +25,7 @@ const ContentList = ({ list, size = 'l', qa }) => {
|
|
|
25
25
|
react_1.default.createElement(ContentListItemIcon_1.default, { icon: icon, className: b('icon', { without_title: !title }), qa: qaAttributes.image }),
|
|
26
26
|
react_1.default.createElement("div", null,
|
|
27
27
|
title &&
|
|
28
|
-
react_1.default.createElement(getHeadingLevel(size), { className: b('title'), 'data-qa': qaAttributes.title }, title),
|
|
28
|
+
react_1.default.createElement(getHeadingLevel(size), { className: b('title'), 'data-qa': qaAttributes.title }, react_1.default.createElement(YFMWrapper_1.default, { content: title, modifiers: { constructor: true } })),
|
|
29
29
|
text && (react_1.default.createElement(YFMWrapper_1.default, { className: b('text'), content: text, modifiers: { constructor: true }, qa: qaAttributes.text })))));
|
|
30
30
|
})));
|
|
31
31
|
};
|
|
@@ -53,7 +53,7 @@ const Image = (props) => {
|
|
|
53
53
|
};
|
|
54
54
|
const imageSlider = (imageArray) => {
|
|
55
55
|
const fullscreenItem = fullscreen === undefined || fullscreen;
|
|
56
|
-
return (react_1.default.createElement(Slider_1.default, { slidesToShow: 1, type: models_1.SliderType.MediaCard }, imageArray.map((item, index) => (react_1.default.createElement(react_1.Fragment, { key: index }, fullscreenItem ? renderFullscreenImage(item) : imageOnly(item))))));
|
|
56
|
+
return (react_1.default.createElement(Slider_1.default, { slidesToShow: 1, type: models_1.SliderType.MediaCard, animated: parallax }, imageArray.map((item, index) => (react_1.default.createElement(react_1.Fragment, { key: index }, fullscreenItem ? renderFullscreenImage(item) : imageOnly(item))))));
|
|
57
57
|
};
|
|
58
58
|
if (Array.isArray(image)) {
|
|
59
59
|
return imageSlider(image);
|
|
@@ -10,7 +10,7 @@ export declare const blockMap: {
|
|
|
10
10
|
"table-block": (props: import("./models").TableBlockProps) => JSX.Element;
|
|
11
11
|
"tabs-block": ({ items, title, description, animated, tabsColSizes, centered, direction, contentSize, }: import("./models").TabsBlockProps) => JSX.Element;
|
|
12
12
|
"header-block": (props: import("./models").WithChildren<import("./models").HeaderBlockProps & import("./models").ClassNameProps>) => JSX.Element;
|
|
13
|
-
"icons-block": ({ title, description, size, items }: import("./models").IconsBlockProps) => JSX.Element;
|
|
13
|
+
"icons-block": ({ title, description, size, colSizes, items }: import("./models").IconsBlockProps) => JSX.Element;
|
|
14
14
|
"header-slider-block": ({ items, arrows, ...props }: import("./models").HeaderSliderBlockProps) => JSX.Element;
|
|
15
15
|
"card-layout-block": import("react").FC<import("./blocks/CardLayout/CardLayout").CardLayoutBlockProps>;
|
|
16
16
|
"content-layout-block": (props: import("./models").ContentLayoutBlockProps) => JSX.Element;
|
|
@@ -19,7 +19,7 @@ const ConstructorItem_1 = require("./components/ConstructorItem");
|
|
|
19
19
|
const ConstructorRow_1 = require("./components/ConstructorRow");
|
|
20
20
|
const b = (0, utils_1.block)('page-constructor');
|
|
21
21
|
const Constructor = (props) => {
|
|
22
|
-
const { content: { blocks = [], background
|
|
22
|
+
const { content: { blocks = [], background } = {}, renderMenu, shouldRenderBlock, navigation, custom, } = props;
|
|
23
23
|
const { context } = (0, react_1.useMemo)(() => ({
|
|
24
24
|
context: {
|
|
25
25
|
blockTypes: [...models_1.BlockTypes, ...(0, utils_1.getCustomTypes)(['blocks', 'headers'], custom)],
|
|
@@ -43,7 +43,7 @@ const Constructor = (props) => {
|
|
|
43
43
|
const restBlocks = (0, utils_1.getOrderedBlocks)(blocks, context.headerBlockTypes);
|
|
44
44
|
const themedBackground = (0, utils_1.getThemedValue)(background, theme);
|
|
45
45
|
return (react_1.default.createElement(innerContext_1.InnerContext.Provider, { value: context },
|
|
46
|
-
react_1.default.createElement(RootCn_1.default,
|
|
46
|
+
react_1.default.createElement(RootCn_1.default, { className: b() },
|
|
47
47
|
react_1.default.createElement("div", { className: b('wrapper') },
|
|
48
48
|
themedBackground && (react_1.default.createElement(BackgroundMedia_1.default, Object.assign({}, themedBackground, { className: b('background') }))),
|
|
49
49
|
react_1.default.createElement(Layout_1.default, { navigation: navigation },
|
|
@@ -280,7 +280,7 @@ exports.config = {
|
|
|
280
280
|
{
|
|
281
281
|
fields: ['list'],
|
|
282
282
|
transformer: common_1.yfmTransformer,
|
|
283
|
-
parser: (0, common_1.createItemsParser)(['text']),
|
|
283
|
+
parser: (0, common_1.createItemsParser)(['title', 'text']),
|
|
284
284
|
},
|
|
285
285
|
],
|
|
286
286
|
[models_1.BlockType.InfoBlock]: [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { IconsBlockProps } from '../../models';
|
|
2
2
|
import './Icons.css';
|
|
3
|
-
declare const Icons: ({ title, description, size, items }: IconsBlockProps) => JSX.Element;
|
|
3
|
+
declare const Icons: ({ title, description, size, colSizes, items }: IconsBlockProps) => JSX.Element;
|
|
4
4
|
export default Icons;
|
|
@@ -8,14 +8,14 @@ const b = block('icons-block');
|
|
|
8
8
|
const getItemContent = (item) => (React.createElement(Fragment, null,
|
|
9
9
|
React.createElement(Image, { className: b('image'), src: item.src }),
|
|
10
10
|
React.createElement("p", { className: b('text') }, item.text)));
|
|
11
|
-
const Icons = ({ title, description, size = 's', items }) => {
|
|
11
|
+
const Icons = ({ title, description, size = 's', colSizes = { all: 12 }, items }) => {
|
|
12
12
|
const { hostname } = useContext(LocationContext);
|
|
13
13
|
const handleAnalytics = useAnalytics();
|
|
14
14
|
const onClick = useCallback(({ analyticsEvents, url }) => {
|
|
15
15
|
handleAnalytics(analyticsEvents, { url });
|
|
16
16
|
}, [handleAnalytics]);
|
|
17
17
|
return (React.createElement("div", { className: b({ size }) },
|
|
18
|
-
(title || description) && (React.createElement(Title, { className: b('header'), title: title, subtitle: description, colSizes:
|
|
18
|
+
(title || description) && (React.createElement(Title, { className: b('header'), title: title, subtitle: description, colSizes: colSizes })),
|
|
19
19
|
items.map((item) => {
|
|
20
20
|
const itemContent = getItemContent(item);
|
|
21
21
|
const { url, text } = item;
|
|
@@ -23,7 +23,7 @@ const ContentList = ({ list, size = 'l', qa }) => {
|
|
|
23
23
|
React.createElement(ItemIcon, { icon: icon, className: b('icon', { without_title: !title }), qa: qaAttributes.image }),
|
|
24
24
|
React.createElement("div", null,
|
|
25
25
|
title &&
|
|
26
|
-
React.createElement(getHeadingLevel(size), { className: b('title'), 'data-qa': qaAttributes.title }, title),
|
|
26
|
+
React.createElement(getHeadingLevel(size), { className: b('title'), 'data-qa': qaAttributes.title }, React.createElement(YFMWrapper, { content: title, modifiers: { constructor: true } })),
|
|
27
27
|
text && (React.createElement(YFMWrapper, { className: b('text'), content: text, modifiers: { constructor: true }, qa: qaAttributes.text })))));
|
|
28
28
|
})));
|
|
29
29
|
};
|
|
@@ -50,7 +50,7 @@ const Image = (props) => {
|
|
|
50
50
|
};
|
|
51
51
|
const imageSlider = (imageArray) => {
|
|
52
52
|
const fullscreenItem = fullscreen === undefined || fullscreen;
|
|
53
|
-
return (React.createElement(SliderBlock, { slidesToShow: 1, type: SliderType.MediaCard }, imageArray.map((item, index) => (React.createElement(Fragment, { key: index }, fullscreenItem ? renderFullscreenImage(item) : imageOnly(item))))));
|
|
53
|
+
return (React.createElement(SliderBlock, { slidesToShow: 1, type: SliderType.MediaCard, animated: parallax }, imageArray.map((item, index) => (React.createElement(Fragment, { key: index }, fullscreenItem ? renderFullscreenImage(item) : imageOnly(item))))));
|
|
54
54
|
};
|
|
55
55
|
if (Array.isArray(image)) {
|
|
56
56
|
return imageSlider(image);
|
|
@@ -10,7 +10,7 @@ export declare const blockMap: {
|
|
|
10
10
|
"table-block": (props: import("./models").TableBlockProps) => JSX.Element;
|
|
11
11
|
"tabs-block": ({ items, title, description, animated, tabsColSizes, centered, direction, contentSize, }: import("./models").TabsBlockProps) => JSX.Element;
|
|
12
12
|
"header-block": (props: import("./models").WithChildren<import("./models").HeaderBlockProps & import("./models").ClassNameProps>) => JSX.Element;
|
|
13
|
-
"icons-block": ({ title, description, size, items }: import("./models").IconsBlockProps) => JSX.Element;
|
|
13
|
+
"icons-block": ({ title, description, size, colSizes, items }: import("./models").IconsBlockProps) => JSX.Element;
|
|
14
14
|
"header-slider-block": ({ items, arrows, ...props }: import("./models").HeaderSliderBlockProps) => JSX.Element;
|
|
15
15
|
"card-layout-block": import("react").FC<import("./blocks/CardLayout/CardLayout").CardLayoutBlockProps>;
|
|
16
16
|
"content-layout-block": (props: import("./models").ContentLayoutBlockProps) => JSX.Element;
|
|
@@ -17,7 +17,7 @@ import { ConstructorRow } from './components/ConstructorRow';
|
|
|
17
17
|
import './PageConstructor.css';
|
|
18
18
|
const b = cnBlock('page-constructor');
|
|
19
19
|
export const Constructor = (props) => {
|
|
20
|
-
const { content: { blocks = [], background
|
|
20
|
+
const { content: { blocks = [], background } = {}, renderMenu, shouldRenderBlock, navigation, custom, } = props;
|
|
21
21
|
const { context } = useMemo(() => ({
|
|
22
22
|
context: {
|
|
23
23
|
blockTypes: [...BlockTypes, ...getCustomTypes(['blocks', 'headers'], custom)],
|
|
@@ -41,7 +41,7 @@ export const Constructor = (props) => {
|
|
|
41
41
|
const restBlocks = getOrderedBlocks(blocks, context.headerBlockTypes);
|
|
42
42
|
const themedBackground = getThemedValue(background, theme);
|
|
43
43
|
return (React.createElement(InnerContext.Provider, { value: context },
|
|
44
|
-
React.createElement(RootCn,
|
|
44
|
+
React.createElement(RootCn, { className: b() },
|
|
45
45
|
React.createElement("div", { className: b('wrapper') },
|
|
46
46
|
themedBackground && (React.createElement(BackgroundMedia, Object.assign({}, themedBackground, { className: b('background') }))),
|
|
47
47
|
React.createElement(Layout, { navigation: navigation },
|
package/package.json
CHANGED
|
@@ -290,7 +290,7 @@ exports.config = {
|
|
|
290
290
|
{
|
|
291
291
|
fields: ['list'],
|
|
292
292
|
transformer: common_1.yfmTransformer,
|
|
293
|
-
parser: (0, common_1.createItemsParser)(['text']),
|
|
293
|
+
parser: (0, common_1.createItemsParser)(['title', 'text']),
|
|
294
294
|
},
|
|
295
295
|
],
|
|
296
296
|
[models_1.BlockType.InfoBlock]: [
|