@alfalab/core-components-gallery 1.1.0 → 2.0.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 (110) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/dist/Component.d.ts +2 -0
  3. package/dist/Component.js +6 -5
  4. package/dist/components/header/Component.js +11 -7
  5. package/dist/components/header/buttons.js +1 -1
  6. package/dist/components/header/index.css +3 -3
  7. package/dist/components/header/index.js +2 -1
  8. package/dist/components/header-info-block/Component.js +1 -1
  9. package/dist/components/header-info-block/index.css +5 -5
  10. package/dist/components/image-preview/Component.js +1 -1
  11. package/dist/components/image-preview/index.css +13 -12
  12. package/dist/components/image-viewer/component.js +15 -7
  13. package/dist/components/image-viewer/index.css +19 -20
  14. package/dist/components/image-viewer/index.js +3 -2
  15. package/dist/components/image-viewer/slide.js +2 -1
  16. package/dist/components/index.js +3 -2
  17. package/dist/components/navigation-bar/Component.js +3 -2
  18. package/dist/components/navigation-bar/index.css +6 -6
  19. package/dist/components/navigation-bar/index.js +1 -0
  20. package/dist/cssm/Component.d.ts +2 -0
  21. package/dist/cssm/Component.js +3 -2
  22. package/dist/cssm/components/header/Component.js +9 -5
  23. package/dist/cssm/components/header/index.js +1 -0
  24. package/dist/cssm/components/header/index.module.css +1 -1
  25. package/dist/cssm/components/image-preview/index.module.css +1 -0
  26. package/dist/cssm/components/image-viewer/component.js +13 -5
  27. package/dist/cssm/components/image-viewer/index.js +1 -0
  28. package/dist/cssm/components/image-viewer/index.module.css +0 -1
  29. package/dist/cssm/components/image-viewer/slide.d.ts +1 -0
  30. package/dist/cssm/components/image-viewer/slide.js +5 -6
  31. package/dist/cssm/components/index.js +1 -0
  32. package/dist/cssm/components/navigation-bar/Component.js +2 -1
  33. package/dist/cssm/components/navigation-bar/index.js +1 -0
  34. package/dist/cssm/index.d.ts +1 -0
  35. package/dist/cssm/index.js +10 -2
  36. package/dist/cssm/types.d.ts +1 -0
  37. package/dist/cssm/utils/constants.d.ts +11 -0
  38. package/dist/cssm/utils/constants.js +16 -0
  39. package/dist/cssm/utils/index.d.ts +1 -0
  40. package/dist/cssm/utils/index.js +2 -0
  41. package/dist/esm/Component.d.ts +2 -0
  42. package/dist/esm/Component.js +6 -5
  43. package/dist/esm/components/header/Component.js +11 -7
  44. package/dist/esm/components/header/buttons.js +1 -1
  45. package/dist/esm/components/header/index.css +3 -3
  46. package/dist/esm/components/header/index.js +2 -1
  47. package/dist/esm/components/header-info-block/Component.js +1 -1
  48. package/dist/esm/components/header-info-block/index.css +5 -5
  49. package/dist/esm/components/image-preview/Component.js +1 -1
  50. package/dist/esm/components/image-preview/index.css +13 -12
  51. package/dist/esm/components/image-viewer/component.js +15 -7
  52. package/dist/esm/components/image-viewer/index.css +19 -20
  53. package/dist/esm/components/image-viewer/index.js +3 -2
  54. package/dist/esm/components/image-viewer/slide.js +2 -1
  55. package/dist/esm/components/index.js +3 -2
  56. package/dist/esm/components/navigation-bar/Component.js +3 -2
  57. package/dist/esm/components/navigation-bar/index.css +6 -6
  58. package/dist/esm/components/navigation-bar/index.js +1 -0
  59. package/dist/esm/index.css +3 -3
  60. package/dist/esm/index.d.ts +1 -0
  61. package/dist/esm/index.js +5 -4
  62. package/dist/esm/{slide-cafe0061.d.ts → slide-0d407884.d.ts} +1 -0
  63. package/dist/esm/{slide-cafe0061.js → slide-0d407884.js} +6 -7
  64. package/dist/esm/{tslib.es6-da013922.d.ts → tslib.es6-fec9ce55.d.ts} +0 -0
  65. package/dist/esm/{tslib.es6-da013922.js → tslib.es6-fec9ce55.js} +0 -0
  66. package/dist/esm/types.d.ts +1 -0
  67. package/dist/esm/utils/constants.d.ts +11 -0
  68. package/dist/esm/utils/constants.js +12 -0
  69. package/dist/esm/utils/index.d.ts +1 -0
  70. package/dist/esm/utils/index.js +1 -0
  71. package/dist/index.css +3 -3
  72. package/dist/index.d.ts +1 -0
  73. package/dist/index.js +12 -4
  74. package/dist/modern/Component.d.ts +2 -0
  75. package/dist/modern/Component.js +5 -4
  76. package/dist/modern/components/header/Component.js +8 -5
  77. package/dist/modern/components/header/index.css +3 -3
  78. package/dist/modern/components/header/index.js +1 -0
  79. package/dist/modern/components/header-info-block/Component.js +1 -1
  80. package/dist/modern/components/header-info-block/index.css +5 -5
  81. package/dist/modern/components/image-preview/Component.js +1 -1
  82. package/dist/modern/components/image-preview/index.css +13 -12
  83. package/dist/modern/components/image-viewer/component.js +12 -5
  84. package/dist/modern/components/image-viewer/index.css +19 -20
  85. package/dist/modern/components/image-viewer/index.js +2 -1
  86. package/dist/modern/components/image-viewer/slide.js +2 -1
  87. package/dist/modern/components/index.js +2 -1
  88. package/dist/modern/components/navigation-bar/Component.js +3 -2
  89. package/dist/modern/components/navigation-bar/index.css +6 -6
  90. package/dist/modern/components/navigation-bar/index.js +1 -0
  91. package/dist/modern/index.css +3 -3
  92. package/dist/modern/index.d.ts +1 -0
  93. package/dist/modern/index.js +4 -3
  94. package/dist/modern/{slide-db4a1a0f.d.ts → slide-831df2ef.d.ts} +1 -0
  95. package/dist/modern/{slide-db4a1a0f.js → slide-831df2ef.js} +6 -7
  96. package/dist/modern/types.d.ts +1 -0
  97. package/dist/modern/utils/constants.d.ts +11 -0
  98. package/dist/modern/utils/constants.js +12 -0
  99. package/dist/modern/utils/index.d.ts +1 -0
  100. package/dist/modern/utils/index.js +1 -0
  101. package/dist/{slide-dea55470.d.ts → slide-4f1564f2.d.ts} +1 -0
  102. package/dist/{slide-dea55470.js → slide-4f1564f2.js} +6 -7
  103. package/dist/{tslib.es6-24a89a0d.d.ts → tslib.es6-925681d9.d.ts} +0 -0
  104. package/dist/{tslib.es6-24a89a0d.js → tslib.es6-925681d9.js} +0 -0
  105. package/dist/types.d.ts +1 -0
  106. package/dist/utils/constants.d.ts +11 -0
  107. package/dist/utils/constants.js +16 -0
  108. package/dist/utils/index.d.ts +1 -0
  109. package/dist/utils/index.js +2 -0
  110. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -3,6 +3,73 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.0.0](https://github.com/alfa-laboratory/core-components/compare/@alfalab/core-components-gallery@1.2.2...@alfalab/core-components-gallery@2.0.0) (2021-11-26)
7
+
8
+
9
+ ### Features
10
+
11
+ * **button:** добавлена кнопка размера 40px, изменены скругления ([#886](https://github.com/alfa-laboratory/core-components/issues/886)) ([88e657a](https://github.com/alfa-laboratory/core-components/commit/88e657a9f0f68b8b58f6e9437053954ee984f83c)), closes [#890](https://github.com/alfa-laboratory/core-components/issues/890)
12
+
13
+
14
+ ### BREAKING CHANGES
15
+
16
+ * **button:** Кнопка размера xs теперь имеет размер 40px. Тем, кто использовал размер xs, надо
17
+ заменить размер на xxs. Можно воспользоваться codemod.
18
+
19
+ * feat(codemod): add button xs to xxs transformer
20
+
21
+ * feat(tag): добавлен тэг размера 40px, изменены отступы
22
+
23
+ Добавлен тэг размером 40px, изменены отступы. Тем, кто использовал размер xs, надо заменить размер
24
+ на xxs.
25
+ * **button:** Тэг размера xs теперь имеет размер 40px. Тем, кто использовал размер xs, надо
26
+ заменить размер на xxs. Можно воспользоваться codemod.
27
+
28
+ * test: update screenshots
29
+
30
+ * test: update screenshots
31
+
32
+ * feat(button): linter fix
33
+
34
+ * feat(button): fix min-width
35
+
36
+ * feat(tag): remove vertical paddings
37
+
38
+ * feat(tag): remove vertical paddings
39
+
40
+ * feat(button): updates
41
+
42
+
43
+
44
+
45
+
46
+ ## [1.2.2](https://github.com/alfa-laboratory/core-components/compare/@alfalab/core-components-gallery@1.2.1...@alfalab/core-components-gallery@1.2.2) (2021-11-16)
47
+
48
+ **Note:** Version bump only for package @alfalab/core-components-gallery
49
+
50
+
51
+
52
+
53
+
54
+ ## [1.2.1](https://github.com/alfa-laboratory/core-components/compare/@alfalab/core-components-gallery@1.2.0...@alfalab/core-components-gallery@1.2.1) (2021-11-08)
55
+
56
+ **Note:** Version bump only for package @alfalab/core-components-gallery
57
+
58
+
59
+
60
+
61
+
62
+ # [1.2.0](https://github.com/alfa-laboratory/core-components/compare/@alfalab/core-components-gallery@1.1.0...@alfalab/core-components-gallery@1.2.0) (2021-09-22)
63
+
64
+
65
+ ### Features
66
+
67
+ * **gallery:** add `canDownload` image prop, some refactoring ([#837](https://github.com/alfa-laboratory/core-components/issues/837)) ([b0c6665](https://github.com/alfa-laboratory/core-components/commit/b0c6665bb6a3d4b1e9d5bc176149f63ca2bd8542))
68
+
69
+
70
+
71
+
72
+
6
73
  # 1.1.0 (2021-09-16)
7
74
 
8
75
 
@@ -11,10 +11,12 @@ type GalleryProps = {
11
11
  images: GalleryImage[];
12
12
  /**
13
13
  * Зациклить галерею
14
+ * @default true
14
15
  */
15
16
  loop?: boolean;
16
17
  /**
17
18
  * Индекс открытого изображение
19
+ * @default 0
18
20
  */
19
21
  initialSlide?: number;
20
22
  /**
package/dist/Component.js CHANGED
@@ -11,9 +11,10 @@ require('./components/image-preview/Component.js');
11
11
  var components_navigationBar_Component = require('./components/navigation-bar/Component.js');
12
12
  require('./utils/split-filename.js');
13
13
  require('./utils/utils.js');
14
+ require('./utils/constants.js');
14
15
  require('@alfalab/core-components-typography');
15
16
  require('./components/header-info-block/Component.js');
16
- require('./tslib.es6-24a89a0d.js');
17
+ require('./tslib.es6-925681d9.js');
17
18
  require('@alfalab/core-components-icon-button');
18
19
  require('@alfalab/core-components-tooltip');
19
20
  require('@alfalab/icons-glyph/PointerDownMIcon');
@@ -28,14 +29,14 @@ require('element-closest');
28
29
  require('swiper/swiper.min.css');
29
30
  require('@alfalab/icons-glyph/ChevronBackHeavyMIcon');
30
31
  require('@alfalab/icons-glyph/ChevronForwardHeavyMIcon');
31
- require('./slide-dea55470.js');
32
+ require('./slide-4f1564f2.js');
32
33
  var components_imageViewer_component = require('./components/image-viewer/component.js');
33
34
 
34
35
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
35
36
 
36
37
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
37
38
 
38
- var styles = {"container":"gallery__container_th1rc","modal":"gallery__modal_th1rc"};
39
+ var styles = {"container":"gallery__container_1g1fk","modal":"gallery__modal_1g1fk"};
39
40
  require('./index.css')
40
41
 
41
42
  var Backdrop = function () { return null; };
@@ -87,7 +88,7 @@ var Gallery = function (_a) {
87
88
  }
88
89
  };
89
90
  var handleKeyDown = React.useCallback(function (event) {
90
- if (fullScreen) {
91
+ if (!open || fullScreen) {
91
92
  return;
92
93
  }
93
94
  switch (event.key) {
@@ -98,7 +99,7 @@ var Gallery = function (_a) {
98
99
  slideNext();
99
100
  break;
100
101
  }
101
- }, [fullScreen, slideNext, slidePrev]);
102
+ }, [fullScreen, open, slideNext, slidePrev]);
102
103
  React.useEffect(function () {
103
104
  document.addEventListener('keydown', handleKeyDown);
104
105
  return function () {
@@ -6,9 +6,10 @@ var React = require('react');
6
6
  var context = require('../../context.js');
7
7
  require('../../utils/split-filename.js');
8
8
  var utils_utils = require('../../utils/utils.js');
9
+ var utils_constants = require('../../utils/constants.js');
9
10
  require('@alfalab/core-components-typography');
10
11
  var components_headerInfoBlock_Component = require('../header-info-block/Component.js');
11
- require('../../tslib.es6-24a89a0d.js');
12
+ require('../../tslib.es6-925681d9.js');
12
13
  require('@alfalab/core-components-icon-button');
13
14
  require('@alfalab/core-components-tooltip');
14
15
  require('@alfalab/icons-glyph/PointerDownMIcon');
@@ -21,11 +22,12 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
21
22
 
22
23
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
23
24
 
24
- var styles = {"component":"gallery__component_lb1bj","buttons":"gallery__buttons_lb1bj"};
25
+ var styles = {"header":"gallery__header_iy7z8","buttons":"gallery__buttons_iy7z8"};
25
26
  require('./index.css')
26
27
 
27
28
  var Header = function () {
28
- var _a = React.useContext(context.GalleryContext), currentSlideIndex = _a.currentSlideIndex, singleSlide = _a.singleSlide, images = _a.images, fullScreen = _a.fullScreen, getCurrentImageMeta = _a.getCurrentImageMeta, getCurrentImage = _a.getCurrentImage, setFullScreen = _a.setFullScreen, onClose = _a.onClose;
29
+ var _a;
30
+ var _b = React.useContext(context.GalleryContext), currentSlideIndex = _b.currentSlideIndex, singleSlide = _b.singleSlide, images = _b.images, fullScreen = _b.fullScreen, getCurrentImageMeta = _b.getCurrentImageMeta, getCurrentImage = _b.getCurrentImage, setFullScreen = _b.setFullScreen, onClose = _b.onClose;
29
31
  var toggleFullScreenButton = React.useRef(null);
30
32
  var closeFullScreen = function () {
31
33
  setFullScreen(false);
@@ -39,21 +41,23 @@ var Header = function () {
39
41
  }
40
42
  }, [fullScreen]);
41
43
  var currentImage = getCurrentImage();
44
+ var canDownload = (_a = currentImage === null || currentImage === void 0 ? void 0 : currentImage.canDownload) !== null && _a !== void 0 ? _a : true;
42
45
  var filename = (currentImage === null || currentImage === void 0 ? void 0 : currentImage.name) || '';
43
46
  var description = singleSlide
44
47
  ? ''
45
48
  : "\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 " + (currentSlideIndex + 1) + " \u0438\u0437 " + images.length;
46
49
  var meta = getCurrentImageMeta();
47
50
  var showFullScreenButton = !utils_utils.isSmallImage(meta) && !(meta === null || meta === void 0 ? void 0 : meta.broken);
51
+ var showDownloadButton = !(meta === null || meta === void 0 ? void 0 : meta.broken) && canDownload;
48
52
  var renderToggleFullScreenButton = function () {
49
- return fullScreen ? (React__default['default'].createElement(components_header_buttons.ExitFullscreen, { onClick: closeFullScreen, buttonRef: toggleFullScreenButton })) : (React__default['default'].createElement(components_header_buttons.Fullscreen, { onClick: openFullScreen, buttonRef: toggleFullScreenButton }));
53
+ return fullScreen ? (React__default['default'].createElement(components_header_buttons.ExitFullscreen, { onClick: closeFullScreen, buttonRef: toggleFullScreenButton, dataTestId: utils_constants.TestIds.EXIT_FULLSCREEN_BUTTON })) : (React__default['default'].createElement(components_header_buttons.Fullscreen, { onClick: openFullScreen, buttonRef: toggleFullScreenButton, dataTestId: utils_constants.TestIds.FULLSCREEN_BUTTON }));
50
54
  };
51
- return (React__default['default'].createElement("div", { className: styles.component },
55
+ return (React__default['default'].createElement("div", { className: styles.header },
52
56
  React__default['default'].createElement(components_headerInfoBlock_Component.HeaderInfoBlock, { filename: filename, description: description }),
53
57
  React__default['default'].createElement("div", { className: styles.buttons },
54
58
  showFullScreenButton && renderToggleFullScreenButton(),
55
- !(meta === null || meta === void 0 ? void 0 : meta.broken) && (React__default['default'].createElement(components_header_buttons.Download, { href: currentImage === null || currentImage === void 0 ? void 0 : currentImage.src, download: currentImage === null || currentImage === void 0 ? void 0 : currentImage.name })),
56
- React__default['default'].createElement(components_header_buttons.Exit, { onClick: onClose }))));
59
+ showDownloadButton && (React__default['default'].createElement(components_header_buttons.Download, { href: currentImage === null || currentImage === void 0 ? void 0 : currentImage.src, download: currentImage === null || currentImage === void 0 ? void 0 : currentImage.name, dataTestId: utils_constants.TestIds.DOWNLOAD_BUTTON })),
60
+ React__default['default'].createElement(components_header_buttons.Exit, { onClick: onClose, dataTestId: utils_constants.TestIds.CLOSE_BUTTON }))));
57
61
  };
58
62
 
59
63
  exports.Header = Header;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var tslib_es6 = require('../../tslib.es6-24a89a0d.js');
6
+ var tslib_es6 = require('../../tslib.es6-925681d9.js');
7
7
  var coreComponentsIconButton = require('@alfalab/core-components-icon-button');
8
8
  var coreComponentsTooltip = require('@alfalab/core-components-tooltip');
9
9
  var PointerDownMIcon = require('@alfalab/icons-glyph/PointerDownMIcon');
@@ -1,4 +1,4 @@
1
- /* hash: lb1bj */
1
+ /* hash: 1oujp */
2
2
  :root {
3
3
  --color-light-bg-tertiary-inverted: #3c4c5d;
4
4
  }
@@ -15,7 +15,7 @@
15
15
  --gap-xl: 24px;
16
16
  --gap-2xl: 32px;
17
17
  }
18
- .gallery__component_lb1bj {
18
+ .gallery__header_iy7z8 {
19
19
  display: flex;
20
20
  justify-content: space-between;
21
21
  flex-shrink: 0;
@@ -24,7 +24,7 @@
24
24
  background-color: var(--color-light-bg-tertiary-inverted);
25
25
  box-sizing: border-box;
26
26
  }
27
- .gallery__buttons_lb1bj {
27
+ .gallery__buttons_iy7z8 {
28
28
  display: flex;
29
29
  padding-left: var(--gap-2xl);
30
30
  }
@@ -6,9 +6,10 @@ require('react');
6
6
  require('../../context.js');
7
7
  require('../../utils/split-filename.js');
8
8
  require('../../utils/utils.js');
9
+ require('../../utils/constants.js');
9
10
  require('@alfalab/core-components-typography');
10
11
  require('../header-info-block/Component.js');
11
- require('../../tslib.es6-24a89a0d.js');
12
+ require('../../tslib.es6-925681d9.js');
12
13
  require('@alfalab/core-components-icon-button');
13
14
  require('@alfalab/core-components-tooltip');
14
15
  require('@alfalab/icons-glyph/PointerDownMIcon');
@@ -10,7 +10,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
10
10
 
11
11
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
12
 
13
- var styles = {"info":"gallery__info_189iu","filenameHead":"gallery__filenameHead_189iu","filenameContainer":"gallery__filenameContainer_189iu","description":"gallery__description_189iu"};
13
+ var styles = {"info":"gallery__info_vpxmu","filenameHead":"gallery__filenameHead_vpxmu","filenameContainer":"gallery__filenameContainer_vpxmu","description":"gallery__description_vpxmu"};
14
14
  require('./index.css')
15
15
 
16
16
  var HeaderInfoBlock = function (_a) {
@@ -1,4 +1,4 @@
1
- /* hash: 189iu */
1
+ /* hash: 4q0fv */
2
2
  :root {
3
3
 
4
4
  /* Hard */
@@ -10,24 +10,24 @@
10
10
  :root {
11
11
  --gap-2xs: 4px;
12
12
  }
13
- .gallery__info_189iu {
13
+ .gallery__info_vpxmu {
14
14
  height: 100%;
15
15
  display: flex;
16
16
  flex-direction: column;
17
17
  justify-content: center;
18
18
  overflow: hidden;
19
19
  }
20
- .gallery__filenameHead_189iu {
20
+ .gallery__filenameHead_vpxmu {
21
21
  display: inline;
22
22
  text-overflow: ellipsis;
23
23
  overflow: hidden;
24
24
  white-space: nowrap;
25
25
  }
26
- .gallery__filenameContainer_189iu {
26
+ .gallery__filenameContainer_vpxmu {
27
27
  overflow: hidden;
28
28
  display: inline-flex;
29
29
  }
30
- .gallery__description_189iu {
30
+ .gallery__description_vpxmu {
31
31
  display: inline;
32
32
  text-overflow: ellipsis;
33
33
  overflow: hidden;
@@ -12,7 +12,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
12
12
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
13
  var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
14
14
 
15
- var styles = {"component":"gallery__component_7nabl","active":"gallery__active_7nabl","image":"gallery__image_7nabl","preview":"gallery__preview_7nabl","loading":"gallery__loading_7nabl","brokenImageWrapper":"gallery__brokenImageWrapper_7nabl","brokenIcon":"gallery__brokenIcon_7nabl","focused":"gallery__focused_7nabl"};
15
+ var styles = {"component":"gallery__component_1b44h","active":"gallery__active_1b44h","image":"gallery__image_1b44h","preview":"gallery__preview_1b44h","loading":"gallery__loading_1b44h","brokenImageWrapper":"gallery__brokenImageWrapper_1b44h","brokenIcon":"gallery__brokenIcon_1b44h","focused":"gallery__focused_1b44h"};
16
16
  require('./index.css')
17
17
 
18
18
  var ImagePreview = function (_a) {
@@ -1,4 +1,4 @@
1
- /* hash: 7nabl */
1
+ /* hash: 134vz */
2
2
  :root {
3
3
  --color-light-bg-primary: #fff;
4
4
  --color-light-border-key-inverted: #fff;
@@ -25,21 +25,22 @@
25
25
  :root {
26
26
  --gallery-broken-image-icon: url('https://alfabank.st/icons/art_no-image_s.svg');
27
27
  }
28
- .gallery__component_7nabl {
28
+ .gallery__component_1b44h {
29
29
  display: flex;
30
30
  padding: var(--gap-2xs);
31
31
  border: 2px solid rgba(0, 0, 0, 0);
32
32
  border-radius: var(--border-radius-l);
33
33
  overflow: hidden;
34
34
  transition: border 0.15s ease-in-out;
35
+ outline: none;
35
36
  }
36
- .gallery__active_7nabl {
37
+ .gallery__active_1b44h {
37
38
  border-color: var(--color-light-border-key-inverted)
38
39
  }
39
- .gallery__active_7nabl > .gallery__image_7nabl {
40
+ .gallery__active_1b44h > .gallery__image_1b44h {
40
41
  opacity: 0.7;
41
42
  }
42
- .gallery__preview_7nabl {
43
+ .gallery__preview_1b44h {
43
44
  width: 56px;
44
45
  height: 56px;
45
46
  flex-shrink: 0;
@@ -48,37 +49,37 @@
48
49
  -webkit-user-select: none;
49
50
  user-select: none;
50
51
  }
51
- .gallery__image_7nabl {
52
+ .gallery__image_1b44h {
52
53
  background-color: var(--color-light-bg-primary);
53
54
  background-size: cover;
54
55
  background-repeat: no-repeat;
55
56
  background-position: center;
56
57
  transition: opacity 0.15s ease-in-out
57
58
  }
58
- .gallery__image_7nabl:hover {
59
+ .gallery__image_1b44h:hover {
59
60
  opacity: 0.7;
60
61
  }
61
- .gallery__loading_7nabl {
62
+ .gallery__loading_1b44h {
62
63
  /* TODO: цвета нет в палитре */
63
64
  background-color: #e9eaeb;
64
65
  }
65
- .gallery__brokenImageWrapper_7nabl {
66
+ .gallery__brokenImageWrapper_1b44h {
66
67
  display: flex;
67
68
  justify-content: center;
68
69
  align-items: center;
69
70
  background-color: var(--color-light-bg-primary)
70
71
  }
71
- .gallery__brokenImageWrapper_7nabl:hover {
72
+ .gallery__brokenImageWrapper_1b44h:hover {
72
73
  opacity: 0.7;
73
74
  }
74
- .gallery__brokenIcon_7nabl {
75
+ .gallery__brokenIcon_1b44h {
75
76
  width: 40px;
76
77
  height: 40px;
77
78
  background-image: var(--gallery-broken-image-icon);
78
79
  background-size: contain;
79
80
  background-repeat: no-repeat;
80
81
  }
81
- .gallery__focused_7nabl {
82
+ .gallery__focused_1b44h {
82
83
  outline: 2px solid var(--focus-color);
83
84
  outline-offset: 2px;
84
85
  }
@@ -7,15 +7,16 @@ var cn = require('classnames');
7
7
  var hooks = require('@alfalab/hooks');
8
8
  var context = require('../../context.js');
9
9
  var utils_utils = require('../../utils/utils.js');
10
+ var utils_constants = require('../../utils/constants.js');
10
11
  require('@alfalab/core-components-typography');
11
- var tslib_es6 = require('../../tslib.es6-24a89a0d.js');
12
+ var tslib_es6 = require('../../tslib.es6-925681d9.js');
12
13
  var SwiperCore = require('swiper');
13
14
  var react = require('swiper/react');
14
15
  var elementClosest = require('element-closest');
15
16
  require('swiper/swiper.min.css');
16
17
  var ChevronBackHeavyMIcon = require('@alfalab/icons-glyph/ChevronBackHeavyMIcon');
17
18
  var ChevronForwardHeavyMIcon = require('@alfalab/icons-glyph/ChevronForwardHeavyMIcon');
18
- var components_imageViewer_slide = require('../../slide-dea55470.js');
19
+ var components_imageViewer_slide = require('../../slide-4f1564f2.js');
19
20
 
20
21
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
22
 
@@ -34,7 +35,8 @@ var ImageViewer = function () {
34
35
  var rightArrowFocused = hooks.useFocus(rightArrowRef, 'keyboard')[0];
35
36
  var swiper = getSwiper();
36
37
  var handleSlideChange = React.useCallback(function () {
37
- setCurrentSlideIndex((swiper === null || swiper === void 0 ? void 0 : swiper.activeIndex) || initialSlide);
38
+ var _a;
39
+ setCurrentSlideIndex((_a = swiper === null || swiper === void 0 ? void 0 : swiper.activeIndex) !== null && _a !== void 0 ? _a : initialSlide);
38
40
  }, [setCurrentSlideIndex, swiper, initialSlide]);
39
41
  var handlePrevClick = function () {
40
42
  slidePrev();
@@ -78,6 +80,9 @@ var ImageViewer = function () {
78
80
  return ({
79
81
  slidesPerView: 1,
80
82
  effect: 'fade',
83
+ fadeEffect: {
84
+ crossFade: true,
85
+ },
81
86
  className: cn__default['default'](components_imageViewer_slide.styles.swiper, (_a = {}, _a[components_imageViewer_slide.styles.hidden] = fullScreen, _a)),
82
87
  controller: { control: swiper },
83
88
  a11y: {
@@ -99,7 +104,7 @@ var ImageViewer = function () {
99
104
  React__default['default'].createElement("div", { className: cn__default['default'](components_imageViewer_slide.styles.component, (_a = {}, _a[components_imageViewer_slide.styles.singleSlide] = singleSlide, _a)), onClick: handleWrapperClick },
100
105
  showControls && (React__default['default'].createElement("div", { className: cn__default['default'](components_imageViewer_slide.styles.arrow, (_b = {},
101
106
  _b[components_imageViewer_slide.styles.focused] = leftArrowFocused,
102
- _b)), onClick: handlePrevClick, role: 'button', onKeyDown: handleArrowLeftKeyDown, tabIndex: 0, ref: leftArrowRef, "aria-label": '\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435' },
107
+ _b)), onClick: handlePrevClick, role: 'button', onKeyDown: handleArrowLeftKeyDown, tabIndex: 0, ref: leftArrowRef, "aria-label": '\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435', "data-test-id": utils_constants.TestIds.PREV_SLIDE_BUTTON },
103
108
  React__default['default'].createElement(ChevronBackHeavyMIcon.ChevronBackHeavyMIcon, null))),
104
109
  fullScreen && (React__default['default'].createElement("img", { src: currentImage === null || currentImage === void 0 ? void 0 : currentImage.src, alt: currentImage ? utils_utils.getImageAlt(currentImage, currentSlideIndex) : '', className: components_imageViewer_slide.styles.fullScreenImage })),
105
110
  React__default['default'].createElement(react.Swiper, tslib_es6.__assign({}, swiperProps), images.map(function (image, index) {
@@ -108,14 +113,17 @@ var ImageViewer = function () {
108
113
  var imageHeight = (meta === null || meta === void 0 ? void 0 : meta.height) || 1;
109
114
  var imageAspectRatio = imageWidth / imageHeight;
110
115
  var slideVisible = index === currentSlideIndex;
111
- return (React__default['default'].createElement(react.SwiperSlide, { key: utils_utils.getImageKey(image, index), style: { pointerEvents: slideVisible ? 'auto' : 'none' } }, function (_a) {
116
+ return (React__default['default'].createElement(react.SwiperSlide, { key: utils_utils.getImageKey(image, index), style: {
117
+ pointerEvents: slideVisible ? 'auto' : 'none',
118
+ transitionProperty: 'opacity',
119
+ } }, function (_a) {
112
120
  var isActive = _a.isActive;
113
- return (React__default['default'].createElement(components_imageViewer_slide.Slide, { isActive: isActive, swiperAspectRatio: swiperAspectRatio, image: image, swiperHeight: swiperHeight, meta: meta, index: index, imageAspectRatio: imageAspectRatio, handleLoad: handleLoad, handleLoadError: handleLoadError }));
121
+ return (React__default['default'].createElement(components_imageViewer_slide.Slide, { isActive: isActive, swiperAspectRatio: swiperAspectRatio, image: image, swiperHeight: swiperHeight, meta: meta, index: index, imageAspectRatio: imageAspectRatio, slideVisible: slideVisible, handleLoad: handleLoad, handleLoadError: handleLoadError }));
114
122
  }));
115
123
  })),
116
124
  showControls && (React__default['default'].createElement("div", { className: cn__default['default'](components_imageViewer_slide.styles.arrow, (_c = {},
117
125
  _c[components_imageViewer_slide.styles.focused] = rightArrowFocused,
118
- _c)), onClick: handleNextClick, role: 'button', onKeyDown: handleArrowRightKeyDown, tabIndex: 0, ref: rightArrowRef, "aria-label": '\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435' },
126
+ _c)), onClick: handleNextClick, role: 'button', onKeyDown: handleArrowRightKeyDown, tabIndex: 0, ref: rightArrowRef, "aria-label": '\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435', "data-test-id": utils_constants.TestIds.NEXT_SLIDE_BUTTON },
119
127
  React__default['default'].createElement(ChevronForwardHeavyMIcon.ChevronForwardHeavyMIcon, null)))));
120
128
  };
121
129
 
@@ -1,4 +1,4 @@
1
- /* hash: hfnrp */
1
+ /* hash: 1cx9f */
2
2
  :root {
3
3
  --color-light-bg-primary: #fff;
4
4
  --color-light-border-link: #007aff;
@@ -29,14 +29,14 @@
29
29
  :root {
30
30
  --gallery-broken-image-icon: url('https://alfabank.st/icons/art_no-image_s.svg');
31
31
  }
32
- .gallery__component_hfnrp {
32
+ .gallery__component_b3ep5 {
33
33
  display: flex;
34
34
  flex-grow: 1;
35
35
  justify-content: center;
36
36
  align-items: center;
37
37
  background-color: var(--color-light-bg-primary-inverted-alpha-50);
38
38
  }
39
- .gallery__swiper_hfnrp {
39
+ .gallery__swiper_b3ep5 {
40
40
  display: flex;
41
41
  width: 100%;
42
42
  height: 100%;
@@ -46,28 +46,27 @@
46
46
  padding: var(--gap-2xl) var(--gap-m);
47
47
  box-sizing: border-box;
48
48
  }
49
- .gallery__singleSlide_hfnrp .gallery__swiper_hfnrp {
49
+ .gallery__singleSlide_b3ep5 .gallery__swiper_b3ep5 {
50
50
  max-height: calc(100vh - 80px);
51
51
  padding: var(--gap-2xl);
52
52
  }
53
- .gallery__hidden_hfnrp {
53
+ .gallery__hidden_b3ep5 {
54
54
  display: none;
55
55
  }
56
- .gallery__slide_hfnrp {
56
+ .gallery__slide_b3ep5 {
57
57
  position: relative;
58
58
  display: flex;
59
59
  justify-content: center;
60
60
  align-items: center;
61
61
  width: 100%;
62
62
  height: 100%;
63
- transition: opacity 0.15s ease-in-out;
64
63
  }
65
- .gallery__slideLoading_hfnrp {
64
+ .gallery__slideLoading_b3ep5 {
66
65
  /* TODO: цвета нет в палитре */
67
66
  background-color: #e9eaeb;
68
67
  border-radius: var(--border-radius-m);
69
68
  }
70
- .gallery__image_hfnrp {
69
+ .gallery__image_b3ep5 {
71
70
  width: 0;
72
71
  height: 0;
73
72
  -webkit-user-select: none;
@@ -75,7 +74,7 @@
75
74
  background-color: var(--color-light-bg-primary);
76
75
  border-radius: var(--border-radius-m);
77
76
  }
78
- .gallery__smallImage_hfnrp {
77
+ .gallery__smallImage_b3ep5 {
79
78
  position: relative;
80
79
  width: auto;
81
80
  height: auto;
@@ -83,15 +82,15 @@
83
82
  user-select: none;
84
83
  background-color: var(--color-light-bg-primary);
85
84
  }
86
- .gallery__verticalImageFit_hfnrp {
85
+ .gallery__verticalImageFit_b3ep5 {
87
86
  width: auto;
88
87
  height: 100%;
89
88
  }
90
- .gallery__horizontalImageFit_hfnrp {
89
+ .gallery__horizontalImageFit_b3ep5 {
91
90
  width: 100%;
92
91
  height: auto;
93
92
  }
94
- .gallery__arrow_hfnrp {
93
+ .gallery__arrow_b3ep5 {
95
94
  display: flex;
96
95
  flex-direction: column;
97
96
  justify-content: center;
@@ -104,17 +103,17 @@
104
103
  transition: background-color 0.15s ease-in-out;
105
104
  outline: none
106
105
  }
107
- .gallery__arrow_hfnrp:hover {
106
+ .gallery__arrow_b3ep5:hover {
108
107
  background-color: var(--color-light-bg-primary-inverted-alpha-10);
109
108
  }
110
- .gallery__arrow_hfnrp:active {
109
+ .gallery__arrow_b3ep5:active {
111
110
  background-color: var(--color-light-bg-primary-inverted-alpha-20);
112
111
  }
113
- .gallery__focused_hfnrp {
112
+ .gallery__focused_b3ep5 {
114
113
  outline: 2px solid var(--focus-color);
115
114
  outline-offset: 2px;
116
115
  }
117
- .gallery__placeholder_hfnrp {
116
+ .gallery__placeholder_b3ep5 {
118
117
  display: flex;
119
118
  justify-content: center;
120
119
  align-items: center;
@@ -123,7 +122,7 @@
123
122
  border-radius: var(--border-radius-m);
124
123
  background-color: var(--color-light-bg-primary);
125
124
  }
126
- .gallery__brokenImgWrapper_hfnrp {
125
+ .gallery__brokenImgWrapper_b3ep5 {
127
126
  position: relative;
128
127
  display: flex;
129
128
  flex-direction: column;
@@ -131,7 +130,7 @@
131
130
  width: 150px;
132
131
  text-align: center;
133
132
  }
134
- .gallery__brokenImgIcon_hfnrp {
133
+ .gallery__brokenImgIcon_b3ep5 {
135
134
  width: 80px;
136
135
  height: 80px;
137
136
  margin-bottom: var(--gap-2xs);
@@ -139,7 +138,7 @@
139
138
  background-size: contain;
140
139
  background-repeat: no-repeat;
141
140
  }
142
- .gallery__fullScreenImage_hfnrp {
141
+ .gallery__fullScreenImage_b3ep5 {
143
142
  width: 100%;
144
143
  height: auto;
145
144
  background-color: var(--color-light-bg-primary);
@@ -7,15 +7,16 @@ require('classnames');
7
7
  require('@alfalab/hooks');
8
8
  require('../../context.js');
9
9
  require('../../utils/utils.js');
10
+ require('../../utils/constants.js');
10
11
  require('@alfalab/core-components-typography');
11
- require('../../tslib.es6-24a89a0d.js');
12
+ require('../../tslib.es6-925681d9.js');
12
13
  require('swiper');
13
14
  require('swiper/react');
14
15
  require('element-closest');
15
16
  require('swiper/swiper.min.css');
16
17
  require('@alfalab/icons-glyph/ChevronBackHeavyMIcon');
17
18
  require('@alfalab/icons-glyph/ChevronForwardHeavyMIcon');
18
- require('../../slide-dea55470.js');
19
+ require('../../slide-4f1564f2.js');
19
20
  var components_imageViewer_component = require('./component.js');
20
21
 
21
22
 
@@ -5,8 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  require('react');
6
6
  require('classnames');
7
7
  require('../../utils/utils.js');
8
+ require('../../utils/constants.js');
8
9
  require('@alfalab/core-components-typography');
9
- var components_imageViewer_slide = require('../../slide-dea55470.js');
10
+ var components_imageViewer_slide = require('../../slide-4f1564f2.js');
10
11
 
11
12
 
12
13
 
@@ -10,9 +10,10 @@ var components_imagePreview_Component = require('./image-preview/Component.js');
10
10
  var components_navigationBar_Component = require('./navigation-bar/Component.js');
11
11
  require('../utils/split-filename.js');
12
12
  require('../utils/utils.js');
13
+ require('../utils/constants.js');
13
14
  require('@alfalab/core-components-typography');
14
15
  require('./header-info-block/Component.js');
15
- require('../tslib.es6-24a89a0d.js');
16
+ require('../tslib.es6-925681d9.js');
16
17
  require('@alfalab/core-components-icon-button');
17
18
  require('@alfalab/core-components-tooltip');
18
19
  require('@alfalab/icons-glyph/PointerDownMIcon');
@@ -27,7 +28,7 @@ require('element-closest');
27
28
  require('swiper/swiper.min.css');
28
29
  require('@alfalab/icons-glyph/ChevronBackHeavyMIcon');
29
30
  require('@alfalab/icons-glyph/ChevronForwardHeavyMIcon');
30
- require('../slide-dea55470.js');
31
+ require('../slide-4f1564f2.js');
31
32
  var components_imageViewer_component = require('./image-viewer/component.js');
32
33
 
33
34
 
@@ -8,12 +8,13 @@ require('@alfalab/hooks');
8
8
  var context = require('../../context.js');
9
9
  var components_imagePreview_Component = require('../image-preview/Component.js');
10
10
  var utils_utils = require('../../utils/utils.js');
11
+ var utils_constants = require('../../utils/constants.js');
11
12
 
12
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
14
 
14
15
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
16
 
16
- var styles = {"component":"gallery__component_pmo4k","preview":"gallery__preview_pmo4k"};
17
+ var styles = {"component":"gallery__component_svs19","preview":"gallery__preview_svs19"};
17
18
  require('./index.css')
18
19
 
19
20
  var MIN_SCROLL_STEP = 24;
@@ -63,7 +64,7 @@ var NavigationBar = function () {
63
64
  }, [currentSlideIndex, handlePreviewPosition, scroll]);
64
65
  return (
65
66
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
66
- React__default['default'].createElement("div", { className: styles.component, ref: containerRef, onKeyDown: handleKeyDown }, images.map(function (image, index) {
67
+ React__default['default'].createElement("div", { className: styles.component, ref: containerRef, onKeyDown: handleKeyDown, "data-test-id": utils_constants.TestIds.NAVIGATION_BAR }, images.map(function (image, index) {
67
68
  var active = index === currentSlideIndex;
68
69
  return (React__default['default'].createElement(components_imagePreview_Component.ImagePreview, { key: utils_utils.getImageKey(image, index), image: image, active: active, index: index, onSelect: handlePreviewSelect, className: styles.preview }));
69
70
  })));