@cntrl-site/components 0.1.0-alpha.2 → 0.1.0-alpha.21
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/ControlSlider/ControlSliderComponent.d.ts +38 -0
- package/dist/Components/Lightbox/Lightbox.d.ts +28 -2
- package/dist/Components/utils/getImageRect.d.ts +6 -0
- package/dist/Components/utils/getPositionStyles.d.ts +1 -1
- package/dist/components.css +1 -1
- package/dist/index.js +516 -343
- package/dist/index.mjs +516 -343
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -565,15 +565,28 @@ const ControlSliderComponent = {
|
|
|
565
565
|
},
|
|
566
566
|
offset: {
|
|
567
567
|
type: "object",
|
|
568
|
+
title: "Offset",
|
|
568
569
|
display: {
|
|
569
|
-
type: "
|
|
570
|
+
type: "group"
|
|
570
571
|
},
|
|
571
572
|
properties: {
|
|
572
573
|
x: {
|
|
573
|
-
type: "number"
|
|
574
|
+
type: "number",
|
|
575
|
+
label: "X",
|
|
576
|
+
scalingEnabled: true,
|
|
577
|
+
display: {
|
|
578
|
+
type: "numeric-input",
|
|
579
|
+
visible: true
|
|
580
|
+
}
|
|
574
581
|
},
|
|
575
582
|
y: {
|
|
576
|
-
type: "number"
|
|
583
|
+
type: "number",
|
|
584
|
+
label: "Y",
|
|
585
|
+
scalingEnabled: true,
|
|
586
|
+
display: {
|
|
587
|
+
type: "numeric-input",
|
|
588
|
+
visible: true
|
|
589
|
+
}
|
|
577
590
|
}
|
|
578
591
|
}
|
|
579
592
|
},
|
|
@@ -626,15 +639,28 @@ const ControlSliderComponent = {
|
|
|
626
639
|
},
|
|
627
640
|
offset: {
|
|
628
641
|
type: "object",
|
|
642
|
+
title: "Offset",
|
|
629
643
|
display: {
|
|
630
|
-
type: "
|
|
644
|
+
type: "group"
|
|
631
645
|
},
|
|
632
646
|
properties: {
|
|
633
647
|
x: {
|
|
634
|
-
type: "number"
|
|
648
|
+
type: "number",
|
|
649
|
+
label: "X",
|
|
650
|
+
scalingEnabled: true,
|
|
651
|
+
display: {
|
|
652
|
+
type: "numeric-input",
|
|
653
|
+
visible: true
|
|
654
|
+
}
|
|
635
655
|
},
|
|
636
656
|
y: {
|
|
637
|
-
type: "number"
|
|
657
|
+
type: "number",
|
|
658
|
+
label: "Y",
|
|
659
|
+
scalingEnabled: true,
|
|
660
|
+
display: {
|
|
661
|
+
type: "numeric-input",
|
|
662
|
+
visible: true
|
|
663
|
+
}
|
|
638
664
|
}
|
|
639
665
|
}
|
|
640
666
|
},
|
|
@@ -690,14 +716,26 @@ const ControlSliderComponent = {
|
|
|
690
716
|
offset: {
|
|
691
717
|
type: "object",
|
|
692
718
|
display: {
|
|
693
|
-
type: "
|
|
719
|
+
type: "group"
|
|
694
720
|
},
|
|
695
721
|
properties: {
|
|
696
722
|
x: {
|
|
697
|
-
type: "number"
|
|
723
|
+
type: "number",
|
|
724
|
+
label: "X",
|
|
725
|
+
scalingEnabled: true,
|
|
726
|
+
display: {
|
|
727
|
+
type: "numeric-input",
|
|
728
|
+
visible: true
|
|
729
|
+
}
|
|
698
730
|
},
|
|
699
731
|
y: {
|
|
700
|
-
type: "number"
|
|
732
|
+
type: "number",
|
|
733
|
+
label: "Y",
|
|
734
|
+
scalingEnabled: true,
|
|
735
|
+
display: {
|
|
736
|
+
type: "numeric-input",
|
|
737
|
+
visible: true
|
|
738
|
+
}
|
|
701
739
|
}
|
|
702
740
|
}
|
|
703
741
|
},
|
|
@@ -1443,7 +1481,9 @@ const ControlImageRevealSliderComponent = {
|
|
|
1443
1481
|
}
|
|
1444
1482
|
}
|
|
1445
1483
|
};
|
|
1484
|
+
const background = "Lightbox-module__background___wf1Ii";
|
|
1446
1485
|
const backdropStyle = "Lightbox-module__backdropStyle___y7avj";
|
|
1486
|
+
const editor = "Lightbox-module__editor___Vh82D";
|
|
1447
1487
|
const contentStyle = "Lightbox-module__contentStyle___FzFaW";
|
|
1448
1488
|
const imageStyle = "Lightbox-module__imageStyle___Qb7f5";
|
|
1449
1489
|
const imgWrapper = "Lightbox-module__imgWrapper___cdytV";
|
|
@@ -1463,7 +1503,6 @@ const thumbsAlignStart = "Lightbox-module__thumbsAlignStart___uiFIV";
|
|
|
1463
1503
|
const thumbsAlignCenter = "Lightbox-module__thumbsAlignCenter___sbUPA";
|
|
1464
1504
|
const thumbsAlignEnd = "Lightbox-module__thumbsAlignEnd___OA9N4";
|
|
1465
1505
|
const thumbItem = "Lightbox-module__thumbItem___zROyu";
|
|
1466
|
-
const thumbImage = "Lightbox-module__thumbImage___xGakV";
|
|
1467
1506
|
const closeButton = "Lightbox-module__closeButton___r3Dur";
|
|
1468
1507
|
const fadeIn = "Lightbox-module__fadeIn___sHwRK";
|
|
1469
1508
|
const slideInLeft = "Lightbox-module__slideInLeft___P-XRo";
|
|
@@ -1472,7 +1511,9 @@ const slideInTop = "Lightbox-module__slideInTop___XRKCs";
|
|
|
1472
1511
|
const slideInBottom = "Lightbox-module__slideInBottom___TYOBS";
|
|
1473
1512
|
const scaleSlide = "Lightbox-module__scaleSlide___wS7d4";
|
|
1474
1513
|
const styles = {
|
|
1514
|
+
background,
|
|
1475
1515
|
backdropStyle,
|
|
1516
|
+
editor,
|
|
1476
1517
|
contentStyle,
|
|
1477
1518
|
imageStyle,
|
|
1478
1519
|
imgWrapper,
|
|
@@ -1492,7 +1533,6 @@ const styles = {
|
|
|
1492
1533
|
thumbsAlignCenter,
|
|
1493
1534
|
thumbsAlignEnd,
|
|
1494
1535
|
thumbItem,
|
|
1495
|
-
thumbImage,
|
|
1496
1536
|
closeButton,
|
|
1497
1537
|
fadeIn,
|
|
1498
1538
|
slideInLeft,
|
|
@@ -1501,7 +1541,7 @@ const styles = {
|
|
|
1501
1541
|
slideInBottom,
|
|
1502
1542
|
scaleSlide
|
|
1503
1543
|
};
|
|
1504
|
-
const getPositionStyles = (position, offset) => {
|
|
1544
|
+
const getPositionStyles = (position, offset, isEditor) => {
|
|
1505
1545
|
const styles2 = {};
|
|
1506
1546
|
const [vertical, horizontal] = position.split("-");
|
|
1507
1547
|
if (vertical === "top") {
|
|
@@ -1525,17 +1565,42 @@ const getPositionStyles = (position, offset) => {
|
|
|
1525
1565
|
styles2.right = "0";
|
|
1526
1566
|
}
|
|
1527
1567
|
if (vertical === "middle" && horizontal === "center") {
|
|
1528
|
-
styles2.transform = `translate(calc(-50% + ${offset.x}
|
|
1568
|
+
styles2.transform = `translate(calc(-50% + ${scalingValue(offset.x, isEditor)}), calc(-50% + ${scalingValue(offset.y, isEditor)}))`;
|
|
1529
1569
|
} else if (vertical === "middle") {
|
|
1530
|
-
styles2.transform = `translate(${offset.x}
|
|
1570
|
+
styles2.transform = `translate(${scalingValue(offset.x, isEditor)}, calc(-50% + ${scalingValue(offset.y, isEditor)}))`;
|
|
1531
1571
|
} else if (horizontal === "center") {
|
|
1532
|
-
styles2.transform = `translate(calc(-50% + ${offset.x}
|
|
1572
|
+
styles2.transform = `translate(calc(-50% + ${scalingValue(offset.x, isEditor)}), ${scalingValue(offset.y, isEditor)})`;
|
|
1533
1573
|
} else {
|
|
1534
|
-
styles2.transform = `translate(${offset.x}
|
|
1574
|
+
styles2.transform = `translate(${scalingValue(offset.x, isEditor)}, ${scalingValue(offset.y, isEditor)})`;
|
|
1535
1575
|
}
|
|
1536
1576
|
return styles2;
|
|
1537
1577
|
};
|
|
1538
|
-
function
|
|
1578
|
+
function getDisplayedImageRect(img2) {
|
|
1579
|
+
const container = img2.getBoundingClientRect();
|
|
1580
|
+
const containerW = container.width;
|
|
1581
|
+
const containerH = container.height;
|
|
1582
|
+
const imgW = img2.naturalWidth;
|
|
1583
|
+
const imgH = img2.naturalHeight;
|
|
1584
|
+
const containerRatio = containerW / containerH;
|
|
1585
|
+
const imgRatio = imgW / imgH;
|
|
1586
|
+
let renderedW, renderedH;
|
|
1587
|
+
if (imgRatio > containerRatio) {
|
|
1588
|
+
renderedW = containerW;
|
|
1589
|
+
renderedH = containerW / imgRatio;
|
|
1590
|
+
} else {
|
|
1591
|
+
renderedH = containerH;
|
|
1592
|
+
renderedW = containerH * imgRatio;
|
|
1593
|
+
}
|
|
1594
|
+
const offsetX = (containerW - renderedW) / 2 + container.left;
|
|
1595
|
+
const offsetY = (containerH - renderedH) / 2 + container.top;
|
|
1596
|
+
return {
|
|
1597
|
+
x: offsetX,
|
|
1598
|
+
y: offsetY,
|
|
1599
|
+
width: renderedW,
|
|
1600
|
+
height: renderedH
|
|
1601
|
+
};
|
|
1602
|
+
}
|
|
1603
|
+
function LightboxGallery({ settings, content, styles: styles2, portalId, activeEvent, isEditor }) {
|
|
1539
1604
|
const [open, setOpen] = React.useState(false);
|
|
1540
1605
|
const { url } = settings.thumbnailBlock.cover;
|
|
1541
1606
|
React.useEffect(() => {
|
|
@@ -1556,13 +1621,16 @@ function LightboxGallery({ settings, content, styles: styles2, portalId, activeE
|
|
|
1556
1621
|
onClick: () => setOpen(true)
|
|
1557
1622
|
}
|
|
1558
1623
|
),
|
|
1559
|
-
/* @__PURE__ */ jsxRuntime.jsx(Lightbox, { isOpen: open, onClose: () => setOpen(false), content, settings, portalId, isEditor })
|
|
1624
|
+
/* @__PURE__ */ jsxRuntime.jsx(Lightbox, { isOpen: open, onClose: () => setOpen(false), content, settings, styles: styles2, portalId, isEditor })
|
|
1560
1625
|
] });
|
|
1561
1626
|
}
|
|
1562
|
-
const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = true, closeOnEsc = true, portalId, isEditor }) => {
|
|
1627
|
+
const Lightbox = ({ isOpen, onClose, content, styles: lightboxStyles, settings, closeOnBackdropClick = true, closeOnEsc = true, portalId, isEditor }) => {
|
|
1628
|
+
const { widthSettings, fontSettings, letterSpacing, textAlign, wordSpacing, fontSizeLineHeight, textAppearance, color } = lightboxStyles.caption;
|
|
1563
1629
|
const [currentIndex, setCurrentIndex] = React.useState(0);
|
|
1630
|
+
const [splideKey, setSplideKey] = React.useState(0);
|
|
1564
1631
|
const lightboxRef = React.useRef(null);
|
|
1565
|
-
const
|
|
1632
|
+
const prevSliderTypeRef = React.useRef(null);
|
|
1633
|
+
const imageRef = React.useRef(null);
|
|
1566
1634
|
const { appear, triggers, slider, thumbnail, controls, area, caption: caption2, layout } = settings.lightboxBlock;
|
|
1567
1635
|
const handleBackdropClick = (e) => {
|
|
1568
1636
|
if (!closeOnBackdropClick) return;
|
|
@@ -1576,6 +1644,23 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
|
|
|
1576
1644
|
onClose();
|
|
1577
1645
|
}
|
|
1578
1646
|
};
|
|
1647
|
+
const handleContentClick = (e) => {
|
|
1648
|
+
if (!closeOnBackdropClick) return;
|
|
1649
|
+
const target = e.target;
|
|
1650
|
+
const currentTarget = e.currentTarget;
|
|
1651
|
+
if (target === currentTarget) {
|
|
1652
|
+
onClose();
|
|
1653
|
+
return;
|
|
1654
|
+
}
|
|
1655
|
+
const isImg = target.tagName === "IMG" || target.closest("img");
|
|
1656
|
+
const isButton = target.tagName === "BUTTON" || target.closest("button");
|
|
1657
|
+
const isSplide = target.closest(".splide") || target.closest('[class*="splide"]');
|
|
1658
|
+
const isCaption = target.closest(`.${styles.caption}`);
|
|
1659
|
+
const isThumbnail = target.closest(`.${styles.thumbsContainer}`);
|
|
1660
|
+
if (!isImg && !isButton && !isSplide && !isCaption && !isThumbnail) {
|
|
1661
|
+
onClose();
|
|
1662
|
+
}
|
|
1663
|
+
};
|
|
1579
1664
|
const onImageClick = (e) => {
|
|
1580
1665
|
var _a, _b;
|
|
1581
1666
|
if (triggers.type === "click" && triggers.switch === "image") {
|
|
@@ -1623,48 +1708,24 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
|
|
|
1623
1708
|
if (isOpen) setCurrentIndex(0);
|
|
1624
1709
|
}, [isOpen]);
|
|
1625
1710
|
React.useEffect(() => {
|
|
1626
|
-
if (
|
|
1627
|
-
|
|
1628
|
-
resizeObserverRef.current.disconnect();
|
|
1629
|
-
resizeObserverRef.current = null;
|
|
1711
|
+
if (prevSliderTypeRef.current !== null && prevSliderTypeRef.current !== slider.type) {
|
|
1712
|
+
setSplideKey((prev) => prev + 1);
|
|
1630
1713
|
}
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
const containerWidth = container.clientWidth;
|
|
1641
|
-
const containerHeight = container.clientHeight;
|
|
1642
|
-
const containerAspectRatio = containerWidth / containerHeight;
|
|
1643
|
-
if (imageAspectRatio > containerAspectRatio) {
|
|
1644
|
-
img2.style.width = "100%";
|
|
1645
|
-
} else {
|
|
1646
|
-
img2.style.height = "100%";
|
|
1647
|
-
}
|
|
1648
|
-
};
|
|
1649
|
-
if (img2.complete) {
|
|
1650
|
-
updateImageSize();
|
|
1651
|
-
} else {
|
|
1652
|
-
img2.onload = updateImageSize;
|
|
1653
|
-
}
|
|
1654
|
-
resizeObserverRef.current = new ResizeObserver(() => {
|
|
1655
|
-
updateImageSize();
|
|
1656
|
-
});
|
|
1657
|
-
resizeObserverRef.current.observe(container);
|
|
1658
|
-
resizeObserverRef.current.observe(img2);
|
|
1659
|
-
}, 0);
|
|
1714
|
+
prevSliderTypeRef.current = slider.type;
|
|
1715
|
+
}, [slider.type]);
|
|
1716
|
+
React.useEffect(() => {
|
|
1717
|
+
if (!isOpen) return;
|
|
1718
|
+
const originalOverflow = document.body.style.overflow;
|
|
1719
|
+
document.body.style.overflow = "hidden";
|
|
1720
|
+
document.body.style.backgroundColor = area.color;
|
|
1721
|
+
const preventScroll = (e) => e.preventDefault();
|
|
1722
|
+
document.addEventListener("touchmove", preventScroll, { passive: false });
|
|
1660
1723
|
return () => {
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
resizeObserverRef.current = null;
|
|
1665
|
-
}
|
|
1724
|
+
document.body.style.overflow = originalOverflow;
|
|
1725
|
+
document.removeEventListener("touchmove", preventScroll);
|
|
1726
|
+
document.body.style.backgroundColor = "";
|
|
1666
1727
|
};
|
|
1667
|
-
}, [isOpen
|
|
1728
|
+
}, [isOpen]);
|
|
1668
1729
|
const handleArrowClick = (dir) => {
|
|
1669
1730
|
var _a;
|
|
1670
1731
|
(_a = lightboxRef.current) == null ? void 0 : _a.go(dir);
|
|
@@ -1707,233 +1768,295 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
|
|
|
1707
1768
|
}
|
|
1708
1769
|
return styles.fadeIn;
|
|
1709
1770
|
})();
|
|
1771
|
+
React.useEffect(() => {
|
|
1772
|
+
if (!isOpen || !closeOnBackdropClick) return;
|
|
1773
|
+
const handleTouchEnd = (e) => {
|
|
1774
|
+
if (e.touches.length === 0 && e.changedTouches.length > 0) {
|
|
1775
|
+
const rect = imageRef.current ? getDisplayedImageRect(imageRef.current) : null;
|
|
1776
|
+
if (!rect) return;
|
|
1777
|
+
const touch = e.changedTouches[0];
|
|
1778
|
+
const inside = touch.clientX >= rect.x && touch.clientX <= rect.x + rect.width && touch.clientY >= rect.y && touch.clientY <= rect.y + rect.height;
|
|
1779
|
+
if (!inside) {
|
|
1780
|
+
onClose();
|
|
1781
|
+
}
|
|
1782
|
+
}
|
|
1783
|
+
};
|
|
1784
|
+
const timeoutId = setTimeout(() => {
|
|
1785
|
+
document.addEventListener("touchend", handleTouchEnd, { passive: true });
|
|
1786
|
+
}, 100);
|
|
1787
|
+
return () => {
|
|
1788
|
+
clearTimeout(timeoutId);
|
|
1789
|
+
document.removeEventListener("touchend", handleTouchEnd);
|
|
1790
|
+
};
|
|
1791
|
+
}, [isOpen, closeOnBackdropClick, onClose, currentIndex]);
|
|
1710
1792
|
if (!isOpen) return null;
|
|
1711
1793
|
return reactDom.createPortal(
|
|
1712
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
type: slider.type === "fade" || slider.type === "scale" ? "fade" : "loop",
|
|
1749
|
-
padding: 0,
|
|
1750
|
-
rewind: (slider.type === "scale" || slider.type === "fade") && appear.repeat !== "close"
|
|
1751
|
-
},
|
|
1752
|
-
style: { "--splide-speed": triggers.duration || "500ms" },
|
|
1753
|
-
children: content.map((item, index) => {
|
|
1754
|
-
const positionStyles = getPositionStyles(layout.position, layout.offset);
|
|
1755
|
-
const imageStyle2 = slider.type === "scale" ? (() => {
|
|
1756
|
-
const { transform, ...restStyles } = positionStyles;
|
|
1757
|
-
return {
|
|
1758
|
-
...restStyles,
|
|
1759
|
-
"--position-transform": transform || "none"
|
|
1760
|
-
};
|
|
1761
|
-
})() : positionStyles;
|
|
1762
|
-
return /* @__PURE__ */ jsxRuntime.jsx(reactSplide.SplideSlide, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1763
|
-
"div",
|
|
1764
|
-
{
|
|
1765
|
-
className: styles.imgWrapper,
|
|
1766
|
-
onClick: handleImageWrapperClick,
|
|
1767
|
-
style: {
|
|
1768
|
-
padding: `${layout.padding.top}px ${layout.padding.right}px ${layout.padding.bottom}px ${layout.padding.left}px`
|
|
1769
|
-
},
|
|
1770
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1771
|
-
"img",
|
|
1772
|
-
{
|
|
1773
|
-
className: cn(styles.imageStyle, {
|
|
1774
|
-
[styles.contain]: item.image.objectFit === "contain",
|
|
1775
|
-
[styles.cover]: item.image.objectFit === "cover",
|
|
1776
|
-
[styles.scaleSlide]: slider.type === "scale"
|
|
1777
|
-
}),
|
|
1778
|
-
src: item.image.url,
|
|
1779
|
-
alt: item.image.name ?? "",
|
|
1780
|
-
onClick: onImageClick,
|
|
1781
|
-
style: imageStyle2
|
|
1782
|
-
}
|
|
1783
|
-
)
|
|
1784
|
-
}
|
|
1785
|
-
) }, index);
|
|
1786
|
-
})
|
|
1787
|
-
}
|
|
1788
|
-
),
|
|
1789
|
-
controls.isActive && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1794
|
+
/* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1795
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1796
|
+
"div",
|
|
1797
|
+
{
|
|
1798
|
+
className: cn(styles.background, backdropAppearClass),
|
|
1799
|
+
style: {
|
|
1800
|
+
...isEditor && { display: "none" },
|
|
1801
|
+
backgroundColor: area.color,
|
|
1802
|
+
backdropFilter: `blur(${area.blur}px)`,
|
|
1803
|
+
animationDuration: `${backdropDurationMs}ms`,
|
|
1804
|
+
animationTimingFunction: "ease",
|
|
1805
|
+
animationFillMode: "both"
|
|
1806
|
+
}
|
|
1807
|
+
}
|
|
1808
|
+
),
|
|
1809
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1810
|
+
"div",
|
|
1811
|
+
{
|
|
1812
|
+
className: cn(styles.backdropStyle, { [styles.editor]: isEditor }),
|
|
1813
|
+
style: { ...isEditor && { backgroundColor: area.color, backdropFilter: `blur(${area.blur}px)` } },
|
|
1814
|
+
onClick: handleBackdropClick,
|
|
1815
|
+
onTouchEnd: handleBackdropClick,
|
|
1816
|
+
onTouchStart: handleBackdropClick,
|
|
1817
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1818
|
+
"div",
|
|
1819
|
+
{
|
|
1820
|
+
className: cn(styles.contentStyle, appearClass),
|
|
1821
|
+
onClick: handleContentClick,
|
|
1822
|
+
style: {
|
|
1823
|
+
animationDuration: `${appearDurationMs}ms`,
|
|
1824
|
+
animationTimingFunction: "ease",
|
|
1825
|
+
animationFillMode: "both",
|
|
1826
|
+
...appear.type === "mix" && { animationDelay: `${backdropDurationMs / 2}ms` },
|
|
1827
|
+
"--splide-speed": slider.duration || "500ms"
|
|
1828
|
+
},
|
|
1829
|
+
children: [
|
|
1790
1830
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1831
|
+
reactSplide.Splide,
|
|
1832
|
+
{
|
|
1833
|
+
onMove: (splide) => {
|
|
1834
|
+
setCurrentIndex(splide.index);
|
|
1835
|
+
},
|
|
1836
|
+
ref: lightboxRef,
|
|
1837
|
+
className: styles.lightboxSplide,
|
|
1838
|
+
options: {
|
|
1839
|
+
arrows: false,
|
|
1840
|
+
speed: slider.duration ? parseInt(slider.duration) : 500,
|
|
1841
|
+
direction: slider.direction === "horiz" || slider.type === "fade" || slider.type === "scale" ? "ltr" : "ttb",
|
|
1842
|
+
pagination: false,
|
|
1843
|
+
drag: triggers.type === "drag",
|
|
1844
|
+
perPage: 1,
|
|
1845
|
+
width: "100%",
|
|
1846
|
+
height: "100%",
|
|
1847
|
+
type: slider.type === "fade" || slider.type === "scale" ? "fade" : "loop",
|
|
1848
|
+
padding: 0,
|
|
1849
|
+
rewind: (slider.type === "scale" || slider.type === "fade") && appear.repeat !== "close"
|
|
1850
|
+
},
|
|
1851
|
+
style: { "--splide-speed": slider.duration || "500ms" },
|
|
1852
|
+
children: content.map((item, index) => {
|
|
1853
|
+
const positionStyles = getPositionStyles(layout.position, layout.offset, isEditor);
|
|
1854
|
+
const imageStyle2 = slider.type === "scale" ? (() => {
|
|
1855
|
+
const { transform, ...restStyles } = positionStyles;
|
|
1856
|
+
return {
|
|
1857
|
+
...restStyles,
|
|
1858
|
+
"--position-transform": transform || "none"
|
|
1859
|
+
};
|
|
1860
|
+
})() : positionStyles;
|
|
1861
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactSplide.SplideSlide, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1862
|
+
"div",
|
|
1863
|
+
{
|
|
1864
|
+
className: styles.imgWrapper,
|
|
1865
|
+
onClick: handleImageWrapperClick,
|
|
1866
|
+
style: { padding: scalingValue(layout.padding.top, isEditor) + " " + scalingValue(layout.padding.right, isEditor) + " " + scalingValue(layout.padding.bottom, isEditor) + " " + scalingValue(layout.padding.left, isEditor) },
|
|
1867
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1868
|
+
"img",
|
|
1869
|
+
{
|
|
1870
|
+
ref: imageRef,
|
|
1871
|
+
className: cn(styles.imageStyle, {
|
|
1872
|
+
[styles.contain]: item.image.objectFit === "contain",
|
|
1873
|
+
[styles.cover]: item.image.objectFit === "cover",
|
|
1874
|
+
[styles.scaleSlide]: slider.type === "scale"
|
|
1875
|
+
}),
|
|
1876
|
+
src: item.image.url,
|
|
1877
|
+
alt: item.image.name ?? "",
|
|
1878
|
+
onClick: onImageClick,
|
|
1879
|
+
style: imageStyle2
|
|
1880
|
+
}
|
|
1881
|
+
)
|
|
1882
|
+
}
|
|
1883
|
+
) }, index);
|
|
1884
|
+
})
|
|
1885
|
+
},
|
|
1886
|
+
splideKey
|
|
1887
|
+
),
|
|
1888
|
+
controls.isActive && controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1889
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1890
|
+
"div",
|
|
1891
|
+
{
|
|
1892
|
+
className: cn(styles.arrow, { [styles.arrowVertical]: slider.direction === "vert" }),
|
|
1893
|
+
style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
|
|
1894
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1895
|
+
"button",
|
|
1896
|
+
{
|
|
1897
|
+
className: styles.arrowInner,
|
|
1898
|
+
style: {
|
|
1899
|
+
transform: `translate(${scalingValue(controls.offset.x, isEditor)}, ${scalingValue(controls.offset.y * (slider.direction === "horiz" ? 1 : -1), isEditor)}) scale(${controls.scale}) rotate(${slider.direction === "horiz" ? "0deg" : "90deg"})`
|
|
1900
|
+
},
|
|
1901
|
+
onClick: (e) => {
|
|
1902
|
+
handleArrowClick("-1");
|
|
1903
|
+
},
|
|
1904
|
+
children: controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1905
|
+
SvgImage,
|
|
1906
|
+
{
|
|
1907
|
+
url: controls.arrowsImgUrl,
|
|
1908
|
+
fill: controls.color,
|
|
1909
|
+
hoverFill: controls.hover,
|
|
1910
|
+
className: cn(styles.arrowImg, styles.mirror)
|
|
1911
|
+
}
|
|
1912
|
+
)
|
|
1913
|
+
}
|
|
1914
|
+
)
|
|
1915
|
+
}
|
|
1916
|
+
),
|
|
1917
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1918
|
+
"div",
|
|
1919
|
+
{
|
|
1920
|
+
className: cn(styles.arrow, styles.nextArrow, { [styles.arrowVertical]: slider.direction === "vert" }),
|
|
1921
|
+
style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
|
|
1922
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1923
|
+
"button",
|
|
1924
|
+
{
|
|
1925
|
+
className: styles.arrowInner,
|
|
1926
|
+
style: {
|
|
1927
|
+
transform: `translate(${scalingValue(controls.offset.x * (slider.direction === "horiz" ? -1 : 1), isEditor)}, ${scalingValue(controls.offset.y, isEditor)}) scale(${controls.scale}) rotate(${slider.direction === "horiz" ? "0deg" : "90deg"})`
|
|
1928
|
+
},
|
|
1929
|
+
onClick: (e) => {
|
|
1930
|
+
handleArrowClick("+1");
|
|
1931
|
+
},
|
|
1932
|
+
"aria-label": "Next",
|
|
1933
|
+
children: controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1934
|
+
SvgImage,
|
|
1935
|
+
{
|
|
1936
|
+
url: controls.arrowsImgUrl,
|
|
1937
|
+
fill: controls.color,
|
|
1938
|
+
hoverFill: controls.hover,
|
|
1939
|
+
className: styles.arrowImg
|
|
1940
|
+
}
|
|
1941
|
+
)
|
|
1942
|
+
}
|
|
1943
|
+
)
|
|
1944
|
+
}
|
|
1945
|
+
)
|
|
1946
|
+
] }),
|
|
1947
|
+
area.closeIconUrl && (() => {
|
|
1948
|
+
const positionStyles = getPositionStyles(area.closeIconAlign, area.closeIconOffset, isEditor);
|
|
1949
|
+
const scaleTransform = `scale(${area.closeIconScale})`;
|
|
1950
|
+
const combinedTransform = positionStyles.transform ? `${positionStyles.transform} ${scaleTransform}` : scaleTransform;
|
|
1951
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1952
|
+
"button",
|
|
1953
|
+
{
|
|
1954
|
+
className: styles.closeButton,
|
|
1955
|
+
style: {
|
|
1956
|
+
...positionStyles,
|
|
1957
|
+
transform: combinedTransform
|
|
1958
|
+
},
|
|
1959
|
+
onClick: onClose,
|
|
1960
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(SvgImage, { url: area.closeIconUrl })
|
|
1961
|
+
}
|
|
1962
|
+
);
|
|
1963
|
+
})(),
|
|
1964
|
+
caption2.isActive && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1791
1965
|
"div",
|
|
1792
1966
|
{
|
|
1793
|
-
className:
|
|
1794
|
-
style: {
|
|
1967
|
+
className: styles.caption,
|
|
1968
|
+
style: {
|
|
1969
|
+
...getPositionStyles(caption2.alignment, caption2.offset, isEditor),
|
|
1970
|
+
fontFamily: fontSettings.fontFamily,
|
|
1971
|
+
fontWeight: fontSettings.fontWeight,
|
|
1972
|
+
fontStyle: fontSettings.fontStyle,
|
|
1973
|
+
width: widthSettings.sizing === "auto" ? "max-content" : scalingValue(widthSettings.width, isEditor),
|
|
1974
|
+
letterSpacing: scalingValue(letterSpacing, isEditor),
|
|
1975
|
+
wordSpacing: scalingValue(wordSpacing, isEditor),
|
|
1976
|
+
textAlign,
|
|
1977
|
+
fontSize: scalingValue(fontSizeLineHeight.fontSize, isEditor),
|
|
1978
|
+
lineHeight: scalingValue(fontSizeLineHeight.lineHeight, isEditor),
|
|
1979
|
+
textTransform: textAppearance.textTransform ?? "none",
|
|
1980
|
+
textDecoration: textAppearance.textDecoration ?? "none",
|
|
1981
|
+
fontVariant: textAppearance.fontVariant ?? "normal",
|
|
1982
|
+
color,
|
|
1983
|
+
transitionDuration: slider.duration ? `${Math.round(parseInt(slider.duration) / 2)}ms` : "500ms"
|
|
1984
|
+
},
|
|
1985
|
+
onClick: (e) => e.stopPropagation(),
|
|
1795
1986
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1796
|
-
"
|
|
1987
|
+
"div",
|
|
1797
1988
|
{
|
|
1798
|
-
|
|
1989
|
+
"data-styles": "caption",
|
|
1990
|
+
className: styles.captionTextInner,
|
|
1799
1991
|
style: {
|
|
1800
|
-
|
|
1801
|
-
},
|
|
1802
|
-
onClick: (e) => {
|
|
1803
|
-
handleArrowClick("-1");
|
|
1992
|
+
position: "relative"
|
|
1804
1993
|
},
|
|
1805
|
-
children:
|
|
1806
|
-
SvgImage,
|
|
1807
|
-
{
|
|
1808
|
-
url: controls.arrowsImgUrl,
|
|
1809
|
-
fill: controls.color,
|
|
1810
|
-
hoverFill: controls.hover,
|
|
1811
|
-
className: cn(styles.arrowImg, styles.mirror)
|
|
1812
|
-
}
|
|
1813
|
-
)
|
|
1994
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(RichTextRenderer, { content: content[currentIndex].imageCaption })
|
|
1814
1995
|
}
|
|
1815
1996
|
)
|
|
1816
1997
|
}
|
|
1817
1998
|
),
|
|
1818
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1999
|
+
thumbnail.isActive && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1819
2000
|
"div",
|
|
1820
2001
|
{
|
|
1821
|
-
className: cn(
|
|
1822
|
-
|
|
1823
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1824
|
-
"button",
|
|
2002
|
+
className: cn(
|
|
2003
|
+
styles.thumbsContainer,
|
|
1825
2004
|
{
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
onClick: (e) => {
|
|
1831
|
-
handleArrowClick("+1");
|
|
1832
|
-
},
|
|
1833
|
-
"aria-label": "Next",
|
|
1834
|
-
children: controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1835
|
-
SvgImage,
|
|
1836
|
-
{
|
|
1837
|
-
url: controls.arrowsImgUrl,
|
|
1838
|
-
fill: controls.color,
|
|
1839
|
-
hoverFill: controls.hover,
|
|
1840
|
-
className: styles.arrowImg
|
|
1841
|
-
}
|
|
1842
|
-
)
|
|
2005
|
+
[styles.thumbsContainerVertical]: slider.direction === "vert",
|
|
2006
|
+
[styles.thumbsAlignStart]: thumbnail.align === "start",
|
|
2007
|
+
[styles.thumbsAlignCenter]: thumbnail.align === "center",
|
|
2008
|
+
[styles.thumbsAlignEnd]: thumbnail.align === "end"
|
|
1843
2009
|
}
|
|
1844
|
-
)
|
|
1845
|
-
}
|
|
1846
|
-
)
|
|
1847
|
-
] }),
|
|
1848
|
-
area.closeIconUrl && (() => {
|
|
1849
|
-
const positionStyles = getPositionStyles(area.closeIconAlign, area.closeIconOffset);
|
|
1850
|
-
const scaleTransform = `scale(${area.closeIconScale})`;
|
|
1851
|
-
const combinedTransform = positionStyles.transform ? `${positionStyles.transform} ${scaleTransform}` : scaleTransform;
|
|
1852
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1853
|
-
"button",
|
|
1854
|
-
{
|
|
1855
|
-
className: styles.closeButton,
|
|
2010
|
+
),
|
|
1856
2011
|
style: {
|
|
1857
|
-
|
|
1858
|
-
|
|
2012
|
+
gap: `${scalingValue(thumbnail.grid.gap, isEditor)}`,
|
|
2013
|
+
...getPositionStyles(thumbnail.position, thumbnail.offset, isEditor)
|
|
1859
2014
|
},
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
...slider.direction === "vert" ? { width: `${thumbnail.grid.width}px` } : {},
|
|
1892
|
-
...getPositionStyles(thumbnail.position, thumbnail.offset)
|
|
1893
|
-
},
|
|
1894
|
-
children: content.map((item, index) => {
|
|
1895
|
-
const isActive = index === currentIndex;
|
|
1896
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1897
|
-
"button",
|
|
1898
|
-
{
|
|
1899
|
-
className: styles.thumbItem,
|
|
1900
|
-
style: {
|
|
1901
|
-
transform: `scale(${isActive ? thumbnail.activeState.scale : 1})`,
|
|
1902
|
-
...slider.direction === "horiz" ? { height: "100%" } : {},
|
|
1903
|
-
...slider.direction === "vert" ? { width: "100%" } : {},
|
|
1904
|
-
opacity: isActive ? thumbnail.activeState.opacity : thumbnail.opacity,
|
|
1905
|
-
["--thumb-hover"]: thumbnail.activeState.opacity
|
|
1906
|
-
},
|
|
1907
|
-
onClick: (e) => {
|
|
1908
|
-
var _a;
|
|
1909
|
-
e.stopPropagation();
|
|
1910
|
-
setCurrentIndex(index);
|
|
1911
|
-
(_a = lightboxRef.current) == null ? void 0 : _a.go(index);
|
|
1912
|
-
},
|
|
1913
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1914
|
-
"img",
|
|
1915
|
-
{
|
|
1916
|
-
src: item.image.url,
|
|
1917
|
-
alt: item.image.name ?? "",
|
|
1918
|
-
className: styles.thumbImage,
|
|
1919
|
-
style: {
|
|
1920
|
-
objectFit: thumbnail.fit === "cover" ? "cover" : "contain",
|
|
1921
|
-
...slider.direction === "horiz" ? { height: "100%" } : {},
|
|
1922
|
-
...slider.direction === "vert" ? { width: "100%" } : {}
|
|
2015
|
+
children: content.map((item, index) => {
|
|
2016
|
+
const isActive = index === currentIndex;
|
|
2017
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2018
|
+
"button",
|
|
2019
|
+
{
|
|
2020
|
+
className: styles.thumbItem,
|
|
2021
|
+
style: {
|
|
2022
|
+
...slider.direction === "horiz" ? { height: isActive ? `${scalingValue(thumbnail.grid.height * (isActive ? thumbnail.activeState.scale : 1), isEditor)}` : `${scalingValue(thumbnail.grid.height, isEditor)}` } : {},
|
|
2023
|
+
...slider.direction === "vert" ? { width: isActive ? `${scalingValue(thumbnail.grid.width * (isActive ? thumbnail.activeState.scale : 1), isEditor)}` : `${scalingValue(thumbnail.grid.width, isEditor)}` } : {},
|
|
2024
|
+
...thumbnail.fit === "cover" && slider.direction === "horiz" ? { width: isActive ? `${scalingValue(thumbnail.grid.width * (isActive ? thumbnail.activeState.scale : 1), isEditor)}` : `${scalingValue(thumbnail.grid.width, isEditor)}` } : {},
|
|
2025
|
+
...thumbnail.fit === "cover" && slider.direction === "vert" ? { height: isActive ? `${scalingValue(thumbnail.grid.height * (isActive ? thumbnail.activeState.scale : 1), isEditor)}` : `${scalingValue(thumbnail.grid.height, isEditor)}` } : {},
|
|
2026
|
+
transition: isActive ? "all 0.2s ease" : "none",
|
|
2027
|
+
opacity: isActive ? thumbnail.activeState.opacity / 100 : thumbnail.opacity / 100,
|
|
2028
|
+
["--thumb-hover"]: thumbnail.activeState.opacity / 100
|
|
2029
|
+
},
|
|
2030
|
+
onClick: (e) => {
|
|
2031
|
+
var _a;
|
|
2032
|
+
e.stopPropagation();
|
|
2033
|
+
setCurrentIndex(index);
|
|
2034
|
+
(_a = lightboxRef.current) == null ? void 0 : _a.go(index);
|
|
2035
|
+
},
|
|
2036
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2037
|
+
"img",
|
|
2038
|
+
{
|
|
2039
|
+
src: item.image.url,
|
|
2040
|
+
alt: item.image.name ?? "",
|
|
2041
|
+
style: {
|
|
2042
|
+
objectFit: thumbnail.fit === "cover" ? "cover" : "contain",
|
|
2043
|
+
...thumbnail.fit === "fit" ? { maxWidth: "100%", maxHeight: "100%", objectFit: "contain" } : {},
|
|
2044
|
+
...thumbnail.fit === "cover" && slider.direction === "horiz" ? { width: "100%", height: "100%" } : {}
|
|
2045
|
+
}
|
|
1923
2046
|
}
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
)
|
|
1929
|
-
}
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
),
|
|
2047
|
+
)
|
|
2048
|
+
},
|
|
2049
|
+
`${item.image.url}-${index}`
|
|
2050
|
+
);
|
|
2051
|
+
})
|
|
2052
|
+
}
|
|
2053
|
+
)
|
|
2054
|
+
]
|
|
2055
|
+
}
|
|
2056
|
+
)
|
|
2057
|
+
}
|
|
2058
|
+
)
|
|
2059
|
+
] }),
|
|
1937
2060
|
document.getElementById(portalId)
|
|
1938
2061
|
);
|
|
1939
2062
|
};
|
|
@@ -1946,8 +2069,8 @@ const LightboxComponent = {
|
|
|
1946
2069
|
url: "https://cdn.cntrl.site/projects/01GJ2SPDSH73MC92WW7ZA2CWBY/articles-assets/01KA24CHYZXJBZ0Q714B05A7VD.mp4"
|
|
1947
2070
|
},
|
|
1948
2071
|
defaultSize: {
|
|
1949
|
-
width:
|
|
1950
|
-
height:
|
|
2072
|
+
width: 440,
|
|
2073
|
+
height: 550
|
|
1951
2074
|
},
|
|
1952
2075
|
schema: {
|
|
1953
2076
|
type: "object",
|
|
@@ -1972,6 +2095,7 @@ const LightboxComponent = {
|
|
|
1972
2095
|
url: {
|
|
1973
2096
|
type: "string",
|
|
1974
2097
|
display: {
|
|
2098
|
+
mode: "cover",
|
|
1975
2099
|
type: "settings-image-input"
|
|
1976
2100
|
}
|
|
1977
2101
|
}
|
|
@@ -2044,14 +2168,6 @@ const LightboxComponent = {
|
|
|
2044
2168
|
type: "ratio-group"
|
|
2045
2169
|
},
|
|
2046
2170
|
enum: ["image", "50/50"]
|
|
2047
|
-
},
|
|
2048
|
-
duration: {
|
|
2049
|
-
type: "string",
|
|
2050
|
-
label: "T",
|
|
2051
|
-
display: {
|
|
2052
|
-
type: "step-selector"
|
|
2053
|
-
},
|
|
2054
|
-
enum: ["100ms", "250ms", "500ms", "1000ms", "1500ms", "2000ms"]
|
|
2055
2171
|
}
|
|
2056
2172
|
}
|
|
2057
2173
|
},
|
|
@@ -2074,6 +2190,14 @@ const LightboxComponent = {
|
|
|
2074
2190
|
type: "ratio-group"
|
|
2075
2191
|
},
|
|
2076
2192
|
enum: ["horiz", "vert"]
|
|
2193
|
+
},
|
|
2194
|
+
duration: {
|
|
2195
|
+
type: "string",
|
|
2196
|
+
label: "T",
|
|
2197
|
+
display: {
|
|
2198
|
+
type: "step-selector"
|
|
2199
|
+
},
|
|
2200
|
+
enum: ["100ms", "250ms", "500ms", "1000ms", "1500ms", "2000ms"]
|
|
2077
2201
|
}
|
|
2078
2202
|
}
|
|
2079
2203
|
},
|
|
@@ -2131,13 +2255,16 @@ const LightboxComponent = {
|
|
|
2131
2255
|
height: {
|
|
2132
2256
|
type: "number",
|
|
2133
2257
|
label: "H",
|
|
2258
|
+
scalingEnabled: true,
|
|
2134
2259
|
display: {
|
|
2135
|
-
type: "numeric-input"
|
|
2260
|
+
type: "numeric-input",
|
|
2261
|
+
visible: true
|
|
2136
2262
|
}
|
|
2137
2263
|
},
|
|
2138
2264
|
width: {
|
|
2139
2265
|
type: "number",
|
|
2140
2266
|
label: "W",
|
|
2267
|
+
scalingEnabled: true,
|
|
2141
2268
|
display: {
|
|
2142
2269
|
type: "numeric-input",
|
|
2143
2270
|
visible: false
|
|
@@ -2146,6 +2273,7 @@ const LightboxComponent = {
|
|
|
2146
2273
|
gap: {
|
|
2147
2274
|
type: "number",
|
|
2148
2275
|
label: "Gap",
|
|
2276
|
+
scalingEnabled: true,
|
|
2149
2277
|
display: {
|
|
2150
2278
|
type: "numeric-input"
|
|
2151
2279
|
}
|
|
@@ -2154,15 +2282,28 @@ const LightboxComponent = {
|
|
|
2154
2282
|
},
|
|
2155
2283
|
offset: {
|
|
2156
2284
|
type: "object",
|
|
2285
|
+
title: "Offset",
|
|
2157
2286
|
display: {
|
|
2158
|
-
type: "
|
|
2287
|
+
type: "group"
|
|
2159
2288
|
},
|
|
2160
2289
|
properties: {
|
|
2161
2290
|
x: {
|
|
2162
|
-
type: "number"
|
|
2291
|
+
type: "number",
|
|
2292
|
+
label: "X",
|
|
2293
|
+
scalingEnabled: true,
|
|
2294
|
+
display: {
|
|
2295
|
+
type: "numeric-input",
|
|
2296
|
+
visible: true
|
|
2297
|
+
}
|
|
2163
2298
|
},
|
|
2164
2299
|
y: {
|
|
2165
|
-
type: "number"
|
|
2300
|
+
type: "number",
|
|
2301
|
+
label: "Y",
|
|
2302
|
+
scalingEnabled: true,
|
|
2303
|
+
display: {
|
|
2304
|
+
type: "numeric-input",
|
|
2305
|
+
visible: true
|
|
2306
|
+
}
|
|
2166
2307
|
}
|
|
2167
2308
|
}
|
|
2168
2309
|
},
|
|
@@ -2187,7 +2328,7 @@ const LightboxComponent = {
|
|
|
2187
2328
|
scale: {
|
|
2188
2329
|
type: "number",
|
|
2189
2330
|
title: "Scale",
|
|
2190
|
-
min:
|
|
2331
|
+
min: 1,
|
|
2191
2332
|
max: 5,
|
|
2192
2333
|
step: 0.1,
|
|
2193
2334
|
display: {
|
|
@@ -2224,15 +2365,28 @@ const LightboxComponent = {
|
|
|
2224
2365
|
},
|
|
2225
2366
|
offset: {
|
|
2226
2367
|
type: "object",
|
|
2368
|
+
title: "Offset",
|
|
2227
2369
|
display: {
|
|
2228
|
-
type: "
|
|
2370
|
+
type: "group"
|
|
2229
2371
|
},
|
|
2230
2372
|
properties: {
|
|
2231
2373
|
x: {
|
|
2232
|
-
type: "number"
|
|
2374
|
+
type: "number",
|
|
2375
|
+
label: "X",
|
|
2376
|
+
scalingEnabled: true,
|
|
2377
|
+
display: {
|
|
2378
|
+
type: "numeric-input",
|
|
2379
|
+
visible: true
|
|
2380
|
+
}
|
|
2233
2381
|
},
|
|
2234
2382
|
y: {
|
|
2235
|
-
type: "number"
|
|
2383
|
+
type: "number",
|
|
2384
|
+
label: "Y",
|
|
2385
|
+
scalingEnabled: true,
|
|
2386
|
+
display: {
|
|
2387
|
+
type: "numeric-input",
|
|
2388
|
+
visible: true
|
|
2389
|
+
}
|
|
2236
2390
|
}
|
|
2237
2391
|
}
|
|
2238
2392
|
},
|
|
@@ -2278,16 +2432,29 @@ const LightboxComponent = {
|
|
|
2278
2432
|
}
|
|
2279
2433
|
},
|
|
2280
2434
|
offset: {
|
|
2435
|
+
title: "Offset",
|
|
2281
2436
|
type: "object",
|
|
2282
2437
|
display: {
|
|
2283
|
-
type: "
|
|
2438
|
+
type: "group"
|
|
2284
2439
|
},
|
|
2285
2440
|
properties: {
|
|
2286
2441
|
x: {
|
|
2287
|
-
type: "number"
|
|
2442
|
+
type: "number",
|
|
2443
|
+
label: "X",
|
|
2444
|
+
scalingEnabled: true,
|
|
2445
|
+
display: {
|
|
2446
|
+
type: "numeric-input",
|
|
2447
|
+
visible: true
|
|
2448
|
+
}
|
|
2288
2449
|
},
|
|
2289
2450
|
y: {
|
|
2290
|
-
type: "number"
|
|
2451
|
+
type: "number",
|
|
2452
|
+
label: "Y",
|
|
2453
|
+
scalingEnabled: true,
|
|
2454
|
+
display: {
|
|
2455
|
+
type: "numeric-input",
|
|
2456
|
+
visible: true
|
|
2457
|
+
}
|
|
2291
2458
|
}
|
|
2292
2459
|
}
|
|
2293
2460
|
},
|
|
@@ -2366,15 +2533,28 @@ const LightboxComponent = {
|
|
|
2366
2533
|
},
|
|
2367
2534
|
closeIconOffset: {
|
|
2368
2535
|
type: "object",
|
|
2536
|
+
title: "Offset",
|
|
2369
2537
|
display: {
|
|
2370
|
-
type: "
|
|
2538
|
+
type: "group"
|
|
2371
2539
|
},
|
|
2372
2540
|
properties: {
|
|
2373
2541
|
x: {
|
|
2374
|
-
type: "number"
|
|
2542
|
+
type: "number",
|
|
2543
|
+
label: "X",
|
|
2544
|
+
scalingEnabled: true,
|
|
2545
|
+
display: {
|
|
2546
|
+
type: "numeric-input",
|
|
2547
|
+
visible: true
|
|
2548
|
+
}
|
|
2375
2549
|
},
|
|
2376
2550
|
y: {
|
|
2377
|
-
type: "number"
|
|
2551
|
+
type: "number",
|
|
2552
|
+
label: "Y",
|
|
2553
|
+
scalingEnabled: true,
|
|
2554
|
+
display: {
|
|
2555
|
+
type: "numeric-input",
|
|
2556
|
+
visible: true
|
|
2557
|
+
}
|
|
2378
2558
|
}
|
|
2379
2559
|
}
|
|
2380
2560
|
}
|
|
@@ -2400,16 +2580,29 @@ const LightboxComponent = {
|
|
|
2400
2580
|
enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
|
|
2401
2581
|
},
|
|
2402
2582
|
offset: {
|
|
2583
|
+
title: "Offset",
|
|
2403
2584
|
type: "object",
|
|
2404
2585
|
display: {
|
|
2405
|
-
type: "
|
|
2586
|
+
type: "group"
|
|
2406
2587
|
},
|
|
2407
2588
|
properties: {
|
|
2408
2589
|
x: {
|
|
2409
|
-
type: "number"
|
|
2590
|
+
type: "number",
|
|
2591
|
+
label: "X",
|
|
2592
|
+
scalingEnabled: true,
|
|
2593
|
+
display: {
|
|
2594
|
+
type: "numeric-input",
|
|
2595
|
+
visible: true
|
|
2596
|
+
}
|
|
2410
2597
|
},
|
|
2411
2598
|
y: {
|
|
2412
|
-
type: "number"
|
|
2599
|
+
type: "number",
|
|
2600
|
+
label: "Y",
|
|
2601
|
+
scalingEnabled: true,
|
|
2602
|
+
display: {
|
|
2603
|
+
type: "numeric-input",
|
|
2604
|
+
visible: true
|
|
2605
|
+
}
|
|
2413
2606
|
}
|
|
2414
2607
|
}
|
|
2415
2608
|
},
|
|
@@ -2435,18 +2628,18 @@ const LightboxComponent = {
|
|
|
2435
2628
|
lightboxBlock: {
|
|
2436
2629
|
appear: {
|
|
2437
2630
|
type: "slide in",
|
|
2438
|
-
duration: "
|
|
2631
|
+
duration: "500ms",
|
|
2439
2632
|
direction: "right",
|
|
2440
|
-
repeat: "
|
|
2633
|
+
repeat: "loop"
|
|
2441
2634
|
},
|
|
2442
2635
|
triggers: {
|
|
2443
2636
|
type: "click",
|
|
2444
|
-
switch: "image"
|
|
2445
|
-
duration: "2000ms"
|
|
2637
|
+
switch: "image"
|
|
2446
2638
|
},
|
|
2447
2639
|
slider: {
|
|
2448
2640
|
type: "fade",
|
|
2449
|
-
direction: "horiz"
|
|
2641
|
+
direction: "horiz",
|
|
2642
|
+
duration: "1000ms"
|
|
2450
2643
|
},
|
|
2451
2644
|
thumbnail: {
|
|
2452
2645
|
isActive: true,
|
|
@@ -2455,12 +2648,12 @@ const LightboxComponent = {
|
|
|
2455
2648
|
align: "center",
|
|
2456
2649
|
triggers: "clk",
|
|
2457
2650
|
grid: {
|
|
2458
|
-
height:
|
|
2459
|
-
width:
|
|
2460
|
-
gap:
|
|
2651
|
+
height: 0.03,
|
|
2652
|
+
width: 0.03,
|
|
2653
|
+
gap: 8e-3
|
|
2461
2654
|
},
|
|
2462
2655
|
offset: { x: 0, y: 0 },
|
|
2463
|
-
opacity:
|
|
2656
|
+
opacity: 80,
|
|
2464
2657
|
activeState: {
|
|
2465
2658
|
scale: 1,
|
|
2466
2659
|
opacity: 100
|
|
@@ -2512,7 +2705,7 @@ const LightboxComponent = {
|
|
|
2512
2705
|
value: "vert"
|
|
2513
2706
|
},
|
|
2514
2707
|
then: {
|
|
2515
|
-
name: "properties.lightboxBlock.properties.thumbnail.properties.
|
|
2708
|
+
name: "properties.lightboxBlock.properties.thumbnail.properties.align.display.direction",
|
|
2516
2709
|
value: "vertical"
|
|
2517
2710
|
}
|
|
2518
2711
|
},
|
|
@@ -2575,47 +2768,27 @@ const LightboxComponent = {
|
|
|
2575
2768
|
name: "properties.lightboxBlock.properties.appear.properties.direction.display.visible",
|
|
2576
2769
|
value: false
|
|
2577
2770
|
}
|
|
2578
|
-
},
|
|
2579
|
-
{
|
|
2580
|
-
if: {
|
|
2581
|
-
name: "lightboxBlock.triggers.type",
|
|
2582
|
-
value: "click"
|
|
2583
|
-
},
|
|
2584
|
-
then: {
|
|
2585
|
-
name: "properties.lightboxBlock.properties.triggers.properties.duration.display.visible",
|
|
2586
|
-
value: true
|
|
2587
|
-
}
|
|
2588
|
-
},
|
|
2589
|
-
{
|
|
2590
|
-
if: {
|
|
2591
|
-
name: "lightboxBlock.triggers.type",
|
|
2592
|
-
value: "click"
|
|
2593
|
-
},
|
|
2594
|
-
then: {
|
|
2595
|
-
name: "properties.lightboxBlock.properties.triggers.properties.switch.display.visible",
|
|
2596
|
-
value: true
|
|
2597
|
-
}
|
|
2598
|
-
},
|
|
2599
|
-
{
|
|
2600
|
-
if: {
|
|
2601
|
-
name: "lightboxBlock.triggers.type",
|
|
2602
|
-
value: "drag"
|
|
2603
|
-
},
|
|
2604
|
-
then: {
|
|
2605
|
-
name: "properties.lightboxBlock.properties.triggers.properties.duration.display.visible",
|
|
2606
|
-
value: false
|
|
2607
|
-
}
|
|
2608
|
-
},
|
|
2609
|
-
{
|
|
2610
|
-
if: {
|
|
2611
|
-
name: "lightboxBlock.triggers.type",
|
|
2612
|
-
value: "drag"
|
|
2613
|
-
},
|
|
2614
|
-
then: {
|
|
2615
|
-
name: "properties.lightboxBlock.properties.triggers.properties.switch.display.visible",
|
|
2616
|
-
value: false
|
|
2617
|
-
}
|
|
2618
2771
|
}
|
|
2772
|
+
// {
|
|
2773
|
+
// if: {
|
|
2774
|
+
// name: 'lightboxBlock.triggers.type',
|
|
2775
|
+
// value: 'click'
|
|
2776
|
+
// },
|
|
2777
|
+
// then: {
|
|
2778
|
+
// name: 'properties.lightboxBlock.properties.slider.properties.switch.display.visible',
|
|
2779
|
+
// value: true
|
|
2780
|
+
// }
|
|
2781
|
+
// },
|
|
2782
|
+
// {
|
|
2783
|
+
// if: {
|
|
2784
|
+
// name: 'lightboxBlock.triggers.type',
|
|
2785
|
+
// value: 'drag'
|
|
2786
|
+
// },
|
|
2787
|
+
// then: {
|
|
2788
|
+
// name: 'properties.lightboxBlock.properties.slider.properties.switch.display.visible',
|
|
2789
|
+
// value: false
|
|
2790
|
+
// }
|
|
2791
|
+
// }
|
|
2619
2792
|
]
|
|
2620
2793
|
},
|
|
2621
2794
|
content: {
|