@alfalab/core-components-gallery 5.7.4 → 5.8.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.
Files changed (258) hide show
  1. package/Component.js +47 -12
  2. package/components/buttons/index.css +35 -0
  3. package/{buttons-ec113bb4.d.ts → components/buttons/index.d.ts} +6 -1
  4. package/components/buttons/index.js +72 -0
  5. package/components/header/Component.js +33 -12
  6. package/components/header/index.css +5 -19
  7. package/components/header-info-block/Component.js +1 -1
  8. package/components/header-info-block/index.css +5 -5
  9. package/components/header-mobile/Component.d.ts +4 -0
  10. package/components/header-mobile/Component.js +39 -0
  11. package/components/header-mobile/index.css +50 -0
  12. package/components/header-mobile/index.d.ts +1 -0
  13. package/components/header-mobile/index.js +9 -0
  14. package/components/image-preview/Component.js +67 -24
  15. package/components/image-preview/index.css +35 -28
  16. package/components/image-preview/paths.d.ts +2 -0
  17. package/components/image-preview/paths.js +2 -0
  18. package/components/image-viewer/component.js +30 -10
  19. package/components/image-viewer/index.css +37 -25
  20. package/components/image-viewer/slide.js +3 -1
  21. package/components/image-viewer/video/index.css +48 -0
  22. package/components/image-viewer/video/index.d.ts +10 -0
  23. package/components/image-viewer/video/index.js +130 -0
  24. package/components/index.d.ts +2 -0
  25. package/components/index.js +4 -0
  26. package/components/info-bar/Component.d.ts +4 -0
  27. package/components/info-bar/Component.js +47 -0
  28. package/components/info-bar/index.css +37 -0
  29. package/components/info-bar/index.d.ts +1 -0
  30. package/components/info-bar/index.js +9 -0
  31. package/components/navigation-bar/Component.js +3 -2
  32. package/components/navigation-bar/index.css +8 -6
  33. package/context.d.ts +7 -0
  34. package/context.js +7 -0
  35. package/cssm/Component.js +46 -11
  36. package/cssm/components/{header/buttons.d.ts → buttons/index.d.ts} +6 -1
  37. package/cssm/components/buttons/index.js +71 -0
  38. package/cssm/components/buttons/index.module.css +34 -0
  39. package/cssm/components/header/Component.js +28 -10
  40. package/cssm/components/header/index.module.css +3 -17
  41. package/cssm/components/header-mobile/Component.d.ts +4 -0
  42. package/cssm/components/header-mobile/Component.js +38 -0
  43. package/cssm/components/header-mobile/index.d.ts +1 -0
  44. package/cssm/components/header-mobile/index.js +9 -0
  45. package/cssm/components/header-mobile/index.module.css +49 -0
  46. package/cssm/components/image-preview/Component.js +66 -27
  47. package/cssm/components/image-preview/index.module.css +25 -18
  48. package/cssm/components/image-preview/paths.d.ts +2 -0
  49. package/cssm/components/image-preview/paths.js +2 -0
  50. package/cssm/components/image-viewer/component.js +29 -9
  51. package/cssm/components/image-viewer/index.module.css +21 -9
  52. package/cssm/components/image-viewer/slide.js +12 -2
  53. package/cssm/components/image-viewer/video/index.d.ts +10 -0
  54. package/cssm/components/image-viewer/video/index.js +129 -0
  55. package/cssm/components/image-viewer/video/index.module.css +47 -0
  56. package/cssm/components/index.d.ts +2 -0
  57. package/cssm/components/index.js +4 -0
  58. package/cssm/components/info-bar/Component.d.ts +4 -0
  59. package/cssm/components/info-bar/Component.js +46 -0
  60. package/cssm/components/info-bar/index.d.ts +1 -0
  61. package/cssm/components/info-bar/index.js +9 -0
  62. package/cssm/components/info-bar/index.module.css +36 -0
  63. package/cssm/components/navigation-bar/Component.js +2 -1
  64. package/cssm/components/navigation-bar/index.module.css +3 -1
  65. package/cssm/context.d.ts +7 -0
  66. package/cssm/context.js +7 -0
  67. package/cssm/index.d.ts +1 -1
  68. package/cssm/index.js +1 -8
  69. package/cssm/index.module.css +14 -2
  70. package/cssm/types.d.ts +7 -0
  71. package/cssm/utils/constants.d.ts +14 -1
  72. package/cssm/utils/constants.js +19 -0
  73. package/cssm/utils/index.js +7 -0
  74. package/cssm/utils/utils.d.ts +2 -1
  75. package/cssm/utils/utils.js +5 -3
  76. package/esm/Component.js +46 -12
  77. package/esm/components/buttons/index.css +35 -0
  78. package/esm/{buttons-791da71e.d.ts → components/buttons/index.d.ts} +6 -1
  79. package/esm/components/buttons/index.js +55 -0
  80. package/esm/components/header/Component.js +30 -9
  81. package/esm/components/header/index.css +5 -19
  82. package/esm/components/header-info-block/Component.js +1 -1
  83. package/esm/components/header-info-block/index.css +5 -5
  84. package/esm/components/header-mobile/Component.d.ts +4 -0
  85. package/esm/components/header-mobile/Component.js +30 -0
  86. package/esm/components/header-mobile/index.css +50 -0
  87. package/esm/components/header-mobile/index.d.ts +1 -0
  88. package/esm/components/header-mobile/index.js +1 -0
  89. package/esm/components/image-preview/Component.js +69 -26
  90. package/esm/components/image-preview/index.css +35 -28
  91. package/esm/components/image-preview/paths.d.ts +2 -0
  92. package/esm/components/image-preview/paths.js +2 -0
  93. package/esm/components/image-viewer/component.js +31 -11
  94. package/esm/components/image-viewer/index.css +37 -25
  95. package/esm/components/image-viewer/slide.js +3 -1
  96. package/esm/components/image-viewer/video/index.css +48 -0
  97. package/esm/components/image-viewer/video/index.d.ts +10 -0
  98. package/esm/components/image-viewer/video/index.js +119 -0
  99. package/esm/components/index.d.ts +2 -0
  100. package/esm/components/index.js +2 -0
  101. package/esm/components/info-bar/Component.d.ts +4 -0
  102. package/esm/components/info-bar/Component.js +39 -0
  103. package/esm/components/info-bar/index.css +37 -0
  104. package/esm/components/info-bar/index.d.ts +1 -0
  105. package/esm/components/info-bar/index.js +1 -0
  106. package/esm/components/navigation-bar/Component.js +3 -2
  107. package/esm/components/navigation-bar/index.css +8 -6
  108. package/esm/context.d.ts +7 -0
  109. package/esm/context.js +7 -0
  110. package/esm/index.css +17 -5
  111. package/esm/index.d.ts +1 -1
  112. package/esm/index.js +1 -3
  113. package/esm/{slide-7d5a41d1.js → slide-3be75078.js} +15 -5
  114. package/esm/types.d.ts +7 -0
  115. package/esm/utils/constants.d.ts +14 -1
  116. package/esm/utils/constants.js +14 -1
  117. package/esm/utils/index.js +2 -2
  118. package/esm/utils/utils.d.ts +2 -1
  119. package/esm/utils/utils.js +5 -4
  120. package/index.css +17 -5
  121. package/index.d.ts +1 -1
  122. package/index.js +1 -8
  123. package/modern/Component.js +39 -7
  124. package/modern/components/buttons/index.css +35 -0
  125. package/modern/{buttons-1859cb8e.d.ts → components/buttons/index.d.ts} +6 -1
  126. package/modern/components/buttons/index.js +33 -0
  127. package/modern/components/header/Component.js +27 -9
  128. package/modern/components/header/index.css +5 -19
  129. package/modern/components/header-info-block/Component.js +1 -1
  130. package/modern/components/header-info-block/index.css +5 -5
  131. package/modern/components/header-mobile/Component.d.ts +4 -0
  132. package/modern/components/header-mobile/Component.js +28 -0
  133. package/modern/components/header-mobile/index.css +50 -0
  134. package/modern/components/header-mobile/index.d.ts +1 -0
  135. package/modern/components/header-mobile/index.js +1 -0
  136. package/modern/components/image-preview/Component.js +65 -23
  137. package/modern/components/image-preview/index.css +35 -28
  138. package/modern/components/image-preview/paths.d.ts +2 -0
  139. package/modern/components/image-preview/paths.js +2 -0
  140. package/modern/components/image-viewer/component.js +31 -11
  141. package/modern/components/image-viewer/index.css +37 -25
  142. package/modern/components/image-viewer/slide.js +3 -1
  143. package/modern/components/image-viewer/video/index.css +48 -0
  144. package/modern/components/image-viewer/video/index.d.ts +10 -0
  145. package/modern/components/image-viewer/video/index.js +117 -0
  146. package/modern/components/index.d.ts +2 -0
  147. package/modern/components/index.js +2 -0
  148. package/modern/components/info-bar/Component.d.ts +4 -0
  149. package/modern/components/info-bar/Component.js +38 -0
  150. package/modern/components/info-bar/index.css +37 -0
  151. package/modern/components/info-bar/index.d.ts +1 -0
  152. package/modern/components/info-bar/index.js +1 -0
  153. package/modern/components/navigation-bar/Component.js +3 -2
  154. package/modern/components/navigation-bar/index.css +8 -6
  155. package/modern/context.d.ts +7 -0
  156. package/modern/context.js +7 -0
  157. package/modern/index.css +17 -5
  158. package/modern/index.d.ts +1 -1
  159. package/modern/index.js +1 -3
  160. package/modern/{slide-c47386c3.js → slide-df1baab8.js} +15 -5
  161. package/modern/types.d.ts +7 -0
  162. package/modern/utils/constants.d.ts +14 -1
  163. package/modern/utils/constants.js +14 -1
  164. package/modern/utils/index.js +2 -2
  165. package/modern/utils/utils.d.ts +2 -1
  166. package/modern/utils/utils.js +5 -4
  167. package/moderncssm/Component.js +38 -6
  168. package/moderncssm/components/buttons/index.d.ts +16 -0
  169. package/moderncssm/components/buttons/index.js +31 -0
  170. package/moderncssm/components/buttons/index.module.css +20 -0
  171. package/moderncssm/components/header/Component.js +24 -9
  172. package/moderncssm/components/header/index.module.css +0 -19
  173. package/moderncssm/components/header-mobile/Component.d.ts +4 -0
  174. package/moderncssm/components/header-mobile/Component.js +26 -0
  175. package/moderncssm/components/header-mobile/index.d.ts +1 -0
  176. package/moderncssm/components/header-mobile/index.js +1 -0
  177. package/moderncssm/components/header-mobile/index.module.css +35 -0
  178. package/moderncssm/components/image-preview/Component.js +64 -26
  179. package/moderncssm/components/image-preview/index.module.css +30 -13
  180. package/moderncssm/components/image-preview/paths.d.ts +2 -0
  181. package/moderncssm/components/image-preview/paths.js +2 -0
  182. package/moderncssm/components/image-viewer/component.js +30 -10
  183. package/moderncssm/components/image-viewer/index.module.css +29 -6
  184. package/moderncssm/components/image-viewer/slide.js +14 -4
  185. package/moderncssm/components/image-viewer/video/index.d.ts +10 -0
  186. package/moderncssm/components/image-viewer/video/index.js +115 -0
  187. package/moderncssm/components/image-viewer/video/index.module.css +36 -0
  188. package/moderncssm/components/index.d.ts +2 -0
  189. package/moderncssm/components/index.js +2 -0
  190. package/moderncssm/components/info-bar/Component.d.ts +4 -0
  191. package/moderncssm/components/info-bar/Component.js +36 -0
  192. package/moderncssm/components/info-bar/index.d.ts +1 -0
  193. package/moderncssm/components/info-bar/index.js +1 -0
  194. package/moderncssm/components/info-bar/index.module.css +23 -0
  195. package/moderncssm/components/navigation-bar/Component.js +2 -1
  196. package/moderncssm/components/navigation-bar/index.module.css +4 -0
  197. package/moderncssm/context.d.ts +7 -0
  198. package/moderncssm/context.js +7 -0
  199. package/moderncssm/index.d.ts +1 -1
  200. package/moderncssm/index.js +1 -3
  201. package/moderncssm/index.module.css +18 -2
  202. package/moderncssm/types.d.ts +7 -0
  203. package/moderncssm/utils/constants.d.ts +14 -1
  204. package/moderncssm/utils/constants.js +14 -1
  205. package/moderncssm/utils/index.js +2 -2
  206. package/moderncssm/utils/utils.d.ts +2 -1
  207. package/moderncssm/utils/utils.js +5 -4
  208. package/package.json +4 -3
  209. package/{slide-12155967.js → slide-2cbb0733.js} +13 -3
  210. package/src/Component.tsx +48 -6
  211. package/src/components/buttons/index.module.css +21 -0
  212. package/src/components/{header/buttons.tsx → buttons/index.tsx} +77 -0
  213. package/src/components/header/Component.tsx +33 -10
  214. package/src/components/header/index.module.css +0 -20
  215. package/src/components/header-mobile/Component.tsx +57 -0
  216. package/src/components/header-mobile/index.module.css +35 -0
  217. package/src/components/header-mobile/index.ts +1 -0
  218. package/src/components/image-preview/Component.tsx +131 -28
  219. package/src/components/image-preview/index.module.css +28 -9
  220. package/src/components/image-preview/paths.ts +3 -0
  221. package/src/components/image-viewer/component.tsx +32 -11
  222. package/src/components/image-viewer/index.module.css +26 -3
  223. package/src/components/image-viewer/slide.tsx +30 -4
  224. package/src/components/image-viewer/video/index.module.css +36 -0
  225. package/src/components/image-viewer/video/index.tsx +159 -0
  226. package/src/components/index.ts +2 -0
  227. package/src/components/info-bar/Component.tsx +68 -0
  228. package/src/components/info-bar/index.module.css +23 -0
  229. package/src/components/info-bar/index.ts +1 -0
  230. package/src/components/navigation-bar/Component.tsx +2 -1
  231. package/src/components/navigation-bar/index.module.css +4 -0
  232. package/src/context.ts +14 -0
  233. package/src/index.module.css +18 -2
  234. package/src/index.ts +1 -1
  235. package/src/types.ts +15 -5
  236. package/src/utils/constants.ts +17 -0
  237. package/src/utils/utils.ts +5 -3
  238. package/types.d.ts +7 -0
  239. package/utils/constants.d.ts +14 -1
  240. package/utils/constants.js +19 -0
  241. package/utils/index.js +7 -0
  242. package/utils/utils.d.ts +2 -1
  243. package/utils/utils.js +5 -3
  244. package/buttons-ec113bb4.js +0 -37
  245. package/components/header/buttons.d.ts +0 -0
  246. package/components/header/buttons.js +0 -20
  247. package/cssm/components/header/buttons.js +0 -37
  248. package/esm/buttons-791da71e.js +0 -27
  249. package/esm/components/header/buttons.d.ts +0 -0
  250. package/esm/components/header/buttons.js +0 -9
  251. package/modern/buttons-1859cb8e.js +0 -20
  252. package/modern/components/header/buttons.d.ts +0 -0
  253. package/modern/components/header/buttons.js +0 -8
  254. package/moderncssm/components/header/buttons.d.ts +0 -11
  255. package/moderncssm/components/header/buttons.js +0 -18
  256. /package/esm/{slide-7d5a41d1.d.ts → slide-3be75078.d.ts} +0 -0
  257. /package/modern/{slide-c47386c3.d.ts → slide-df1baab8.d.ts} +0 -0
  258. /package/{slide-12155967.d.ts → slide-2cbb0733.d.ts} +0 -0
@@ -5,9 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var cn = require('classnames');
7
7
  var coreComponentsTypography = require('@alfalab/core-components-typography/cssm');
8
+ var context = require('../../context.js');
8
9
  var utils_utils = require('../../utils/utils.js');
9
10
  var utils_constants = require('../../utils/constants.js');
10
11
  var components_imageViewer_paths = require('./paths.js');
12
+ var components_imageViewer_video_index = require('./video/index.js');
11
13
  var styles = require('./index.module.css');
12
14
 
13
15
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -18,27 +20,35 @@ var styles__default = /*#__PURE__*/_interopDefaultCompat(styles);
18
20
 
19
21
  var SlideInner = function (_a) {
20
22
  var _b;
21
- var children = _a.children, broken = _a.broken, loading = _a.loading, withPlaceholder = _a.withPlaceholder;
23
+ var children = _a.children, broken = _a.broken, loading = _a.loading, withPlaceholder = _a.withPlaceholder, isVideoView = _a.isVideoView;
22
24
  var content = broken ? (React__default.default.createElement("div", { className: styles__default.default.brokenImgWrapper },
23
25
  React__default.default.createElement("div", { className: styles__default.default.brokenImgIcon },
24
26
  React__default.default.createElement("svg", { xmlns: 'http://www.w3.org/2000/svg', width: '80', height: '80', viewBox: '0 0 80 80', fill: 'none' },
25
27
  React__default.default.createElement("rect", { width: '80', height: '80', fill: 'none' }),
26
28
  React__default.default.createElement("path", { fillRule: 'evenodd', clipRule: 'evenodd', d: components_imageViewer_paths.NoImagePaths.baseImage, fill: '#89898A' }),
27
29
  React__default.default.createElement("path", { d: components_imageViewer_paths.NoImagePaths.triangleImage, fill: '#89898A' }))),
28
- React__default.default.createElement(coreComponentsTypography.Typography.Text, { view: 'primary-small', color: 'static-secondary-light' }, "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435"))) : (children);
30
+ React__default.default.createElement(coreComponentsTypography.Typography.Text, { view: 'primary-small', color: 'static-secondary-light' },
31
+ "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C ",
32
+ isVideoView ? 'видео' : 'изображение'))) : (children);
29
33
  return (React__default.default.createElement("div", { className: cn__default.default(styles__default.default.slide, (_b = {}, _b[styles__default.default.slideLoading] = loading, _b)) }, withPlaceholder ? React__default.default.createElement("div", { className: styles__default.default.placeholder }, content) : content));
30
34
  };
31
35
  var Slide = function (_a) {
32
36
  var _b;
33
37
  var isActive = _a.isActive, meta = _a.meta, swiperAspectRatio = _a.swiperAspectRatio, imageAspectRatio = _a.imageAspectRatio, image = _a.image, index = _a.index, swiperHeight = _a.swiperHeight, slideVisible = _a.slideVisible, handleLoad = _a.handleLoad, handleLoadError = _a.handleLoadError;
38
+ var view = React.useContext(context.GalleryContext).view;
34
39
  var broken = Boolean(meta === null || meta === void 0 ? void 0 : meta.broken);
35
40
  var small = utils_utils.isSmallImage(meta);
36
41
  var verticalImageFit = !small && swiperAspectRatio > imageAspectRatio;
37
42
  var horizontalImageFit = !small && swiperAspectRatio <= imageAspectRatio;
43
+ if (utils_utils.isVideo(image.src)) {
44
+ return (React__default.default.createElement(SlideInner, { isVideoView: true, active: isActive, broken: broken, withPlaceholder: broken, loading: !meta },
45
+ React__default.default.createElement(components_imageViewer_video_index.Video, { url: image.src, index: index, isActive: isActive })));
46
+ }
38
47
  return (React__default.default.createElement(SlideInner, { active: isActive, broken: broken, loading: !meta, withPlaceholder: small || broken },
39
48
  React__default.default.createElement("img", { src: image.src, alt: utils_utils.getImageAlt(image, index), className: cn__default.default((_b = {},
40
49
  _b[styles__default.default.smallImage] = small,
41
50
  _b[styles__default.default.image] = !small && meta,
51
+ _b[styles__default.default.mobile] = view === 'mobile',
42
52
  _b[styles__default.default.verticalImageFit] = verticalImageFit,
43
53
  _b[styles__default.default.horizontalImageFit] = horizontalImageFit,
44
54
  _b)), onLoad: function (event) { return handleLoad(event, index); }, onError: function () { return handleLoadError(index); }, style: {
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ type Props = {
4
+ url: string;
5
+ index: number;
6
+ isActive: boolean;
7
+ className?: string;
8
+ };
9
+ declare const Video: ({ url, index, className, isActive }: Props) => React.JSX.Element;
10
+ export { Video };
@@ -0,0 +1,129 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var cn = require('classnames');
7
+ var Hls = require('hls.js');
8
+ var circle = require('@alfalab/core-components/icon-view/circle');
9
+ var PlayCompactMIcon = require('@alfalab/icons-glyph/PlayCompactMIcon');
10
+ var context = require('../../../context.js');
11
+ var utils_constants = require('../../../utils/constants.js');
12
+ var styles = require('./index.module.css');
13
+
14
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
15
+
16
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
17
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
18
+ var Hls__default = /*#__PURE__*/_interopDefaultCompat(Hls);
19
+ var PlayCompactMIcon__default = /*#__PURE__*/_interopDefaultCompat(PlayCompactMIcon);
20
+ var styles__default = /*#__PURE__*/_interopDefaultCompat(styles);
21
+
22
+ var Video = function (_a) {
23
+ var _b;
24
+ var url = _a.url, index = _a.index, className = _a.className, isActive = _a.isActive;
25
+ var playerRef = React.useRef(null);
26
+ var timer = React.useRef();
27
+ var _c = React.useContext(context.GalleryContext), setImageMeta = _c.setImageMeta, mutedVideo = _c.mutedVideo, view = _c.view, playingVideo = _c.playingVideo, setPlayingVideo = _c.setPlayingVideo, setHideNavigation = _c.setHideNavigation;
28
+ var isMobile = view === 'mobile';
29
+ React.useEffect(function () {
30
+ setImageMeta({ player: playerRef }, index);
31
+ /* eslint-disable-next-line react-hooks/exhaustive-deps */
32
+ }, [index]);
33
+ React.useEffect(function () {
34
+ var hls = new Hls__default.default();
35
+ if (Hls__default.default.isSupported()) {
36
+ hls.on(Hls__default.default.Events.ERROR, function (_, data) {
37
+ if (data.fatal) {
38
+ switch (data.type) {
39
+ case Hls__default.default.ErrorTypes.MEDIA_ERROR:
40
+ hls.recoverMediaError();
41
+ break;
42
+ case Hls__default.default.ErrorTypes.NETWORK_ERROR:
43
+ setImageMeta({ player: { current: null }, broken: true }, index);
44
+ break;
45
+ default:
46
+ hls.destroy();
47
+ break;
48
+ }
49
+ }
50
+ });
51
+ hls.loadSource(url);
52
+ if (playerRef.current) {
53
+ hls.attachMedia(playerRef.current);
54
+ }
55
+ }
56
+ return function () {
57
+ if (hls) {
58
+ hls.destroy();
59
+ }
60
+ if (timer.current) {
61
+ clearTimeout(timer.current);
62
+ }
63
+ };
64
+ /* eslint-disable-next-line react-hooks/exhaustive-deps */
65
+ }, [url, index]);
66
+ var handleWrapperClick = function (e) {
67
+ e.stopPropagation();
68
+ if (isMobile) {
69
+ setHideNavigation(false);
70
+ if (playingVideo) {
71
+ if (timer.current) {
72
+ clearTimeout(timer.current);
73
+ }
74
+ timer.current = setTimeout(function () {
75
+ setHideNavigation(true);
76
+ }, 3000);
77
+ }
78
+ return;
79
+ }
80
+ setPlayingVideo(!playingVideo);
81
+ };
82
+ React.useEffect(function () {
83
+ if (playerRef.current && isActive) {
84
+ if (playingVideo) {
85
+ playerRef.current.play();
86
+ }
87
+ else {
88
+ playerRef.current.pause();
89
+ }
90
+ }
91
+ if (playerRef.current && !isActive) {
92
+ playerRef.current.pause();
93
+ playerRef.current.currentTime = 0;
94
+ }
95
+ }, [isActive, playingVideo]);
96
+ var onPlay = function (e) {
97
+ var customEvent = new CustomEvent(utils_constants.GALLERY_EVENTS.ON_PLAY, {
98
+ detail: { player: e.target },
99
+ });
100
+ dispatchEvent(customEvent);
101
+ if (timer.current) {
102
+ clearTimeout(timer.current);
103
+ }
104
+ timer.current = setTimeout(function () {
105
+ setHideNavigation(true);
106
+ }, 3000);
107
+ };
108
+ var onPause = function (e) {
109
+ var customEvent = new CustomEvent(utils_constants.GALLERY_EVENTS.ON_PAUSE, {
110
+ detail: { player: e.target },
111
+ });
112
+ dispatchEvent(customEvent);
113
+ if (timer.current) {
114
+ clearTimeout(timer.current);
115
+ timer.current = undefined;
116
+ }
117
+ setHideNavigation(false);
118
+ };
119
+ return (
120
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
121
+ React__default.default.createElement("div", { onClick: handleWrapperClick, className: styles__default.default.videoWrapper },
122
+ React__default.default.createElement("video", { onPlay: onPlay, onPause: onPause, ref: playerRef, playsInline: true, muted: mutedVideo, loop: true, src: Hls__default.default.isSupported() ? undefined : url, className: cn__default.default(styles__default.default.video, (_b = {}, _b[styles__default.default.mobile] = view === 'mobile', _b), className) },
123
+ React__default.default.createElement("track", { kind: 'captions' })),
124
+ view === 'desktop' && !playingVideo && (React__default.default.createElement("div", { className: styles__default.default.videoButton },
125
+ React__default.default.createElement(circle.Circle, { size: 64, shapeClassName: styles__default.default.iconShape },
126
+ React__default.default.createElement(PlayCompactMIcon__default.default, { className: styles__default.default.icon }))))));
127
+ };
128
+
129
+ exports.Video = Video;
@@ -0,0 +1,47 @@
1
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
2
+ } /* deprecated */ :root {
3
+ --color-static-neutral-0: #fff;
4
+ --color-static-neutral-translucent-700: rgba(4, 4, 21, 0.47); /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
+ } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
6
+ } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
7
+ } :root {
8
+
9
+ /* Hard */
10
+
11
+ /* Up */
12
+
13
+ /* Hard up */
14
+ } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
15
+ --border-radius-3xl: 24px; /* deprecated */
16
+
17
+ /* новые значения, используйте их */
18
+ --border-radius-24: var(--border-radius-3xl);
19
+ } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
20
+
21
+ /* новые значения, используйте их */
22
+ } :root {
23
+ } :root {
24
+ } /* сбрасывает синюю подсветку при нажатии */ .videoWrapper {
25
+ display: flex;
26
+ justify-content: center;
27
+ height: 100%;
28
+ width: 100%;
29
+ position: relative;
30
+ } .video {
31
+ max-width: 100%;
32
+ max-height: 100%;
33
+ border-radius: var(--border-radius-24);
34
+ } .mobile {
35
+ border-radius: 0;
36
+ } .videoButton {
37
+ position: absolute;
38
+ top: 50%;
39
+ left: 50%;
40
+ transform: translate(-50%, -50%);
41
+ z-index: 1;
42
+ color: green;
43
+ } .icon {
44
+ color: var(--color-static-neutral-0);
45
+ } .iconShape {
46
+ fill: var(--color-static-neutral-translucent-700);
47
+ }
@@ -2,3 +2,5 @@ export * from "./navigation-bar/index";
2
2
  export * from "./header/index";
3
3
  export * from "./image-preview/index";
4
4
  export * from "./image-viewer/index";
5
+ export * from "./info-bar/index";
6
+ export * from "./header-mobile/index";
@@ -6,6 +6,8 @@ var components_navigationBar_Component = require('./navigation-bar/Component.js'
6
6
  var components_header_Component = require('./header/Component.js');
7
7
  var components_imagePreview_Component = require('./image-preview/Component.js');
8
8
  var components_imageViewer_component = require('./image-viewer/component.js');
9
+ var components_infoBar_Component = require('./info-bar/Component.js');
10
+ var components_headerMobile_Component = require('./header-mobile/Component.js');
9
11
 
10
12
 
11
13
 
@@ -13,3 +15,5 @@ exports.NavigationBar = components_navigationBar_Component.NavigationBar;
13
15
  exports.Header = components_header_Component.Header;
14
16
  exports.ImagePreview = components_imagePreview_Component.ImagePreview;
15
17
  exports.ImageViewer = components_imageViewer_component.ImageViewer;
18
+ exports.InfoBar = components_infoBar_Component.InfoBar;
19
+ exports.HeaderMobile = components_headerMobile_Component.HeaderMobile;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ declare const InfoBar: () => React.JSX.Element;
4
+ export { InfoBar };
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var coreComponentsTypography = require('@alfalab/core-components-typography/cssm');
7
+ var context = require('../../context.js');
8
+ var utils_utils = require('../../utils/utils.js');
9
+ var utils_constants = require('../../utils/constants.js');
10
+ var components_buttons_index = require('../buttons/index.js');
11
+ var styles = require('./index.module.css');
12
+
13
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
14
+
15
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
16
+ var styles__default = /*#__PURE__*/_interopDefaultCompat(styles);
17
+
18
+ var InfoBar = function () {
19
+ var _a = React.useContext(context.GalleryContext), getCurrentImage = _a.getCurrentImage, mutedVideo = _a.mutedVideo, setMutedVideo = _a.setMutedVideo, playingVideo = _a.playingVideo, setPlayingVideo = _a.setPlayingVideo, getCurrentImageMeta = _a.getCurrentImageMeta;
20
+ var image = getCurrentImage();
21
+ var meta = getCurrentImageMeta();
22
+ var handleMuteVideo = React.useCallback(function () {
23
+ var _a, _b;
24
+ if (mutedVideo) {
25
+ var customEvent = new CustomEvent(utils_constants.GALLERY_EVENTS.ON_UNMUTE, {
26
+ detail: { player: (_a = meta === null || meta === void 0 ? void 0 : meta.player) === null || _a === void 0 ? void 0 : _a.current },
27
+ });
28
+ dispatchEvent(customEvent);
29
+ }
30
+ else {
31
+ var customEvent = new CustomEvent(utils_constants.GALLERY_EVENTS.ON_MUTE, {
32
+ detail: { player: (_b = meta === null || meta === void 0 ? void 0 : meta.player) === null || _b === void 0 ? void 0 : _b.current },
33
+ });
34
+ dispatchEvent(customEvent);
35
+ }
36
+ setMutedVideo(!mutedVideo);
37
+ }, [meta === null || meta === void 0 ? void 0 : meta.player, mutedVideo, setMutedVideo]);
38
+ var handlePlayVideo = React.useCallback(function () {
39
+ setPlayingVideo(!playingVideo);
40
+ }, [playingVideo, setPlayingVideo]);
41
+ return utils_utils.isVideo(image === null || image === void 0 ? void 0 : image.src) ? (React__default.default.createElement("section", { className: styles__default.default.videoButtons },
42
+ playingVideo ? (React__default.default.createElement(components_buttons_index.Pause, { onClick: handlePlayVideo, className: styles__default.default.center })) : (React__default.default.createElement(components_buttons_index.Play, { onClick: handlePlayVideo, className: styles__default.default.center })),
43
+ mutedVideo ? (React__default.default.createElement(components_buttons_index.UnmuteVideo, { onClick: handleMuteVideo, className: styles__default.default.right })) : (React__default.default.createElement(components_buttons_index.MuteVideo, { onClick: handleMuteVideo, className: styles__default.default.right })))) : (React__default.default.createElement(coreComponentsTypography.Typography.Text, { className: styles__default.default.description, tag: 'div', view: 'component', color: 'primary-inverted' }, image === null || image === void 0 ? void 0 : image.name));
44
+ };
45
+
46
+ exports.InfoBar = InfoBar;
@@ -0,0 +1 @@
1
+ export { InfoBar } from "./Component";
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var components_infoBar_Component = require('./Component.js');
6
+
7
+
8
+
9
+ exports.InfoBar = components_infoBar_Component.InfoBar;
@@ -0,0 +1,36 @@
1
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
2
+ } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
+ } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
+ } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
+ } :root {
6
+
7
+ /* Hard */
8
+
9
+ /* Up */
10
+
11
+ /* Hard up */
12
+ } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
13
+
14
+ /* новые значения, используйте их */
15
+ } :root { /* deprecated */ /* deprecated */
16
+ --gap-xs: 8px; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
17
+
18
+ /* новые значения, используйте их */
19
+ --gap-8: var(--gap-xs);
20
+ } :root {
21
+ } :root {
22
+ } /* сбрасывает синюю подсветку при нажатии */ .description {
23
+ text-align: center;
24
+ margin-bottom: var(--gap-8);
25
+ } .videoButtons {
26
+ padding: 0 var(--gap-8);
27
+ position: relative;
28
+ height: 48px;
29
+ } .center {
30
+ position: absolute;
31
+ left: 50%;
32
+ transform: translateX(-50%);
33
+ } .right {
34
+ position: absolute;
35
+ right: 0;
36
+ }
@@ -17,11 +17,12 @@ var styles__default = /*#__PURE__*/_interopDefaultCompat(styles);
17
17
  var MIN_SCROLL_STEP = 24;
18
18
  var NavigationBar = function () {
19
19
  var containerRef = React.useRef(null);
20
- var _a = React.useContext(context.GalleryContext), images = _a.images, currentSlideIndex = _a.currentSlideIndex, setCurrentSlideIndex = _a.setCurrentSlideIndex, getSwiper = _a.getSwiper;
20
+ var _a = React.useContext(context.GalleryContext), images = _a.images, currentSlideIndex = _a.currentSlideIndex, setCurrentSlideIndex = _a.setCurrentSlideIndex, getSwiper = _a.getSwiper, setPlayingVideo = _a.setPlayingVideo;
21
21
  var swiper = getSwiper();
22
22
  var handlePreviewSelect = function (index) {
23
23
  setCurrentSlideIndex === null || setCurrentSlideIndex === void 0 ? void 0 : setCurrentSlideIndex(index);
24
24
  if (swiper) {
25
+ setPlayingVideo(true);
25
26
  swiper.slideTo(index);
26
27
  }
27
28
  };
@@ -34,7 +34,9 @@
34
34
  scrollbar-width: none
35
35
  } .component::-webkit-scrollbar {
36
36
  display: none;
37
- } .preview {
37
+ } .previews {
38
+ display: flex;
39
+ } .preview {
38
40
  flex-shrink: 0;
39
41
  margin: var(--gap-0) var(--gap-2)
40
42
  } .preview:first-child {
package/cssm/context.d.ts CHANGED
@@ -2,13 +2,20 @@
2
2
  import SwiperCore from 'swiper';
3
3
  import { GalleryImage, ImageMeta } from "./types";
4
4
  type GalleryContext = {
5
+ view: 'desktop' | 'mobile';
5
6
  singleSlide: boolean;
6
7
  currentSlideIndex: number;
7
8
  images: GalleryImage[];
8
9
  imagesMeta: ImageMeta[];
9
10
  fullScreen: boolean;
11
+ mutedVideo: boolean;
12
+ playingVideo: boolean;
13
+ hideNavigation: boolean;
14
+ setHideNavigation: (hideNavigation: boolean) => void;
10
15
  initialSlide: number;
11
16
  setFullScreen: (fullScreen: boolean) => void;
17
+ setMutedVideo: (muteVideo: boolean) => void;
18
+ setPlayingVideo: (playingVideo: boolean) => void;
12
19
  setImageMeta: (meta: ImageMeta, index: number) => void;
13
20
  slideTo: (index: number) => void;
14
21
  slideNext: () => void;
package/cssm/context.js CHANGED
@@ -7,11 +7,18 @@ var React = require('react');
7
7
  var mockFn = function () { return undefined; };
8
8
  // eslint-disable-next-line @typescript-eslint/no-redeclare
9
9
  var GalleryContext = React.createContext({
10
+ view: 'desktop',
10
11
  singleSlide: false,
11
12
  currentSlideIndex: 0,
12
13
  images: [],
13
14
  imagesMeta: [],
14
15
  fullScreen: false,
16
+ mutedVideo: false,
17
+ playingVideo: false,
18
+ hideNavigation: false,
19
+ setHideNavigation: mockFn,
20
+ setMutedVideo: mockFn,
21
+ setPlayingVideo: mockFn,
15
22
  initialSlide: 0,
16
23
  setFullScreen: mockFn,
17
24
  setImageMeta: mockFn,
package/cssm/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export * from "./Component";
2
- export * from "./utils/index";
2
+ export { GALLERY_EVENTS, TestIds } from "./utils/index";
package/cssm/index.js CHANGED
@@ -3,17 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var Component = require('./Component.js');
6
- var utils_splitFilename = require('./utils/split-filename.js');
7
- var utils_utils = require('./utils/utils.js');
8
6
  var utils_constants = require('./utils/constants.js');
9
7
 
10
8
 
11
9
 
12
10
  exports.Gallery = Component.Gallery;
13
- exports.splitFilename = utils_splitFilename.splitFilename;
14
- exports.PLACEHOLDER_HEIGHT = utils_utils.PLACEHOLDER_HEIGHT;
15
- exports.PLACEHOLDER_WIDTH = utils_utils.PLACEHOLDER_WIDTH;
16
- exports.getImageAlt = utils_utils.getImageAlt;
17
- exports.getImageKey = utils_utils.getImageKey;
18
- exports.isSmallImage = utils_utils.isSmallImage;
11
+ exports.GALLERY_EVENTS = utils_constants.GALLERY_EVENTS;
19
12
  exports.TestIds = utils_constants.TestIds;
@@ -19,6 +19,8 @@
19
19
  } :root {
20
20
  } :root {
21
21
  } /* сбрасывает синюю подсветку при нажатии */ .container {
22
+ position: relative;
23
+ overflow: hidden;
22
24
  display: flex;
23
25
  flex-direction: column;
24
26
  justify-content: space-between;
@@ -27,7 +29,17 @@
27
29
  background-color: var(--color-static-neutral-0-inverted);
28
30
  } .modal {
29
31
  flex-grow: 1;
30
- width: 100%;
31
- height: 100%;
32
+ width: 100vw;
33
+ height: 100vh;
32
34
  background: transparent;
35
+ } .navigationVideo {
36
+ background-color: var(--color-static-neutral-0-inverted);
37
+ z-index: 3;
38
+ width: 100%;
39
+ position: absolute;
40
+ bottom: 0;
41
+ left: 0;
42
+ transition: transform 0.3s ease-in-out;
43
+ } .hideNavigation {
44
+ transform: translateY(106px);
33
45
  }
package/cssm/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { RefObject } from 'react';
1
2
  type GalleryImage = {
2
3
  src: string;
3
4
  name?: string;
@@ -9,5 +10,11 @@ type ImageMeta = {
9
10
  width: number;
10
11
  height: number;
11
12
  broken?: boolean;
13
+ player?: never;
14
+ } | {
15
+ width?: never;
16
+ height?: never;
17
+ broken?: boolean;
18
+ player: RefObject<HTMLVideoElement>;
12
19
  };
13
20
  export { GalleryImage, ImageMeta };
@@ -7,5 +7,18 @@ declare const TestIds: {
7
7
  EXIT_FULLSCREEN_BUTTON: string;
8
8
  DOWNLOAD_BUTTON: string;
9
9
  NAVIGATION_BAR: string;
10
+ MUTE_BUTTON: string;
11
+ UNMUTE_BUTTON: string;
10
12
  };
11
- export { TestIds };
13
+ declare const PREVIEW_WIDTH_MOBILE = 36;
14
+ declare const PREVIEW_HEIGHT_MOBILE = 46;
15
+ declare const PREVIEW_WIDTH_DESKTOP = 56;
16
+ declare const PREVIEW_HEIGHT_DESKTOP = 56;
17
+ declare const PREVIEW_VIDEO_MULTIPLIER = 12;
18
+ declare const GALLERY_EVENTS: {
19
+ ON_PLAY: string;
20
+ ON_PAUSE: string;
21
+ ON_MUTE: string;
22
+ ON_UNMUTE: string;
23
+ };
24
+ export { TestIds, PREVIEW_WIDTH_MOBILE, PREVIEW_HEIGHT_MOBILE, PREVIEW_WIDTH_DESKTOP, PREVIEW_HEIGHT_DESKTOP, PREVIEW_VIDEO_MULTIPLIER, GALLERY_EVENTS };
@@ -11,6 +11,25 @@ var TestIds = {
11
11
  EXIT_FULLSCREEN_BUTTON: 'exit-fullscreen-button',
12
12
  DOWNLOAD_BUTTON: 'download-button',
13
13
  NAVIGATION_BAR: 'navigation-bar',
14
+ MUTE_BUTTON: 'mute-button',
15
+ UNMUTE_BUTTON: 'unmute-button',
16
+ };
17
+ var PREVIEW_WIDTH_MOBILE = 36;
18
+ var PREVIEW_HEIGHT_MOBILE = 46;
19
+ var PREVIEW_WIDTH_DESKTOP = 56;
20
+ var PREVIEW_HEIGHT_DESKTOP = 56;
21
+ var PREVIEW_VIDEO_MULTIPLIER = 12;
22
+ var GALLERY_EVENTS = {
23
+ ON_PLAY: 'Gallery:OnPlay',
24
+ ON_PAUSE: 'Gallery:OnPause',
25
+ ON_MUTE: 'Gallery:OnMute',
26
+ ON_UNMUTE: 'Gallery:OnUnmute',
14
27
  };
15
28
 
29
+ exports.GALLERY_EVENTS = GALLERY_EVENTS;
30
+ exports.PREVIEW_HEIGHT_DESKTOP = PREVIEW_HEIGHT_DESKTOP;
31
+ exports.PREVIEW_HEIGHT_MOBILE = PREVIEW_HEIGHT_MOBILE;
32
+ exports.PREVIEW_VIDEO_MULTIPLIER = PREVIEW_VIDEO_MULTIPLIER;
33
+ exports.PREVIEW_WIDTH_DESKTOP = PREVIEW_WIDTH_DESKTOP;
34
+ exports.PREVIEW_WIDTH_MOBILE = PREVIEW_WIDTH_MOBILE;
16
35
  exports.TestIds = TestIds;