@alfalab/core-components-gallery 5.3.16 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Component.d.ts +8 -0
- package/Component.js +21 -10
- package/{buttons-774a8876.js → buttons-aee8961b.js} +1 -1
- package/components/header/Component.js +1 -1
- package/components/header/buttons.js +1 -1
- package/components/header/index.css +6 -6
- package/components/header/index.js +1 -1
- package/components/header-info-block/Component.js +1 -1
- package/components/header-info-block/index.css +5 -5
- package/components/image-preview/Component.js +1 -1
- package/components/image-preview/index.css +16 -16
- package/components/image-viewer/component.js +2 -2
- package/components/image-viewer/index.css +25 -25
- package/components/image-viewer/index.js +1 -1
- package/components/image-viewer/slide.js +1 -1
- package/components/index.js +2 -2
- package/components/navigation-bar/Component.js +2 -2
- package/components/navigation-bar/index.css +6 -6
- package/context.d.ts +1 -1
- package/cssm/Component.d.ts +8 -0
- package/cssm/Component.js +18 -7
- package/cssm/components/image-preview/index.module.css +3 -3
- package/cssm/components/image-viewer/component.js +1 -1
- package/cssm/components/image-viewer/index.module.css +6 -6
- package/cssm/components/navigation-bar/Component.js +1 -1
- package/cssm/context.d.ts +1 -1
- package/cssm/index.module.css +1 -1
- package/esm/Component.d.ts +8 -0
- package/esm/Component.js +21 -10
- package/esm/{buttons-19c3e8bb.js → buttons-3fe223c3.js} +1 -1
- package/esm/components/header/Component.js +1 -1
- package/esm/components/header/buttons.js +1 -1
- package/esm/components/header/index.css +6 -6
- package/esm/components/header/index.js +1 -1
- package/esm/components/header-info-block/Component.js +1 -1
- package/esm/components/header-info-block/index.css +5 -5
- package/esm/components/image-preview/Component.js +1 -1
- package/esm/components/image-preview/index.css +16 -16
- package/esm/components/image-viewer/component.js +2 -2
- package/esm/components/image-viewer/index.css +25 -25
- package/esm/components/image-viewer/index.js +1 -1
- package/esm/components/image-viewer/slide.js +1 -1
- package/esm/components/index.js +2 -2
- package/esm/components/navigation-bar/Component.js +2 -2
- package/esm/components/navigation-bar/index.css +6 -6
- package/esm/context.d.ts +1 -1
- package/esm/index.css +4 -4
- package/esm/index.js +2 -2
- package/esm/{slide-3dfe6711.js → slide-dae17d46.js} +1 -1
- package/index.css +4 -4
- package/index.js +2 -2
- package/modern/Component.d.ts +8 -0
- package/modern/Component.js +21 -10
- package/modern/{buttons-843b823a.js → buttons-80612f2b.js} +1 -1
- package/modern/components/header/Component.js +1 -1
- package/modern/components/header/buttons.js +1 -1
- package/modern/components/header/index.css +6 -6
- package/modern/components/header/index.js +1 -1
- package/modern/components/header-info-block/Component.js +1 -1
- package/modern/components/header-info-block/index.css +5 -5
- package/modern/components/image-preview/Component.js +1 -1
- package/modern/components/image-preview/index.css +16 -16
- package/modern/components/image-viewer/component.js +2 -2
- package/modern/components/image-viewer/index.css +25 -25
- package/modern/components/image-viewer/index.js +1 -1
- package/modern/components/image-viewer/slide.js +1 -1
- package/modern/components/index.js +2 -2
- package/modern/components/navigation-bar/Component.js +2 -2
- package/modern/components/navigation-bar/index.css +6 -6
- package/modern/context.d.ts +1 -1
- package/modern/index.css +4 -4
- package/modern/index.js +2 -2
- package/modern/{slide-39ef7ba6.js → slide-060d55ad.js} +1 -1
- package/package.json +5 -5
- package/{slide-9204dd28.js → slide-2267d541.js} +1 -1
- package/src/Component.tsx +32 -6
- package/src/components/image-viewer/component.tsx +1 -1
- package/src/components/navigation-bar/Component.tsx +1 -1
- package/src/context.ts +1 -1
- /package/{buttons-774a8876.d.ts → buttons-aee8961b.d.ts} +0 -0
- /package/esm/{buttons-19c3e8bb.d.ts → buttons-3fe223c3.d.ts} +0 -0
- /package/esm/{slide-3dfe6711.d.ts → slide-dae17d46.d.ts} +0 -0
- /package/modern/{buttons-843b823a.d.ts → buttons-80612f2b.d.ts} +0 -0
- /package/modern/{slide-39ef7ba6.d.ts → slide-060d55ad.d.ts} +0 -0
- /package/{slide-9204dd28.d.ts → slide-2267d541.d.ts} +0 -0
package/Component.d.ts
CHANGED
|
@@ -23,6 +23,14 @@ type GalleryProps = {
|
|
|
23
23
|
* Обработчик закрытия
|
|
24
24
|
*/
|
|
25
25
|
onClose: () => void;
|
|
26
|
+
/**
|
|
27
|
+
* Индекс текущего изображения
|
|
28
|
+
*/
|
|
29
|
+
slideIndex?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Обработчик изменения текущего изображения
|
|
32
|
+
*/
|
|
33
|
+
onSlideIndexChange?: (index: number) => void;
|
|
26
34
|
};
|
|
27
35
|
declare const Gallery: FC<GalleryProps>;
|
|
28
36
|
export { GalleryProps, Gallery };
|
package/Component.js
CHANGED
|
@@ -17,7 +17,7 @@ require('./components/image-preview/paths.js');
|
|
|
17
17
|
require('./components/header-info-block/Component.js');
|
|
18
18
|
require('@alfalab/core-components-typography');
|
|
19
19
|
require('./utils/split-filename.js');
|
|
20
|
-
require('./buttons-
|
|
20
|
+
require('./buttons-aee8961b.js');
|
|
21
21
|
require('tslib');
|
|
22
22
|
require('@alfalab/core-components-icon-button');
|
|
23
23
|
require('@alfalab/core-components-tooltip/desktop');
|
|
@@ -30,7 +30,7 @@ require('swiper');
|
|
|
30
30
|
require('swiper/react');
|
|
31
31
|
require('@alfalab/icons-glyph/ChevronBackHeavyMIcon');
|
|
32
32
|
require('@alfalab/icons-glyph/ChevronForwardHeavyMIcon');
|
|
33
|
-
require('./slide-
|
|
33
|
+
require('./slide-2267d541.js');
|
|
34
34
|
require('./components/image-viewer/paths.js');
|
|
35
35
|
require('swiper/swiper.min.css');
|
|
36
36
|
|
|
@@ -38,24 +38,28 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
38
38
|
|
|
39
39
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
40
40
|
|
|
41
|
-
var styles = {"container":"
|
|
41
|
+
var styles = {"container":"gallery__container_1hfaf","modal":"gallery__modal_1hfaf"};
|
|
42
42
|
require('./index.css')
|
|
43
43
|
|
|
44
44
|
var Backdrop = function () { return null; };
|
|
45
45
|
var Gallery = function (_a) {
|
|
46
|
-
var open = _a.open, images = _a.images, _b = _a.initialSlide, initialSlide = _b === void 0 ? 0 : _b, _c = _a.loop, loop = _c === void 0 ? true : _c, onClose = _a.onClose;
|
|
47
|
-
var
|
|
46
|
+
var open = _a.open, images = _a.images, slideIndex = _a.slideIndex, _b = _a.initialSlide, initialSlide = _b === void 0 ? 0 : _b, _c = _a.loop, loop = _c === void 0 ? true : _c, onClose = _a.onClose, onSlideIndexChange = _a.onSlideIndexChange;
|
|
47
|
+
var currentSlideIndexState = React.useState(initialSlide);
|
|
48
|
+
var uncontrolled = slideIndex === undefined;
|
|
49
|
+
var _d = uncontrolled
|
|
50
|
+
? currentSlideIndexState
|
|
51
|
+
: [slideIndex, onSlideIndexChange], currentSlideIndex = _d[0], setCurrentSlideIndex = _d[1];
|
|
48
52
|
var _e = React.useState(), swiper = _e[0], setSwiper = _e[1];
|
|
49
53
|
var _f = React.useState([]), imagesMeta = _f[0], setImagesMeta = _f[1];
|
|
50
54
|
var _g = React.useState(false), fullScreen = _g[0], setFullScreen = _g[1];
|
|
51
55
|
var slideTo = React.useCallback(function (index) {
|
|
52
56
|
if (images[index]) {
|
|
53
|
-
setCurrentSlideIndex(index);
|
|
57
|
+
setCurrentSlideIndex === null || setCurrentSlideIndex === void 0 ? void 0 : setCurrentSlideIndex(index);
|
|
54
58
|
if (swiper) {
|
|
55
59
|
swiper.slideTo(index);
|
|
56
60
|
}
|
|
57
61
|
}
|
|
58
|
-
}, [images, swiper]);
|
|
62
|
+
}, [images, setCurrentSlideIndex, swiper]);
|
|
59
63
|
var slideNext = React.useCallback(function () {
|
|
60
64
|
var lastIndex = images.length - 1;
|
|
61
65
|
var nextIndex = currentSlideIndex + 1;
|
|
@@ -78,9 +82,11 @@ var Gallery = function (_a) {
|
|
|
78
82
|
}, [imagesMeta]);
|
|
79
83
|
var handleClose = React.useCallback(function () {
|
|
80
84
|
onClose();
|
|
81
|
-
|
|
85
|
+
if (uncontrolled) {
|
|
86
|
+
setCurrentSlideIndex === null || setCurrentSlideIndex === void 0 ? void 0 : setCurrentSlideIndex(initialSlide);
|
|
87
|
+
}
|
|
82
88
|
setFullScreen(false);
|
|
83
|
-
}, [initialSlide, onClose]);
|
|
89
|
+
}, [initialSlide, onClose, setCurrentSlideIndex, uncontrolled]);
|
|
84
90
|
var handleEscapeKeyDown = function () {
|
|
85
91
|
if (fullScreen) {
|
|
86
92
|
setFullScreen(false);
|
|
@@ -102,6 +108,11 @@ var Gallery = function (_a) {
|
|
|
102
108
|
break;
|
|
103
109
|
}
|
|
104
110
|
}, [fullScreen, open, slideNext, slidePrev]);
|
|
111
|
+
React.useEffect(function () {
|
|
112
|
+
if (!uncontrolled && !(swiper === null || swiper === void 0 ? void 0 : swiper.destroyed)) {
|
|
113
|
+
swiper === null || swiper === void 0 ? void 0 : swiper.slideTo(currentSlideIndex);
|
|
114
|
+
}
|
|
115
|
+
}, [uncontrolled, currentSlideIndex, swiper]);
|
|
105
116
|
React.useEffect(function () {
|
|
106
117
|
document.addEventListener('keydown', handleKeyDown);
|
|
107
118
|
return function () {
|
|
@@ -117,7 +128,7 @@ var Gallery = function (_a) {
|
|
|
117
128
|
images: images,
|
|
118
129
|
imagesMeta: imagesMeta,
|
|
119
130
|
fullScreen: fullScreen,
|
|
120
|
-
initialSlide: initialSlide,
|
|
131
|
+
initialSlide: uncontrolled ? initialSlide : currentSlideIndex,
|
|
121
132
|
setFullScreen: setFullScreen,
|
|
122
133
|
setImageMeta: setImageMeta,
|
|
123
134
|
slideNext: slideNext,
|
|
@@ -13,7 +13,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
13
13
|
|
|
14
14
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
15
15
|
|
|
16
|
-
var styles = {"header":"
|
|
16
|
+
var styles = {"header":"gallery__header_wjlmy","buttons":"gallery__buttons_wjlmy","iconButton":"gallery__iconButton_wjlmy"};
|
|
17
17
|
require('./components/header/index.css')
|
|
18
18
|
|
|
19
19
|
var Fullscreen = function (_a) {
|
|
@@ -7,7 +7,7 @@ var context = require('../../context.js');
|
|
|
7
7
|
var utils_utils = require('../../utils/utils.js');
|
|
8
8
|
var utils_constants = require('../../utils/constants.js');
|
|
9
9
|
var components_headerInfoBlock_Component = require('../header-info-block/Component.js');
|
|
10
|
-
var components_header_buttons = require('../../buttons-
|
|
10
|
+
var components_header_buttons = require('../../buttons-aee8961b.js');
|
|
11
11
|
require('@alfalab/core-components-typography');
|
|
12
12
|
require('../../utils/split-filename.js');
|
|
13
13
|
require('tslib');
|
|
@@ -10,7 +10,7 @@ require('@alfalab/icons-glyph/ArrowsInwardMIcon');
|
|
|
10
10
|
require('@alfalab/icons-glyph/ArrowsOutwardMIcon');
|
|
11
11
|
require('@alfalab/icons-glyph/CrossMIcon');
|
|
12
12
|
require('@alfalab/icons-glyph/PointerDownMIcon');
|
|
13
|
-
var components_header_buttons = require('../../buttons-
|
|
13
|
+
var components_header_buttons = require('../../buttons-aee8961b.js');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: 3lcw5 */
|
|
2
2
|
:root {
|
|
3
3
|
} /* deprecated */ :root {
|
|
4
4
|
--color-static-graphic-light: #fff; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* 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,20 +20,20 @@
|
|
|
20
20
|
--gap-2xl: 32px;
|
|
21
21
|
} :root {
|
|
22
22
|
} :root {
|
|
23
|
-
} .
|
|
23
|
+
} .gallery__header_wjlmy {
|
|
24
24
|
display: flex;
|
|
25
25
|
justify-content: space-between;
|
|
26
26
|
flex-shrink: 0;
|
|
27
27
|
width: 100%;
|
|
28
28
|
padding: var(--gap-m) var(--gap-xl);
|
|
29
29
|
box-sizing: border-box;
|
|
30
|
-
} .
|
|
30
|
+
} .gallery__buttons_wjlmy {
|
|
31
31
|
display: flex;
|
|
32
32
|
padding-left: var(--gap-2xl)
|
|
33
|
-
} .
|
|
33
|
+
} .gallery__buttons_wjlmy path {
|
|
34
34
|
color: var(--color-static-graphic-light);
|
|
35
|
-
} /* TODO: применять static цвет через prop IconButton'а */ .
|
|
35
|
+
} /* TODO: применять static цвет через prop IconButton'а */ .gallery__iconButton_wjlmy:hover path {
|
|
36
36
|
color: var(--color-static-graphic-light-shade-7);
|
|
37
|
-
} .
|
|
37
|
+
} .gallery__iconButton_wjlmy:active path {
|
|
38
38
|
color: var(--color-static-graphic-light-shade-15);
|
|
39
39
|
}
|
|
@@ -10,7 +10,7 @@ require('../../utils/constants.js');
|
|
|
10
10
|
require('../header-info-block/Component.js');
|
|
11
11
|
require('@alfalab/core-components-typography');
|
|
12
12
|
require('../../utils/split-filename.js');
|
|
13
|
-
require('../../buttons-
|
|
13
|
+
require('../../buttons-aee8961b.js');
|
|
14
14
|
require('tslib');
|
|
15
15
|
require('@alfalab/core-components-icon-button');
|
|
16
16
|
require('@alfalab/core-components-tooltip/desktop');
|
|
@@ -10,7 +10,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
10
10
|
|
|
11
11
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
12
12
|
|
|
13
|
-
var styles = {"info":"
|
|
13
|
+
var styles = {"info":"gallery__info_1062w","filenameHead":"gallery__filenameHead_1062w","filenameContainer":"gallery__filenameContainer_1062w","description":"gallery__description_1062w"};
|
|
14
14
|
require('./index.css')
|
|
15
15
|
|
|
16
16
|
var HeaderInfoBlock = function (_a) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: fimry */
|
|
2
2
|
:root {
|
|
3
3
|
} /* 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 */
|
|
4
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 */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
@@ -15,21 +15,21 @@
|
|
|
15
15
|
--gap-2xs: 4px;
|
|
16
16
|
} :root {
|
|
17
17
|
} :root {
|
|
18
|
-
} .
|
|
18
|
+
} .gallery__info_1062w {
|
|
19
19
|
height: 100%;
|
|
20
20
|
display: flex;
|
|
21
21
|
flex-direction: column;
|
|
22
22
|
justify-content: center;
|
|
23
23
|
overflow: hidden;
|
|
24
|
-
} .
|
|
24
|
+
} .gallery__filenameHead_1062w {
|
|
25
25
|
display: inline;
|
|
26
26
|
text-overflow: ellipsis;
|
|
27
27
|
overflow: hidden;
|
|
28
28
|
white-space: nowrap;
|
|
29
|
-
} .
|
|
29
|
+
} .gallery__filenameContainer_1062w {
|
|
30
30
|
overflow: hidden;
|
|
31
31
|
display: inline-flex;
|
|
32
|
-
} .
|
|
32
|
+
} .gallery__description_1062w {
|
|
33
33
|
display: inline;
|
|
34
34
|
text-overflow: ellipsis;
|
|
35
35
|
overflow: hidden;
|
|
@@ -13,7 +13,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
13
13
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
14
14
|
var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
|
|
15
15
|
|
|
16
|
-
var styles = {"component":"
|
|
16
|
+
var styles = {"component":"gallery__component_1fk9r","active":"gallery__active_1fk9r","image":"gallery__image_1fk9r","preview":"gallery__preview_1fk9r","loading":"gallery__loading_1fk9r","brokenImageWrapper":"gallery__brokenImageWrapper_1fk9r","brokenIcon":"gallery__brokenIcon_1fk9r","focused":"gallery__focused_1fk9r"};
|
|
17
17
|
require('./index.css')
|
|
18
18
|
|
|
19
19
|
var ImagePreview = function (_a) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: 1pxez */
|
|
2
2
|
:root {
|
|
3
3
|
} /* deprecated */ :root {
|
|
4
4
|
--color-light-bg-primary: #fff;
|
|
5
|
-
--color-light-border-link: #
|
|
6
|
-
--color-static-bg-quaternary-dark: #
|
|
7
|
-
--color-static-bg-secondary-dark: #
|
|
5
|
+
--color-light-border-link: #2288fa;
|
|
6
|
+
--color-static-bg-quaternary-dark: #36363a;
|
|
7
|
+
--color-static-bg-secondary-dark: #1c1c1e; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
8
8
|
} :root {
|
|
9
9
|
--color-static-overlay-white-xhigh: rgba(255, 255, 255, 0.4); /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
10
10
|
} :root {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
} :root {
|
|
24
24
|
} :root {
|
|
25
25
|
--focus-color: var(--color-light-border-link);
|
|
26
|
-
} .
|
|
26
|
+
} .gallery__component_1fk9r {
|
|
27
27
|
display: flex;
|
|
28
28
|
padding: var(--gap-2xs);
|
|
29
29
|
border: 2px solid rgba(0, 0, 0, 0);
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
overflow: hidden;
|
|
32
32
|
transition: border 0.15s ease-in-out;
|
|
33
33
|
outline: none;
|
|
34
|
-
} .
|
|
34
|
+
} .gallery__active_1fk9r {
|
|
35
35
|
border-color: var(--color-static-overlay-white-xhigh)
|
|
36
|
-
} .
|
|
36
|
+
} .gallery__active_1fk9r > .gallery__image_1fk9r {
|
|
37
37
|
opacity: 0.7;
|
|
38
|
-
} .
|
|
38
|
+
} .gallery__preview_1fk9r {
|
|
39
39
|
width: 56px;
|
|
40
40
|
height: 56px;
|
|
41
41
|
flex-shrink: 0;
|
|
@@ -43,29 +43,29 @@
|
|
|
43
43
|
cursor: pointer;
|
|
44
44
|
-webkit-user-select: none;
|
|
45
45
|
user-select: none;
|
|
46
|
-
} .
|
|
46
|
+
} .gallery__image_1fk9r {
|
|
47
47
|
background-color: var(--color-light-bg-primary);
|
|
48
48
|
background-size: cover;
|
|
49
49
|
background-repeat: no-repeat;
|
|
50
50
|
background-position: center;
|
|
51
51
|
transition: opacity 0.15s ease-in-out
|
|
52
|
-
} .
|
|
52
|
+
} .gallery__image_1fk9r:hover {
|
|
53
53
|
opacity: 0.7;
|
|
54
|
-
} .
|
|
54
|
+
} .gallery__loading_1fk9r {
|
|
55
55
|
background-color: var(--color-static-bg-secondary-dark)
|
|
56
|
-
} .
|
|
56
|
+
} .gallery__loading_1fk9r .gallery__active_1fk9r {
|
|
57
57
|
background-color: var(--color-static-bg-quaternary-dark);
|
|
58
|
-
} .
|
|
58
|
+
} .gallery__brokenImageWrapper_1fk9r {
|
|
59
59
|
display: flex;
|
|
60
60
|
justify-content: center;
|
|
61
61
|
align-items: center;
|
|
62
62
|
background-color: var(--color-static-bg-quaternary-dark)
|
|
63
|
-
} .
|
|
63
|
+
} .gallery__brokenImageWrapper_1fk9r:hover {
|
|
64
64
|
opacity: 0.7;
|
|
65
|
-
} .
|
|
65
|
+
} .gallery__brokenIcon_1fk9r {
|
|
66
66
|
width: 40px;
|
|
67
67
|
height: 40px;
|
|
68
|
-
} .
|
|
68
|
+
} .gallery__focused_1fk9r {
|
|
69
69
|
outline: 2px solid var(--focus-color);
|
|
70
70
|
outline-offset: 2px;
|
|
71
71
|
}
|
|
@@ -14,7 +14,7 @@ var ChevronForwardHeavyMIcon = require('@alfalab/icons-glyph/ChevronForwardHeavy
|
|
|
14
14
|
var context = require('../../context.js');
|
|
15
15
|
var utils_utils = require('../../utils/utils.js');
|
|
16
16
|
var utils_constants = require('../../utils/constants.js');
|
|
17
|
-
var components_imageViewer_slide = require('../../slide-
|
|
17
|
+
var components_imageViewer_slide = require('../../slide-2267d541.js');
|
|
18
18
|
require('swiper/swiper.min.css');
|
|
19
19
|
require('@alfalab/core-components-typography');
|
|
20
20
|
require('./paths.js');
|
|
@@ -37,7 +37,7 @@ var ImageViewer = function () {
|
|
|
37
37
|
var swiper = getSwiper();
|
|
38
38
|
var handleSlideChange = React.useCallback(function () {
|
|
39
39
|
var _a;
|
|
40
|
-
setCurrentSlideIndex((_a = swiper === null || swiper === void 0 ? void 0 : swiper.activeIndex) !== null && _a !== void 0 ? _a : initialSlide);
|
|
40
|
+
setCurrentSlideIndex === null || setCurrentSlideIndex === void 0 ? void 0 : setCurrentSlideIndex((_a = swiper === null || swiper === void 0 ? void 0 : swiper.activeIndex) !== null && _a !== void 0 ? _a : initialSlide);
|
|
41
41
|
}, [setCurrentSlideIndex, swiper, initialSlide]);
|
|
42
42
|
var handlePrevClick = function () {
|
|
43
43
|
slidePrev();
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: 1g54s */
|
|
2
2
|
:root {
|
|
3
3
|
} /* deprecated */ :root {
|
|
4
4
|
--color-light-bg-primary: #fff;
|
|
5
|
-
--color-light-border-link: #
|
|
6
|
-
--color-static-bg-primary-dark: #
|
|
7
|
-
--color-static-bg-quaternary-dark: #
|
|
8
|
-
--color-static-bg-secondary-dark: #
|
|
5
|
+
--color-light-border-link: #2288fa;
|
|
6
|
+
--color-static-bg-primary-dark: #0e0e0e;
|
|
7
|
+
--color-static-bg-quaternary-dark: #36363a;
|
|
8
|
+
--color-static-bg-secondary-dark: #1c1c1e;
|
|
9
9
|
--color-static-graphic-light: #fff; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
10
|
-
--color-static-bg-primary-dark-tint-15: rgb(
|
|
11
|
-
--color-static-bg-primary-dark-tint-20: rgb(
|
|
10
|
+
--color-static-bg-primary-dark-tint-15: rgb(50, 50, 50);
|
|
11
|
+
--color-static-bg-primary-dark-tint-20: rgb(62, 62, 62);
|
|
12
12
|
} :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 */
|
|
13
13
|
} :root {
|
|
14
14
|
} :root {
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
} :root {
|
|
28
28
|
} :root {
|
|
29
29
|
--focus-color: var(--color-light-border-link);
|
|
30
|
-
} .
|
|
30
|
+
} .gallery__component_tcbv9 {
|
|
31
31
|
display: flex;
|
|
32
32
|
flex-grow: 1;
|
|
33
33
|
justify-content: center;
|
|
34
34
|
align-items: center;
|
|
35
35
|
background-color: var(--color-static-bg-primary-dark);
|
|
36
|
-
} .
|
|
36
|
+
} .gallery__swiper_tcbv9 {
|
|
37
37
|
display: flex;
|
|
38
38
|
width: 100%;
|
|
39
39
|
height: 100%;
|
|
@@ -42,42 +42,42 @@
|
|
|
42
42
|
max-height: calc(100vh - 168px);
|
|
43
43
|
padding: var(--gap-2xl) var(--gap-m);
|
|
44
44
|
box-sizing: border-box;
|
|
45
|
-
} .
|
|
45
|
+
} .gallery__singleSlide_tcbv9 .gallery__swiper_tcbv9 {
|
|
46
46
|
max-height: calc(100vh - 80px);
|
|
47
47
|
padding: var(--gap-2xl);
|
|
48
|
-
} .
|
|
48
|
+
} .gallery__hidden_tcbv9 {
|
|
49
49
|
display: none;
|
|
50
|
-
} .
|
|
50
|
+
} .gallery__slide_tcbv9 {
|
|
51
51
|
position: relative;
|
|
52
52
|
display: flex;
|
|
53
53
|
justify-content: center;
|
|
54
54
|
align-items: center;
|
|
55
55
|
width: 100%;
|
|
56
56
|
height: 100%;
|
|
57
|
-
} .
|
|
57
|
+
} .gallery__slideLoading_tcbv9 {
|
|
58
58
|
background-color: var(--color-static-bg-secondary-dark);
|
|
59
59
|
border-radius: var(--border-radius-m);
|
|
60
|
-
} .
|
|
60
|
+
} .gallery__image_tcbv9 {
|
|
61
61
|
width: 0;
|
|
62
62
|
height: 0;
|
|
63
63
|
-webkit-user-select: none;
|
|
64
64
|
user-select: none;
|
|
65
65
|
background-color: var(--color-light-bg-primary);
|
|
66
66
|
border-radius: var(--border-radius-m);
|
|
67
|
-
} .
|
|
67
|
+
} .gallery__smallImage_tcbv9 {
|
|
68
68
|
position: relative;
|
|
69
69
|
width: auto;
|
|
70
70
|
height: auto;
|
|
71
71
|
-webkit-user-select: none;
|
|
72
72
|
user-select: none;
|
|
73
73
|
background-color: var(--color-light-bg-primary);
|
|
74
|
-
} .
|
|
74
|
+
} .gallery__verticalImageFit_tcbv9 {
|
|
75
75
|
width: auto;
|
|
76
76
|
height: 100%;
|
|
77
|
-
} .
|
|
77
|
+
} .gallery__horizontalImageFit_tcbv9 {
|
|
78
78
|
width: 100%;
|
|
79
79
|
height: auto;
|
|
80
|
-
} .
|
|
80
|
+
} .gallery__arrow_tcbv9 {
|
|
81
81
|
display: flex;
|
|
82
82
|
flex-direction: column;
|
|
83
83
|
justify-content: center;
|
|
@@ -89,14 +89,14 @@
|
|
|
89
89
|
color: var(--color-static-graphic-light);
|
|
90
90
|
transition: background-color 0.15s ease-in-out;
|
|
91
91
|
outline: none
|
|
92
|
-
} .
|
|
92
|
+
} .gallery__arrow_tcbv9:hover {
|
|
93
93
|
background-color: var(--color-static-bg-primary-dark-tint-15);
|
|
94
|
-
} .
|
|
94
|
+
} .gallery__arrow_tcbv9:active {
|
|
95
95
|
background-color: var(--color-static-bg-primary-dark-tint-20);
|
|
96
|
-
} .
|
|
96
|
+
} .gallery__focused_tcbv9 {
|
|
97
97
|
outline: 2px solid var(--focus-color);
|
|
98
98
|
outline-offset: 2px;
|
|
99
|
-
} .
|
|
99
|
+
} .gallery__placeholder_tcbv9 {
|
|
100
100
|
display: flex;
|
|
101
101
|
justify-content: center;
|
|
102
102
|
align-items: center;
|
|
@@ -104,18 +104,18 @@
|
|
|
104
104
|
height: 300px;
|
|
105
105
|
border-radius: var(--border-radius-m);
|
|
106
106
|
background-color: var(--color-static-bg-quaternary-dark);
|
|
107
|
-
} .
|
|
107
|
+
} .gallery__brokenImgWrapper_tcbv9 {
|
|
108
108
|
position: relative;
|
|
109
109
|
display: flex;
|
|
110
110
|
flex-direction: column;
|
|
111
111
|
align-items: center;
|
|
112
112
|
width: 150px;
|
|
113
113
|
text-align: center;
|
|
114
|
-
} .
|
|
114
|
+
} .gallery__brokenImgIcon_tcbv9 {
|
|
115
115
|
width: 80px;
|
|
116
116
|
height: 80px;
|
|
117
117
|
margin-bottom: var(--gap-2xs);
|
|
118
|
-
} .
|
|
118
|
+
} .gallery__fullScreenImage_tcbv9 {
|
|
119
119
|
width: 100%;
|
|
120
120
|
height: auto;
|
|
121
121
|
background-color: var(--color-light-bg-primary);
|
|
@@ -15,7 +15,7 @@ require('@alfalab/icons-glyph/ChevronForwardHeavyMIcon');
|
|
|
15
15
|
require('../../context.js');
|
|
16
16
|
require('../../utils/utils.js');
|
|
17
17
|
require('../../utils/constants.js');
|
|
18
|
-
require('../../slide-
|
|
18
|
+
require('../../slide-2267d541.js');
|
|
19
19
|
require('@alfalab/core-components-typography');
|
|
20
20
|
require('./paths.js');
|
|
21
21
|
require('swiper/swiper.min.css');
|
|
@@ -8,7 +8,7 @@ require('@alfalab/core-components-typography');
|
|
|
8
8
|
require('../../utils/utils.js');
|
|
9
9
|
require('../../utils/constants.js');
|
|
10
10
|
require('./paths.js');
|
|
11
|
-
var components_imageViewer_slide = require('../../slide-
|
|
11
|
+
var components_imageViewer_slide = require('../../slide-2267d541.js');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
package/components/index.js
CHANGED
|
@@ -13,7 +13,7 @@ require('../utils/constants.js');
|
|
|
13
13
|
require('./header-info-block/Component.js');
|
|
14
14
|
require('@alfalab/core-components-typography');
|
|
15
15
|
require('../utils/split-filename.js');
|
|
16
|
-
require('../buttons-
|
|
16
|
+
require('../buttons-aee8961b.js');
|
|
17
17
|
require('tslib');
|
|
18
18
|
require('@alfalab/core-components-icon-button');
|
|
19
19
|
require('@alfalab/core-components-tooltip/desktop');
|
|
@@ -29,7 +29,7 @@ require('swiper');
|
|
|
29
29
|
require('swiper/react');
|
|
30
30
|
require('@alfalab/icons-glyph/ChevronBackHeavyMIcon');
|
|
31
31
|
require('@alfalab/icons-glyph/ChevronForwardHeavyMIcon');
|
|
32
|
-
require('../slide-
|
|
32
|
+
require('../slide-2267d541.js');
|
|
33
33
|
require('./image-viewer/paths.js');
|
|
34
34
|
require('swiper/swiper.min.css');
|
|
35
35
|
|
|
@@ -15,7 +15,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
15
15
|
|
|
16
16
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
17
17
|
|
|
18
|
-
var styles = {"component":"
|
|
18
|
+
var styles = {"component":"gallery__component_1amje","preview":"gallery__preview_1amje"};
|
|
19
19
|
require('./index.css')
|
|
20
20
|
|
|
21
21
|
var MIN_SCROLL_STEP = 24;
|
|
@@ -24,7 +24,7 @@ var NavigationBar = function () {
|
|
|
24
24
|
var _a = React.useContext(context.GalleryContext), images = _a.images, currentSlideIndex = _a.currentSlideIndex, setCurrentSlideIndex = _a.setCurrentSlideIndex, getSwiper = _a.getSwiper;
|
|
25
25
|
var swiper = getSwiper();
|
|
26
26
|
var handlePreviewSelect = function (index) {
|
|
27
|
-
setCurrentSlideIndex(index);
|
|
27
|
+
setCurrentSlideIndex === null || setCurrentSlideIndex === void 0 ? void 0 : setCurrentSlideIndex(index);
|
|
28
28
|
if (swiper) {
|
|
29
29
|
swiper.slideTo(index);
|
|
30
30
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: 19wtv */
|
|
2
2
|
:root {
|
|
3
3
|
} /* 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 */
|
|
4
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 */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
--gap-xl: 24px;
|
|
17
17
|
} :root {
|
|
18
18
|
} :root {
|
|
19
|
-
} .
|
|
19
|
+
} .gallery__component_1amje {
|
|
20
20
|
display: flex;
|
|
21
21
|
flex-wrap: nowrap;
|
|
22
22
|
align-content: center;
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
padding: 10px var(--gap-xl);
|
|
28
28
|
-ms-overflow-style: none;
|
|
29
29
|
scrollbar-width: none
|
|
30
|
-
} .
|
|
30
|
+
} .gallery__component_1amje::-webkit-scrollbar {
|
|
31
31
|
display: none;
|
|
32
|
-
} .
|
|
32
|
+
} .gallery__preview_1amje {
|
|
33
33
|
flex-shrink: 0;
|
|
34
34
|
margin: 0 var(--gap-3xs)
|
|
35
|
-
} .
|
|
35
|
+
} .gallery__preview_1amje:first-child {
|
|
36
36
|
margin-left: auto;
|
|
37
|
-
} .
|
|
37
|
+
} .gallery__preview_1amje:last-child {
|
|
38
38
|
margin-right: auto;
|
|
39
39
|
}
|
package/context.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ type GalleryContext = {
|
|
|
16
16
|
getSwiper: () => SwiperCore | undefined;
|
|
17
17
|
setSwiper: (swiper: SwiperCore) => void;
|
|
18
18
|
onClose: () => void;
|
|
19
|
-
setCurrentSlideIndex
|
|
19
|
+
setCurrentSlideIndex?: (index: number) => void;
|
|
20
20
|
getCurrentImage: () => GalleryImage | undefined;
|
|
21
21
|
getCurrentImageMeta: () => ImageMeta | undefined;
|
|
22
22
|
};
|
package/cssm/Component.d.ts
CHANGED
|
@@ -23,6 +23,14 @@ type GalleryProps = {
|
|
|
23
23
|
* Обработчик закрытия
|
|
24
24
|
*/
|
|
25
25
|
onClose: () => void;
|
|
26
|
+
/**
|
|
27
|
+
* Индекс текущего изображения
|
|
28
|
+
*/
|
|
29
|
+
slideIndex?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Обработчик изменения текущего изображения
|
|
32
|
+
*/
|
|
33
|
+
onSlideIndexChange?: (index: number) => void;
|
|
26
34
|
};
|
|
27
35
|
declare const Gallery: FC<GalleryProps>;
|
|
28
36
|
export { GalleryProps, Gallery };
|
package/cssm/Component.js
CHANGED
|
@@ -47,19 +47,23 @@ var styles__default = /*#__PURE__*/_interopDefaultCompat(styles);
|
|
|
47
47
|
|
|
48
48
|
var Backdrop = function () { return null; };
|
|
49
49
|
var Gallery = function (_a) {
|
|
50
|
-
var open = _a.open, images = _a.images, _b = _a.initialSlide, initialSlide = _b === void 0 ? 0 : _b, _c = _a.loop, loop = _c === void 0 ? true : _c, onClose = _a.onClose;
|
|
51
|
-
var
|
|
50
|
+
var open = _a.open, images = _a.images, slideIndex = _a.slideIndex, _b = _a.initialSlide, initialSlide = _b === void 0 ? 0 : _b, _c = _a.loop, loop = _c === void 0 ? true : _c, onClose = _a.onClose, onSlideIndexChange = _a.onSlideIndexChange;
|
|
51
|
+
var currentSlideIndexState = React.useState(initialSlide);
|
|
52
|
+
var uncontrolled = slideIndex === undefined;
|
|
53
|
+
var _d = uncontrolled
|
|
54
|
+
? currentSlideIndexState
|
|
55
|
+
: [slideIndex, onSlideIndexChange], currentSlideIndex = _d[0], setCurrentSlideIndex = _d[1];
|
|
52
56
|
var _e = React.useState(), swiper = _e[0], setSwiper = _e[1];
|
|
53
57
|
var _f = React.useState([]), imagesMeta = _f[0], setImagesMeta = _f[1];
|
|
54
58
|
var _g = React.useState(false), fullScreen = _g[0], setFullScreen = _g[1];
|
|
55
59
|
var slideTo = React.useCallback(function (index) {
|
|
56
60
|
if (images[index]) {
|
|
57
|
-
setCurrentSlideIndex(index);
|
|
61
|
+
setCurrentSlideIndex === null || setCurrentSlideIndex === void 0 ? void 0 : setCurrentSlideIndex(index);
|
|
58
62
|
if (swiper) {
|
|
59
63
|
swiper.slideTo(index);
|
|
60
64
|
}
|
|
61
65
|
}
|
|
62
|
-
}, [images, swiper]);
|
|
66
|
+
}, [images, setCurrentSlideIndex, swiper]);
|
|
63
67
|
var slideNext = React.useCallback(function () {
|
|
64
68
|
var lastIndex = images.length - 1;
|
|
65
69
|
var nextIndex = currentSlideIndex + 1;
|
|
@@ -82,9 +86,11 @@ var Gallery = function (_a) {
|
|
|
82
86
|
}, [imagesMeta]);
|
|
83
87
|
var handleClose = React.useCallback(function () {
|
|
84
88
|
onClose();
|
|
85
|
-
|
|
89
|
+
if (uncontrolled) {
|
|
90
|
+
setCurrentSlideIndex === null || setCurrentSlideIndex === void 0 ? void 0 : setCurrentSlideIndex(initialSlide);
|
|
91
|
+
}
|
|
86
92
|
setFullScreen(false);
|
|
87
|
-
}, [initialSlide, onClose]);
|
|
93
|
+
}, [initialSlide, onClose, setCurrentSlideIndex, uncontrolled]);
|
|
88
94
|
var handleEscapeKeyDown = function () {
|
|
89
95
|
if (fullScreen) {
|
|
90
96
|
setFullScreen(false);
|
|
@@ -106,6 +112,11 @@ var Gallery = function (_a) {
|
|
|
106
112
|
break;
|
|
107
113
|
}
|
|
108
114
|
}, [fullScreen, open, slideNext, slidePrev]);
|
|
115
|
+
React.useEffect(function () {
|
|
116
|
+
if (!uncontrolled && !(swiper === null || swiper === void 0 ? void 0 : swiper.destroyed)) {
|
|
117
|
+
swiper === null || swiper === void 0 ? void 0 : swiper.slideTo(currentSlideIndex);
|
|
118
|
+
}
|
|
119
|
+
}, [uncontrolled, currentSlideIndex, swiper]);
|
|
109
120
|
React.useEffect(function () {
|
|
110
121
|
document.addEventListener('keydown', handleKeyDown);
|
|
111
122
|
return function () {
|
|
@@ -121,7 +132,7 @@ var Gallery = function (_a) {
|
|
|
121
132
|
images: images,
|
|
122
133
|
imagesMeta: imagesMeta,
|
|
123
134
|
fullScreen: fullScreen,
|
|
124
|
-
initialSlide: initialSlide,
|
|
135
|
+
initialSlide: uncontrolled ? initialSlide : currentSlideIndex,
|
|
125
136
|
setFullScreen: setFullScreen,
|
|
126
137
|
setImageMeta: setImageMeta,
|
|
127
138
|
slideNext: slideNext,
|