@gravity-ui/page-constructor 2.21.0 → 2.22.0-alpha.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.
Files changed (77) hide show
  1. package/README.md +1 -1
  2. package/build/cjs/blocks/Header/schema.d.ts +18 -0
  3. package/build/cjs/blocks/HeaderSlider/schema.d.ts +6 -0
  4. package/build/cjs/blocks/Media/schema.d.ts +12 -0
  5. package/build/cjs/blocks/PromoFeaturesBlock/schema.d.ts +6 -0
  6. package/build/cjs/blocks/Security/schema.d.ts +6 -0
  7. package/build/cjs/blocks/Tabs/schema.d.ts +6 -0
  8. package/build/cjs/components/FullscreenImage/FullscreenImage.d.ts +2 -2
  9. package/build/cjs/components/FullscreenImage/FullscreenImage.js +5 -5
  10. package/build/cjs/components/FullscreenMedia/FullscreenMedia.d.ts +13 -0
  11. package/build/cjs/components/FullscreenMedia/{FullScreenMedia.js → FullscreenMedia.js} +3 -3
  12. package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.d.ts +4 -0
  13. package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.js +10 -0
  14. package/build/cjs/components/Media/Image/Image.d.ts +1 -0
  15. package/build/cjs/components/Media/Image/Image.js +10 -3
  16. package/build/cjs/components/Media/Media.js +25 -4
  17. package/build/cjs/components/Media/Video/Video.d.ts +1 -1
  18. package/build/cjs/components/VideoBlock/VideoBlock.d.ts +4 -0
  19. package/build/cjs/components/VideoBlock/VideoBlock.js +3 -3
  20. package/build/cjs/components/index.d.ts +1 -1
  21. package/build/cjs/components/index.js +2 -2
  22. package/build/cjs/constructor-items.d.ts +1 -1
  23. package/build/cjs/grid/Col/Col.d.ts +1 -1
  24. package/build/cjs/models/constructor-items/common.d.ts +4 -0
  25. package/build/cjs/models/constructor-items/sub-blocks.d.ts +4 -0
  26. package/build/cjs/schema/validators/common.d.ts +6 -0
  27. package/build/cjs/schema/validators/common.js +6 -0
  28. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  29. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +4 -4
  30. package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +9 -0
  31. package/build/cjs/sub-blocks/LayoutItem/schema.js +2 -0
  32. package/build/cjs/sub-blocks/LayoutItem/utils.d.ts +2 -2
  33. package/build/cjs/sub-blocks/LayoutItem/utils.js +5 -5
  34. package/build/cjs/sub-blocks/MediaCard/schema.d.ts +6 -0
  35. package/build/esm/blocks/Header/schema.d.ts +18 -0
  36. package/build/esm/blocks/HeaderSlider/schema.d.ts +6 -0
  37. package/build/esm/blocks/Media/schema.d.ts +12 -0
  38. package/build/esm/blocks/PromoFeaturesBlock/schema.d.ts +6 -0
  39. package/build/esm/blocks/Security/schema.d.ts +6 -0
  40. package/build/esm/blocks/Tabs/Tabs.js +2 -2
  41. package/build/esm/blocks/Tabs/schema.d.ts +6 -0
  42. package/build/esm/components/FullscreenImage/FullscreenImage.d.ts +3 -3
  43. package/build/esm/components/FullscreenImage/FullscreenImage.js +6 -6
  44. package/build/esm/components/FullscreenMedia/FullscreenMedia.d.ts +14 -0
  45. package/build/esm/components/FullscreenMedia/{FullScreenMedia.js → FullscreenMedia.js} +4 -4
  46. package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.d.ts +4 -0
  47. package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.js +7 -0
  48. package/build/esm/components/Media/Image/Image.d.ts +1 -0
  49. package/build/esm/components/Media/Image/Image.js +12 -5
  50. package/build/esm/components/Media/Media.js +25 -4
  51. package/build/esm/components/Media/Video/Video.d.ts +1 -1
  52. package/build/esm/components/VideoBlock/VideoBlock.d.ts +4 -0
  53. package/build/esm/components/VideoBlock/VideoBlock.js +3 -3
  54. package/build/esm/components/index.d.ts +1 -1
  55. package/build/esm/components/index.js +1 -1
  56. package/build/esm/constructor-items.d.ts +1 -1
  57. package/build/esm/grid/Col/Col.d.ts +1 -1
  58. package/build/esm/models/constructor-items/common.d.ts +4 -0
  59. package/build/esm/models/constructor-items/sub-blocks.d.ts +4 -0
  60. package/build/esm/schema/validators/common.d.ts +6 -0
  61. package/build/esm/schema/validators/common.js +6 -0
  62. package/build/esm/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  63. package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +5 -5
  64. package/build/esm/sub-blocks/LayoutItem/schema.d.ts +9 -0
  65. package/build/esm/sub-blocks/LayoutItem/schema.js +2 -0
  66. package/build/esm/sub-blocks/LayoutItem/utils.d.ts +2 -2
  67. package/build/esm/sub-blocks/LayoutItem/utils.js +2 -2
  68. package/build/esm/sub-blocks/MediaCard/schema.d.ts +6 -0
  69. package/package.json +4 -1
  70. package/server/models/constructor-items/common.d.ts +4 -0
  71. package/server/models/constructor-items/sub-blocks.d.ts +4 -0
  72. package/build/cjs/components/FullscreenMedia/FullScreenMedia.d.ts +0 -9
  73. package/build/esm/components/FullscreenMedia/FullScreenMedia.d.ts +0 -10
  74. /package/build/cjs/components/FullscreenImage/{FullScreenImage.css → FullscreenImage.css} +0 -0
  75. /package/build/cjs/components/FullscreenMedia/{FullScreenMedia.css → FullscreenMedia.css} +0 -0
  76. /package/build/esm/components/FullscreenImage/{FullScreenImage.css → FullscreenImage.css} +0 -0
  77. /package/build/esm/components/FullscreenMedia/{FullScreenMedia.css → FullscreenMedia.css} +0 -0
package/README.md CHANGED
@@ -184,7 +184,7 @@ Sub-blocks are components that can be used in the block `children` property. In
184
184
  - Add it to `enum` or `selectCases` in the `schema/index.ts` file.
185
185
 
186
186
  6. In the block directory, add the `README.md` file with a description of input parameters.
187
- 7. In the block directory add storybook demo in `__stories__` folder. (All demo content for story should be placed in `data.json` at story dir)
187
+ 7. In the block directory add storybook demo in `__stories__` folder. All demo content for story should be placed in `data.json` at story dir. The generic `Story` must accept the type of block props, otherwise incorrect block props will be displayed in Storybook.
188
188
 
189
189
  ### Themes
190
190
 
@@ -137,6 +137,12 @@ export declare const HeaderBackgroundProps: {
137
137
  type: string;
138
138
  })[];
139
139
  };
140
+ fullScreen: {
141
+ type: string;
142
+ };
143
+ fullscreen: {
144
+ type: string;
145
+ };
140
146
  };
141
147
  };
142
148
  export declare const HeaderProperties: {
@@ -424,6 +430,12 @@ export declare const HeaderProperties: {
424
430
  type: string;
425
431
  })[];
426
432
  };
433
+ fullScreen: {
434
+ type: string;
435
+ };
436
+ fullscreen: {
437
+ type: string;
438
+ };
427
439
  };
428
440
  } | {
429
441
  type: string;
@@ -757,6 +769,12 @@ export declare const HeaderBlock: {
757
769
  type: string;
758
770
  })[];
759
771
  };
772
+ fullScreen: {
773
+ type: string;
774
+ };
775
+ fullscreen: {
776
+ type: string;
777
+ };
760
778
  };
761
779
  } | {
762
780
  type: string;
@@ -294,6 +294,12 @@ export declare const HeaderSliderBlock: {
294
294
  type: string;
295
295
  })[];
296
296
  };
297
+ fullScreen: {
298
+ type: string;
299
+ };
300
+ fullscreen: {
301
+ type: string;
302
+ };
297
303
  };
298
304
  } | {
299
305
  type: string;
@@ -131,6 +131,12 @@ export declare const Media: {
131
131
  type: string;
132
132
  })[];
133
133
  };
134
+ fullScreen: {
135
+ type: string;
136
+ };
137
+ fullscreen: {
138
+ type: string;
139
+ };
134
140
  };
135
141
  };
136
142
  export declare const MediaBlockBaseProps: {
@@ -608,6 +614,12 @@ export declare const MediaBlock: {
608
614
  type: string;
609
615
  })[];
610
616
  };
617
+ fullScreen: {
618
+ type: string;
619
+ };
620
+ fullscreen: {
621
+ type: string;
622
+ };
611
623
  };
612
624
  };
613
625
  description: {
@@ -146,6 +146,12 @@ export declare const PromoFeaturesItem: {
146
146
  type: string;
147
147
  })[];
148
148
  };
149
+ fullScreen: {
150
+ type: string;
151
+ };
152
+ fullscreen: {
153
+ type: string;
154
+ };
149
155
  };
150
156
  };
151
157
  };
@@ -147,6 +147,12 @@ export declare const SecurityBlock: {
147
147
  type: string;
148
148
  })[];
149
149
  };
150
+ fullScreen: {
151
+ type: string;
152
+ };
153
+ fullscreen: {
154
+ type: string;
155
+ };
150
156
  };
151
157
  };
152
158
  points: {
@@ -142,6 +142,12 @@ export declare const tabsItem: {
142
142
  type: string;
143
143
  })[];
144
144
  };
145
+ fullScreen: {
146
+ type: string;
147
+ };
148
+ fullscreen: {
149
+ type: string;
150
+ };
145
151
  };
146
152
  } | {
147
153
  type: string;
@@ -5,5 +5,5 @@ export interface FullScreenImageProps extends ImageProps {
5
5
  modalImageClass?: string;
6
6
  imageStyle?: CSSProperties;
7
7
  }
8
- declare const FullScreenImage: (props: FullScreenImageProps) => JSX.Element;
9
- export default FullScreenImage;
8
+ declare const FullscreenImage: (props: FullScreenImageProps) => JSX.Element;
9
+ export default FullscreenImage;
@@ -10,16 +10,16 @@ const i18n_1 = tslib_1.__importDefault(require("./i18n"));
10
10
  const b = (0, utils_1.block)('FullScreenImage');
11
11
  const FULL_SCREEN_ICON_SIZE = 18;
12
12
  const CLOSE_ICON_SIZE = 30;
13
- const FullScreenImage = (props) => {
13
+ const FullscreenImage = (props) => {
14
14
  const { imageClassName, modalImageClass, imageStyle, alt = (0, i18n_1.default)('img-alt') } = props;
15
15
  const [isOpened, setIsOpened] = (0, react_1.useState)(false);
16
16
  const [isMouseEnter, setIsMouseEnter] = (0, react_1.useState)(false);
17
17
  const openModal = () => setIsOpened(true);
18
18
  const closeModal = () => setIsOpened(false);
19
- const showFullScreenIcon = () => setIsMouseEnter(true);
20
- const hideFullScreenIcon = () => setIsMouseEnter(false);
19
+ const showFullscreenIcon = () => setIsMouseEnter(true);
20
+ const hideFullscreenIcon = () => setIsMouseEnter(false);
21
21
  return (react_1.default.createElement("div", { className: b() },
22
- react_1.default.createElement("div", { className: b('image-wrapper'), onMouseEnter: showFullScreenIcon, onMouseLeave: hideFullScreenIcon },
22
+ react_1.default.createElement("div", { className: b('image-wrapper'), onMouseEnter: showFullscreenIcon, onMouseLeave: hideFullscreenIcon },
23
23
  react_1.default.createElement(Image_1.default, Object.assign({}, props, { alt: alt, className: b('image', imageClassName), onClick: openModal, style: imageStyle })),
24
24
  react_1.default.createElement("div", { className: b('icon-wrapper', { visible: isMouseEnter }), onClick: openModal },
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') }))),
@@ -29,4 +29,4 @@ const FullScreenImage = (props) => {
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
  };
32
- exports.default = FullScreenImage;
32
+ exports.default = FullscreenImage;
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import { MediaAllProps } from '../Media/Media';
3
+ export type ChildMediaRenderProps = Pick<MediaAllProps, 'fullScreen' | 'fullscreen' | 'imageClassName' | 'videoClassName' | 'youtubeClassName' | 'className'>;
4
+ export interface FullScreenMediaProps {
5
+ /**
6
+ * @deprecated use showFullscreenIcon
7
+ */
8
+ showFullScreenIcon?: boolean;
9
+ showFullscreenIcon?: boolean;
10
+ children: (props?: ChildMediaRenderProps) => JSX.Element;
11
+ }
12
+ declare const FullscreenMedia: ({ children, showFullScreenIcon, showFullscreenIcon, }: FullScreenMediaProps) => JSX.Element;
13
+ export default FullscreenMedia;
@@ -10,7 +10,7 @@ const b = (0, utils_1.block)('full-screen-media');
10
10
  const FULL_SCREEN_ICON_SIZE = 18;
11
11
  const CLOSE_ICON_SIZE = 30;
12
12
  const getMediaClass = (type) => b('modal-media', { type });
13
- const FullScreenMedia = ({ children, showFullScreenIcon = true }) => {
13
+ const FullscreenMedia = ({ children, showFullScreenIcon = true, showFullscreenIcon = true, }) => {
14
14
  const [isOpened, setIsOpened] = (0, react_1.useState)(false);
15
15
  const isMobile = (0, react_1.useContext)(mobileContext_1.MobileContext);
16
16
  const openModal = (e) => {
@@ -24,7 +24,7 @@ const FullScreenMedia = ({ children, showFullScreenIcon = true }) => {
24
24
  return (react_1.default.createElement("div", { className: b() },
25
25
  react_1.default.createElement("div", { className: b('media-wrapper'), onClickCapture: openModal },
26
26
  children({ className: b('inline-media') }),
27
- showFullScreenIcon && (react_1.default.createElement("div", { className: b('icon-wrapper'), onClickCapture: openModal },
27
+ showFullScreenIcon && showFullscreenIcon && (react_1.default.createElement("div", { className: b('icon-wrapper'), onClickCapture: openModal },
28
28
  react_1.default.createElement(uikit_1.Icon, { data: icons_1.FullScreen, width: FULL_SCREEN_ICON_SIZE, height: FULL_SCREEN_ICON_SIZE, className: b('icon') })))),
29
29
  isOpened && (react_1.default.createElement(uikit_1.Modal, { open: isOpened, onClose: closeModal, className: b('modal') },
30
30
  react_1.default.createElement("div", { className: b('modal-content') },
@@ -37,4 +37,4 @@ const FullScreenMedia = ({ children, showFullScreenIcon = true }) => {
37
37
  fullScreen: true,
38
38
  }))))));
39
39
  };
40
- exports.default = FullScreenMedia;
40
+ exports.default = FullscreenMedia;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { VideoAllProps } from '../Video/Video';
3
+ declare const FullscreenVideo: React.FC<VideoAllProps>;
4
+ export default FullscreenVideo;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const FullscreenMedia_1 = tslib_1.__importDefault(require("../../FullscreenMedia/FullscreenMedia"));
6
+ const Video_1 = tslib_1.__importDefault(require("../Video/Video"));
7
+ const FullscreenVideo = (props) => {
8
+ return (react_1.default.createElement(FullscreenMedia_1.default, null, (classNames) => react_1.default.createElement(Video_1.default, Object.assign({}, props, classNames))));
9
+ };
10
+ exports.default = FullscreenVideo;
@@ -2,6 +2,7 @@ import { MediaComponentImageProps } from '../../../models';
2
2
  export interface ImageAdditionProps {
3
3
  imageClassName?: string;
4
4
  isBackground?: boolean;
5
+ fullscreen?: boolean;
5
6
  }
6
7
  interface InnerImageProps {
7
8
  hasVideoFallback: boolean;
@@ -13,7 +13,7 @@ const Image_1 = tslib_1.__importDefault(require("../../Image/Image"));
13
13
  const utils_2 = require("./utils");
14
14
  const b = (0, utils_1.block)('media-component-image');
15
15
  const Image = (props) => {
16
- const { parallax, image, height, imageClassName, isBackground, hasVideoFallback, video } = props;
16
+ const { parallax, image, height, imageClassName, isBackground, hasVideoFallback, video, fullscreen, } = props;
17
17
  const [scrollY, setScrollY] = (0, react_1.useState)(0);
18
18
  const [{ springScrollY }, springSetScrollY] = (0, react_spring_1.useSpring)(() => ({
19
19
  springScrollY: 0,
@@ -34,10 +34,10 @@ const Image = (props) => {
34
34
  parallaxInterpolate = springScrollY.interpolate((value) => `translateY(-${Number(value) / parallaxLevel}px)`);
35
35
  }
36
36
  const imageClass = b('item', { withVideo: Boolean(video) && !hasVideoFallback }, imageClassName);
37
- const imageSlider = (imageArray) => (react_1.default.createElement(Slider_1.default, { slidesToShow: 1, type: models_1.SliderType.MediaCard }, imageArray.map((item) => {
37
+ const fullscreenImage = (item) => {
38
38
  const itemData = (0, utils_2.getMediaImage)(item);
39
39
  return (react_1.default.createElement(FullscreenImage_1.default, Object.assign({ key: itemData.alt }, itemData, { imageClassName: imageClass, imageStyle: { height } })));
40
- })));
40
+ };
41
41
  const imageBackground = (oneImage) => {
42
42
  const imageData = (0, utils_2.getMediaImage)(oneImage);
43
43
  return (react_1.default.createElement(react_spring_1.animated.div, { style: { transform: parallaxInterpolate } },
@@ -47,9 +47,16 @@ const Image = (props) => {
47
47
  const imageData = (0, utils_2.getMediaImage)(oneImage);
48
48
  return react_1.default.createElement(Image_1.default, Object.assign({}, imageData, { className: imageClass, style: { height } }));
49
49
  };
50
+ const imageSlider = (imageArray) => {
51
+ const fullscreenItem = fullscreen === undefined || fullscreen;
52
+ return (react_1.default.createElement(Slider_1.default, { slidesToShow: 1, type: models_1.SliderType.MediaCard }, imageArray.map((item) => fullscreenItem ? fullscreenImage(item) : imageOnly(item))));
53
+ };
50
54
  if (Array.isArray(image)) {
51
55
  return imageSlider(image);
52
56
  }
57
+ if (fullscreen) {
58
+ return fullscreenImage(image);
59
+ }
53
60
  return isBackground ? imageBackground(image) : imageOnly(image);
54
61
  };
55
62
  exports.default = Image;
@@ -6,23 +6,43 @@ const react_1 = tslib_1.__importStar(require("react"));
6
6
  const utils_1 = require("../../utils");
7
7
  const VideoBlock_1 = tslib_1.__importDefault(require("../VideoBlock/VideoBlock"));
8
8
  const DataLens_1 = tslib_1.__importDefault(require("./DataLens/DataLens"));
9
+ const FullscreenVideo_1 = tslib_1.__importDefault(require("./FullscreenVideo/FullscreenVideo"));
9
10
  const Image_1 = tslib_1.__importDefault(require("./Image/Image"));
10
11
  const Video_1 = tslib_1.__importDefault(require("./Video/Video"));
11
12
  const b = (0, utils_1.block)('Media');
12
13
  const Media = (props) => {
13
- const { image, video, youtube, dataLens, color, height, previewImg, parallax = false, metrika, fullScreen, analyticsEvents, } = props;
14
+ const { image, video, youtube, dataLens, color, height, previewImg, parallax = false, metrika, fullScreen, fullscreen, analyticsEvents, } = props;
14
15
  const { className, imageClassName, videoClassName, youtubeClassName, playVideo = true, isBackground, playButton, customBarControlsClassName, } = props;
15
16
  const [hasVideoFallback, setHasVideoFallback] = (0, react_1.useState)(false);
16
17
  const content = (0, react_1.useMemo)(() => {
17
18
  let result = [];
18
19
  if (image) {
19
- result.push(react_1.default.createElement(Image_1.default, { key: "image", parallax: parallax, image: image, height: height, imageClassName: imageClassName, isBackground: isBackground, video: video, hasVideoFallback: hasVideoFallback }));
20
+ result.push(react_1.default.createElement(Image_1.default, { key: "image", parallax: parallax, image: image, height: height, imageClassName: imageClassName, isBackground: isBackground, video: video, hasVideoFallback: hasVideoFallback, fullscreen: fullScreen || fullscreen }));
20
21
  }
21
22
  if (video) {
22
- result.push(react_1.default.createElement(Video_1.default, { key: "video", video: video, videoClassName: videoClassName, height: height, metrika: metrika, analyticsEvents: analyticsEvents, playVideo: playVideo, previewImg: previewImg, playButton: playButton, customBarControlsClassName: customBarControlsClassName, hasVideoFallback: hasVideoFallback, setHasVideoFallback: setHasVideoFallback }));
23
+ const videoProps = {
24
+ key: 'video',
25
+ video,
26
+ videoClassName,
27
+ height,
28
+ metrika,
29
+ analyticsEvents,
30
+ playVideo,
31
+ previewImg,
32
+ playButton,
33
+ customBarControlsClassName,
34
+ hasVideoFallback,
35
+ setHasVideoFallback,
36
+ };
37
+ if (fullScreen || fullscreen) {
38
+ result.push(react_1.default.createElement(FullscreenVideo_1.default, Object.assign({}, videoProps)));
39
+ }
40
+ else {
41
+ result.push(react_1.default.createElement(Video_1.default, Object.assign({}, videoProps)));
42
+ }
23
43
  }
24
44
  if (youtube) {
25
- result = (react_1.default.createElement(VideoBlock_1.default, { className: b('youtube', youtubeClassName), record: youtube, attributes: { color: 'white', rel: '0' }, previewImg: previewImg, height: height, fullScreen: fullScreen }));
45
+ result = (react_1.default.createElement(VideoBlock_1.default, { className: b('youtube', youtubeClassName), record: youtube, attributes: { color: 'white', rel: '0' }, previewImg: previewImg, height: height, fullscreen: fullScreen || fullscreen }));
26
46
  }
27
47
  if (dataLens) {
28
48
  result = react_1.default.createElement(DataLens_1.default, { dataLens: dataLens });
@@ -47,6 +67,7 @@ const Media = (props) => {
47
67
  customBarControlsClassName,
48
68
  youtubeClassName,
49
69
  fullScreen,
70
+ fullscreen,
50
71
  ]);
51
72
  return (react_1.default.createElement("div", { className: b(null, className), style: { backgroundColor: color } }, content));
52
73
  };
@@ -10,6 +10,6 @@ interface InnerVideoProps {
10
10
  setHasVideoFallback: React.Dispatch<boolean>;
11
11
  hasVideoFallback: boolean;
12
12
  }
13
- type VideoAllProps = VideoAdditionProps & MediaComponentVideoProps & InnerVideoProps;
13
+ export type VideoAllProps = VideoAdditionProps & MediaComponentVideoProps & InnerVideoProps;
14
14
  declare const Video: (props: VideoAllProps) => JSX.Element | null;
15
15
  export default Video;
@@ -13,7 +13,11 @@ export interface VideoBlockProps {
13
13
  previewImg?: string;
14
14
  playButton?: React.ReactNode;
15
15
  height?: number;
16
+ /**
17
+ * @deprecated use fullscreen
18
+ */
16
19
  fullScreen?: boolean;
20
+ fullscreen?: boolean;
17
21
  }
18
22
  declare const VideoBlock: (props: VideoBlockProps) => JSX.Element | null;
19
23
  export default VideoBlock;
@@ -39,7 +39,7 @@ function getHeight(width) {
39
39
  }
40
40
  exports.getHeight = getHeight;
41
41
  const VideoBlock = (props) => {
42
- const { stream, record, attributes, className, id, previewImg, playButton, height, fullScreen } = props;
42
+ const { stream, record, attributes, className, id, previewImg, playButton, height, fullScreen, fullscreen, } = props;
43
43
  const src = getVideoSrc(stream, record);
44
44
  const ref = (0, react_1.useRef)(null);
45
45
  const iframeRef = (0, react_1.useRef)();
@@ -82,14 +82,14 @@ const VideoBlock = (props) => {
82
82
  ref.current.appendChild(iframe);
83
83
  iframeRef.current = iframe;
84
84
  }
85
- }, [stream, record, norender, src, fullId, attributes, iframeRef, fullScreen]);
85
+ }, [stream, record, norender, src, fullId, attributes, iframeRef, fullScreen, fullscreen]);
86
86
  (0, react_1.useEffect)(() => {
87
87
  setHidePreview(false);
88
88
  }, [src, setHidePreview]);
89
89
  if (norender) {
90
90
  return null;
91
91
  }
92
- return (react_1.default.createElement("div", { className: b(null, className), ref: ref, style: { height: currentHeight } }, previewImg && !hidePreview && !fullScreen && (react_1.default.createElement("div", { className: b('preview'), onClick: onPreviewClick },
92
+ return (react_1.default.createElement("div", { className: b(null, className), ref: ref, style: { height: currentHeight } }, previewImg && !hidePreview && !fullScreen && !fullscreen && (react_1.default.createElement("div", { className: b('preview'), onClick: onPreviewClick },
93
93
  react_1.default.createElement(Image_1.default, { src: previewImg, className: b('image'), containerClassName: b('image-wrapper') }),
94
94
  playButton || (react_1.default.createElement("button", { className: b('button') },
95
95
  react_1.default.createElement(uikit_1.Icon, { className: b('icon'), data: icons_1.PlayVideo, size: 24 })))))));
@@ -35,6 +35,6 @@ export { default as Author } from './Author/Author';
35
35
  export { default as RouterLink } from './RouterLink/RouterLink';
36
36
  export { default as HTML } from './HTML/HTML';
37
37
  export { default as MetaInfo } from './MetaInfo/MetaInfo';
38
- export { default as FullScreenMedia } from './FullscreenMedia/FullScreenMedia';
38
+ export { default as FullScreenMedia } from './FullscreenMedia/FullscreenMedia';
39
39
  export type { RouterLinkProps } from './RouterLink/RouterLink';
40
40
  export type { ImageBaseProps } from './ImageBase/ImageBase';
@@ -78,5 +78,5 @@ var HTML_1 = require("./HTML/HTML");
78
78
  Object.defineProperty(exports, "HTML", { enumerable: true, get: function () { return __importDefault(HTML_1).default; } });
79
79
  var MetaInfo_1 = require("./MetaInfo/MetaInfo");
80
80
  Object.defineProperty(exports, "MetaInfo", { enumerable: true, get: function () { return __importDefault(MetaInfo_1).default; } });
81
- var FullScreenMedia_1 = require("./FullscreenMedia/FullScreenMedia");
82
- Object.defineProperty(exports, "FullScreenMedia", { enumerable: true, get: function () { return __importDefault(FullScreenMedia_1).default; } });
81
+ var FullscreenMedia_1 = require("./FullscreenMedia/FullscreenMedia");
82
+ Object.defineProperty(exports, "FullScreenMedia", { enumerable: true, get: function () { return __importDefault(FullscreenMedia_1).default; } });
@@ -36,7 +36,7 @@ export declare const subBlockMap: {
36
36
  "media-card": ({ border, ...mediaProps }: import("./models").MediaCardProps) => JSX.Element;
37
37
  "banner-card": (props: import("./models").BannerCardProps) => JSX.Element;
38
38
  "news-card": (props: import("./models").NewsCardProps) => JSX.Element;
39
- "layout-item": ({ content: { links, ...content }, metaInfo, media, border, fullScreen, className, }: import("./models").LayoutItemProps) => JSX.Element;
39
+ "layout-item": ({ content: { links, ...content }, metaInfo, media, border, fullScreen, fullscreen, className, }: import("./models").LayoutItemProps) => JSX.Element;
40
40
  /**
41
41
  * @deprecated Use LayoutItem
42
42
  */
@@ -7,4 +7,4 @@ export interface GridColumnProps extends GridColumnClassParams, Refable<HTMLDivE
7
7
  dataQa?: string;
8
8
  children?: React.ReactNode;
9
9
  }
10
- export declare const Col: React.ForwardRefExoticComponent<Pick<WithChildren<GridColumnProps>, "style" | "children" | "className" | "reset" | "sizes" | "offsets" | "orders" | "hidden" | "visible" | "alignSelf" | "justifyContent" | "dataQa"> & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const Col: React.ForwardRefExoticComponent<Pick<WithChildren<GridColumnProps>, "style" | "children" | "className" | "reset" | "visible" | "sizes" | "offsets" | "orders" | "hidden" | "alignSelf" | "justifyContent" | "dataQa"> & React.RefAttributes<HTMLDivElement>>;
@@ -174,7 +174,11 @@ export interface MediaComponentVideoProps extends AnalyticsEventsBase {
174
174
  export interface MediaComponentYoutubeProps {
175
175
  youtube: string;
176
176
  previewImg?: string;
177
+ /**
178
+ * @deprecated use fullscreen
179
+ */
177
180
  fullScreen?: boolean;
181
+ fullscreen?: boolean;
178
182
  }
179
183
  export interface MediaComponentImageProps {
180
184
  image: ImageProps | ImageProps[] | ImageDeviceProps;
@@ -136,7 +136,11 @@ export interface LayoutItemProps extends ClassNameProps {
136
136
  media: MediaProps;
137
137
  metaInfo?: string[];
138
138
  border?: boolean;
139
+ /**
140
+ * @deprecated use fullscreen
141
+ */
139
142
  fullScreen?: boolean;
143
+ fullscreen?: boolean;
140
144
  }
141
145
  export type DividerModel = {
142
146
  type: SubBlockType.Divider;
@@ -1114,6 +1114,12 @@ export declare const MediaProps: {
1114
1114
  type: string;
1115
1115
  })[];
1116
1116
  };
1117
+ fullScreen: {
1118
+ type: string;
1119
+ };
1120
+ fullscreen: {
1121
+ type: string;
1122
+ };
1117
1123
  };
1118
1124
  export declare const YMapMarkerLabel: {
1119
1125
  type: string;
@@ -457,6 +457,12 @@ exports.MediaProps = {
457
457
  type: 'string',
458
458
  },
459
459
  dataLens: exports.DataLensProps,
460
+ fullScreen: {
461
+ type: 'boolean',
462
+ },
463
+ fullscreen: {
464
+ type: 'boolean',
465
+ },
460
466
  };
461
467
  exports.YMapMarkerLabel = {
462
468
  type: 'object',
@@ -1,3 +1,3 @@
1
1
  import { LayoutItemProps } from '../../models';
2
- declare const LayoutItem: ({ content: { links, ...content }, metaInfo, media, border, fullScreen, className, }: LayoutItemProps) => JSX.Element;
2
+ declare const LayoutItem: ({ content: { links, ...content }, metaInfo, media, border, fullScreen, fullscreen, className, }: LayoutItemProps) => JSX.Element;
3
3
  export default LayoutItem;
@@ -8,11 +8,11 @@ const utils_1 = require("../../utils");
8
8
  const utils_2 = require("./utils");
9
9
  const b = (0, utils_1.block)('layout-item');
10
10
  const LayoutItem = (_a) => {
11
- var _b = _a.content, { links } = _b, content = tslib_1.__rest(_b, ["links"]), { metaInfo, media, border, fullScreen, className } = _a;
11
+ var _b = _a.content, { links } = _b, content = tslib_1.__rest(_b, ["links"]), { metaInfo, media, border, fullScreen, fullscreen, className } = _a;
12
12
  return (react_1.default.createElement("div", { className: b(null, className) },
13
- fullScreen && (0, utils_2.hasFullScreen)(media) ? (react_1.default.createElement(components_1.FullScreenMedia, { showFullScreenIcon: (0, utils_2.showFullScreenIcon)(media) }, (_a = {}) => {
14
- var { className: mediaClassName } = _a, fullScreenMediaProps = tslib_1.__rest(_a, ["className"]);
15
- return (react_1.default.createElement(components_1.Media, Object.assign({}, media, fullScreenMediaProps, { className: b('media', { border }, mediaClassName) })));
13
+ (fullScreen || fullscreen) && (0, utils_2.hasFullscreen)(media) ? (react_1.default.createElement(components_1.FullScreenMedia, { showFullscreenIcon: (0, utils_2.showFullscreenIcon)(media) }, (_a = {}) => {
14
+ var { className: mediaClassName, fullScreen: _fullScreen } = _a, fullscreenMediaProps = tslib_1.__rest(_a, ["className", "fullScreen"]);
15
+ return (react_1.default.createElement(components_1.Media, Object.assign({}, media, fullscreenMediaProps, { className: b('media', { border }, mediaClassName) })));
16
16
  })) : (react_1.default.createElement(components_1.Media, Object.assign({}, media, { className: b('media', { border }) }))),
17
17
  metaInfo && react_1.default.createElement(components_1.MetaInfo, { items: metaInfo, className: b('meta-info') }),
18
18
  react_1.default.createElement("div", { className: b('content') },
@@ -132,6 +132,12 @@ export declare const LayoutItem: {
132
132
  type: string;
133
133
  })[];
134
134
  };
135
+ fullScreen: {
136
+ type: string;
137
+ };
138
+ fullscreen: {
139
+ type: string;
140
+ };
135
141
  };
136
142
  content: Partial<{
137
143
  title: {
@@ -212,6 +218,9 @@ export declare const LayoutItem: {
212
218
  fullScreen: {
213
219
  type: string;
214
220
  };
221
+ fullscreen: {
222
+ type: string;
223
+ };
215
224
  type: {};
216
225
  when: {};
217
226
  };
@@ -14,5 +14,7 @@ exports.LayoutItem = {
14
14
  type: 'boolean',
15
15
  }, fullScreen: {
16
16
  type: 'boolean',
17
+ }, fullscreen: {
18
+ type: 'boolean',
17
19
  } }),
18
20
  };
@@ -24,5 +24,5 @@ export declare const getLayoutItemLinks: (links: LayoutItemProps['content']['lin
24
24
  }[] | undefined;
25
25
  className?: string | undefined;
26
26
  }[] | undefined;
27
- export declare const hasFullScreen: ({ dataLens, image }: MediaProps) => boolean;
28
- export declare const showFullScreenIcon: ({ youtube }: MediaProps) => boolean;
27
+ export declare const hasFullscreen: ({ dataLens, image }: MediaProps) => boolean;
28
+ export declare const showFullscreenIcon: ({ youtube }: MediaProps) => boolean;
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.showFullScreenIcon = exports.hasFullScreen = exports.getLayoutItemLinks = void 0;
3
+ exports.showFullscreenIcon = exports.hasFullscreen = exports.getLayoutItemLinks = void 0;
4
4
  const getLayoutItemLinks = (links) => links === null || links === void 0 ? void 0 : links.map((link) => (Object.assign({ theme: 'normal' }, link)));
5
5
  exports.getLayoutItemLinks = getLayoutItemLinks;
6
- const hasFullScreen = ({ dataLens, image }) => {
6
+ const hasFullscreen = ({ dataLens, image }) => {
7
7
  // datalens and slider media card don't support fullScreen mode
8
8
  return !(dataLens || Array.isArray(image));
9
9
  };
10
- exports.hasFullScreen = hasFullScreen;
11
- const showFullScreenIcon = ({ youtube }) => !youtube;
12
- exports.showFullScreenIcon = showFullScreenIcon;
10
+ exports.hasFullscreen = hasFullscreen;
11
+ const showFullscreenIcon = ({ youtube }) => !youtube;
12
+ exports.showFullscreenIcon = showFullscreenIcon;
@@ -134,6 +134,12 @@ export declare const MediaCardBlock: {
134
134
  type: string;
135
135
  })[];
136
136
  };
137
+ fullScreen: {
138
+ type: string;
139
+ };
140
+ fullscreen: {
141
+ type: string;
142
+ };
137
143
  type: {};
138
144
  when: {};
139
145
  };
@@ -137,6 +137,12 @@ export declare const HeaderBackgroundProps: {
137
137
  type: string;
138
138
  })[];
139
139
  };
140
+ fullScreen: {
141
+ type: string;
142
+ };
143
+ fullscreen: {
144
+ type: string;
145
+ };
140
146
  };
141
147
  };
142
148
  export declare const HeaderProperties: {
@@ -424,6 +430,12 @@ export declare const HeaderProperties: {
424
430
  type: string;
425
431
  })[];
426
432
  };
433
+ fullScreen: {
434
+ type: string;
435
+ };
436
+ fullscreen: {
437
+ type: string;
438
+ };
427
439
  };
428
440
  } | {
429
441
  type: string;
@@ -757,6 +769,12 @@ export declare const HeaderBlock: {
757
769
  type: string;
758
770
  })[];
759
771
  };
772
+ fullScreen: {
773
+ type: string;
774
+ };
775
+ fullscreen: {
776
+ type: string;
777
+ };
760
778
  };
761
779
  } | {
762
780
  type: string;
@@ -294,6 +294,12 @@ export declare const HeaderSliderBlock: {
294
294
  type: string;
295
295
  })[];
296
296
  };
297
+ fullScreen: {
298
+ type: string;
299
+ };
300
+ fullscreen: {
301
+ type: string;
302
+ };
297
303
  };
298
304
  } | {
299
305
  type: string;