@prom-ui/core 1.8.0 → 1.9.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/Avatar/cjs/index.development.js +17 -6
- package/Avatar/cjs/index.development.v2.js +17 -6
- package/Avatar/cjs/index.production.js +1 -1
- package/Avatar/cjs/index.production.v2.js +1 -1
- package/Avatar/cjs/style.development.css +1 -1
- package/Avatar/cjs/style.development.v2.css +1 -1
- package/Avatar/cjs/style.production.css +1 -1
- package/Avatar/cjs/style.production.v2.css +1 -1
- package/Avatar/index.d.ts +2 -0
- package/Avatar/package.json +1 -1
- package/Backdrop/package.json +1 -1
- package/Body/package.json +1 -1
- package/BodyContext/package.json +1 -1
- package/BodyProvider/package.json +1 -1
- package/BodyScrollLock/package.json +1 -1
- package/Box/package.json +1 -1
- package/Button/package.json +1 -1
- package/ButtonPageUp/package.json +1 -1
- package/Checkbox/package.json +1 -1
- package/Flex/package.json +1 -1
- package/Grid/package.json +1 -1
- package/Icon/package.json +1 -1
- package/Image/package.json +1 -1
- package/ImageEmoji/package.json +1 -1
- package/Input/package.json +1 -1
- package/InputField/package.json +1 -1
- package/KeyPress/package.json +1 -1
- package/Line/package.json +1 -1
- package/Link/package.json +1 -1
- package/List/package.json +1 -1
- package/Media/package.json +1 -1
- package/Modal/cjs/index.development.js +231 -0
- package/Modal/cjs/index.development.v2.js +231 -0
- package/Modal/cjs/index.production.js +1 -0
- package/Modal/cjs/index.production.v2.js +1 -0
- package/Modal/cjs/style.development.css +1 -0
- package/Modal/cjs/style.development.v2.css +1 -0
- package/Modal/cjs/style.production.css +1 -0
- package/Modal/cjs/style.production.v2.css +1 -0
- package/Modal/index.d.ts +28 -0
- package/Modal/index.js +7 -0
- package/Modal/index.v2.js +7 -0
- package/Modal/package.json +13 -0
- package/OutsideClick/package.json +1 -1
- package/Overlay/package.json +1 -1
- package/PhotoGallery/cjs/index.development.js +89 -18
- package/PhotoGallery/cjs/index.development.v2.js +89 -18
- package/PhotoGallery/cjs/index.production.js +1 -1
- package/PhotoGallery/cjs/index.production.v2.js +1 -1
- package/PhotoGallery/components/Header.d.ts +2 -0
- package/PhotoGallery/components/MainPhotos.d.ts +2 -1
- package/PhotoGallery/components/MainPhotosImage.d.ts +2 -0
- package/PhotoGallery/components/PreviewPhotos.d.ts +2 -1
- package/PhotoGallery/index.d.ts +3 -0
- package/PhotoGallery/package.json +1 -1
- package/Picture/package.json +1 -1
- package/Portal/package.json +1 -1
- package/QRCode/package.json +1 -1
- package/Rating/package.json +1 -1
- package/RatingSelect/package.json +1 -1
- package/SafeQuery/package.json +1 -1
- package/Scroll/package.json +1 -1
- package/ScrollControls/package.json +1 -1
- package/SimpleSlider/package.json +1 -1
- package/Skeleton/package.json +1 -1
- package/Spinner/package.json +1 -1
- package/Text/package.json +1 -1
- package/TextEmoji/package.json +1 -1
- package/Tooltip/package.json +1 -1
- package/Tumbler/package.json +1 -1
- package/package.json +2 -2
- package/useBodyTTag/package.json +1 -1
- package/useBrowserLayoutEffect/package.json +1 -1
- package/useDebounce/package.json +1 -1
- package/useForwardRef/package.json +1 -1
- package/useId/package.json +1 -1
- package/useIsMounted/package.json +1 -1
- package/useKeyPress/package.json +1 -1
- package/useMedia/package.json +1 -1
- package/useOutsideClick/package.json +1 -1
- package/usePortal/package.json +1 -1
- package/useScrollPosition/package.json +1 -1
|
@@ -972,7 +972,8 @@ var css = {"scrolling":"PhotoGallery__scrolling___q1DKc","root":"PhotoGallery__r
|
|
|
972
972
|
|
|
973
973
|
var MainPhotosImage = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
|
|
974
974
|
var src = _ref.src,
|
|
975
|
-
videoSrc = _ref.videoSrc
|
|
975
|
+
videoSrc = _ref.videoSrc,
|
|
976
|
+
triggerInteraction = _ref.triggerInteraction;
|
|
976
977
|
var videoIframeRef = React__namespace.useRef(null);
|
|
977
978
|
var pinchZoomRef = React__namespace.useRef(null);
|
|
978
979
|
var imgRef = React__namespace.useRef(null);
|
|
@@ -988,7 +989,13 @@ var MainPhotosImage = /*#__PURE__*/React__namespace.forwardRef(function (_ref, r
|
|
|
988
989
|
pinchZoomRef.current = new PinchZoom(imgRef.current, {
|
|
989
990
|
draggableUnzoomed: false,
|
|
990
991
|
animationDuration: 200,
|
|
991
|
-
setOffsetsOnce: false
|
|
992
|
+
setOffsetsOnce: false,
|
|
993
|
+
onDoubleTap: function onDoubleTap(target) {
|
|
994
|
+
// @ts-ignore
|
|
995
|
+
if ((target === null || target === void 0 ? void 0 : target.zoomFactor) === 1) {
|
|
996
|
+
triggerInteraction('maybeZoomImage');
|
|
997
|
+
}
|
|
998
|
+
}
|
|
992
999
|
});
|
|
993
1000
|
}
|
|
994
1001
|
});
|
|
@@ -997,6 +1004,17 @@ var MainPhotosImage = /*#__PURE__*/React__namespace.forwardRef(function (_ref, r
|
|
|
997
1004
|
(_pinchZoomRef$current2 = pinchZoomRef.current) === null || _pinchZoomRef$current2 === void 0 ? void 0 : _pinchZoomRef$current2.destroy();
|
|
998
1005
|
};
|
|
999
1006
|
}, [videoSrc]);
|
|
1007
|
+
React__namespace.useEffect(function () {
|
|
1008
|
+
var onBlur = function onBlur() {
|
|
1009
|
+
if (isVideo && document.activeElement && document.activeElement.nodeName.toLowerCase() === 'iframe' && videoIframeRef.current && videoIframeRef.current === document.activeElement) {
|
|
1010
|
+
triggerInteraction('maybePlayVideo');
|
|
1011
|
+
}
|
|
1012
|
+
};
|
|
1013
|
+
window.addEventListener('blur', onBlur);
|
|
1014
|
+
return function () {
|
|
1015
|
+
window.removeEventListener('blur', onBlur);
|
|
1016
|
+
};
|
|
1017
|
+
}, [videoSrc]);
|
|
1000
1018
|
React__namespace.useImperativeHandle(ref, function () {
|
|
1001
1019
|
return {
|
|
1002
1020
|
reset: reset
|
|
@@ -1032,7 +1050,9 @@ var MainPhotosImage = /*#__PURE__*/React__namespace.forwardRef(function (_ref, r
|
|
|
1032
1050
|
|
|
1033
1051
|
var MainPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
|
|
1034
1052
|
var items = _ref.items,
|
|
1035
|
-
onChange = _ref.onChange
|
|
1053
|
+
onChange = _ref.onChange,
|
|
1054
|
+
triggerInteraction = _ref.triggerInteraction;
|
|
1055
|
+
var touchScreenX = React__namespace.useRef(null);
|
|
1036
1056
|
var mainPhotoRefs = React__namespace.useRef([]);
|
|
1037
1057
|
var scrollIndex = React__namespace.useRef(0);
|
|
1038
1058
|
var localScrollRef = React__namespace.useRef(null);
|
|
@@ -1064,16 +1084,39 @@ var MainPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
|
|
|
1064
1084
|
destroyMainPhoto();
|
|
1065
1085
|
}
|
|
1066
1086
|
};
|
|
1087
|
+
var onTouchStart = function onTouchStart(e) {
|
|
1088
|
+
var currentTouchScreenX = e.changedTouches[0].screenX;
|
|
1089
|
+
touchScreenX.current = currentTouchScreenX;
|
|
1090
|
+
};
|
|
1091
|
+
var onTouchEnd = function onTouchEnd(e) {
|
|
1092
|
+
var currentTouchScreenX = e.changedTouches[0].screenX;
|
|
1093
|
+
if (touchScreenX.current) {
|
|
1094
|
+
if (touchScreenX.current > currentTouchScreenX) {
|
|
1095
|
+
triggerInteraction('maybeSwipeLeft');
|
|
1096
|
+
} else if (touchScreenX.current < currentTouchScreenX) {
|
|
1097
|
+
triggerInteraction('maybeSwipeRight');
|
|
1098
|
+
}
|
|
1099
|
+
touchScreenX.current = null;
|
|
1100
|
+
}
|
|
1101
|
+
};
|
|
1067
1102
|
return /*#__PURE__*/React__namespace.createElement(ScrollControls.ScrollControls, {
|
|
1068
1103
|
ref: localScrollRef,
|
|
1069
1104
|
className: css.mainPhotoScrollControls,
|
|
1070
1105
|
showOnHover: true,
|
|
1071
|
-
hideOnDisabled: true
|
|
1106
|
+
hideOnDisabled: true,
|
|
1107
|
+
onClickPrev: function onClickPrev() {
|
|
1108
|
+
return triggerInteraction('clickPrevButton');
|
|
1109
|
+
},
|
|
1110
|
+
onClickNext: function onClickNext() {
|
|
1111
|
+
return triggerInteraction('clickNextButton');
|
|
1112
|
+
}
|
|
1072
1113
|
}, function (scrollRef) {
|
|
1073
1114
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
1074
1115
|
ref: scrollRef,
|
|
1075
1116
|
className: css.mainPhoto,
|
|
1076
|
-
onScroll: onScroll
|
|
1117
|
+
onScroll: onScroll,
|
|
1118
|
+
onTouchStart: onTouchStart,
|
|
1119
|
+
onTouchEnd: onTouchEnd
|
|
1077
1120
|
}, items.map(function (_ref2, index) {
|
|
1078
1121
|
var type = _ref2.type,
|
|
1079
1122
|
src = _ref2.src;
|
|
@@ -1090,7 +1133,8 @@ var MainPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
|
|
|
1090
1133
|
return mainPhotoRefs.current[index] = el;
|
|
1091
1134
|
},
|
|
1092
1135
|
src: previewSrc,
|
|
1093
|
-
videoSrc: videoSrc
|
|
1136
|
+
videoSrc: videoSrc,
|
|
1137
|
+
triggerInteraction: triggerInteraction
|
|
1094
1138
|
}));
|
|
1095
1139
|
}));
|
|
1096
1140
|
});
|
|
@@ -1099,7 +1143,8 @@ var MainPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
|
|
|
1099
1143
|
var PreviewPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
|
|
1100
1144
|
var items = _ref.items,
|
|
1101
1145
|
selectedIndex = _ref.selectedIndex,
|
|
1102
|
-
onChange = _ref.onChange
|
|
1146
|
+
onChange = _ref.onChange,
|
|
1147
|
+
triggerInteraction = _ref.triggerInteraction;
|
|
1103
1148
|
var localScrollRef = React__namespace.useRef(null);
|
|
1104
1149
|
var scrollToIndex = function scrollToIndex(index) {
|
|
1105
1150
|
var _localScrollRef$curre;
|
|
@@ -1125,6 +1170,7 @@ var PreviewPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref
|
|
|
1125
1170
|
src = _ref2.src;
|
|
1126
1171
|
var isVideo = type === 'video';
|
|
1127
1172
|
var previewSrc = isVideo ? getVideoPreviewImage(src) : src;
|
|
1173
|
+
var iteractionEventName = isVideo ? 'clickPreviewVideo' : 'clickPreviewImage';
|
|
1128
1174
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
1129
1175
|
key: index,
|
|
1130
1176
|
className: css.previewItem,
|
|
@@ -1134,7 +1180,8 @@ var PreviewPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref
|
|
|
1134
1180
|
className: css.previewButton,
|
|
1135
1181
|
type: "button",
|
|
1136
1182
|
onClick: function onClick() {
|
|
1137
|
-
|
|
1183
|
+
triggerInteraction(iteractionEventName);
|
|
1184
|
+
_onClick(index);
|
|
1138
1185
|
},
|
|
1139
1186
|
disabled: selectedIndex === index,
|
|
1140
1187
|
"data-qaid": "photo_gallery_preview_button",
|
|
@@ -1165,7 +1212,8 @@ var Header = function Header(_ref) {
|
|
|
1165
1212
|
var title = _ref.title,
|
|
1166
1213
|
onClose = _ref.onClose,
|
|
1167
1214
|
selectedIndex = _ref.selectedIndex,
|
|
1168
|
-
itemsLength = _ref.itemsLength
|
|
1215
|
+
itemsLength = _ref.itemsLength,
|
|
1216
|
+
triggerInteraction = _ref.triggerInteraction;
|
|
1169
1217
|
var _useBodyTTag = useBodyTTag.useBodyTTag(),
|
|
1170
1218
|
t = _useBodyTTag.t;
|
|
1171
1219
|
var visibleSelectedIndex = selectedIndex + 1;
|
|
@@ -1182,7 +1230,10 @@ var Header = function Header(_ref) {
|
|
|
1182
1230
|
"button-padding": "xxs",
|
|
1183
1231
|
"button-theme": "black-inherit",
|
|
1184
1232
|
type: "button",
|
|
1185
|
-
onClick:
|
|
1233
|
+
onClick: function onClick() {
|
|
1234
|
+
triggerInteraction('clickCloseButton');
|
|
1235
|
+
onClose();
|
|
1236
|
+
},
|
|
1186
1237
|
"data-qaid": "photo_gallery_close_button",
|
|
1187
1238
|
"data-testid": "photo_gallery_close_button"
|
|
1188
1239
|
}, /*#__PURE__*/React__namespace.createElement(Icon.Icon, {
|
|
@@ -1203,7 +1254,8 @@ var PhotoGallery = function PhotoGallery(_ref) {
|
|
|
1203
1254
|
_ref$zIndex = _ref.zIndex,
|
|
1204
1255
|
zIndex = _ref$zIndex === void 0 ? 5000 : _ref$zIndex,
|
|
1205
1256
|
onClose = _ref.onClose,
|
|
1206
|
-
onChange = _ref.onChange
|
|
1257
|
+
onChange = _ref.onChange,
|
|
1258
|
+
onInteraction = _ref.onInteraction;
|
|
1207
1259
|
var refIsAllowChangePreviewPhoto = React__namespace.useRef(true);
|
|
1208
1260
|
var refMainPhotos = React__namespace.useRef(null);
|
|
1209
1261
|
var refPreviewPhotos = React__namespace.useRef(null);
|
|
@@ -1211,6 +1263,11 @@ var PhotoGallery = function PhotoGallery(_ref) {
|
|
|
1211
1263
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
1212
1264
|
selectedIndex = _React$useState2[0],
|
|
1213
1265
|
setSelectedIndex = _React$useState2[1];
|
|
1266
|
+
var triggerInteraction = function triggerInteraction(eventName) {
|
|
1267
|
+
if (typeof onInteraction === 'function') {
|
|
1268
|
+
onInteraction(eventName);
|
|
1269
|
+
}
|
|
1270
|
+
};
|
|
1214
1271
|
React__namespace.useEffect(function () {
|
|
1215
1272
|
if (isOpen && typeof onChange === 'function') {
|
|
1216
1273
|
onChange(selectedIndex);
|
|
@@ -1269,10 +1326,12 @@ var PhotoGallery = function PhotoGallery(_ref) {
|
|
|
1269
1326
|
};
|
|
1270
1327
|
var onPrevPhoto = function onPrevPhoto() {
|
|
1271
1328
|
if (selectedIndex === 0) return;
|
|
1329
|
+
triggerInteraction('keyPressPrev');
|
|
1272
1330
|
onChangePreviewPhoto(selectedIndex - 1);
|
|
1273
1331
|
};
|
|
1274
1332
|
var onNextPhoto = function onNextPhoto() {
|
|
1275
1333
|
if (selectedIndex === items.length - 1) return;
|
|
1334
|
+
triggerInteraction('keyPressNext');
|
|
1276
1335
|
onChangePreviewPhoto(selectedIndex + 1);
|
|
1277
1336
|
};
|
|
1278
1337
|
var onCloseHandle = function onCloseHandle() {
|
|
@@ -1288,9 +1347,15 @@ var PhotoGallery = function PhotoGallery(_ref) {
|
|
|
1288
1347
|
timeout: 240,
|
|
1289
1348
|
classNames: css,
|
|
1290
1349
|
unmountOnExit: true
|
|
1291
|
-
// onEnter={
|
|
1292
|
-
//
|
|
1293
|
-
|
|
1350
|
+
// onEnter={() => triggerInteraction('open')}
|
|
1351
|
+
// onExit={() => triggerInteraction('close')}
|
|
1352
|
+
,
|
|
1353
|
+
onEntered: function onEntered() {
|
|
1354
|
+
return triggerInteraction('opened');
|
|
1355
|
+
},
|
|
1356
|
+
onExited: function onExited() {
|
|
1357
|
+
return triggerInteraction('closed');
|
|
1358
|
+
}
|
|
1294
1359
|
}, /*#__PURE__*/React__namespace.createElement(Portal.Portal, null, /*#__PURE__*/React__namespace.createElement("div", {
|
|
1295
1360
|
className: css.root,
|
|
1296
1361
|
"data-qaid": "photo_gallery",
|
|
@@ -1300,7 +1365,10 @@ var PhotoGallery = function PhotoGallery(_ref) {
|
|
|
1300
1365
|
}
|
|
1301
1366
|
}, /*#__PURE__*/React__namespace.createElement(KeyPress.KeyPress, {
|
|
1302
1367
|
code: "Escape",
|
|
1303
|
-
onKeyUp:
|
|
1368
|
+
onKeyUp: function onKeyUp() {
|
|
1369
|
+
triggerInteraction('keyPressClose');
|
|
1370
|
+
onCloseHandle();
|
|
1371
|
+
}
|
|
1304
1372
|
}), /*#__PURE__*/React__namespace.createElement(KeyPress.KeyPress, {
|
|
1305
1373
|
code: "ArrowLeft",
|
|
1306
1374
|
onKeyUp: onPrevPhoto
|
|
@@ -1315,7 +1383,8 @@ var PhotoGallery = function PhotoGallery(_ref) {
|
|
|
1315
1383
|
title: title,
|
|
1316
1384
|
selectedIndex: selectedIndex,
|
|
1317
1385
|
itemsLength: items.length,
|
|
1318
|
-
onClose: onCloseHandle
|
|
1386
|
+
onClose: onCloseHandle,
|
|
1387
|
+
triggerInteraction: triggerInteraction
|
|
1319
1388
|
})), /*#__PURE__*/React__namespace.createElement("div", {
|
|
1320
1389
|
className: css.layoutContent
|
|
1321
1390
|
}, /*#__PURE__*/React__namespace.createElement("section", {
|
|
@@ -1323,14 +1392,16 @@ var PhotoGallery = function PhotoGallery(_ref) {
|
|
|
1323
1392
|
}, /*#__PURE__*/React__namespace.createElement(MainPhotos, {
|
|
1324
1393
|
ref: refMainPhotos,
|
|
1325
1394
|
items: items,
|
|
1326
|
-
onChange: onChangeMainPhoto
|
|
1395
|
+
onChange: onChangeMainPhoto,
|
|
1396
|
+
triggerInteraction: triggerInteraction
|
|
1327
1397
|
})), items.length > 1 && /*#__PURE__*/React__namespace.createElement("aside", {
|
|
1328
1398
|
className: css.layoutAside
|
|
1329
1399
|
}, /*#__PURE__*/React__namespace.createElement(PreviewPhotos, {
|
|
1330
1400
|
ref: refPreviewPhotos,
|
|
1331
1401
|
items: items,
|
|
1332
1402
|
selectedIndex: selectedIndex,
|
|
1333
|
-
onChange: onChangePreviewPhoto
|
|
1403
|
+
onChange: onChangePreviewPhoto,
|
|
1404
|
+
triggerInteraction: triggerInteraction
|
|
1334
1405
|
}))))))));
|
|
1335
1406
|
};
|
|
1336
1407
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("react-transition-group"),n=require("@prom-ui/core/Backdrop"),i=require("@prom-ui/core/KeyPress"),o=require("@prom-ui/core/Portal"),a=require("@prom-ui/core/ScrollControls"),s=require("@prom-ui/core/Icon"),r=require("@prom-ui/icons/Play"),l=require("@prom-ui/core/Button"),c=require("@prom-ui/core/useBodyTTag"),h=require("@prom-ui/icons/Close");function u(t){if(t&&"object"==typeof t&&"default"in t)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}})),e.default=t,Object.freeze(e)}var d=u(t);function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,o,a,s,r=[],l=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(i=a.call(n)).done)&&(r.push(i.value),r.length!==e);l=!0);}catch(h){c=!0,o=h}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return r}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return m(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}var p,g=new Map,v=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];g.has(e)&&(cancelAnimationFrame(g.get(e)),g.delete(e));var i=requestAnimationFrame((function(){var i=e.getBoundingClientRect(),o=t.getBoundingClientRect(),a=o.top+e.scrollTop-i.top-i.height/2+o.height/2,s=o.left+e.scrollLeft-i.left-i.width/2+o.width/2;s<0&&(s=0),a<0&&(a=0),e.scrollTo({behavior:n?"smooth":"instant",top:a,left:s})}));g.set(e,i)},y=function(t){var e=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?v(?:i)?=|\&v(?:i)?=))([^#\&\?]*).*/.exec(t);return e&&e[1]},b=function(t){var e=y(t);return"https://img.youtube.com/vi/".concat(e,"/0.jpg")},x=function(){var t=function(t,e){this.el=t,this.zoomFactor=1,this.lastScale=1,this.offset={x:0,y:0},this.initialOffset={x:0,y:0},this.options=Object.assign({},this.defaults,e),this.setupMarkup(),this.bindEvents(),this.update(),this.isImageLoaded(this.el)&&(this.updateAspectRatio(),this.setupOffsets()),this.enable()},e=function(t,e){return t+e};t.prototype={defaults:{tapZoomFactor:2,zoomOutFactor:1.3,animationDuration:300,maxZoom:4,minZoom:.5,draggableUnzoomed:!0,lockDragAxis:!1,setOffsetsOnce:!1,use2d:!0,useMouseWheel:!1,verticalPadding:0,horizontalPadding:0,onZoomStart:null,onZoomEnd:null,onZoomUpdate:null,onDragStart:null,onDragEnd:null,onDragUpdate:null,onDoubleTap:null,onMouseWheel:null},handleDragStart:function(t){"function"==typeof this.options.onDragStart&&this.options.onDragStart(this,t),this.stopAnimation(),this.lastDragPosition=!1,this.hasInteraction=!0,this.handleDrag(t)},handleDrag:function(t){var e="touchmove"===t.type?this.getTouches(t)[0]:this.getPointer(t);this.drag(e,this.lastDragPosition),this.offset=this.sanitizeOffset(this.offset),this.lastDragPosition=e},handleDragEnd:function(){"function"==typeof this.options.onDragEnd&&this.options.onDragEnd(this,event),this.end()},handleZoomStart:function(t){"function"==typeof this.options.onZoomStart&&this.options.onZoomStart(this,t),this.stopAnimation(),this.lastScale=1,this.nthZoom=0,this.lastZoomCenter=!1,this.hasInteraction=!0},handleZoom:function(t,e){var n=this.getTouchCenter(this.getTouches(t)),i=e/this.lastScale;this.lastScale=e,this.nthZoom+=1,this.nthZoom>3&&(this.scale(i,n),this.drag(n,this.lastZoomCenter)),this.lastZoomCenter=n},handleZoomEnd:function(){"function"==typeof this.options.onZoomEnd&&this.options.onZoomEnd(this,event),this.end()},handleDoubleTap:function(t){var e=this.getTouches(t)[0],n=this.zoomFactor>1?1:this.options.tapZoomFactor,i=this.zoomFactor,o=function(t){this.scaleTo(i+t*(n-i),e)}.bind(this);this.hasInteraction||(this.isDoubleTap=!0,i>n&&(e=this.getCurrentZoomCenter()),this.animate(this.options.animationDuration,o,this.swing),"function"==typeof this.options.onDoubleTap&&this.options.onDoubleTap(this,t))},handleMouseWheel:function(t){var e=this.getPointer(t),n=Math.min(Math.max(this.options.minZoom,this.lastScale+-.01*t.deltaY),this.options.maxZoom),i=n/this.lastScale;this.scale(i,e),this.lastScale=n,this.update(),"function"==typeof this.options.onMouseWheel&&this.options.onMouseWheel(this,t)},computeInitialOffset:function(){this.initialOffset={x:-Math.abs(this.el.offsetWidth*this.getInitialZoomFactor()-this.container.offsetWidth)/2,y:-Math.abs(this.el.offsetHeight*this.getInitialZoomFactor()-this.container.offsetHeight)/2}},resetOffset:function(){this.offset.x=this.initialOffset.x,this.offset.y=this.initialOffset.y},isImageLoaded:function(t){return"IMG"===t.nodeName?t.complete&&0!==t.naturalHeight:Array.from(t.querySelectorAll("img")).every(this.isImageLoaded)},setupOffsets:function(){this.options.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this.computeInitialOffset(),this.resetOffset())},sanitizeOffset:function(t){var e=this.el.offsetWidth*this.getInitialZoomFactor()*this.zoomFactor,n=this.el.offsetHeight*this.getInitialZoomFactor()*this.zoomFactor,i=e-this.getContainerX()+this.options.horizontalPadding,o=n-this.getContainerY()+this.options.verticalPadding,a=Math.max(i,0),s=Math.max(o,0),r=Math.min(i,0)-this.options.horizontalPadding,l=Math.min(o,0)-this.options.verticalPadding;return{x:Math.min(Math.max(t.x,r),a),y:Math.min(Math.max(t.y,l),s)}},scaleTo:function(t,e){this.scale(t/this.zoomFactor,e)},scale:function(t,e){t=this.scaleZoomFactor(t),this.addOffset({x:(t-1)*(e.x+this.offset.x),y:(t-1)*(e.y+this.offset.y)}),"function"==typeof this.options.onZoomUpdate&&this.options.onZoomUpdate(this,event)},scaleZoomFactor:function(t){var e=this.zoomFactor;return this.zoomFactor*=t,this.zoomFactor=Math.min(this.options.maxZoom,Math.max(this.zoomFactor,this.options.minZoom)),this.zoomFactor/e},canDrag:function(){return this.options.draggableUnzoomed||!((t=this.zoomFactor)>(e=1)-.01&&t<e+.01);var t,e},drag:function(t,e){e&&(this.options.lockDragAxis?Math.abs(t.x-e.x)>Math.abs(t.y-e.y)?this.addOffset({x:-(t.x-e.x),y:0}):this.addOffset({y:-(t.y-e.y),x:0}):this.addOffset({y:-(t.y-e.y),x:-(t.x-e.x)}),"function"==typeof this.options.onDragUpdate&&this.options.onDragUpdate(this,event))},getTouchCenter:function(t){return this.getVectorAvg(t)},getVectorAvg:function(t){return{x:t.map((function(t){return t.x})).reduce(e)/t.length,y:t.map((function(t){return t.y})).reduce(e)/t.length}},addOffset:function(t){this.offset={x:this.offset.x+t.x,y:this.offset.y+t.y}},sanitize:function(){this.zoomFactor<this.options.zoomOutFactor?this.zoomOutAnimation():this.isInsaneOffset(this.offset)&&this.sanitizeOffsetAnimation()},isInsaneOffset:function(t){var e=this.sanitizeOffset(t);return e.x!==t.x||e.y!==t.y},sanitizeOffsetAnimation:function(){var t=this.sanitizeOffset(this.offset),e=this.offset.x,n=this.offset.y,i=function(i){this.offset.x=e+i*(t.x-e),this.offset.y=n+i*(t.y-n),this.update()}.bind(this);this.animate(this.options.animationDuration,i,this.swing)},zoomOutAnimation:function(){if(1!==this.zoomFactor){var t=this.zoomFactor,e=this.getCurrentZoomCenter(),n=function(n){this.scaleTo(t+n*(1-t),e)}.bind(this);this.animate(this.options.animationDuration,n,this.swing)}},updateAspectRatio:function(){this.unsetContainerY(),this.setContainerY(this.container.parentElement.offsetHeight)},getInitialZoomFactor:function(){var t=this.container.offsetWidth/this.el.offsetWidth,e=this.container.offsetHeight/this.el.offsetHeight;return Math.min(t,e)},getAspectRatio:function(){return this.el.offsetWidth/this.el.offsetHeight},getCurrentZoomCenter:function(){var t=this.offset.x-this.initialOffset.x,e=-1*this.offset.x-t/(1/this.zoomFactor-1),n=this.offset.y-this.initialOffset.y;return{x:e,y:-1*this.offset.y-n/(1/this.zoomFactor-1)}},getTouches:function(t){var e=this.container.getBoundingClientRect(),n=document.documentElement.scrollTop||document.body.scrollTop,i=document.documentElement.scrollLeft||document.body.scrollLeft,o=e.top+n,a=e.left+i;return Array.prototype.slice.call(t.touches).map((function(t){return{x:t.pageX-a,y:t.pageY-o}}))},getPointer:function(t){var e=this.container.getBoundingClientRect(),n=document.documentElement.scrollTop||document.body.scrollTop,i=document.documentElement.scrollLeft||document.body.scrollLeft,o=e.top+n,a=e.left+i;return{x:t.pageX-a,y:t.pageY-o}},animate:function(t,e,n,i){var o=(new Date).getTime(),a=function(){if(this.inAnimation){var s=(new Date).getTime()-o,r=s/t;s>=t?(e(1),i&&i(),this.update(),this.stopAnimation(),this.update()):(n&&(r=n(r)),e(r),this.update(),requestAnimationFrame(a))}}.bind(this);this.inAnimation=!0,requestAnimationFrame(a)},stopAnimation:function(){this.inAnimation=!1},swing:function(t){return-Math.cos(t*Math.PI)/2+.5},getContainerX:function(){return this.container.offsetWidth},getContainerY:function(){return this.container.offsetHeight},setContainerY:function(t){return this.container.style.height=t+"px"},unsetContainerY:function(){this.container.style.height=null},setupMarkup:function(){var t,e;this.container=(t='<div class="pinch-zoom-container" style="height: 100%;"></div>',(e=document.implementation.createHTMLDocument("")).body.innerHTML=t,Array.from(e.body.children)[0]),this.el.parentNode.insertBefore(this.container,this.el),this.container.appendChild(this.el),this.container.style.overflow="hidden",this.container.style.position="relative",this.el.style.webkitTransformOrigin="0% 0%",this.el.style.mozTransformOrigin="0% 0%",this.el.style.msTransformOrigin="0% 0%",this.el.style.oTransformOrigin="0% 0%",this.el.style.transformOrigin="0% 0%",this.el.style.position="absolute",this.el.style.backfaceVisibility="hidden",this.el.style.willChange="transform"},end:function(){this.hasInteraction=!1,this.sanitize(),this.update()},bindEvents:function(){var t=this;n(this.container,this),this.resizeHandler=this.update.bind(this),window.addEventListener("resize",this.resizeHandler),Array.from(this.el.querySelectorAll("img")).forEach((function(e){e.addEventListener("load",t.update.bind(t))})),"IMG"===this.el.nodeName&&this.el.addEventListener("load",this.update.bind(this))},update:function(t){t&&"resize"===t.type&&(this.updateAspectRatio(),this.setupOffsets()),t&&"load"===t.type&&(this.updateAspectRatio(),this.setupOffsets()),this.updatePlanned||(this.updatePlanned=!0,window.setTimeout(function(){this.updatePlanned=!1;var t=this.getInitialZoomFactor()*this.zoomFactor,e=-this.offset.x/t,n=-this.offset.y/t,i="scale3d("+t+", "+t+",1) translate3d("+e+"px,"+n+"px,0px)",o="scale("+t+", "+t+") translate("+e+"px,"+n+"px)",a=function(){this.clone&&(this.clone.parentNode.removeChild(this.clone),delete this.clone)}.bind(this);!this.options.use2d||this.hasInteraction||this.inAnimation?(this.is3d=!0,a(),this.el.style.webkitTransform=i,this.el.style.mozTransform=o,this.el.style.msTransform=o,this.el.style.oTransform=o,this.el.style.transform=i):(this.is3d&&(this.clone=this.el.cloneNode(!0),this.clone.style.pointerEvents="none",this.container.appendChild(this.clone),window.setTimeout(a,200)),this.el.style.webkitTransform=o,this.el.style.mozTransform=o,this.el.style.msTransform=o,this.el.style.oTransform=o,this.el.style.transform=o,this.is3d=!1)}.bind(this),0))},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},destroy:function(){window.removeEventListener("resize",this.resizeHandler),this.container&&(this.container.remove(),this.container=null)},reset:function(){this.zoomOutAnimation()}};var n=function(t,e){var n=null,i=0,o=null,a=null,s=function(t,i){if(n!==t){if(n&&!t)switch(n){case"zoom":e.handleZoomEnd(i);break;case"drag":e.handleDragEnd(i)}switch(t){case"zoom":e.handleZoomStart(i);break;case"drag":e.handleDragStart(i)}}n=t},r=function(t){2===i?s("zoom"):1===i&&e.canDrag()?s("drag",t):s(null,t)},l=function(t){return Array.from(t).map((function(t){return{x:t.pageX,y:t.pageY}}))},c=function(t,e){var n,i;return n=t.x-e.x,i=t.y-e.y,Math.sqrt(n*n+i*i)},h=function(t){t.stopPropagation(),t.preventDefault()},u=!0;t.addEventListener("touchstart",(function(t){e.enabled&&(u=!0,i=t.touches.length,function(t){var a=(new Date).getTime();if(i>1&&(o=null),a-o<300)switch(h(t),e.handleDoubleTap(t),n){case"zoom":e.handleZoomEnd(t);break;case"drag":e.handleDragEnd(t)}else e.isDoubleTap=!1;1===i&&(o=a)}(t))}),{passive:!1}),t.addEventListener("touchmove",(function(t){if(e.enabled&&!e.isDoubleTap){if(u)r(t),n&&h(t),a=l(t.touches);else{switch(n){case"zoom":2==a.length&&2==t.touches.length&&e.handleZoom(t,function(t,e){var n=c(t[0],t[1]);return c(e[0],e[1])/n}(a,l(t.touches)));break;case"drag":e.handleDrag(t)}n&&(h(t),e.update())}u=!1}}),{passive:!1}),t.addEventListener("touchend",(function(t){e.enabled&&(i=t.touches.length,r(t))})),e.options.useMouseWheel&&(t.addEventListener("mousewheel",(function(t){e.enabled&&(h(t),e.handleMouseWheel(t))})),t.addEventListener("mousedown",(function(t){e.enabled&&(u=!0,i=1)}),{passive:!0}),t.addEventListener("mousemove",(function(t){e.enabled&&(u?(r(t),n&&h(t)):("drag"===n&&e.handleDrag(t),n&&(h(t),e.update())),u=!1)}),{passive:!1}),t.addEventListener("mouseup",(function(t){e.enabled&&(i=0,r(t))}),{passive:!0}))};return t}(),E={scrolling:"BeLzR",root:"nJWgH",layout:"BDoOb",layoutHeader:"iNVA1",layoutContent:"C-jWr",layoutSection:"_3FXm5",layoutAside:"ABw2b",header:"meCSL",headerTitle:"NpSWI",headerClose:"-B9Zg",mainPhotoScrollControls:"ckcap",mainPhoto:"-r4WP BeLzR",mainPhotoItem:"Q7wDI",mainPhotoImage:"NrcBT",mainPhotoIframe:"kObZY",preview:"_86-3f BeLzR",previewItem:"gnB8m",previewButton:"L4PR-",previewImage:"_8dsDI",videoPlayLabel:"_2kU58",videoPlayLabelIcon:"WR7T8",enter:"sM8Qu",exit:"veHZr",enterActive:"VP4oy",exitActive:"AMPJ3"},w=d.forwardRef((function(t,e){var n=t.src,i=t.videoSrc,o=d.useRef(null),a=d.useRef(null),s=d.useRef(null),r=!!i,l=function(){var t,e;null===(t=a.current)||void 0===t||t.reset(),null===(e=o.current)||void 0===e||null===(e=e.contentWindow)||void 0===e||e.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")};return d.useEffect((function(){return requestAnimationFrame((function(){s.current&&!r&&(a.current=new x(s.current,{draggableUnzoomed:!1,animationDuration:200,setOffsetsOnce:!1}))})),function(){var t;null===(t=a.current)||void 0===t||t.destroy()}}),[i]),d.useImperativeHandle(e,(function(){return{reset:l}}),[]),r?d.createElement("iframe",{ref:o,className:E.mainPhotoIframe,src:i,width:"100%",height:"100%",allowFullScreen:!0,title:"",loading:"lazy","data-qaid":"photo_gallery_main_video","data-testid":"photo_gallery_main_video"}):d.createElement("img",{ref:s,className:E.mainPhotoImage,src:n,width:"100%",height:"100%",alt:"",decoding:"async",loading:"lazy","data-qaid":"photo_gallery_main_image","data-testid":"photo_gallery_main_image"})})),O=d.forwardRef((function(t,e){var n=t.items,i=t.onChange,o=d.useRef([]),s=d.useRef(0),r=d.useRef(null),l=function(){o.current.forEach((function(t){null==t||t.reset()}))},c=function(t){var e,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=null===(e=r.current)||void 0===e?void 0:e.children[t];l(),i&&v(i,r.current,n)};d.useImperativeHandle(e,(function(){return{scrollToIndex:c}}),[]);var h=function(){if(r.current){var t=function(t,e){var n=t.scrollLeft/t.scrollWidth*e;return Math.round(n)}(r.current,n.length);s.current!==t&&(s.current=t,i(t),l())}};return d.createElement(a.ScrollControls,{ref:r,className:E.mainPhotoScrollControls,showOnHover:!0,hideOnDisabled:!0},(function(t){return d.createElement("div",{ref:t,className:E.mainPhoto,onScroll:h},n.map((function(t,e){var n,i=t.type,a=t.src,s="video"===i,r=s?b(a):a,l=s?(n=y(a),"https://youtube.com/embed/".concat(n,"?enablejsapi=1&rel=0")):void 0;return d.createElement("div",{key:e,className:E.mainPhotoItem,"data-qaid":"photo_gallery_main_item","data-testid":"photo_gallery_main_item"},d.createElement(w,{ref:function(t){return o.current[e]=t},src:r,videoSrc:l}))})))}))})),z=d.forwardRef((function(t,e){var n=t.items,i=t.selectedIndex,o=t.onChange,a=d.useRef(null),l=function(t){var e,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=null===(e=a.current)||void 0===e?void 0:e.children[t];i&&v(i,a.current,n)};d.useImperativeHandle(e,(function(){return{scrollToIndex:l}}),[]);return d.createElement("div",{ref:a,className:E.preview},n.map((function(t,e){var n=t.type,a=t.src,l="video"===n,c=l?b(a):a;return d.createElement("div",{key:e,className:E.previewItem,"data-qaid":"photo_gallery_preview_item","data-testid":"photo_gallery_preview_item"},d.createElement("button",{className:E.previewButton,type:"button",onClick:function(){return function(t){o(t)}(e)},disabled:i===e,"data-qaid":"photo_gallery_preview_button","data-testid":"photo_gallery_preview_button"},d.createElement("img",{className:E.previewImage,src:c,width:58,height:58,alt:"",decoding:"async",loading:"lazy","data-qaid":"photo_gallery_preview_image","data-testid":"photo_gallery_preview_image"}),l&&d.createElement("div",{className:E.videoPlayLabel,"data-qaid":"photo_gallery_preview_play","data-testid":"photo_gallery_preview_play"},d.createElement(s.Icon,{className:E.videoPlayLabelIcon,"icon-as":r.SvgPlay}))))})))})),T=function(t){var e,n,i=t.title,o=t.onClose,a=t.selectedIndex,r=t.itemsLength,u=a+1,f=(0,c.useBodyTTag().t)(p||(e=["Фото "," из ",""],n||(n=e.slice(0)),p=Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))),u,r);return d.createElement("div",{className:E.header},d.createElement("div",{className:E.headerTitle,"data-qaid":"photo_gallery_title","data-testid":"photo_gallery_title"},i||f),d.createElement("div",{className:E.headerClose},d.createElement(l.Button,{"button-padding":"xxs","button-theme":"black-inherit",type:"button",onClick:o,"data-qaid":"photo_gallery_close_button","data-testid":"photo_gallery_close_button"},d.createElement(s.Icon,{"icon-as":h.SvgClose,style:{width:24,height:24}}))))};exports.PhotoGallery=function(t){var a=t.isOpen,s=t.title,r=t.visibleIndex,l=void 0===r?0:r,c=t.items,h=t.zIndex,u=void 0===h?5e3:h,m=t.onClose,p=t.onChange,g=d.useRef(!0),v=d.useRef(null),y=d.useRef(null),b=f(d.useState(l),2),x=b[0],w=b[1];d.useEffect((function(){a&&"function"==typeof p&&p(x)}),[x]),d.useEffect((function(){var t,e;a&&(w(l),null===(t=y.current)||void 0===t||t.scrollToIndex(l,!1),null===(e=v.current)||void 0===e||e.scrollToIndex(l,!1))}),[a]),d.useEffect((function(){var t;if(!a)return function(){};var e=null,n=function(){e&&clearTimeout(e)},i=function(){n(),e=setTimeout((function(){var t,e;null===(t=y.current)||void 0===t||t.scrollToIndex(x,!1),null===(e=v.current)||void 0===e||e.scrollToIndex(x,!1)}),100)};return window.addEventListener("resize",i),null===(t=window)||void 0===t||null===(t=t.matchMedia("(orientation: portrait)"))||void 0===t||t.addEventListener("change",i),function(){var t;n(),window.removeEventListener("resize",i),null===(t=window)||void 0===t||null===(t=t.matchMedia("(orientation: portrait)"))||void 0===t||t.removeEventListener("change",i)}}),[a,x]);var I=function(t){var e,n;g.current=!1,w(t),null===(e=y.current)||void 0===e||e.scrollToIndex(t),null===(n=v.current)||void 0===n||n.scrollToIndex(t)},_=function(){m(x)};return d.createElement(d.Fragment,null,d.createElement(n.Backdrop,{isOpen:a,onClick:_,zIndex:u,isBodyScrollLock:!0}),d.createElement(e.CSSTransition,{in:a,timeout:240,classNames:E,unmountOnExit:!0},d.createElement(o.Portal,null,d.createElement("div",{className:E.root,"data-qaid":"photo_gallery","data-testid":"photo_gallery",style:{zIndex:u}},d.createElement(i.KeyPress,{code:"Escape",onKeyUp:_}),d.createElement(i.KeyPress,{code:"ArrowLeft",onKeyUp:function(){0!==x&&I(x-1)}}),d.createElement(i.KeyPress,{code:"ArrowRight",onKeyUp:function(){x!==c.length-1&&I(x+1)}}),d.createElement("div",{className:E.layout},d.createElement("header",{className:E.layoutHeader},d.createElement(T,{title:s,selectedIndex:x,itemsLength:c.length,onClose:_})),d.createElement("div",{className:E.layoutContent},d.createElement("section",{className:E.layoutSection},d.createElement(O,{ref:v,items:c,onChange:function(t){var e;g.current&&(w(t),null===(e=y.current)||void 0===e||e.scrollToIndex(t));g.current||x!==t||(g.current=!0)}})),c.length>1&&d.createElement("aside",{className:E.layoutAside},d.createElement(z,{ref:y,items:c,selectedIndex:x,onChange:I}))))))))},require("./style.production.css");
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("react-transition-group"),n=require("@prom-ui/core/Backdrop"),i=require("@prom-ui/core/KeyPress"),o=require("@prom-ui/core/Portal"),r=require("@prom-ui/core/ScrollControls"),a=require("@prom-ui/core/Icon"),s=require("@prom-ui/icons/Play"),l=require("@prom-ui/core/Button"),c=require("@prom-ui/core/useBodyTTag"),u=require("@prom-ui/icons/Close");function h(t){if(t&&"object"==typeof t&&"default"in t)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}})),e.default=t,Object.freeze(e)}var d=h(t);function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,o,r,a,s=[],l=!0,c=!1;try{if(r=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(i=r.call(n)).done)&&(s.push(i.value),s.length!==e);l=!0);}catch(u){c=!0,o=u}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return s}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return m(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}var p,g=new Map,v=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];g.has(e)&&(cancelAnimationFrame(g.get(e)),g.delete(e));var i=requestAnimationFrame((function(){var i=e.getBoundingClientRect(),o=t.getBoundingClientRect(),r=o.top+e.scrollTop-i.top-i.height/2+o.height/2,a=o.left+e.scrollLeft-i.left-i.width/2+o.width/2;a<0&&(a=0),r<0&&(r=0),e.scrollTo({behavior:n?"smooth":"instant",top:r,left:a})}));g.set(e,i)},y=function(t){var e=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?v(?:i)?=|\&v(?:i)?=))([^#\&\?]*).*/.exec(t);return e&&e[1]},b=function(t){var e=y(t);return"https://img.youtube.com/vi/".concat(e,"/0.jpg")},E=function(){var t=function(t,e){this.el=t,this.zoomFactor=1,this.lastScale=1,this.offset={x:0,y:0},this.initialOffset={x:0,y:0},this.options=Object.assign({},this.defaults,e),this.setupMarkup(),this.bindEvents(),this.update(),this.isImageLoaded(this.el)&&(this.updateAspectRatio(),this.setupOffsets()),this.enable()},e=function(t,e){return t+e};t.prototype={defaults:{tapZoomFactor:2,zoomOutFactor:1.3,animationDuration:300,maxZoom:4,minZoom:.5,draggableUnzoomed:!0,lockDragAxis:!1,setOffsetsOnce:!1,use2d:!0,useMouseWheel:!1,verticalPadding:0,horizontalPadding:0,onZoomStart:null,onZoomEnd:null,onZoomUpdate:null,onDragStart:null,onDragEnd:null,onDragUpdate:null,onDoubleTap:null,onMouseWheel:null},handleDragStart:function(t){"function"==typeof this.options.onDragStart&&this.options.onDragStart(this,t),this.stopAnimation(),this.lastDragPosition=!1,this.hasInteraction=!0,this.handleDrag(t)},handleDrag:function(t){var e="touchmove"===t.type?this.getTouches(t)[0]:this.getPointer(t);this.drag(e,this.lastDragPosition),this.offset=this.sanitizeOffset(this.offset),this.lastDragPosition=e},handleDragEnd:function(){"function"==typeof this.options.onDragEnd&&this.options.onDragEnd(this,event),this.end()},handleZoomStart:function(t){"function"==typeof this.options.onZoomStart&&this.options.onZoomStart(this,t),this.stopAnimation(),this.lastScale=1,this.nthZoom=0,this.lastZoomCenter=!1,this.hasInteraction=!0},handleZoom:function(t,e){var n=this.getTouchCenter(this.getTouches(t)),i=e/this.lastScale;this.lastScale=e,this.nthZoom+=1,this.nthZoom>3&&(this.scale(i,n),this.drag(n,this.lastZoomCenter)),this.lastZoomCenter=n},handleZoomEnd:function(){"function"==typeof this.options.onZoomEnd&&this.options.onZoomEnd(this,event),this.end()},handleDoubleTap:function(t){var e=this.getTouches(t)[0],n=this.zoomFactor>1?1:this.options.tapZoomFactor,i=this.zoomFactor,o=function(t){this.scaleTo(i+t*(n-i),e)}.bind(this);this.hasInteraction||(this.isDoubleTap=!0,i>n&&(e=this.getCurrentZoomCenter()),this.animate(this.options.animationDuration,o,this.swing),"function"==typeof this.options.onDoubleTap&&this.options.onDoubleTap(this,t))},handleMouseWheel:function(t){var e=this.getPointer(t),n=Math.min(Math.max(this.options.minZoom,this.lastScale+-.01*t.deltaY),this.options.maxZoom),i=n/this.lastScale;this.scale(i,e),this.lastScale=n,this.update(),"function"==typeof this.options.onMouseWheel&&this.options.onMouseWheel(this,t)},computeInitialOffset:function(){this.initialOffset={x:-Math.abs(this.el.offsetWidth*this.getInitialZoomFactor()-this.container.offsetWidth)/2,y:-Math.abs(this.el.offsetHeight*this.getInitialZoomFactor()-this.container.offsetHeight)/2}},resetOffset:function(){this.offset.x=this.initialOffset.x,this.offset.y=this.initialOffset.y},isImageLoaded:function(t){return"IMG"===t.nodeName?t.complete&&0!==t.naturalHeight:Array.from(t.querySelectorAll("img")).every(this.isImageLoaded)},setupOffsets:function(){this.options.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this.computeInitialOffset(),this.resetOffset())},sanitizeOffset:function(t){var e=this.el.offsetWidth*this.getInitialZoomFactor()*this.zoomFactor,n=this.el.offsetHeight*this.getInitialZoomFactor()*this.zoomFactor,i=e-this.getContainerX()+this.options.horizontalPadding,o=n-this.getContainerY()+this.options.verticalPadding,r=Math.max(i,0),a=Math.max(o,0),s=Math.min(i,0)-this.options.horizontalPadding,l=Math.min(o,0)-this.options.verticalPadding;return{x:Math.min(Math.max(t.x,s),r),y:Math.min(Math.max(t.y,l),a)}},scaleTo:function(t,e){this.scale(t/this.zoomFactor,e)},scale:function(t,e){t=this.scaleZoomFactor(t),this.addOffset({x:(t-1)*(e.x+this.offset.x),y:(t-1)*(e.y+this.offset.y)}),"function"==typeof this.options.onZoomUpdate&&this.options.onZoomUpdate(this,event)},scaleZoomFactor:function(t){var e=this.zoomFactor;return this.zoomFactor*=t,this.zoomFactor=Math.min(this.options.maxZoom,Math.max(this.zoomFactor,this.options.minZoom)),this.zoomFactor/e},canDrag:function(){return this.options.draggableUnzoomed||!((t=this.zoomFactor)>(e=1)-.01&&t<e+.01);var t,e},drag:function(t,e){e&&(this.options.lockDragAxis?Math.abs(t.x-e.x)>Math.abs(t.y-e.y)?this.addOffset({x:-(t.x-e.x),y:0}):this.addOffset({y:-(t.y-e.y),x:0}):this.addOffset({y:-(t.y-e.y),x:-(t.x-e.x)}),"function"==typeof this.options.onDragUpdate&&this.options.onDragUpdate(this,event))},getTouchCenter:function(t){return this.getVectorAvg(t)},getVectorAvg:function(t){return{x:t.map((function(t){return t.x})).reduce(e)/t.length,y:t.map((function(t){return t.y})).reduce(e)/t.length}},addOffset:function(t){this.offset={x:this.offset.x+t.x,y:this.offset.y+t.y}},sanitize:function(){this.zoomFactor<this.options.zoomOutFactor?this.zoomOutAnimation():this.isInsaneOffset(this.offset)&&this.sanitizeOffsetAnimation()},isInsaneOffset:function(t){var e=this.sanitizeOffset(t);return e.x!==t.x||e.y!==t.y},sanitizeOffsetAnimation:function(){var t=this.sanitizeOffset(this.offset),e=this.offset.x,n=this.offset.y,i=function(i){this.offset.x=e+i*(t.x-e),this.offset.y=n+i*(t.y-n),this.update()}.bind(this);this.animate(this.options.animationDuration,i,this.swing)},zoomOutAnimation:function(){if(1!==this.zoomFactor){var t=this.zoomFactor,e=this.getCurrentZoomCenter(),n=function(n){this.scaleTo(t+n*(1-t),e)}.bind(this);this.animate(this.options.animationDuration,n,this.swing)}},updateAspectRatio:function(){this.unsetContainerY(),this.setContainerY(this.container.parentElement.offsetHeight)},getInitialZoomFactor:function(){var t=this.container.offsetWidth/this.el.offsetWidth,e=this.container.offsetHeight/this.el.offsetHeight;return Math.min(t,e)},getAspectRatio:function(){return this.el.offsetWidth/this.el.offsetHeight},getCurrentZoomCenter:function(){var t=this.offset.x-this.initialOffset.x,e=-1*this.offset.x-t/(1/this.zoomFactor-1),n=this.offset.y-this.initialOffset.y;return{x:e,y:-1*this.offset.y-n/(1/this.zoomFactor-1)}},getTouches:function(t){var e=this.container.getBoundingClientRect(),n=document.documentElement.scrollTop||document.body.scrollTop,i=document.documentElement.scrollLeft||document.body.scrollLeft,o=e.top+n,r=e.left+i;return Array.prototype.slice.call(t.touches).map((function(t){return{x:t.pageX-r,y:t.pageY-o}}))},getPointer:function(t){var e=this.container.getBoundingClientRect(),n=document.documentElement.scrollTop||document.body.scrollTop,i=document.documentElement.scrollLeft||document.body.scrollLeft,o=e.top+n,r=e.left+i;return{x:t.pageX-r,y:t.pageY-o}},animate:function(t,e,n,i){var o=(new Date).getTime(),r=function(){if(this.inAnimation){var a=(new Date).getTime()-o,s=a/t;a>=t?(e(1),i&&i(),this.update(),this.stopAnimation(),this.update()):(n&&(s=n(s)),e(s),this.update(),requestAnimationFrame(r))}}.bind(this);this.inAnimation=!0,requestAnimationFrame(r)},stopAnimation:function(){this.inAnimation=!1},swing:function(t){return-Math.cos(t*Math.PI)/2+.5},getContainerX:function(){return this.container.offsetWidth},getContainerY:function(){return this.container.offsetHeight},setContainerY:function(t){return this.container.style.height=t+"px"},unsetContainerY:function(){this.container.style.height=null},setupMarkup:function(){var t,e;this.container=(t='<div class="pinch-zoom-container" style="height: 100%;"></div>',(e=document.implementation.createHTMLDocument("")).body.innerHTML=t,Array.from(e.body.children)[0]),this.el.parentNode.insertBefore(this.container,this.el),this.container.appendChild(this.el),this.container.style.overflow="hidden",this.container.style.position="relative",this.el.style.webkitTransformOrigin="0% 0%",this.el.style.mozTransformOrigin="0% 0%",this.el.style.msTransformOrigin="0% 0%",this.el.style.oTransformOrigin="0% 0%",this.el.style.transformOrigin="0% 0%",this.el.style.position="absolute",this.el.style.backfaceVisibility="hidden",this.el.style.willChange="transform"},end:function(){this.hasInteraction=!1,this.sanitize(),this.update()},bindEvents:function(){var t=this;n(this.container,this),this.resizeHandler=this.update.bind(this),window.addEventListener("resize",this.resizeHandler),Array.from(this.el.querySelectorAll("img")).forEach((function(e){e.addEventListener("load",t.update.bind(t))})),"IMG"===this.el.nodeName&&this.el.addEventListener("load",this.update.bind(this))},update:function(t){t&&"resize"===t.type&&(this.updateAspectRatio(),this.setupOffsets()),t&&"load"===t.type&&(this.updateAspectRatio(),this.setupOffsets()),this.updatePlanned||(this.updatePlanned=!0,window.setTimeout(function(){this.updatePlanned=!1;var t=this.getInitialZoomFactor()*this.zoomFactor,e=-this.offset.x/t,n=-this.offset.y/t,i="scale3d("+t+", "+t+",1) translate3d("+e+"px,"+n+"px,0px)",o="scale("+t+", "+t+") translate("+e+"px,"+n+"px)",r=function(){this.clone&&(this.clone.parentNode.removeChild(this.clone),delete this.clone)}.bind(this);!this.options.use2d||this.hasInteraction||this.inAnimation?(this.is3d=!0,r(),this.el.style.webkitTransform=i,this.el.style.mozTransform=o,this.el.style.msTransform=o,this.el.style.oTransform=o,this.el.style.transform=i):(this.is3d&&(this.clone=this.el.cloneNode(!0),this.clone.style.pointerEvents="none",this.container.appendChild(this.clone),window.setTimeout(r,200)),this.el.style.webkitTransform=o,this.el.style.mozTransform=o,this.el.style.msTransform=o,this.el.style.oTransform=o,this.el.style.transform=o,this.is3d=!1)}.bind(this),0))},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},destroy:function(){window.removeEventListener("resize",this.resizeHandler),this.container&&(this.container.remove(),this.container=null)},reset:function(){this.zoomOutAnimation()}};var n=function(t,e){var n=null,i=0,o=null,r=null,a=function(t,i){if(n!==t){if(n&&!t)switch(n){case"zoom":e.handleZoomEnd(i);break;case"drag":e.handleDragEnd(i)}switch(t){case"zoom":e.handleZoomStart(i);break;case"drag":e.handleDragStart(i)}}n=t},s=function(t){2===i?a("zoom"):1===i&&e.canDrag()?a("drag",t):a(null,t)},l=function(t){return Array.from(t).map((function(t){return{x:t.pageX,y:t.pageY}}))},c=function(t,e){var n,i;return n=t.x-e.x,i=t.y-e.y,Math.sqrt(n*n+i*i)},u=function(t){t.stopPropagation(),t.preventDefault()},h=!0;t.addEventListener("touchstart",(function(t){e.enabled&&(h=!0,i=t.touches.length,function(t){var r=(new Date).getTime();if(i>1&&(o=null),r-o<300)switch(u(t),e.handleDoubleTap(t),n){case"zoom":e.handleZoomEnd(t);break;case"drag":e.handleDragEnd(t)}else e.isDoubleTap=!1;1===i&&(o=r)}(t))}),{passive:!1}),t.addEventListener("touchmove",(function(t){if(e.enabled&&!e.isDoubleTap){if(h)s(t),n&&u(t),r=l(t.touches);else{switch(n){case"zoom":2==r.length&&2==t.touches.length&&e.handleZoom(t,function(t,e){var n=c(t[0],t[1]);return c(e[0],e[1])/n}(r,l(t.touches)));break;case"drag":e.handleDrag(t)}n&&(u(t),e.update())}h=!1}}),{passive:!1}),t.addEventListener("touchend",(function(t){e.enabled&&(i=t.touches.length,s(t))})),e.options.useMouseWheel&&(t.addEventListener("mousewheel",(function(t){e.enabled&&(u(t),e.handleMouseWheel(t))})),t.addEventListener("mousedown",(function(t){e.enabled&&(h=!0,i=1)}),{passive:!0}),t.addEventListener("mousemove",(function(t){e.enabled&&(h?(s(t),n&&u(t)):("drag"===n&&e.handleDrag(t),n&&(u(t),e.update())),h=!1)}),{passive:!1}),t.addEventListener("mouseup",(function(t){e.enabled&&(i=0,s(t))}),{passive:!0}))};return t}(),x={scrolling:"BeLzR",root:"nJWgH",layout:"BDoOb",layoutHeader:"iNVA1",layoutContent:"C-jWr",layoutSection:"_3FXm5",layoutAside:"ABw2b",header:"meCSL",headerTitle:"NpSWI",headerClose:"-B9Zg",mainPhotoScrollControls:"ckcap",mainPhoto:"-r4WP BeLzR",mainPhotoItem:"Q7wDI",mainPhotoImage:"NrcBT",mainPhotoIframe:"kObZY",preview:"_86-3f BeLzR",previewItem:"gnB8m",previewButton:"L4PR-",previewImage:"_8dsDI",videoPlayLabel:"_2kU58",videoPlayLabelIcon:"WR7T8",enter:"sM8Qu",exit:"veHZr",enterActive:"VP4oy",exitActive:"AMPJ3"},w=d.forwardRef((function(t,e){var n=t.src,i=t.videoSrc,o=t.triggerInteraction,r=d.useRef(null),a=d.useRef(null),s=d.useRef(null),l=!!i,c=function(){var t,e;null===(t=a.current)||void 0===t||t.reset(),null===(e=r.current)||void 0===e||null===(e=e.contentWindow)||void 0===e||e.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")};return d.useEffect((function(){return requestAnimationFrame((function(){s.current&&!l&&(a.current=new E(s.current,{draggableUnzoomed:!1,animationDuration:200,setOffsetsOnce:!1,onDoubleTap:function(t){1===(null==t?void 0:t.zoomFactor)&&o("maybeZoomImage")}}))})),function(){var t;null===(t=a.current)||void 0===t||t.destroy()}}),[i]),d.useEffect((function(){var t=function(){l&&document.activeElement&&"iframe"===document.activeElement.nodeName.toLowerCase()&&r.current&&r.current===document.activeElement&&o("maybePlayVideo")};return window.addEventListener("blur",t),function(){window.removeEventListener("blur",t)}}),[i]),d.useImperativeHandle(e,(function(){return{reset:c}}),[]),l?d.createElement("iframe",{ref:r,className:x.mainPhotoIframe,src:i,width:"100%",height:"100%",allowFullScreen:!0,title:"",loading:"lazy","data-qaid":"photo_gallery_main_video","data-testid":"photo_gallery_main_video"}):d.createElement("img",{ref:s,className:x.mainPhotoImage,src:n,width:"100%",height:"100%",alt:"",decoding:"async",loading:"lazy","data-qaid":"photo_gallery_main_image","data-testid":"photo_gallery_main_image"})})),I=d.forwardRef((function(t,e){var n=t.items,i=t.onChange,o=t.triggerInteraction,a=d.useRef(null),s=d.useRef([]),l=d.useRef(0),c=d.useRef(null),u=function(){s.current.forEach((function(t){null==t||t.reset()}))},h=function(t){var e,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=null===(e=c.current)||void 0===e?void 0:e.children[t];u(),i&&v(i,c.current,n)};d.useImperativeHandle(e,(function(){return{scrollToIndex:h}}),[]);var f=function(){if(c.current){var t=function(t,e){var n=t.scrollLeft/t.scrollWidth*e;return Math.round(n)}(c.current,n.length);l.current!==t&&(l.current=t,i(t),u())}},m=function(t){var e=t.changedTouches[0].screenX;a.current=e},p=function(t){var e=t.changedTouches[0].screenX;a.current&&(a.current>e?o("maybeSwipeLeft"):a.current<e&&o("maybeSwipeRight"),a.current=null)};return d.createElement(r.ScrollControls,{ref:c,className:x.mainPhotoScrollControls,showOnHover:!0,hideOnDisabled:!0,onClickPrev:function(){return o("clickPrevButton")},onClickNext:function(){return o("clickNextButton")}},(function(t){return d.createElement("div",{ref:t,className:x.mainPhoto,onScroll:f,onTouchStart:m,onTouchEnd:p},n.map((function(t,e){var n,i=t.type,r=t.src,a="video"===i,l=a?b(r):r,c=a?(n=y(r),"https://youtube.com/embed/".concat(n,"?enablejsapi=1&rel=0")):void 0;return d.createElement("div",{key:e,className:x.mainPhotoItem,"data-qaid":"photo_gallery_main_item","data-testid":"photo_gallery_main_item"},d.createElement(w,{ref:function(t){return s.current[e]=t},src:l,videoSrc:c,triggerInteraction:o}))})))}))})),T=d.forwardRef((function(t,e){var n=t.items,i=t.selectedIndex,o=t.onChange,r=t.triggerInteraction,l=d.useRef(null),c=function(t){var e,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=null===(e=l.current)||void 0===e?void 0:e.children[t];i&&v(i,l.current,n)};d.useImperativeHandle(e,(function(){return{scrollToIndex:c}}),[]);return d.createElement("div",{ref:l,className:x.preview},n.map((function(t,e){var n=t.type,l=t.src,c="video"===n,u=c?b(l):l,h=c?"clickPreviewVideo":"clickPreviewImage";return d.createElement("div",{key:e,className:x.previewItem,"data-qaid":"photo_gallery_preview_item","data-testid":"photo_gallery_preview_item"},d.createElement("button",{className:x.previewButton,type:"button",onClick:function(){r(h),function(t){o(t)}(e)},disabled:i===e,"data-qaid":"photo_gallery_preview_button","data-testid":"photo_gallery_preview_button"},d.createElement("img",{className:x.previewImage,src:u,width:58,height:58,alt:"",decoding:"async",loading:"lazy","data-qaid":"photo_gallery_preview_image","data-testid":"photo_gallery_preview_image"}),c&&d.createElement("div",{className:x.videoPlayLabel,"data-qaid":"photo_gallery_preview_play","data-testid":"photo_gallery_preview_play"},d.createElement(a.Icon,{className:x.videoPlayLabelIcon,"icon-as":s.SvgPlay}))))})))})),z=function(t){var e,n,i=t.title,o=t.onClose,r=t.selectedIndex,s=t.itemsLength,h=t.triggerInteraction,f=r+1,m=(0,c.useBodyTTag().t)(p||(e=["Фото "," из ",""],n||(n=e.slice(0)),p=Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))),f,s);return d.createElement("div",{className:x.header},d.createElement("div",{className:x.headerTitle,"data-qaid":"photo_gallery_title","data-testid":"photo_gallery_title"},i||m),d.createElement("div",{className:x.headerClose},d.createElement(l.Button,{"button-padding":"xxs","button-theme":"black-inherit",type:"button",onClick:function(){h("clickCloseButton"),o()},"data-qaid":"photo_gallery_close_button","data-testid":"photo_gallery_close_button"},d.createElement(a.Icon,{"icon-as":u.SvgClose,style:{width:24,height:24}}))))};exports.PhotoGallery=function(t){var r=t.isOpen,a=t.title,s=t.visibleIndex,l=void 0===s?0:s,c=t.items,u=t.zIndex,h=void 0===u?5e3:u,m=t.onClose,p=t.onChange,g=t.onInteraction,v=d.useRef(!0),y=d.useRef(null),b=d.useRef(null),E=f(d.useState(l),2),w=E[0],O=E[1],_=function(t){"function"==typeof g&&g(t)};d.useEffect((function(){r&&"function"==typeof p&&p(w)}),[w]),d.useEffect((function(){var t,e;r&&(O(l),null===(t=b.current)||void 0===t||t.scrollToIndex(l,!1),null===(e=y.current)||void 0===e||e.scrollToIndex(l,!1))}),[r]),d.useEffect((function(){var t;if(!r)return function(){};var e=null,n=function(){e&&clearTimeout(e)},i=function(){n(),e=setTimeout((function(){var t,e;null===(t=b.current)||void 0===t||t.scrollToIndex(w,!1),null===(e=y.current)||void 0===e||e.scrollToIndex(w,!1)}),100)};return window.addEventListener("resize",i),null===(t=window)||void 0===t||null===(t=t.matchMedia("(orientation: portrait)"))||void 0===t||t.addEventListener("change",i),function(){var t;n(),window.removeEventListener("resize",i),null===(t=window)||void 0===t||null===(t=t.matchMedia("(orientation: portrait)"))||void 0===t||t.removeEventListener("change",i)}}),[r,w]);var C=function(t){var e,n;v.current=!1,O(t),null===(e=b.current)||void 0===e||e.scrollToIndex(t),null===(n=y.current)||void 0===n||n.scrollToIndex(t)},P=function(){m(w)};return d.createElement(d.Fragment,null,d.createElement(n.Backdrop,{isOpen:r,onClick:P,zIndex:h,isBodyScrollLock:!0}),d.createElement(e.CSSTransition,{in:r,timeout:240,classNames:x,unmountOnExit:!0,onEntered:function(){return _("opened")},onExited:function(){return _("closed")}},d.createElement(o.Portal,null,d.createElement("div",{className:x.root,"data-qaid":"photo_gallery","data-testid":"photo_gallery",style:{zIndex:h}},d.createElement(i.KeyPress,{code:"Escape",onKeyUp:function(){_("keyPressClose"),P()}}),d.createElement(i.KeyPress,{code:"ArrowLeft",onKeyUp:function(){0!==w&&(_("keyPressPrev"),C(w-1))}}),d.createElement(i.KeyPress,{code:"ArrowRight",onKeyUp:function(){w!==c.length-1&&(_("keyPressNext"),C(w+1))}}),d.createElement("div",{className:x.layout},d.createElement("header",{className:x.layoutHeader},d.createElement(z,{title:a,selectedIndex:w,itemsLength:c.length,onClose:P,triggerInteraction:_})),d.createElement("div",{className:x.layoutContent},d.createElement("section",{className:x.layoutSection},d.createElement(I,{ref:y,items:c,onChange:function(t){var e;v.current&&(O(t),null===(e=b.current)||void 0===e||e.scrollToIndex(t));v.current||w!==t||(v.current=!0)},triggerInteraction:_})),c.length>1&&d.createElement("aside",{className:x.layoutAside},d.createElement(T,{ref:b,items:c,selectedIndex:w,onChange:C,triggerInteraction:_}))))))))},require("./style.production.css");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("react-transition-group"),n=require("@prom-ui/core/Backdrop"),i=require("@prom-ui/core/KeyPress"),o=require("@prom-ui/core/Portal"),a=require("@prom-ui/core/ScrollControls"),s=require("@prom-ui/core/Icon"),r=require("@prom-ui/icons/Play"),l=require("@prom-ui/core/Button"),c=require("@prom-ui/core/useBodyTTag"),h=require("@prom-ui/icons/Close");function u(t){if(t&&"object"==typeof t&&"default"in t)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}})),e.default=t,Object.freeze(e)}var d=u(t);function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,o,a,s,r=[],l=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(i=a.call(n)).done)&&(r.push(i.value),r.length!==e);l=!0);}catch(h){c=!0,o=h}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return r}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return m(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}var p,g=new Map,v=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];g.has(e)&&(cancelAnimationFrame(g.get(e)),g.delete(e));var i=requestAnimationFrame((function(){var i=e.getBoundingClientRect(),o=t.getBoundingClientRect(),a=o.top+e.scrollTop-i.top-i.height/2+o.height/2,s=o.left+e.scrollLeft-i.left-i.width/2+o.width/2;s<0&&(s=0),a<0&&(a=0),e.scrollTo({behavior:n?"smooth":"instant",top:a,left:s})}));g.set(e,i)},y=function(t){var e=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?v(?:i)?=|\&v(?:i)?=))([^#\&\?]*).*/.exec(t);return e&&e[1]},b=function(t){var e=y(t);return"https://img.youtube.com/vi/".concat(e,"/0.jpg")},x=function(){var t=function(t,e){this.el=t,this.zoomFactor=1,this.lastScale=1,this.offset={x:0,y:0},this.initialOffset={x:0,y:0},this.options=Object.assign({},this.defaults,e),this.setupMarkup(),this.bindEvents(),this.update(),this.isImageLoaded(this.el)&&(this.updateAspectRatio(),this.setupOffsets()),this.enable()},e=function(t,e){return t+e};t.prototype={defaults:{tapZoomFactor:2,zoomOutFactor:1.3,animationDuration:300,maxZoom:4,minZoom:.5,draggableUnzoomed:!0,lockDragAxis:!1,setOffsetsOnce:!1,use2d:!0,useMouseWheel:!1,verticalPadding:0,horizontalPadding:0,onZoomStart:null,onZoomEnd:null,onZoomUpdate:null,onDragStart:null,onDragEnd:null,onDragUpdate:null,onDoubleTap:null,onMouseWheel:null},handleDragStart:function(t){"function"==typeof this.options.onDragStart&&this.options.onDragStart(this,t),this.stopAnimation(),this.lastDragPosition=!1,this.hasInteraction=!0,this.handleDrag(t)},handleDrag:function(t){var e="touchmove"===t.type?this.getTouches(t)[0]:this.getPointer(t);this.drag(e,this.lastDragPosition),this.offset=this.sanitizeOffset(this.offset),this.lastDragPosition=e},handleDragEnd:function(){"function"==typeof this.options.onDragEnd&&this.options.onDragEnd(this,event),this.end()},handleZoomStart:function(t){"function"==typeof this.options.onZoomStart&&this.options.onZoomStart(this,t),this.stopAnimation(),this.lastScale=1,this.nthZoom=0,this.lastZoomCenter=!1,this.hasInteraction=!0},handleZoom:function(t,e){var n=this.getTouchCenter(this.getTouches(t)),i=e/this.lastScale;this.lastScale=e,this.nthZoom+=1,this.nthZoom>3&&(this.scale(i,n),this.drag(n,this.lastZoomCenter)),this.lastZoomCenter=n},handleZoomEnd:function(){"function"==typeof this.options.onZoomEnd&&this.options.onZoomEnd(this,event),this.end()},handleDoubleTap:function(t){var e=this.getTouches(t)[0],n=this.zoomFactor>1?1:this.options.tapZoomFactor,i=this.zoomFactor,o=function(t){this.scaleTo(i+t*(n-i),e)}.bind(this);this.hasInteraction||(this.isDoubleTap=!0,i>n&&(e=this.getCurrentZoomCenter()),this.animate(this.options.animationDuration,o,this.swing),"function"==typeof this.options.onDoubleTap&&this.options.onDoubleTap(this,t))},handleMouseWheel:function(t){var e=this.getPointer(t),n=Math.min(Math.max(this.options.minZoom,this.lastScale+-.01*t.deltaY),this.options.maxZoom),i=n/this.lastScale;this.scale(i,e),this.lastScale=n,this.update(),"function"==typeof this.options.onMouseWheel&&this.options.onMouseWheel(this,t)},computeInitialOffset:function(){this.initialOffset={x:-Math.abs(this.el.offsetWidth*this.getInitialZoomFactor()-this.container.offsetWidth)/2,y:-Math.abs(this.el.offsetHeight*this.getInitialZoomFactor()-this.container.offsetHeight)/2}},resetOffset:function(){this.offset.x=this.initialOffset.x,this.offset.y=this.initialOffset.y},isImageLoaded:function(t){return"IMG"===t.nodeName?t.complete&&0!==t.naturalHeight:Array.from(t.querySelectorAll("img")).every(this.isImageLoaded)},setupOffsets:function(){this.options.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this.computeInitialOffset(),this.resetOffset())},sanitizeOffset:function(t){var e=this.el.offsetWidth*this.getInitialZoomFactor()*this.zoomFactor,n=this.el.offsetHeight*this.getInitialZoomFactor()*this.zoomFactor,i=e-this.getContainerX()+this.options.horizontalPadding,o=n-this.getContainerY()+this.options.verticalPadding,a=Math.max(i,0),s=Math.max(o,0),r=Math.min(i,0)-this.options.horizontalPadding,l=Math.min(o,0)-this.options.verticalPadding;return{x:Math.min(Math.max(t.x,r),a),y:Math.min(Math.max(t.y,l),s)}},scaleTo:function(t,e){this.scale(t/this.zoomFactor,e)},scale:function(t,e){t=this.scaleZoomFactor(t),this.addOffset({x:(t-1)*(e.x+this.offset.x),y:(t-1)*(e.y+this.offset.y)}),"function"==typeof this.options.onZoomUpdate&&this.options.onZoomUpdate(this,event)},scaleZoomFactor:function(t){var e=this.zoomFactor;return this.zoomFactor*=t,this.zoomFactor=Math.min(this.options.maxZoom,Math.max(this.zoomFactor,this.options.minZoom)),this.zoomFactor/e},canDrag:function(){return this.options.draggableUnzoomed||!((t=this.zoomFactor)>(e=1)-.01&&t<e+.01);var t,e},drag:function(t,e){e&&(this.options.lockDragAxis?Math.abs(t.x-e.x)>Math.abs(t.y-e.y)?this.addOffset({x:-(t.x-e.x),y:0}):this.addOffset({y:-(t.y-e.y),x:0}):this.addOffset({y:-(t.y-e.y),x:-(t.x-e.x)}),"function"==typeof this.options.onDragUpdate&&this.options.onDragUpdate(this,event))},getTouchCenter:function(t){return this.getVectorAvg(t)},getVectorAvg:function(t){return{x:t.map((function(t){return t.x})).reduce(e)/t.length,y:t.map((function(t){return t.y})).reduce(e)/t.length}},addOffset:function(t){this.offset={x:this.offset.x+t.x,y:this.offset.y+t.y}},sanitize:function(){this.zoomFactor<this.options.zoomOutFactor?this.zoomOutAnimation():this.isInsaneOffset(this.offset)&&this.sanitizeOffsetAnimation()},isInsaneOffset:function(t){var e=this.sanitizeOffset(t);return e.x!==t.x||e.y!==t.y},sanitizeOffsetAnimation:function(){var t=this.sanitizeOffset(this.offset),e=this.offset.x,n=this.offset.y,i=function(i){this.offset.x=e+i*(t.x-e),this.offset.y=n+i*(t.y-n),this.update()}.bind(this);this.animate(this.options.animationDuration,i,this.swing)},zoomOutAnimation:function(){if(1!==this.zoomFactor){var t=this.zoomFactor,e=this.getCurrentZoomCenter(),n=function(n){this.scaleTo(t+n*(1-t),e)}.bind(this);this.animate(this.options.animationDuration,n,this.swing)}},updateAspectRatio:function(){this.unsetContainerY(),this.setContainerY(this.container.parentElement.offsetHeight)},getInitialZoomFactor:function(){var t=this.container.offsetWidth/this.el.offsetWidth,e=this.container.offsetHeight/this.el.offsetHeight;return Math.min(t,e)},getAspectRatio:function(){return this.el.offsetWidth/this.el.offsetHeight},getCurrentZoomCenter:function(){var t=this.offset.x-this.initialOffset.x,e=-1*this.offset.x-t/(1/this.zoomFactor-1),n=this.offset.y-this.initialOffset.y;return{x:e,y:-1*this.offset.y-n/(1/this.zoomFactor-1)}},getTouches:function(t){var e=this.container.getBoundingClientRect(),n=document.documentElement.scrollTop||document.body.scrollTop,i=document.documentElement.scrollLeft||document.body.scrollLeft,o=e.top+n,a=e.left+i;return Array.prototype.slice.call(t.touches).map((function(t){return{x:t.pageX-a,y:t.pageY-o}}))},getPointer:function(t){var e=this.container.getBoundingClientRect(),n=document.documentElement.scrollTop||document.body.scrollTop,i=document.documentElement.scrollLeft||document.body.scrollLeft,o=e.top+n,a=e.left+i;return{x:t.pageX-a,y:t.pageY-o}},animate:function(t,e,n,i){var o=(new Date).getTime(),a=function(){if(this.inAnimation){var s=(new Date).getTime()-o,r=s/t;s>=t?(e(1),i&&i(),this.update(),this.stopAnimation(),this.update()):(n&&(r=n(r)),e(r),this.update(),requestAnimationFrame(a))}}.bind(this);this.inAnimation=!0,requestAnimationFrame(a)},stopAnimation:function(){this.inAnimation=!1},swing:function(t){return-Math.cos(t*Math.PI)/2+.5},getContainerX:function(){return this.container.offsetWidth},getContainerY:function(){return this.container.offsetHeight},setContainerY:function(t){return this.container.style.height=t+"px"},unsetContainerY:function(){this.container.style.height=null},setupMarkup:function(){var t,e;this.container=(t='<div class="pinch-zoom-container" style="height: 100%;"></div>',(e=document.implementation.createHTMLDocument("")).body.innerHTML=t,Array.from(e.body.children)[0]),this.el.parentNode.insertBefore(this.container,this.el),this.container.appendChild(this.el),this.container.style.overflow="hidden",this.container.style.position="relative",this.el.style.webkitTransformOrigin="0% 0%",this.el.style.mozTransformOrigin="0% 0%",this.el.style.msTransformOrigin="0% 0%",this.el.style.oTransformOrigin="0% 0%",this.el.style.transformOrigin="0% 0%",this.el.style.position="absolute",this.el.style.backfaceVisibility="hidden",this.el.style.willChange="transform"},end:function(){this.hasInteraction=!1,this.sanitize(),this.update()},bindEvents:function(){var t=this;n(this.container,this),this.resizeHandler=this.update.bind(this),window.addEventListener("resize",this.resizeHandler),Array.from(this.el.querySelectorAll("img")).forEach((function(e){e.addEventListener("load",t.update.bind(t))})),"IMG"===this.el.nodeName&&this.el.addEventListener("load",this.update.bind(this))},update:function(t){t&&"resize"===t.type&&(this.updateAspectRatio(),this.setupOffsets()),t&&"load"===t.type&&(this.updateAspectRatio(),this.setupOffsets()),this.updatePlanned||(this.updatePlanned=!0,window.setTimeout(function(){this.updatePlanned=!1;var t=this.getInitialZoomFactor()*this.zoomFactor,e=-this.offset.x/t,n=-this.offset.y/t,i="scale3d("+t+", "+t+",1) translate3d("+e+"px,"+n+"px,0px)",o="scale("+t+", "+t+") translate("+e+"px,"+n+"px)",a=function(){this.clone&&(this.clone.parentNode.removeChild(this.clone),delete this.clone)}.bind(this);!this.options.use2d||this.hasInteraction||this.inAnimation?(this.is3d=!0,a(),this.el.style.webkitTransform=i,this.el.style.mozTransform=o,this.el.style.msTransform=o,this.el.style.oTransform=o,this.el.style.transform=i):(this.is3d&&(this.clone=this.el.cloneNode(!0),this.clone.style.pointerEvents="none",this.container.appendChild(this.clone),window.setTimeout(a,200)),this.el.style.webkitTransform=o,this.el.style.mozTransform=o,this.el.style.msTransform=o,this.el.style.oTransform=o,this.el.style.transform=o,this.is3d=!1)}.bind(this),0))},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},destroy:function(){window.removeEventListener("resize",this.resizeHandler),this.container&&(this.container.remove(),this.container=null)},reset:function(){this.zoomOutAnimation()}};var n=function(t,e){var n=null,i=0,o=null,a=null,s=function(t,i){if(n!==t){if(n&&!t)switch(n){case"zoom":e.handleZoomEnd(i);break;case"drag":e.handleDragEnd(i)}switch(t){case"zoom":e.handleZoomStart(i);break;case"drag":e.handleDragStart(i)}}n=t},r=function(t){2===i?s("zoom"):1===i&&e.canDrag()?s("drag",t):s(null,t)},l=function(t){return Array.from(t).map((function(t){return{x:t.pageX,y:t.pageY}}))},c=function(t,e){var n,i;return n=t.x-e.x,i=t.y-e.y,Math.sqrt(n*n+i*i)},h=function(t){t.stopPropagation(),t.preventDefault()},u=!0;t.addEventListener("touchstart",(function(t){e.enabled&&(u=!0,i=t.touches.length,function(t){var a=(new Date).getTime();if(i>1&&(o=null),a-o<300)switch(h(t),e.handleDoubleTap(t),n){case"zoom":e.handleZoomEnd(t);break;case"drag":e.handleDragEnd(t)}else e.isDoubleTap=!1;1===i&&(o=a)}(t))}),{passive:!1}),t.addEventListener("touchmove",(function(t){if(e.enabled&&!e.isDoubleTap){if(u)r(t),n&&h(t),a=l(t.touches);else{switch(n){case"zoom":2==a.length&&2==t.touches.length&&e.handleZoom(t,function(t,e){var n=c(t[0],t[1]);return c(e[0],e[1])/n}(a,l(t.touches)));break;case"drag":e.handleDrag(t)}n&&(h(t),e.update())}u=!1}}),{passive:!1}),t.addEventListener("touchend",(function(t){e.enabled&&(i=t.touches.length,r(t))})),e.options.useMouseWheel&&(t.addEventListener("mousewheel",(function(t){e.enabled&&(h(t),e.handleMouseWheel(t))})),t.addEventListener("mousedown",(function(t){e.enabled&&(u=!0,i=1)}),{passive:!0}),t.addEventListener("mousemove",(function(t){e.enabled&&(u?(r(t),n&&h(t)):("drag"===n&&e.handleDrag(t),n&&(h(t),e.update())),u=!1)}),{passive:!1}),t.addEventListener("mouseup",(function(t){e.enabled&&(i=0,r(t))}),{passive:!0}))};return t}(),E={scrolling:"q1DKc",root:"KiBKq",layout:"JBDok",layoutHeader:"tVG4b",layoutContent:"O43ff",layoutSection:"CvZb6",layoutAside:"fdKgJ",header:"xfAad",headerTitle:"QiOEy",headerClose:"qdl3x",mainPhotoScrollControls:"PeY3Y",mainPhoto:"QIMHy q1DKc",mainPhotoItem:"aZCyk",mainPhotoImage:"_2aEr5",mainPhotoIframe:"kThdT",preview:"F-k0z q1DKc",previewItem:"jf683",previewButton:"VAXOP",previewImage:"Mx2Y-",videoPlayLabel:"jQiDN",videoPlayLabelIcon:"wSdjd",enter:"Lnosr",exit:"NW-xY",enterActive:"LrirU",exitActive:"L6st-"},w=d.forwardRef((function(t,e){var n=t.src,i=t.videoSrc,o=d.useRef(null),a=d.useRef(null),s=d.useRef(null),r=!!i,l=function(){var t,e;null===(t=a.current)||void 0===t||t.reset(),null===(e=o.current)||void 0===e||null===(e=e.contentWindow)||void 0===e||e.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")};return d.useEffect((function(){return requestAnimationFrame((function(){s.current&&!r&&(a.current=new x(s.current,{draggableUnzoomed:!1,animationDuration:200,setOffsetsOnce:!1}))})),function(){var t;null===(t=a.current)||void 0===t||t.destroy()}}),[i]),d.useImperativeHandle(e,(function(){return{reset:l}}),[]),r?d.createElement("iframe",{ref:o,className:E.mainPhotoIframe,src:i,width:"100%",height:"100%",allowFullScreen:!0,title:"",loading:"lazy","data-qaid":"photo_gallery_main_video","data-testid":"photo_gallery_main_video"}):d.createElement("img",{ref:s,className:E.mainPhotoImage,src:n,width:"100%",height:"100%",alt:"",decoding:"async",loading:"lazy","data-qaid":"photo_gallery_main_image","data-testid":"photo_gallery_main_image"})})),O=d.forwardRef((function(t,e){var n=t.items,i=t.onChange,o=d.useRef([]),s=d.useRef(0),r=d.useRef(null),l=function(){o.current.forEach((function(t){null==t||t.reset()}))},c=function(t){var e,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=null===(e=r.current)||void 0===e?void 0:e.children[t];l(),i&&v(i,r.current,n)};d.useImperativeHandle(e,(function(){return{scrollToIndex:c}}),[]);var h=function(){if(r.current){var t=function(t,e){var n=t.scrollLeft/t.scrollWidth*e;return Math.round(n)}(r.current,n.length);s.current!==t&&(s.current=t,i(t),l())}};return d.createElement(a.ScrollControls,{ref:r,className:E.mainPhotoScrollControls,showOnHover:!0,hideOnDisabled:!0},(function(t){return d.createElement("div",{ref:t,className:E.mainPhoto,onScroll:h},n.map((function(t,e){var n,i=t.type,a=t.src,s="video"===i,r=s?b(a):a,l=s?(n=y(a),"https://youtube.com/embed/".concat(n,"?enablejsapi=1&rel=0")):void 0;return d.createElement("div",{key:e,className:E.mainPhotoItem,"data-qaid":"photo_gallery_main_item","data-testid":"photo_gallery_main_item"},d.createElement(w,{ref:function(t){return o.current[e]=t},src:r,videoSrc:l}))})))}))})),z=d.forwardRef((function(t,e){var n=t.items,i=t.selectedIndex,o=t.onChange,a=d.useRef(null),l=function(t){var e,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=null===(e=a.current)||void 0===e?void 0:e.children[t];i&&v(i,a.current,n)};d.useImperativeHandle(e,(function(){return{scrollToIndex:l}}),[]);return d.createElement("div",{ref:a,className:E.preview},n.map((function(t,e){var n=t.type,a=t.src,l="video"===n,c=l?b(a):a;return d.createElement("div",{key:e,className:E.previewItem,"data-qaid":"photo_gallery_preview_item","data-testid":"photo_gallery_preview_item"},d.createElement("button",{className:E.previewButton,type:"button",onClick:function(){return function(t){o(t)}(e)},disabled:i===e,"data-qaid":"photo_gallery_preview_button","data-testid":"photo_gallery_preview_button"},d.createElement("img",{className:E.previewImage,src:c,width:58,height:58,alt:"",decoding:"async",loading:"lazy","data-qaid":"photo_gallery_preview_image","data-testid":"photo_gallery_preview_image"}),l&&d.createElement("div",{className:E.videoPlayLabel,"data-qaid":"photo_gallery_preview_play","data-testid":"photo_gallery_preview_play"},d.createElement(s.Icon,{className:E.videoPlayLabelIcon,"icon-as":r.SvgPlay}))))})))})),T=function(t){var e,n,i=t.title,o=t.onClose,a=t.selectedIndex,r=t.itemsLength,u=a+1,f=(0,c.useBodyTTag().t)(p||(e=["Фото "," из ",""],n||(n=e.slice(0)),p=Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))),u,r);return d.createElement("div",{className:E.header},d.createElement("div",{className:E.headerTitle,"data-qaid":"photo_gallery_title","data-testid":"photo_gallery_title"},i||f),d.createElement("div",{className:E.headerClose},d.createElement(l.Button,{"button-padding":"xxs","button-theme":"black-inherit",type:"button",onClick:o,"data-qaid":"photo_gallery_close_button","data-testid":"photo_gallery_close_button"},d.createElement(s.Icon,{"icon-as":h.SvgClose,style:{width:24,height:24}}))))};exports.PhotoGallery=function(t){var a=t.isOpen,s=t.title,r=t.visibleIndex,l=void 0===r?0:r,c=t.items,h=t.zIndex,u=void 0===h?5e3:h,m=t.onClose,p=t.onChange,g=d.useRef(!0),v=d.useRef(null),y=d.useRef(null),b=f(d.useState(l),2),x=b[0],w=b[1];d.useEffect((function(){a&&"function"==typeof p&&p(x)}),[x]),d.useEffect((function(){var t,e;a&&(w(l),null===(t=y.current)||void 0===t||t.scrollToIndex(l,!1),null===(e=v.current)||void 0===e||e.scrollToIndex(l,!1))}),[a]),d.useEffect((function(){var t;if(!a)return function(){};var e=null,n=function(){e&&clearTimeout(e)},i=function(){n(),e=setTimeout((function(){var t,e;null===(t=y.current)||void 0===t||t.scrollToIndex(x,!1),null===(e=v.current)||void 0===e||e.scrollToIndex(x,!1)}),100)};return window.addEventListener("resize",i),null===(t=window)||void 0===t||null===(t=t.matchMedia("(orientation: portrait)"))||void 0===t||t.addEventListener("change",i),function(){var t;n(),window.removeEventListener("resize",i),null===(t=window)||void 0===t||null===(t=t.matchMedia("(orientation: portrait)"))||void 0===t||t.removeEventListener("change",i)}}),[a,x]);var I=function(t){var e,n;g.current=!1,w(t),null===(e=y.current)||void 0===e||e.scrollToIndex(t),null===(n=v.current)||void 0===n||n.scrollToIndex(t)},_=function(){m(x)};return d.createElement(d.Fragment,null,d.createElement(n.Backdrop,{isOpen:a,onClick:_,zIndex:u,isBodyScrollLock:!0}),d.createElement(e.CSSTransition,{in:a,timeout:240,classNames:E,unmountOnExit:!0},d.createElement(o.Portal,null,d.createElement("div",{className:E.root,"data-qaid":"photo_gallery","data-testid":"photo_gallery",style:{zIndex:u}},d.createElement(i.KeyPress,{code:"Escape",onKeyUp:_}),d.createElement(i.KeyPress,{code:"ArrowLeft",onKeyUp:function(){0!==x&&I(x-1)}}),d.createElement(i.KeyPress,{code:"ArrowRight",onKeyUp:function(){x!==c.length-1&&I(x+1)}}),d.createElement("div",{className:E.layout},d.createElement("header",{className:E.layoutHeader},d.createElement(T,{title:s,selectedIndex:x,itemsLength:c.length,onClose:_})),d.createElement("div",{className:E.layoutContent},d.createElement("section",{className:E.layoutSection},d.createElement(O,{ref:v,items:c,onChange:function(t){var e;g.current&&(w(t),null===(e=y.current)||void 0===e||e.scrollToIndex(t));g.current||x!==t||(g.current=!0)}})),c.length>1&&d.createElement("aside",{className:E.layoutAside},d.createElement(z,{ref:y,items:c,selectedIndex:x,onChange:I}))))))))},require("./style.production.v2.css");
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("react-transition-group"),n=require("@prom-ui/core/Backdrop"),i=require("@prom-ui/core/KeyPress"),o=require("@prom-ui/core/Portal"),a=require("@prom-ui/core/ScrollControls"),r=require("@prom-ui/core/Icon"),s=require("@prom-ui/icons/Play"),l=require("@prom-ui/core/Button"),c=require("@prom-ui/core/useBodyTTag"),u=require("@prom-ui/icons/Close");function h(t){if(t&&"object"==typeof t&&"default"in t)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}})),e.default=t,Object.freeze(e)}var d=h(t);function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,o,a,r,s=[],l=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(i=a.call(n)).done)&&(s.push(i.value),s.length!==e);l=!0);}catch(u){c=!0,o=u}finally{try{if(!l&&null!=n.return&&(r=n.return(),Object(r)!==r))return}finally{if(c)throw o}}return s}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return m(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}var p,g=new Map,v=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];g.has(e)&&(cancelAnimationFrame(g.get(e)),g.delete(e));var i=requestAnimationFrame((function(){var i=e.getBoundingClientRect(),o=t.getBoundingClientRect(),a=o.top+e.scrollTop-i.top-i.height/2+o.height/2,r=o.left+e.scrollLeft-i.left-i.width/2+o.width/2;r<0&&(r=0),a<0&&(a=0),e.scrollTo({behavior:n?"smooth":"instant",top:a,left:r})}));g.set(e,i)},y=function(t){var e=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?v(?:i)?=|\&v(?:i)?=))([^#\&\?]*).*/.exec(t);return e&&e[1]},b=function(t){var e=y(t);return"https://img.youtube.com/vi/".concat(e,"/0.jpg")},x=function(){var t=function(t,e){this.el=t,this.zoomFactor=1,this.lastScale=1,this.offset={x:0,y:0},this.initialOffset={x:0,y:0},this.options=Object.assign({},this.defaults,e),this.setupMarkup(),this.bindEvents(),this.update(),this.isImageLoaded(this.el)&&(this.updateAspectRatio(),this.setupOffsets()),this.enable()},e=function(t,e){return t+e};t.prototype={defaults:{tapZoomFactor:2,zoomOutFactor:1.3,animationDuration:300,maxZoom:4,minZoom:.5,draggableUnzoomed:!0,lockDragAxis:!1,setOffsetsOnce:!1,use2d:!0,useMouseWheel:!1,verticalPadding:0,horizontalPadding:0,onZoomStart:null,onZoomEnd:null,onZoomUpdate:null,onDragStart:null,onDragEnd:null,onDragUpdate:null,onDoubleTap:null,onMouseWheel:null},handleDragStart:function(t){"function"==typeof this.options.onDragStart&&this.options.onDragStart(this,t),this.stopAnimation(),this.lastDragPosition=!1,this.hasInteraction=!0,this.handleDrag(t)},handleDrag:function(t){var e="touchmove"===t.type?this.getTouches(t)[0]:this.getPointer(t);this.drag(e,this.lastDragPosition),this.offset=this.sanitizeOffset(this.offset),this.lastDragPosition=e},handleDragEnd:function(){"function"==typeof this.options.onDragEnd&&this.options.onDragEnd(this,event),this.end()},handleZoomStart:function(t){"function"==typeof this.options.onZoomStart&&this.options.onZoomStart(this,t),this.stopAnimation(),this.lastScale=1,this.nthZoom=0,this.lastZoomCenter=!1,this.hasInteraction=!0},handleZoom:function(t,e){var n=this.getTouchCenter(this.getTouches(t)),i=e/this.lastScale;this.lastScale=e,this.nthZoom+=1,this.nthZoom>3&&(this.scale(i,n),this.drag(n,this.lastZoomCenter)),this.lastZoomCenter=n},handleZoomEnd:function(){"function"==typeof this.options.onZoomEnd&&this.options.onZoomEnd(this,event),this.end()},handleDoubleTap:function(t){var e=this.getTouches(t)[0],n=this.zoomFactor>1?1:this.options.tapZoomFactor,i=this.zoomFactor,o=function(t){this.scaleTo(i+t*(n-i),e)}.bind(this);this.hasInteraction||(this.isDoubleTap=!0,i>n&&(e=this.getCurrentZoomCenter()),this.animate(this.options.animationDuration,o,this.swing),"function"==typeof this.options.onDoubleTap&&this.options.onDoubleTap(this,t))},handleMouseWheel:function(t){var e=this.getPointer(t),n=Math.min(Math.max(this.options.minZoom,this.lastScale+-.01*t.deltaY),this.options.maxZoom),i=n/this.lastScale;this.scale(i,e),this.lastScale=n,this.update(),"function"==typeof this.options.onMouseWheel&&this.options.onMouseWheel(this,t)},computeInitialOffset:function(){this.initialOffset={x:-Math.abs(this.el.offsetWidth*this.getInitialZoomFactor()-this.container.offsetWidth)/2,y:-Math.abs(this.el.offsetHeight*this.getInitialZoomFactor()-this.container.offsetHeight)/2}},resetOffset:function(){this.offset.x=this.initialOffset.x,this.offset.y=this.initialOffset.y},isImageLoaded:function(t){return"IMG"===t.nodeName?t.complete&&0!==t.naturalHeight:Array.from(t.querySelectorAll("img")).every(this.isImageLoaded)},setupOffsets:function(){this.options.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this.computeInitialOffset(),this.resetOffset())},sanitizeOffset:function(t){var e=this.el.offsetWidth*this.getInitialZoomFactor()*this.zoomFactor,n=this.el.offsetHeight*this.getInitialZoomFactor()*this.zoomFactor,i=e-this.getContainerX()+this.options.horizontalPadding,o=n-this.getContainerY()+this.options.verticalPadding,a=Math.max(i,0),r=Math.max(o,0),s=Math.min(i,0)-this.options.horizontalPadding,l=Math.min(o,0)-this.options.verticalPadding;return{x:Math.min(Math.max(t.x,s),a),y:Math.min(Math.max(t.y,l),r)}},scaleTo:function(t,e){this.scale(t/this.zoomFactor,e)},scale:function(t,e){t=this.scaleZoomFactor(t),this.addOffset({x:(t-1)*(e.x+this.offset.x),y:(t-1)*(e.y+this.offset.y)}),"function"==typeof this.options.onZoomUpdate&&this.options.onZoomUpdate(this,event)},scaleZoomFactor:function(t){var e=this.zoomFactor;return this.zoomFactor*=t,this.zoomFactor=Math.min(this.options.maxZoom,Math.max(this.zoomFactor,this.options.minZoom)),this.zoomFactor/e},canDrag:function(){return this.options.draggableUnzoomed||!((t=this.zoomFactor)>(e=1)-.01&&t<e+.01);var t,e},drag:function(t,e){e&&(this.options.lockDragAxis?Math.abs(t.x-e.x)>Math.abs(t.y-e.y)?this.addOffset({x:-(t.x-e.x),y:0}):this.addOffset({y:-(t.y-e.y),x:0}):this.addOffset({y:-(t.y-e.y),x:-(t.x-e.x)}),"function"==typeof this.options.onDragUpdate&&this.options.onDragUpdate(this,event))},getTouchCenter:function(t){return this.getVectorAvg(t)},getVectorAvg:function(t){return{x:t.map((function(t){return t.x})).reduce(e)/t.length,y:t.map((function(t){return t.y})).reduce(e)/t.length}},addOffset:function(t){this.offset={x:this.offset.x+t.x,y:this.offset.y+t.y}},sanitize:function(){this.zoomFactor<this.options.zoomOutFactor?this.zoomOutAnimation():this.isInsaneOffset(this.offset)&&this.sanitizeOffsetAnimation()},isInsaneOffset:function(t){var e=this.sanitizeOffset(t);return e.x!==t.x||e.y!==t.y},sanitizeOffsetAnimation:function(){var t=this.sanitizeOffset(this.offset),e=this.offset.x,n=this.offset.y,i=function(i){this.offset.x=e+i*(t.x-e),this.offset.y=n+i*(t.y-n),this.update()}.bind(this);this.animate(this.options.animationDuration,i,this.swing)},zoomOutAnimation:function(){if(1!==this.zoomFactor){var t=this.zoomFactor,e=this.getCurrentZoomCenter(),n=function(n){this.scaleTo(t+n*(1-t),e)}.bind(this);this.animate(this.options.animationDuration,n,this.swing)}},updateAspectRatio:function(){this.unsetContainerY(),this.setContainerY(this.container.parentElement.offsetHeight)},getInitialZoomFactor:function(){var t=this.container.offsetWidth/this.el.offsetWidth,e=this.container.offsetHeight/this.el.offsetHeight;return Math.min(t,e)},getAspectRatio:function(){return this.el.offsetWidth/this.el.offsetHeight},getCurrentZoomCenter:function(){var t=this.offset.x-this.initialOffset.x,e=-1*this.offset.x-t/(1/this.zoomFactor-1),n=this.offset.y-this.initialOffset.y;return{x:e,y:-1*this.offset.y-n/(1/this.zoomFactor-1)}},getTouches:function(t){var e=this.container.getBoundingClientRect(),n=document.documentElement.scrollTop||document.body.scrollTop,i=document.documentElement.scrollLeft||document.body.scrollLeft,o=e.top+n,a=e.left+i;return Array.prototype.slice.call(t.touches).map((function(t){return{x:t.pageX-a,y:t.pageY-o}}))},getPointer:function(t){var e=this.container.getBoundingClientRect(),n=document.documentElement.scrollTop||document.body.scrollTop,i=document.documentElement.scrollLeft||document.body.scrollLeft,o=e.top+n,a=e.left+i;return{x:t.pageX-a,y:t.pageY-o}},animate:function(t,e,n,i){var o=(new Date).getTime(),a=function(){if(this.inAnimation){var r=(new Date).getTime()-o,s=r/t;r>=t?(e(1),i&&i(),this.update(),this.stopAnimation(),this.update()):(n&&(s=n(s)),e(s),this.update(),requestAnimationFrame(a))}}.bind(this);this.inAnimation=!0,requestAnimationFrame(a)},stopAnimation:function(){this.inAnimation=!1},swing:function(t){return-Math.cos(t*Math.PI)/2+.5},getContainerX:function(){return this.container.offsetWidth},getContainerY:function(){return this.container.offsetHeight},setContainerY:function(t){return this.container.style.height=t+"px"},unsetContainerY:function(){this.container.style.height=null},setupMarkup:function(){var t,e;this.container=(t='<div class="pinch-zoom-container" style="height: 100%;"></div>',(e=document.implementation.createHTMLDocument("")).body.innerHTML=t,Array.from(e.body.children)[0]),this.el.parentNode.insertBefore(this.container,this.el),this.container.appendChild(this.el),this.container.style.overflow="hidden",this.container.style.position="relative",this.el.style.webkitTransformOrigin="0% 0%",this.el.style.mozTransformOrigin="0% 0%",this.el.style.msTransformOrigin="0% 0%",this.el.style.oTransformOrigin="0% 0%",this.el.style.transformOrigin="0% 0%",this.el.style.position="absolute",this.el.style.backfaceVisibility="hidden",this.el.style.willChange="transform"},end:function(){this.hasInteraction=!1,this.sanitize(),this.update()},bindEvents:function(){var t=this;n(this.container,this),this.resizeHandler=this.update.bind(this),window.addEventListener("resize",this.resizeHandler),Array.from(this.el.querySelectorAll("img")).forEach((function(e){e.addEventListener("load",t.update.bind(t))})),"IMG"===this.el.nodeName&&this.el.addEventListener("load",this.update.bind(this))},update:function(t){t&&"resize"===t.type&&(this.updateAspectRatio(),this.setupOffsets()),t&&"load"===t.type&&(this.updateAspectRatio(),this.setupOffsets()),this.updatePlanned||(this.updatePlanned=!0,window.setTimeout(function(){this.updatePlanned=!1;var t=this.getInitialZoomFactor()*this.zoomFactor,e=-this.offset.x/t,n=-this.offset.y/t,i="scale3d("+t+", "+t+",1) translate3d("+e+"px,"+n+"px,0px)",o="scale("+t+", "+t+") translate("+e+"px,"+n+"px)",a=function(){this.clone&&(this.clone.parentNode.removeChild(this.clone),delete this.clone)}.bind(this);!this.options.use2d||this.hasInteraction||this.inAnimation?(this.is3d=!0,a(),this.el.style.webkitTransform=i,this.el.style.mozTransform=o,this.el.style.msTransform=o,this.el.style.oTransform=o,this.el.style.transform=i):(this.is3d&&(this.clone=this.el.cloneNode(!0),this.clone.style.pointerEvents="none",this.container.appendChild(this.clone),window.setTimeout(a,200)),this.el.style.webkitTransform=o,this.el.style.mozTransform=o,this.el.style.msTransform=o,this.el.style.oTransform=o,this.el.style.transform=o,this.is3d=!1)}.bind(this),0))},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},destroy:function(){window.removeEventListener("resize",this.resizeHandler),this.container&&(this.container.remove(),this.container=null)},reset:function(){this.zoomOutAnimation()}};var n=function(t,e){var n=null,i=0,o=null,a=null,r=function(t,i){if(n!==t){if(n&&!t)switch(n){case"zoom":e.handleZoomEnd(i);break;case"drag":e.handleDragEnd(i)}switch(t){case"zoom":e.handleZoomStart(i);break;case"drag":e.handleDragStart(i)}}n=t},s=function(t){2===i?r("zoom"):1===i&&e.canDrag()?r("drag",t):r(null,t)},l=function(t){return Array.from(t).map((function(t){return{x:t.pageX,y:t.pageY}}))},c=function(t,e){var n,i;return n=t.x-e.x,i=t.y-e.y,Math.sqrt(n*n+i*i)},u=function(t){t.stopPropagation(),t.preventDefault()},h=!0;t.addEventListener("touchstart",(function(t){e.enabled&&(h=!0,i=t.touches.length,function(t){var a=(new Date).getTime();if(i>1&&(o=null),a-o<300)switch(u(t),e.handleDoubleTap(t),n){case"zoom":e.handleZoomEnd(t);break;case"drag":e.handleDragEnd(t)}else e.isDoubleTap=!1;1===i&&(o=a)}(t))}),{passive:!1}),t.addEventListener("touchmove",(function(t){if(e.enabled&&!e.isDoubleTap){if(h)s(t),n&&u(t),a=l(t.touches);else{switch(n){case"zoom":2==a.length&&2==t.touches.length&&e.handleZoom(t,function(t,e){var n=c(t[0],t[1]);return c(e[0],e[1])/n}(a,l(t.touches)));break;case"drag":e.handleDrag(t)}n&&(u(t),e.update())}h=!1}}),{passive:!1}),t.addEventListener("touchend",(function(t){e.enabled&&(i=t.touches.length,s(t))})),e.options.useMouseWheel&&(t.addEventListener("mousewheel",(function(t){e.enabled&&(u(t),e.handleMouseWheel(t))})),t.addEventListener("mousedown",(function(t){e.enabled&&(h=!0,i=1)}),{passive:!0}),t.addEventListener("mousemove",(function(t){e.enabled&&(h?(s(t),n&&u(t)):("drag"===n&&e.handleDrag(t),n&&(u(t),e.update())),h=!1)}),{passive:!1}),t.addEventListener("mouseup",(function(t){e.enabled&&(i=0,s(t))}),{passive:!0}))};return t}(),E={scrolling:"q1DKc",root:"KiBKq",layout:"JBDok",layoutHeader:"tVG4b",layoutContent:"O43ff",layoutSection:"CvZb6",layoutAside:"fdKgJ",header:"xfAad",headerTitle:"QiOEy",headerClose:"qdl3x",mainPhotoScrollControls:"PeY3Y",mainPhoto:"QIMHy q1DKc",mainPhotoItem:"aZCyk",mainPhotoImage:"_2aEr5",mainPhotoIframe:"kThdT",preview:"F-k0z q1DKc",previewItem:"jf683",previewButton:"VAXOP",previewImage:"Mx2Y-",videoPlayLabel:"jQiDN",videoPlayLabelIcon:"wSdjd",enter:"Lnosr",exit:"NW-xY",enterActive:"LrirU",exitActive:"L6st-"},w=d.forwardRef((function(t,e){var n=t.src,i=t.videoSrc,o=t.triggerInteraction,a=d.useRef(null),r=d.useRef(null),s=d.useRef(null),l=!!i,c=function(){var t,e;null===(t=r.current)||void 0===t||t.reset(),null===(e=a.current)||void 0===e||null===(e=e.contentWindow)||void 0===e||e.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")};return d.useEffect((function(){return requestAnimationFrame((function(){s.current&&!l&&(r.current=new x(s.current,{draggableUnzoomed:!1,animationDuration:200,setOffsetsOnce:!1,onDoubleTap:function(t){1===(null==t?void 0:t.zoomFactor)&&o("maybeZoomImage")}}))})),function(){var t;null===(t=r.current)||void 0===t||t.destroy()}}),[i]),d.useEffect((function(){var t=function(){l&&document.activeElement&&"iframe"===document.activeElement.nodeName.toLowerCase()&&a.current&&a.current===document.activeElement&&o("maybePlayVideo")};return window.addEventListener("blur",t),function(){window.removeEventListener("blur",t)}}),[i]),d.useImperativeHandle(e,(function(){return{reset:c}}),[]),l?d.createElement("iframe",{ref:a,className:E.mainPhotoIframe,src:i,width:"100%",height:"100%",allowFullScreen:!0,title:"",loading:"lazy","data-qaid":"photo_gallery_main_video","data-testid":"photo_gallery_main_video"}):d.createElement("img",{ref:s,className:E.mainPhotoImage,src:n,width:"100%",height:"100%",alt:"",decoding:"async",loading:"lazy","data-qaid":"photo_gallery_main_image","data-testid":"photo_gallery_main_image"})})),I=d.forwardRef((function(t,e){var n=t.items,i=t.onChange,o=t.triggerInteraction,r=d.useRef(null),s=d.useRef([]),l=d.useRef(0),c=d.useRef(null),u=function(){s.current.forEach((function(t){null==t||t.reset()}))},h=function(t){var e,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=null===(e=c.current)||void 0===e?void 0:e.children[t];u(),i&&v(i,c.current,n)};d.useImperativeHandle(e,(function(){return{scrollToIndex:h}}),[]);var f=function(){if(c.current){var t=function(t,e){var n=t.scrollLeft/t.scrollWidth*e;return Math.round(n)}(c.current,n.length);l.current!==t&&(l.current=t,i(t),u())}},m=function(t){var e=t.changedTouches[0].screenX;r.current=e},p=function(t){var e=t.changedTouches[0].screenX;r.current&&(r.current>e?o("maybeSwipeLeft"):r.current<e&&o("maybeSwipeRight"),r.current=null)};return d.createElement(a.ScrollControls,{ref:c,className:E.mainPhotoScrollControls,showOnHover:!0,hideOnDisabled:!0,onClickPrev:function(){return o("clickPrevButton")},onClickNext:function(){return o("clickNextButton")}},(function(t){return d.createElement("div",{ref:t,className:E.mainPhoto,onScroll:f,onTouchStart:m,onTouchEnd:p},n.map((function(t,e){var n,i=t.type,a=t.src,r="video"===i,l=r?b(a):a,c=r?(n=y(a),"https://youtube.com/embed/".concat(n,"?enablejsapi=1&rel=0")):void 0;return d.createElement("div",{key:e,className:E.mainPhotoItem,"data-qaid":"photo_gallery_main_item","data-testid":"photo_gallery_main_item"},d.createElement(w,{ref:function(t){return s.current[e]=t},src:l,videoSrc:c,triggerInteraction:o}))})))}))})),O=d.forwardRef((function(t,e){var n=t.items,i=t.selectedIndex,o=t.onChange,a=t.triggerInteraction,l=d.useRef(null),c=function(t){var e,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=null===(e=l.current)||void 0===e?void 0:e.children[t];i&&v(i,l.current,n)};d.useImperativeHandle(e,(function(){return{scrollToIndex:c}}),[]);return d.createElement("div",{ref:l,className:E.preview},n.map((function(t,e){var n=t.type,l=t.src,c="video"===n,u=c?b(l):l,h=c?"clickPreviewVideo":"clickPreviewImage";return d.createElement("div",{key:e,className:E.previewItem,"data-qaid":"photo_gallery_preview_item","data-testid":"photo_gallery_preview_item"},d.createElement("button",{className:E.previewButton,type:"button",onClick:function(){a(h),function(t){o(t)}(e)},disabled:i===e,"data-qaid":"photo_gallery_preview_button","data-testid":"photo_gallery_preview_button"},d.createElement("img",{className:E.previewImage,src:u,width:58,height:58,alt:"",decoding:"async",loading:"lazy","data-qaid":"photo_gallery_preview_image","data-testid":"photo_gallery_preview_image"}),c&&d.createElement("div",{className:E.videoPlayLabel,"data-qaid":"photo_gallery_preview_play","data-testid":"photo_gallery_preview_play"},d.createElement(r.Icon,{className:E.videoPlayLabelIcon,"icon-as":s.SvgPlay}))))})))})),T=function(t){var e,n,i=t.title,o=t.onClose,a=t.selectedIndex,s=t.itemsLength,h=t.triggerInteraction,f=a+1,m=(0,c.useBodyTTag().t)(p||(e=["Фото "," из ",""],n||(n=e.slice(0)),p=Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))),f,s);return d.createElement("div",{className:E.header},d.createElement("div",{className:E.headerTitle,"data-qaid":"photo_gallery_title","data-testid":"photo_gallery_title"},i||m),d.createElement("div",{className:E.headerClose},d.createElement(l.Button,{"button-padding":"xxs","button-theme":"black-inherit",type:"button",onClick:function(){h("clickCloseButton"),o()},"data-qaid":"photo_gallery_close_button","data-testid":"photo_gallery_close_button"},d.createElement(r.Icon,{"icon-as":u.SvgClose,style:{width:24,height:24}}))))};exports.PhotoGallery=function(t){var a=t.isOpen,r=t.title,s=t.visibleIndex,l=void 0===s?0:s,c=t.items,u=t.zIndex,h=void 0===u?5e3:u,m=t.onClose,p=t.onChange,g=t.onInteraction,v=d.useRef(!0),y=d.useRef(null),b=d.useRef(null),x=f(d.useState(l),2),w=x[0],z=x[1],_=function(t){"function"==typeof g&&g(t)};d.useEffect((function(){a&&"function"==typeof p&&p(w)}),[w]),d.useEffect((function(){var t,e;a&&(z(l),null===(t=b.current)||void 0===t||t.scrollToIndex(l,!1),null===(e=y.current)||void 0===e||e.scrollToIndex(l,!1))}),[a]),d.useEffect((function(){var t;if(!a)return function(){};var e=null,n=function(){e&&clearTimeout(e)},i=function(){n(),e=setTimeout((function(){var t,e;null===(t=b.current)||void 0===t||t.scrollToIndex(w,!1),null===(e=y.current)||void 0===e||e.scrollToIndex(w,!1)}),100)};return window.addEventListener("resize",i),null===(t=window)||void 0===t||null===(t=t.matchMedia("(orientation: portrait)"))||void 0===t||t.addEventListener("change",i),function(){var t;n(),window.removeEventListener("resize",i),null===(t=window)||void 0===t||null===(t=t.matchMedia("(orientation: portrait)"))||void 0===t||t.removeEventListener("change",i)}}),[a,w]);var C=function(t){var e,n;v.current=!1,z(t),null===(e=b.current)||void 0===e||e.scrollToIndex(t),null===(n=y.current)||void 0===n||n.scrollToIndex(t)},P=function(){m(w)};return d.createElement(d.Fragment,null,d.createElement(n.Backdrop,{isOpen:a,onClick:P,zIndex:h,isBodyScrollLock:!0}),d.createElement(e.CSSTransition,{in:a,timeout:240,classNames:E,unmountOnExit:!0,onEntered:function(){return _("opened")},onExited:function(){return _("closed")}},d.createElement(o.Portal,null,d.createElement("div",{className:E.root,"data-qaid":"photo_gallery","data-testid":"photo_gallery",style:{zIndex:h}},d.createElement(i.KeyPress,{code:"Escape",onKeyUp:function(){_("keyPressClose"),P()}}),d.createElement(i.KeyPress,{code:"ArrowLeft",onKeyUp:function(){0!==w&&(_("keyPressPrev"),C(w-1))}}),d.createElement(i.KeyPress,{code:"ArrowRight",onKeyUp:function(){w!==c.length-1&&(_("keyPressNext"),C(w+1))}}),d.createElement("div",{className:E.layout},d.createElement("header",{className:E.layoutHeader},d.createElement(T,{title:r,selectedIndex:w,itemsLength:c.length,onClose:P,triggerInteraction:_})),d.createElement("div",{className:E.layoutContent},d.createElement("section",{className:E.layoutSection},d.createElement(I,{ref:y,items:c,onChange:function(t){var e;v.current&&(z(t),null===(e=b.current)||void 0===e||e.scrollToIndex(t));v.current||w!==t||(v.current=!0)},triggerInteraction:_})),c.length>1&&d.createElement("aside",{className:E.layoutAside},d.createElement(O,{ref:b,items:c,selectedIndex:w,onChange:C,triggerInteraction:_}))))))))},require("./style.production.v2.css");
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { type interactionEvents } from '../index';
|
|
2
3
|
type HeaderProps = {
|
|
3
4
|
title?: string;
|
|
4
5
|
onClose: () => void;
|
|
5
6
|
selectedIndex: number;
|
|
6
7
|
itemsLength: number;
|
|
8
|
+
triggerInteraction: (eventName: interactionEvents) => void;
|
|
7
9
|
};
|
|
8
10
|
export declare const Header: React.FC<HeaderProps>;
|
|
9
11
|
export {};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { type PhotoGalleryProps } from '../index';
|
|
2
|
+
import { type PhotoGalleryProps, type interactionEvents } from '../index';
|
|
3
3
|
export type MainPhotosRef = {
|
|
4
4
|
scrollToIndex: (index: number, isAnimate?: boolean) => void;
|
|
5
5
|
};
|
|
6
6
|
export type MainPhotosProps = {
|
|
7
7
|
onChange: (index: number) => void;
|
|
8
8
|
items: PhotoGalleryProps['items'];
|
|
9
|
+
triggerInteraction: (eventName: interactionEvents) => void;
|
|
9
10
|
};
|
|
10
11
|
export declare const MainPhotos: React.ForwardRefExoticComponent<MainPhotosProps & React.RefAttributes<MainPhotosRef>>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { type interactionEvents } from '../index';
|
|
2
3
|
export type MainPhotosImageRef = {
|
|
3
4
|
reset: () => void;
|
|
4
5
|
};
|
|
5
6
|
export type MainPhotosImageProps = {
|
|
6
7
|
src: string;
|
|
7
8
|
videoSrc?: string;
|
|
9
|
+
triggerInteraction: (eventName: interactionEvents) => void;
|
|
8
10
|
};
|
|
9
11
|
export declare const MainPhotosImage: React.ForwardRefExoticComponent<MainPhotosImageProps & React.RefAttributes<MainPhotosImageRef>>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { type PhotoGalleryProps } from '../index';
|
|
2
|
+
import { type PhotoGalleryProps, type interactionEvents } from '../index';
|
|
3
3
|
export type PreviewPhotosRef = {
|
|
4
4
|
scrollToIndex: (index: number, isAnimate?: boolean) => void;
|
|
5
5
|
};
|
|
@@ -7,5 +7,6 @@ export type PreviewPhotosProps = {
|
|
|
7
7
|
selectedIndex: number;
|
|
8
8
|
onChange: (index: number) => void;
|
|
9
9
|
items: PhotoGalleryProps['items'];
|
|
10
|
+
triggerInteraction: (eventName: interactionEvents) => void;
|
|
10
11
|
};
|
|
11
12
|
export declare const PreviewPhotos: React.ForwardRefExoticComponent<PreviewPhotosProps & React.RefAttributes<PreviewPhotosRef>>;
|
package/PhotoGallery/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
export type interactionEvents = 'opened' | 'closed' | 'keyPressClose' | 'keyPressPrev' | 'keyPressNext' | 'clickCloseButton' | 'clickPrevButton' | 'clickNextButton' | 'clickPreviewVideo' | 'clickPreviewImage' | 'maybeZoomImage' | 'maybePlayVideo' | 'maybeSwipeLeft' | 'maybeSwipeRight';
|
|
2
3
|
export type PhotoGalleryProps = {
|
|
3
4
|
/** Видимое фото/видео при открытии */
|
|
4
5
|
visibleIndex?: number;
|
|
@@ -10,6 +11,8 @@ export type PhotoGalleryProps = {
|
|
|
10
11
|
onClose: (index: number) => void;
|
|
11
12
|
/** Handle на изменение видимого изображения, swipe/next/prev */
|
|
12
13
|
onChange?: (index: number) => void;
|
|
14
|
+
/** Для аналитики */
|
|
15
|
+
onInteraction?: (eventName: interactionEvents) => void;
|
|
13
16
|
/** Список фото/видео */
|
|
14
17
|
items: {
|
|
15
18
|
type: 'image' | 'video';
|
package/Picture/package.json
CHANGED
package/Portal/package.json
CHANGED
package/QRCode/package.json
CHANGED
package/Rating/package.json
CHANGED
package/SafeQuery/package.json
CHANGED
package/Scroll/package.json
CHANGED