@royaloperahouse/harmonic 0.1.8-j → 0.1.8-l
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/dist/components/molecules/Swipe/Swipe.d.ts +1 -0
- package/dist/components/molecules/Swipe/helper.d.ts +1 -0
- package/dist/components/organisms/Carousels/Carousel/helper.d.ts +3 -1
- package/dist/harmonic.cjs.development.js +162 -63
- package/dist/harmonic.cjs.development.js.map +1 -1
- package/dist/harmonic.cjs.production.min.js +1 -1
- package/dist/harmonic.cjs.production.min.js.map +1 -1
- package/dist/harmonic.esm.js +162 -63
- package/dist/harmonic.esm.js.map +1 -1
- package/dist/types/carousel.d.ts +4 -0
- package/package.json +1 -1
|
@@ -8,5 +8,6 @@ declare const Swipe: React.ForwardRefExoticComponent<{
|
|
|
8
8
|
infinite?: boolean | undefined;
|
|
9
9
|
slidesOffsetBefore?: number | undefined;
|
|
10
10
|
onIndexChange?: ((index: number) => void) | undefined;
|
|
11
|
+
onActiveChange?: ((value: boolean) => void) | undefined;
|
|
11
12
|
} & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<SwipeRef>>;
|
|
12
13
|
export default Swipe;
|
|
@@ -3,6 +3,8 @@ export declare const GRID_VALUES: {
|
|
|
3
3
|
desktop: {
|
|
4
4
|
gapsNumber: number;
|
|
5
5
|
columnsNumber: number;
|
|
6
|
+
gapsNumberOffset: number;
|
|
7
|
+
columnsNumberOffset: number;
|
|
6
8
|
largeCard: {
|
|
7
9
|
gapsPerSlide: number;
|
|
8
10
|
columnsPerSlide: number;
|
|
@@ -19,6 +21,6 @@ export declare const GRID_VALUES: {
|
|
|
19
21
|
gapsPerSlide: number;
|
|
20
22
|
};
|
|
21
23
|
};
|
|
22
|
-
export declare const getCardSlideDesktopStyles: (type: CarouselType) => string;
|
|
24
|
+
export declare const getCardSlideDesktopStyles: (type: CarouselType, isActive?: boolean | undefined) => string;
|
|
23
25
|
export declare const getCardSlideMobileStyles: () => string;
|
|
24
26
|
export declare const getImageSlideStyles: (imageHeight: number) => string;
|
|
@@ -5900,7 +5900,8 @@ var Navigation = function Navigation(_ref) {
|
|
|
5900
5900
|
menuData = _ref.menuData,
|
|
5901
5901
|
onSearch = _ref.onSearch,
|
|
5902
5902
|
onLink = _ref.onLink,
|
|
5903
|
-
crest = _ref.crest,
|
|
5903
|
+
_ref$crest = _ref.crest,
|
|
5904
|
+
crest = _ref$crest === void 0 ? true : _ref$crest,
|
|
5904
5905
|
className = _ref.className;
|
|
5905
5906
|
var _useState = React.useState(dataNavTop),
|
|
5906
5907
|
navTopData = _useState[0],
|
|
@@ -7315,6 +7316,8 @@ var GRID_VALUES = {
|
|
|
7315
7316
|
desktop: {
|
|
7316
7317
|
gapsNumber: 13,
|
|
7317
7318
|
columnsNumber: 13,
|
|
7319
|
+
gapsNumberOffset: 15,
|
|
7320
|
+
columnsNumberOffset: 14,
|
|
7318
7321
|
largeCard: {
|
|
7319
7322
|
gapsPerSlide: 4,
|
|
7320
7323
|
columnsPerSlide: 5
|
|
@@ -7342,16 +7345,20 @@ var calculateSlideGapsSpace = function calculateSlideGapsSpace(gapsPerSlide) {
|
|
|
7342
7345
|
return "calc(" + GRID_COLUMN_GAP + " * " + gapsPerSlide + ")";
|
|
7343
7346
|
};
|
|
7344
7347
|
// Slide styles
|
|
7345
|
-
var getCardSlideDesktopStyles = function getCardSlideDesktopStyles(type) {
|
|
7348
|
+
var getCardSlideDesktopStyles = function getCardSlideDesktopStyles(type, isActive) {
|
|
7346
7349
|
var _GRID_VALUES$desktop = GRID_VALUES.desktop,
|
|
7347
7350
|
gapsNumber = _GRID_VALUES$desktop.gapsNumber,
|
|
7348
|
-
columnsNumber = _GRID_VALUES$desktop.columnsNumber
|
|
7351
|
+
columnsNumber = _GRID_VALUES$desktop.columnsNumber,
|
|
7352
|
+
columnsNumberOffset = _GRID_VALUES$desktop.columnsNumberOffset,
|
|
7353
|
+
gapsNumberOffset = _GRID_VALUES$desktop.gapsNumberOffset;
|
|
7349
7354
|
var _ref = type === exports.CarouselType.LargeCard ? GRID_VALUES.desktop.largeCard : GRID_VALUES.desktop.smallCard,
|
|
7350
7355
|
gapsPerSlide = _ref.gapsPerSlide,
|
|
7351
7356
|
columnsPerSlide = _ref.columnsPerSlide;
|
|
7352
|
-
var
|
|
7357
|
+
var columns = isActive ? columnsNumberOffset : columnsNumber;
|
|
7358
|
+
var gaps = isActive ? gapsNumberOffset : gapsNumber;
|
|
7359
|
+
var gapsSpaceInMainGrid = calculateGapsSpaceInMainGrid(gaps);
|
|
7353
7360
|
var slideGapsSpace = calculateSlideGapsSpace(gapsPerSlide);
|
|
7354
|
-
return "\n width: calc( (" + columnsPerSlide + " * (100% - " + gapsSpaceInMainGrid + ") / " +
|
|
7361
|
+
return "\n width: calc( (" + columnsPerSlide + " * (100% - " + gapsSpaceInMainGrid + ") / " + columns + ") + " + slideGapsSpace + " );\n margin-right: " + GRID_COLUMN_GAP + ";\n ";
|
|
7355
7362
|
};
|
|
7356
7363
|
var getCardSlideMobileStyles = function getCardSlideMobileStyles() {
|
|
7357
7364
|
var _GRID_VALUES$mobile = GRID_VALUES.mobile,
|
|
@@ -7375,8 +7382,9 @@ var ImageCarouselWrapper = /*#__PURE__*/styled__default.div(_templateObject$N ||
|
|
|
7375
7382
|
return "&&& {\n .swipe-slide > figure {\n " + getImageSlideStyles(imagesHeightDevice) + "\n }\n }";
|
|
7376
7383
|
});
|
|
7377
7384
|
var CardsCarouselWrapper = /*#__PURE__*/styled__default.div(_templateObject2$A || (_templateObject2$A = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n\n @media ", " {\n && {\n .swipe-slide {\n ", "\n }\n }\n}}"])), function (_ref3) {
|
|
7378
|
-
var type = _ref3.type
|
|
7379
|
-
|
|
7385
|
+
var type = _ref3.type,
|
|
7386
|
+
isActive = _ref3.isActive;
|
|
7387
|
+
return "\n & {\n .swipe-slide {\n " + getCardSlideDesktopStyles(type, isActive) + "\n }\n }\n ";
|
|
7380
7388
|
}, devices.mobile, /*#__PURE__*/getCardSlideMobileStyles());
|
|
7381
7389
|
var TitleButtonsGrid = /*#__PURE__*/styled__default(Grid)(_templateObject3$o || (_templateObject3$o = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-bottom: 28px;\n\n @media ", " {\n padding-bottom: 0;\n }\n\n @media ", " {\n margin-bottom: 20px;\n }\n"])), devices.mobile, devices.mobile);
|
|
7382
7390
|
var CarouselInfoWrapper = /*#__PURE__*/styled__default.div(_templateObject4$j || (_templateObject4$j = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n user-select: text;\n"])));
|
|
@@ -7394,10 +7402,12 @@ var SwipeGridWrapper = /*#__PURE__*/styled__default(GridItem)(_templateObject8$5
|
|
|
7394
7402
|
var _templateObject$O, _templateObject2$B;
|
|
7395
7403
|
var SWIPE_SLIDE_CLASS_NAME = 'swipe-slide';
|
|
7396
7404
|
var SwipeContainer = /*#__PURE__*/styled__default.div(_templateObject$O || (_templateObject$O = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n overflow: hidden;\n width: 100%;\n touch-action: pan-y;\n"])));
|
|
7397
|
-
var SwipeTrack = /*#__PURE__*/styled__default.div(_templateObject2$B || (_templateObject2$B = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n transition: ", ";\n transform: translateX(", "
|
|
7398
|
-
|
|
7399
|
-
|
|
7400
|
-
|
|
7405
|
+
var SwipeTrack = /*#__PURE__*/styled__default.div(_templateObject2$B || (_templateObject2$B = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n transition: ", ";\n transform: translateX(", ");\n\n .", " {\n flex-shrink: 0;\n }\n"])), function (_ref) {
|
|
7406
|
+
var transitioning = _ref.transitioning;
|
|
7407
|
+
return transitioning ? 'transform 0.3s ease' : 'none';
|
|
7408
|
+
}, function (_ref2) {
|
|
7409
|
+
var translateX = _ref2.translateX;
|
|
7410
|
+
return translateX + "px";
|
|
7401
7411
|
}, SWIPE_SLIDE_CLASS_NAME);
|
|
7402
7412
|
|
|
7403
7413
|
/**
|
|
@@ -7425,9 +7435,26 @@ var getVisibleIndexes = function getVisibleIndexes(currentIndex, slideWidths, co
|
|
|
7425
7435
|
}
|
|
7426
7436
|
return visible;
|
|
7427
7437
|
};
|
|
7438
|
+
var getMovedSlides = function getMovedSlides(delta, slideWidths) {
|
|
7439
|
+
var absDelta = Math.abs(delta);
|
|
7440
|
+
var movedSlides = 0;
|
|
7441
|
+
var accumulated = 0;
|
|
7442
|
+
for (var i = 0; i < slideWidths.length; i++) {
|
|
7443
|
+
accumulated += slideWidths[i];
|
|
7444
|
+
// Allow partial slide (e.g. 50% of next slide) to count
|
|
7445
|
+
var partialThreshold = slideWidths[i] * 0.5;
|
|
7446
|
+
if (absDelta > accumulated - partialThreshold) {
|
|
7447
|
+
movedSlides++;
|
|
7448
|
+
} else {
|
|
7449
|
+
break;
|
|
7450
|
+
}
|
|
7451
|
+
}
|
|
7452
|
+
return movedSlides;
|
|
7453
|
+
};
|
|
7428
7454
|
|
|
7429
|
-
var _excluded$h = ["children", "infinite", "onIndexChange", "slidesOffsetBefore"];
|
|
7455
|
+
var _excluded$h = ["children", "infinite", "onIndexChange", "slidesOffsetBefore", "onActiveChange"];
|
|
7430
7456
|
var MAX_CLONES_NUMBER = 6;
|
|
7457
|
+
var CLICK_DRAG_THRESHOLD = 20;
|
|
7431
7458
|
var getClonesCount = function getClonesCount(infinite, childrenLength) {
|
|
7432
7459
|
if (!infinite) return 0;
|
|
7433
7460
|
if (childrenLength > MAX_CLONES_NUMBER) return MAX_CLONES_NUMBER;
|
|
@@ -7447,13 +7474,29 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7447
7474
|
onIndexChange = _ref.onIndexChange,
|
|
7448
7475
|
_ref$slidesOffsetBefo = _ref.slidesOffsetBefore,
|
|
7449
7476
|
slidesOffsetBefore = _ref$slidesOffsetBefo === void 0 ? 0 : _ref$slidesOffsetBefo,
|
|
7477
|
+
onActiveChange = _ref.onActiveChange,
|
|
7450
7478
|
props = _objectWithoutPropertiesLoose(_ref, _excluded$h);
|
|
7451
7479
|
var containerRef = React.useRef(null);
|
|
7452
7480
|
var childRefs = React.useRef([]);
|
|
7453
7481
|
var startX = React.useRef(0);
|
|
7454
7482
|
var currentTranslate = React.useRef(0);
|
|
7455
7483
|
var isDragging = React.useRef(false);
|
|
7484
|
+
var isMouseDown = React.useRef(false);
|
|
7485
|
+
var isActive = React.useRef(false);
|
|
7486
|
+
var isClickPrevented = React.useRef(false);
|
|
7456
7487
|
var uniqueIdRef = React.useRef(generateDomElementId());
|
|
7488
|
+
var _useState = React.useState(null),
|
|
7489
|
+
dragTranslateX = _useState[0],
|
|
7490
|
+
setDragTranslateX = _useState[1];
|
|
7491
|
+
var _useState2 = React.useState(false),
|
|
7492
|
+
transitioning = _useState2[0],
|
|
7493
|
+
setTransitioning = _useState2[1];
|
|
7494
|
+
var _useState3 = React.useState([]),
|
|
7495
|
+
slideWidths = _useState3[0],
|
|
7496
|
+
setSlideWidths = _useState3[1];
|
|
7497
|
+
var _useState4 = React.useState(0),
|
|
7498
|
+
containerWidth = _useState4[0],
|
|
7499
|
+
setContainerWidth = _useState4[1];
|
|
7457
7500
|
var _useMemo = React.useMemo(function () {
|
|
7458
7501
|
var count = getClonesCount(infinite, children.length);
|
|
7459
7502
|
var leftClones = infinite ? children.slice(-count) : [];
|
|
@@ -7466,65 +7509,74 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7466
7509
|
}, [children, infinite]),
|
|
7467
7510
|
slides = _useMemo.slides,
|
|
7468
7511
|
clonesCount = _useMemo.clonesCount;
|
|
7469
|
-
|
|
7470
|
-
|
|
7471
|
-
|
|
7472
|
-
setCurrentIndex = _useState[1];
|
|
7473
|
-
var _useState2 = React.useState(false),
|
|
7474
|
-
transitioning = _useState2[0],
|
|
7475
|
-
setTransitioning = _useState2[1];
|
|
7476
|
-
var _useState3 = React.useState([]),
|
|
7477
|
-
slideWidths = _useState3[0],
|
|
7478
|
-
setSlideWidths = _useState3[1];
|
|
7479
|
-
var _useState4 = React.useState(0),
|
|
7480
|
-
containerWidth = _useState4[0],
|
|
7481
|
-
setContainerWidth = _useState4[1];
|
|
7512
|
+
var _useState5 = React.useState(infinite ? clonesCount : 0),
|
|
7513
|
+
currentIndex = _useState5[0],
|
|
7514
|
+
setCurrentIndex = _useState5[1];
|
|
7482
7515
|
React.useEffect(function () {
|
|
7483
7516
|
if (!onIndexChange) return;
|
|
7484
7517
|
if (!infinite) {
|
|
7485
7518
|
onIndexChange(currentIndex);
|
|
7486
|
-
|
|
7519
|
+
} else {
|
|
7520
|
+
var offset = currentIndex - clonesCount + children.length;
|
|
7521
|
+
var realIndex = offset % children.length;
|
|
7522
|
+
onIndexChange(realIndex);
|
|
7487
7523
|
}
|
|
7488
|
-
|
|
7489
|
-
var realIndex = offset % children.length;
|
|
7490
|
-
onIndexChange(realIndex);
|
|
7491
|
-
}, [currentIndex, onIndexChange, infinite, children.length]);
|
|
7492
|
-
// Update dimensions
|
|
7524
|
+
}, [currentIndex, onIndexChange, infinite, children.length, clonesCount]);
|
|
7493
7525
|
var updateDimensions = React.useCallback(function () {
|
|
7494
7526
|
if (containerRef.current) setContainerWidth(containerRef.current.offsetWidth);
|
|
7495
7527
|
if (childRefs.current.length) setSlideWidths(childRefs.current.map(getSlidedWidth));
|
|
7496
7528
|
}, []);
|
|
7497
7529
|
React.useEffect(function () {
|
|
7498
|
-
var animationFrameRequestId = requestAnimationFrame(
|
|
7499
|
-
updateDimensions();
|
|
7500
|
-
});
|
|
7530
|
+
var animationFrameRequestId = requestAnimationFrame(updateDimensions);
|
|
7501
7531
|
return function () {
|
|
7502
|
-
cancelAnimationFrame(animationFrameRequestId);
|
|
7532
|
+
return cancelAnimationFrame(animationFrameRequestId);
|
|
7503
7533
|
};
|
|
7504
7534
|
}, [children]);
|
|
7505
7535
|
React.useEffect(function () {
|
|
7506
7536
|
var observer = new ResizeObserver(updateDimensions);
|
|
7507
7537
|
if (containerRef.current) observer.observe(containerRef.current);
|
|
7508
7538
|
return function () {
|
|
7509
|
-
observer.disconnect();
|
|
7539
|
+
return observer.disconnect();
|
|
7510
7540
|
};
|
|
7511
7541
|
}, [children]);
|
|
7512
|
-
|
|
7542
|
+
var setIsActive = function setIsActive() {
|
|
7543
|
+
if (!isActive.current) {
|
|
7544
|
+
isActive.current = true;
|
|
7545
|
+
onActiveChange == null || onActiveChange(true);
|
|
7546
|
+
}
|
|
7547
|
+
};
|
|
7513
7548
|
var getTranslateX = function getTranslateX() {
|
|
7514
|
-
var
|
|
7549
|
+
var offset = slidesOffsetBefore - slideWidths.slice(0, currentIndex).reduce(function (acc, width) {
|
|
7515
7550
|
return acc + width;
|
|
7516
7551
|
}, 0);
|
|
7517
|
-
return
|
|
7552
|
+
return offset + (slidesOffsetBefore || 0);
|
|
7553
|
+
};
|
|
7554
|
+
var navigateOnSwipeEnd = function navigateOnSwipeEnd() {
|
|
7555
|
+
var delta = currentTranslate.current - getTranslateX();
|
|
7556
|
+
var direction = delta > 0 ? -1 : 1;
|
|
7557
|
+
var movedSlides = getMovedSlides(delta, slideWidths);
|
|
7558
|
+
if (Math.abs(delta) > 20) {
|
|
7559
|
+
movedSlides = Math.max(1, movedSlides);
|
|
7560
|
+
var targetIndex = currentIndex + direction * movedSlides;
|
|
7561
|
+
var finalIndex = infinite ? targetIndex : Math.max(0, Math.min(slides.length - 1, targetIndex));
|
|
7562
|
+
setTransitioning(true);
|
|
7563
|
+
setCurrentIndex(finalIndex);
|
|
7564
|
+
} else {
|
|
7565
|
+
setTransitioning(true);
|
|
7566
|
+
setCurrentIndex(function (prev) {
|
|
7567
|
+
return prev;
|
|
7568
|
+
});
|
|
7569
|
+
}
|
|
7570
|
+
setDragTranslateX(null);
|
|
7518
7571
|
};
|
|
7519
7572
|
var canMoveNext = function canMoveNext() {
|
|
7520
7573
|
var totalVisibleWidth = slideWidths.slice(currentIndex).reduce(function (acc, width) {
|
|
7521
7574
|
return acc + width;
|
|
7522
7575
|
}, 0);
|
|
7523
|
-
// In non-infinite mode, only move if there is more to show
|
|
7524
7576
|
return infinite || totalVisibleWidth > containerWidth - (slidesOffsetBefore || 0);
|
|
7525
7577
|
};
|
|
7526
7578
|
var handleTransitionEnd = function handleTransitionEnd() {
|
|
7527
|
-
setTransitioning(false);
|
|
7579
|
+
setTransitioning(false);
|
|
7528
7580
|
if (!infinite) return;
|
|
7529
7581
|
if (currentIndex >= children.length + clonesCount) {
|
|
7530
7582
|
setCurrentIndex(clonesCount);
|
|
@@ -7533,22 +7585,16 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7533
7585
|
}
|
|
7534
7586
|
};
|
|
7535
7587
|
var goToPrev = function goToPrev() {
|
|
7536
|
-
if (transitioning) return;
|
|
7537
|
-
|
|
7538
|
-
setTransitioning(false); // Reset immediately if no more slides
|
|
7539
|
-
return;
|
|
7540
|
-
}
|
|
7588
|
+
if (transitioning) return;
|
|
7589
|
+
setIsActive();
|
|
7541
7590
|
setTransitioning(true);
|
|
7542
7591
|
setCurrentIndex(function (prev) {
|
|
7543
7592
|
return infinite ? prev - 1 : Math.max(0, prev - 1);
|
|
7544
7593
|
});
|
|
7545
7594
|
};
|
|
7546
7595
|
var goToNext = function goToNext() {
|
|
7547
|
-
if (transitioning || !canMoveNext()) return;
|
|
7548
|
-
|
|
7549
|
-
setTransitioning(false); // Reset immediately if no more slides
|
|
7550
|
-
return;
|
|
7551
|
-
}
|
|
7596
|
+
if (transitioning || !canMoveNext()) return;
|
|
7597
|
+
setIsActive();
|
|
7552
7598
|
setTransitioning(true);
|
|
7553
7599
|
setCurrentIndex(function (prev) {
|
|
7554
7600
|
return infinite ? prev + 1 : Math.min(children.length - 1, prev + 1);
|
|
@@ -7561,26 +7607,70 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7561
7607
|
};
|
|
7562
7608
|
});
|
|
7563
7609
|
var handleTouchStart = function handleTouchStart(e) {
|
|
7610
|
+
setIsActive();
|
|
7564
7611
|
startX.current = e.touches[0].clientX;
|
|
7565
7612
|
isDragging.current = true;
|
|
7613
|
+
isClickPrevented.current = false;
|
|
7566
7614
|
setTransitioning(false);
|
|
7567
7615
|
};
|
|
7568
7616
|
var handleTouchMove = function handleTouchMove(e) {
|
|
7569
7617
|
if (!isDragging.current) return;
|
|
7570
7618
|
var deltaX = e.touches[0].clientX - startX.current;
|
|
7571
|
-
|
|
7619
|
+
if (Math.abs(deltaX) > CLICK_DRAG_THRESHOLD) {
|
|
7620
|
+
isClickPrevented.current = true;
|
|
7621
|
+
}
|
|
7622
|
+
var visualOffset = getTranslateX() + deltaX;
|
|
7623
|
+
currentTranslate.current = visualOffset;
|
|
7624
|
+
setDragTranslateX(visualOffset);
|
|
7572
7625
|
};
|
|
7573
7626
|
var handleTouchEnd = function handleTouchEnd() {
|
|
7574
7627
|
isDragging.current = false;
|
|
7575
|
-
|
|
7576
|
-
|
|
7577
|
-
|
|
7578
|
-
|
|
7579
|
-
|
|
7628
|
+
navigateOnSwipeEnd();
|
|
7629
|
+
};
|
|
7630
|
+
var handleMouseMove = function handleMouseMove(e) {
|
|
7631
|
+
if (!isDragging.current || !isMouseDown.current || transitioning) return;
|
|
7632
|
+
var deltaX = e.clientX - startX.current;
|
|
7633
|
+
if (Math.abs(deltaX) > CLICK_DRAG_THRESHOLD) {
|
|
7634
|
+
isClickPrevented.current = true;
|
|
7580
7635
|
}
|
|
7636
|
+
var visualOffset = getTranslateX() + deltaX;
|
|
7637
|
+
currentTranslate.current = visualOffset;
|
|
7638
|
+
setDragTranslateX(visualOffset);
|
|
7639
|
+
};
|
|
7640
|
+
var _handleMouseUp = function handleMouseUp() {
|
|
7641
|
+
if (!isDragging.current || !isMouseDown.current) return;
|
|
7642
|
+
isDragging.current = false;
|
|
7643
|
+
isMouseDown.current = false;
|
|
7644
|
+
window.removeEventListener('mousemove', handleMouseMove);
|
|
7645
|
+
window.removeEventListener('mouseup', _handleMouseUp);
|
|
7646
|
+
if (!isClickPrevented.current) {
|
|
7647
|
+
setDragTranslateX(null);
|
|
7648
|
+
return;
|
|
7649
|
+
}
|
|
7650
|
+
navigateOnSwipeEnd();
|
|
7651
|
+
};
|
|
7652
|
+
var handleMouseDown = function handleMouseDown(e) {
|
|
7653
|
+
if (transitioning || e.button !== 0) return;
|
|
7654
|
+
e.preventDefault();
|
|
7655
|
+
setIsActive();
|
|
7656
|
+
startX.current = e.clientX;
|
|
7657
|
+
isDragging.current = true;
|
|
7658
|
+
isMouseDown.current = true;
|
|
7659
|
+
isClickPrevented.current = false;
|
|
7660
|
+
setTransitioning(false);
|
|
7661
|
+
window.addEventListener('mousemove', handleMouseMove);
|
|
7662
|
+
window.addEventListener('mouseup', _handleMouseUp);
|
|
7581
7663
|
};
|
|
7582
7664
|
var onSlideFocus = function onSlideFocus(isVisible, index) {
|
|
7583
|
-
if (!isVisible)
|
|
7665
|
+
if (!isVisible) {
|
|
7666
|
+
setCurrentIndex(index);
|
|
7667
|
+
}
|
|
7668
|
+
};
|
|
7669
|
+
var onClickCapture = function onClickCapture(e) {
|
|
7670
|
+
if (isClickPrevented.current) {
|
|
7671
|
+
e.preventDefault();
|
|
7672
|
+
e.stopPropagation();
|
|
7673
|
+
}
|
|
7584
7674
|
};
|
|
7585
7675
|
var visibleIndexes = getVisibleIndexes(currentIndex, slideWidths, containerWidth, slides.length);
|
|
7586
7676
|
return /*#__PURE__*/React__default.createElement(SwipeContainer, Object.assign({
|
|
@@ -7588,11 +7678,12 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7588
7678
|
onTouchStart: handleTouchStart,
|
|
7589
7679
|
onTouchMove: handleTouchMove,
|
|
7590
7680
|
onTouchEnd: handleTouchEnd,
|
|
7681
|
+
onMouseDown: handleMouseDown,
|
|
7591
7682
|
className: "swipe"
|
|
7592
7683
|
}, props), /*#__PURE__*/React__default.createElement(SwipeTrack, {
|
|
7593
7684
|
className: "swipe-track-wrapper",
|
|
7594
|
-
translateX: getTranslateX(),
|
|
7595
|
-
transitioning: transitioning,
|
|
7685
|
+
translateX: dragTranslateX !== null ? dragTranslateX : getTranslateX(),
|
|
7686
|
+
transitioning: transitioning && dragTranslateX === null,
|
|
7596
7687
|
onTransitionEnd: handleTransitionEnd
|
|
7597
7688
|
}, slides.map(function (child, index) {
|
|
7598
7689
|
var isVisible = visibleIndexes.includes(index);
|
|
@@ -7605,7 +7696,8 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7605
7696
|
},
|
|
7606
7697
|
onFocus: function onFocus() {
|
|
7607
7698
|
return onSlideFocus(isVisible, index);
|
|
7608
|
-
}
|
|
7699
|
+
},
|
|
7700
|
+
onClickCapture: onClickCapture
|
|
7609
7701
|
});
|
|
7610
7702
|
})));
|
|
7611
7703
|
});
|
|
@@ -7659,19 +7751,23 @@ var Carousel = function Carousel(_ref) {
|
|
|
7659
7751
|
}, [useOffset, active]);
|
|
7660
7752
|
var onNext = function onNext() {
|
|
7661
7753
|
var _swipeRef$current;
|
|
7662
|
-
if (useOffset && !active) setActive(true);
|
|
7663
7754
|
(_swipeRef$current = swipeRef.current) == null || _swipeRef$current.nextSlide();
|
|
7664
7755
|
};
|
|
7665
7756
|
var onPrev = function onPrev() {
|
|
7666
7757
|
var _swipeRef$current2;
|
|
7667
|
-
if (useOffset && !active) setActive(true);
|
|
7668
7758
|
(_swipeRef$current2 = swipeRef.current) == null || _swipeRef$current2.prevSlide();
|
|
7669
7759
|
};
|
|
7760
|
+
var onActiveChangeHandler = function onActiveChangeHandler(value) {
|
|
7761
|
+
if (useOffset && !active) {
|
|
7762
|
+
setActive(value);
|
|
7763
|
+
}
|
|
7764
|
+
};
|
|
7670
7765
|
var carouselTitleId = "carousel-title-" + title;
|
|
7671
7766
|
var Wrapper = type === exports.CarouselType.Image ? ImageCarouselWrapper : CardsCarouselWrapper;
|
|
7672
7767
|
return /*#__PURE__*/React__default.createElement(Wrapper, {
|
|
7673
7768
|
className: className,
|
|
7674
7769
|
type: type,
|
|
7770
|
+
isActive: active,
|
|
7675
7771
|
imagesHeightDevice: imagesHeightDevice,
|
|
7676
7772
|
imagesHeightDesktop: imagesHeightDesktop,
|
|
7677
7773
|
role: "region",
|
|
@@ -7710,6 +7806,9 @@ var Carousel = function Carousel(_ref) {
|
|
|
7710
7806
|
columnStartDevice: 2,
|
|
7711
7807
|
columnSpanDevice: 13
|
|
7712
7808
|
}, /*#__PURE__*/React__default.createElement(Swipe, {
|
|
7809
|
+
onActiveChange: function onActiveChange(value) {
|
|
7810
|
+
return onActiveChangeHandler(value);
|
|
7811
|
+
},
|
|
7713
7812
|
"data-testid": "carousel-swipe",
|
|
7714
7813
|
ref: swipeRef,
|
|
7715
7814
|
infinite: infinite,
|