@cntrl-site/sdk 1.23.1-11 → 1.23.1-13
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/LICENSE +21 -21
- package/README.md +2 -2
- package/dist/Components/ControlSlider/ControlSlider.d.ts +1 -2
- package/dist/Components/ImageRevealSlider/ImageRevealSlider.d.ts +1 -2
- package/dist/index.js +417 -150
- package/dist/index.mjs +417 -150
- package/package.json +83 -83
- package/resources/template.scss.ejs +50 -50
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { URL } from "url";
|
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import UAParser from "ua-parser-js";
|
|
5
5
|
import * as MP4Box from "mp4box";
|
|
6
|
-
import {
|
|
6
|
+
import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
|
|
7
7
|
import { useState, useEffect, useRef } from "react";
|
|
8
8
|
import { Splide, SplideSlide } from "@splidejs/react-splide";
|
|
9
9
|
import cn from "classnames";
|
|
@@ -1310,15 +1310,31 @@ const RichTextRenderer = ({ content }) => {
|
|
|
1310
1310
|
const getChildren = (children) => {
|
|
1311
1311
|
return children.map((child, i) => {
|
|
1312
1312
|
if (child.type === "link") {
|
|
1313
|
-
return /* @__PURE__ */
|
|
1313
|
+
return /* @__PURE__ */ jsxDEV("a", { className: styles$2.link, href: child.value, target: child.target, children: getChildren(child.children) }, i, false, {
|
|
1314
|
+
fileName: "H:/mom/sdk/src/Components/helpers/RichTextRenderer/RichTextRenderer.tsx",
|
|
1315
|
+
lineNumber: 13,
|
|
1316
|
+
columnNumber: 16
|
|
1317
|
+
}, void 0);
|
|
1314
1318
|
}
|
|
1315
|
-
return /* @__PURE__ */
|
|
1319
|
+
return /* @__PURE__ */ jsxDEV("span", { style: getLeafCss(child), children: child.text }, i, false, {
|
|
1320
|
+
fileName: "H:/mom/sdk/src/Components/helpers/RichTextRenderer/RichTextRenderer.tsx",
|
|
1321
|
+
lineNumber: 15,
|
|
1322
|
+
columnNumber: 14
|
|
1323
|
+
}, void 0);
|
|
1316
1324
|
});
|
|
1317
1325
|
};
|
|
1318
|
-
return /* @__PURE__ */
|
|
1326
|
+
return /* @__PURE__ */ jsxDEV(Fragment, { children: content.map((block, i) => {
|
|
1319
1327
|
const children = block.children;
|
|
1320
|
-
return /* @__PURE__ */
|
|
1321
|
-
|
|
1328
|
+
return /* @__PURE__ */ jsxDEV("div", { children: getChildren(children) }, i, false, {
|
|
1329
|
+
fileName: "H:/mom/sdk/src/Components/helpers/RichTextRenderer/RichTextRenderer.tsx",
|
|
1330
|
+
lineNumber: 23,
|
|
1331
|
+
columnNumber: 11
|
|
1332
|
+
}, void 0);
|
|
1333
|
+
}) }, void 0, false, {
|
|
1334
|
+
fileName: "H:/mom/sdk/src/Components/helpers/RichTextRenderer/RichTextRenderer.tsx",
|
|
1335
|
+
lineNumber: 19,
|
|
1336
|
+
columnNumber: 5
|
|
1337
|
+
}, void 0);
|
|
1322
1338
|
};
|
|
1323
1339
|
function getLeafCss(leaf) {
|
|
1324
1340
|
return {
|
|
@@ -1351,9 +1367,13 @@ const SvgImage = ({ url, fill = "#000000", hoverFill = "#CCCCCC", className = ""
|
|
|
1351
1367
|
}
|
|
1352
1368
|
}, []);
|
|
1353
1369
|
if (!url.endsWith(".svg") || !supportsMask) {
|
|
1354
|
-
return /* @__PURE__ */
|
|
1370
|
+
return /* @__PURE__ */ jsxDEV("img", { src: url, alt: "", className: cn(styles$1.img, className) }, void 0, false, {
|
|
1371
|
+
fileName: "H:/mom/sdk/src/Components/helpers/SvgImage/SvgImage.tsx",
|
|
1372
|
+
lineNumber: 23,
|
|
1373
|
+
columnNumber: 12
|
|
1374
|
+
}, void 0);
|
|
1355
1375
|
}
|
|
1356
|
-
return /* @__PURE__ */
|
|
1376
|
+
return /* @__PURE__ */ jsxDEV(
|
|
1357
1377
|
"span",
|
|
1358
1378
|
{
|
|
1359
1379
|
"data-supports-mask": supportsMask,
|
|
@@ -1363,7 +1383,15 @@ const SvgImage = ({ url, fill = "#000000", hoverFill = "#CCCCCC", className = ""
|
|
|
1363
1383
|
"--fill": fill,
|
|
1364
1384
|
"--hover-fill": hoverFill
|
|
1365
1385
|
}
|
|
1366
|
-
}
|
|
1386
|
+
},
|
|
1387
|
+
void 0,
|
|
1388
|
+
false,
|
|
1389
|
+
{
|
|
1390
|
+
fileName: "H:/mom/sdk/src/Components/helpers/SvgImage/SvgImage.tsx",
|
|
1391
|
+
lineNumber: 27,
|
|
1392
|
+
columnNumber: 5
|
|
1393
|
+
},
|
|
1394
|
+
void 0
|
|
1367
1395
|
);
|
|
1368
1396
|
};
|
|
1369
1397
|
const alignmentClassName = {
|
|
@@ -1410,19 +1438,19 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1410
1438
|
setKey((prev) => prev + 1);
|
|
1411
1439
|
prevSliderTypeRef.current = transition.type;
|
|
1412
1440
|
}, [transition.type]);
|
|
1413
|
-
return /* @__PURE__ */
|
|
1441
|
+
return /* @__PURE__ */ jsxDEV("div", { className: cn(styles$3.wrapper, { [styles$3.editor]: isEditor }), ref: setWrapperRef, children: /* @__PURE__ */ jsxDEV("div", { className: styles$3.sliderInner, style: {
|
|
1414
1442
|
width: sliderDimensions ? sliderDimensions.width : "100%",
|
|
1415
1443
|
height: sliderDimensions ? sliderDimensions.height : "100%"
|
|
1416
1444
|
}, children: [
|
|
1417
|
-
settings.caption.isActive && /* @__PURE__ */
|
|
1445
|
+
settings.caption.isActive && /* @__PURE__ */ jsxDEV(
|
|
1418
1446
|
"div",
|
|
1419
1447
|
{
|
|
1420
1448
|
className: cn(styles$3.captionBlock),
|
|
1421
|
-
children: /* @__PURE__ */
|
|
1449
|
+
children: /* @__PURE__ */ jsxDEV(
|
|
1422
1450
|
"div",
|
|
1423
1451
|
{
|
|
1424
1452
|
className: styles$3.captionTextWrapper,
|
|
1425
|
-
children: content.map((item, index) => /* @__PURE__ */
|
|
1453
|
+
children: content.map((item, index) => /* @__PURE__ */ jsxDEV(
|
|
1426
1454
|
"div",
|
|
1427
1455
|
{
|
|
1428
1456
|
className: cn(styles$3.captionText, alignmentClassName[caption.alignment], {
|
|
@@ -1445,7 +1473,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1445
1473
|
color,
|
|
1446
1474
|
transitionDuration: transition.duration ? `${Math.round(parseInt(transition.duration) / 2)}ms` : "500ms"
|
|
1447
1475
|
},
|
|
1448
|
-
children: /* @__PURE__ */
|
|
1476
|
+
children: /* @__PURE__ */ jsxDEV(
|
|
1449
1477
|
"div",
|
|
1450
1478
|
{
|
|
1451
1479
|
"data-styles": "caption",
|
|
@@ -1456,17 +1484,52 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1456
1484
|
top: scalingValue(caption.offset.y, isEditor),
|
|
1457
1485
|
left: scalingValue(caption.offset.x, isEditor)
|
|
1458
1486
|
},
|
|
1459
|
-
children: /* @__PURE__ */
|
|
1460
|
-
|
|
1487
|
+
children: /* @__PURE__ */ jsxDEV(RichTextRenderer, { content: item.imageCaption }, void 0, false, {
|
|
1488
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1489
|
+
lineNumber: 111,
|
|
1490
|
+
columnNumber: 19
|
|
1491
|
+
}, this)
|
|
1492
|
+
},
|
|
1493
|
+
void 0,
|
|
1494
|
+
false,
|
|
1495
|
+
{
|
|
1496
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1497
|
+
lineNumber: 101,
|
|
1498
|
+
columnNumber: 17
|
|
1499
|
+
},
|
|
1500
|
+
this
|
|
1461
1501
|
)
|
|
1462
1502
|
},
|
|
1463
|
-
index
|
|
1503
|
+
index,
|
|
1504
|
+
false,
|
|
1505
|
+
{
|
|
1506
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1507
|
+
lineNumber: 78,
|
|
1508
|
+
columnNumber: 15
|
|
1509
|
+
},
|
|
1510
|
+
this
|
|
1464
1511
|
))
|
|
1465
|
-
}
|
|
1512
|
+
},
|
|
1513
|
+
void 0,
|
|
1514
|
+
false,
|
|
1515
|
+
{
|
|
1516
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1517
|
+
lineNumber: 74,
|
|
1518
|
+
columnNumber: 11
|
|
1519
|
+
},
|
|
1520
|
+
this
|
|
1466
1521
|
)
|
|
1467
|
-
}
|
|
1522
|
+
},
|
|
1523
|
+
void 0,
|
|
1524
|
+
false,
|
|
1525
|
+
{
|
|
1526
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1527
|
+
lineNumber: 71,
|
|
1528
|
+
columnNumber: 9
|
|
1529
|
+
},
|
|
1530
|
+
this
|
|
1468
1531
|
),
|
|
1469
|
-
/* @__PURE__ */
|
|
1532
|
+
/* @__PURE__ */ jsxDEV(
|
|
1470
1533
|
Splide,
|
|
1471
1534
|
{
|
|
1472
1535
|
onMove: (e) => {
|
|
@@ -1489,15 +1552,15 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1489
1552
|
type: transition.type === "fade in" ? "fade" : "loop",
|
|
1490
1553
|
rewind: true
|
|
1491
1554
|
},
|
|
1492
|
-
children: content.map((item, index) => /* @__PURE__ */
|
|
1555
|
+
children: content.map((item, index) => /* @__PURE__ */ jsxDEV(SplideSlide, { children: /* @__PURE__ */ jsxDEV(
|
|
1493
1556
|
"div",
|
|
1494
1557
|
{
|
|
1495
1558
|
className: styles$3.sliderItem,
|
|
1496
|
-
children: /* @__PURE__ */
|
|
1559
|
+
children: /* @__PURE__ */ jsxDEV(
|
|
1497
1560
|
"div",
|
|
1498
1561
|
{
|
|
1499
1562
|
className: styles$3.imgWrapper,
|
|
1500
|
-
children: /* @__PURE__ */
|
|
1563
|
+
children: /* @__PURE__ */ jsxDEV(
|
|
1501
1564
|
"img",
|
|
1502
1565
|
{
|
|
1503
1566
|
className: cn(styles$3.sliderImage, {
|
|
@@ -1506,17 +1569,52 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1506
1569
|
}),
|
|
1507
1570
|
src: item.image.url,
|
|
1508
1571
|
alt: item.image.name ?? ""
|
|
1509
|
-
}
|
|
1572
|
+
},
|
|
1573
|
+
void 0,
|
|
1574
|
+
false,
|
|
1575
|
+
{
|
|
1576
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1577
|
+
lineNumber: 149,
|
|
1578
|
+
columnNumber: 17
|
|
1579
|
+
},
|
|
1580
|
+
this
|
|
1510
1581
|
)
|
|
1511
|
-
}
|
|
1582
|
+
},
|
|
1583
|
+
void 0,
|
|
1584
|
+
false,
|
|
1585
|
+
{
|
|
1586
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1587
|
+
lineNumber: 146,
|
|
1588
|
+
columnNumber: 15
|
|
1589
|
+
},
|
|
1590
|
+
this
|
|
1512
1591
|
)
|
|
1513
|
-
}
|
|
1514
|
-
|
|
1592
|
+
},
|
|
1593
|
+
void 0,
|
|
1594
|
+
false,
|
|
1595
|
+
{
|
|
1596
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1597
|
+
lineNumber: 143,
|
|
1598
|
+
columnNumber: 13
|
|
1599
|
+
},
|
|
1600
|
+
this
|
|
1601
|
+
) }, index, false, {
|
|
1602
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1603
|
+
lineNumber: 142,
|
|
1604
|
+
columnNumber: 11
|
|
1605
|
+
}, this))
|
|
1515
1606
|
},
|
|
1516
|
-
key
|
|
1607
|
+
key,
|
|
1608
|
+
false,
|
|
1609
|
+
{
|
|
1610
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1611
|
+
lineNumber: 118,
|
|
1612
|
+
columnNumber: 7
|
|
1613
|
+
},
|
|
1614
|
+
this
|
|
1517
1615
|
),
|
|
1518
|
-
controls.isActive && /* @__PURE__ */
|
|
1519
|
-
/* @__PURE__ */
|
|
1616
|
+
controls.isActive && /* @__PURE__ */ jsxDEV(Fragment, { children: [
|
|
1617
|
+
/* @__PURE__ */ jsxDEV(
|
|
1520
1618
|
"div",
|
|
1521
1619
|
{
|
|
1522
1620
|
className: cn(styles$3.arrow, {
|
|
@@ -1526,7 +1624,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1526
1624
|
color: controls.color,
|
|
1527
1625
|
["--arrow-hover-color"]: controls.hover
|
|
1528
1626
|
},
|
|
1529
|
-
children: /* @__PURE__ */
|
|
1627
|
+
children: /* @__PURE__ */ jsxDEV(
|
|
1530
1628
|
"button",
|
|
1531
1629
|
{
|
|
1532
1630
|
onClick: () => {
|
|
@@ -1537,22 +1635,50 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1537
1635
|
transform: `translate(${scalingValue(controlsOffsetX, isEditor)}, ${scalingValue(controlsOffsetY * (direction === "horiz" ? 1 : -1), isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horiz" ? "0deg" : "90deg"})`
|
|
1538
1636
|
},
|
|
1539
1637
|
children: [
|
|
1540
|
-
controls.arrowsImgUrl && /* @__PURE__ */
|
|
1638
|
+
controls.arrowsImgUrl && /* @__PURE__ */ jsxDEV(
|
|
1541
1639
|
SvgImage,
|
|
1542
1640
|
{
|
|
1543
1641
|
url: controls.arrowsImgUrl,
|
|
1544
1642
|
fill: controls.color,
|
|
1545
1643
|
hoverFill: controls.hover,
|
|
1546
1644
|
className: cn(styles$3.arrowImg, styles$3.mirror)
|
|
1547
|
-
}
|
|
1645
|
+
},
|
|
1646
|
+
void 0,
|
|
1647
|
+
false,
|
|
1648
|
+
{
|
|
1649
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1650
|
+
lineNumber: 182,
|
|
1651
|
+
columnNumber: 17
|
|
1652
|
+
},
|
|
1653
|
+
this
|
|
1548
1654
|
),
|
|
1549
|
-
!controls.arrowsImgUrl && /* @__PURE__ */
|
|
1655
|
+
!controls.arrowsImgUrl && /* @__PURE__ */ jsxDEV(ArrowIcon, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg, styles$3.mirror) }, void 0, false, {
|
|
1656
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1657
|
+
lineNumber: 190,
|
|
1658
|
+
columnNumber: 17
|
|
1659
|
+
}, this)
|
|
1550
1660
|
]
|
|
1551
|
-
}
|
|
1661
|
+
},
|
|
1662
|
+
void 0,
|
|
1663
|
+
true,
|
|
1664
|
+
{
|
|
1665
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1666
|
+
lineNumber: 172,
|
|
1667
|
+
columnNumber: 13
|
|
1668
|
+
},
|
|
1669
|
+
this
|
|
1552
1670
|
)
|
|
1553
|
-
}
|
|
1671
|
+
},
|
|
1672
|
+
void 0,
|
|
1673
|
+
false,
|
|
1674
|
+
{
|
|
1675
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1676
|
+
lineNumber: 163,
|
|
1677
|
+
columnNumber: 11
|
|
1678
|
+
},
|
|
1679
|
+
this
|
|
1554
1680
|
),
|
|
1555
|
-
/* @__PURE__ */
|
|
1681
|
+
/* @__PURE__ */ jsxDEV(
|
|
1556
1682
|
"div",
|
|
1557
1683
|
{
|
|
1558
1684
|
className: cn(styles$3.arrow, styles$3.nextArrow, {
|
|
@@ -1562,7 +1688,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1562
1688
|
color: controls.color,
|
|
1563
1689
|
["--arrow-hover-color"]: controls.hover
|
|
1564
1690
|
},
|
|
1565
|
-
children: /* @__PURE__ */
|
|
1691
|
+
children: /* @__PURE__ */ jsxDEV(
|
|
1566
1692
|
"button",
|
|
1567
1693
|
{
|
|
1568
1694
|
className: styles$3.arrowInner,
|
|
@@ -1571,23 +1697,55 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1571
1697
|
transform: `translate(${scalingValue(controlsOffsetX * (direction === "horiz" ? -1 : 1), isEditor)}, ${scalingValue(controlsOffsetY, isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horiz" ? "0deg" : "90deg"})`
|
|
1572
1698
|
},
|
|
1573
1699
|
children: [
|
|
1574
|
-
controls.arrowsImgUrl && /* @__PURE__ */
|
|
1700
|
+
controls.arrowsImgUrl && /* @__PURE__ */ jsxDEV(
|
|
1575
1701
|
SvgImage,
|
|
1576
1702
|
{
|
|
1577
1703
|
url: controls.arrowsImgUrl,
|
|
1578
1704
|
fill: controls.color,
|
|
1579
1705
|
hoverFill: controls.hover,
|
|
1580
1706
|
className: styles$3.arrowImg
|
|
1581
|
-
}
|
|
1707
|
+
},
|
|
1708
|
+
void 0,
|
|
1709
|
+
false,
|
|
1710
|
+
{
|
|
1711
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1712
|
+
lineNumber: 211,
|
|
1713
|
+
columnNumber: 17
|
|
1714
|
+
},
|
|
1715
|
+
this
|
|
1582
1716
|
),
|
|
1583
|
-
!controls.arrowsImgUrl && /* @__PURE__ */
|
|
1717
|
+
!controls.arrowsImgUrl && /* @__PURE__ */ jsxDEV(ArrowIcon, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg) }, void 0, false, {
|
|
1718
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1719
|
+
lineNumber: 219,
|
|
1720
|
+
columnNumber: 17
|
|
1721
|
+
}, this)
|
|
1584
1722
|
]
|
|
1585
|
-
}
|
|
1723
|
+
},
|
|
1724
|
+
void 0,
|
|
1725
|
+
true,
|
|
1726
|
+
{
|
|
1727
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1728
|
+
lineNumber: 203,
|
|
1729
|
+
columnNumber: 13
|
|
1730
|
+
},
|
|
1731
|
+
this
|
|
1586
1732
|
)
|
|
1587
|
-
}
|
|
1733
|
+
},
|
|
1734
|
+
void 0,
|
|
1735
|
+
false,
|
|
1736
|
+
{
|
|
1737
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1738
|
+
lineNumber: 194,
|
|
1739
|
+
columnNumber: 11
|
|
1740
|
+
},
|
|
1741
|
+
this
|
|
1588
1742
|
)
|
|
1589
|
-
] }
|
|
1590
|
-
|
|
1743
|
+
] }, void 0, true, {
|
|
1744
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1745
|
+
lineNumber: 162,
|
|
1746
|
+
columnNumber: 9
|
|
1747
|
+
}, this),
|
|
1748
|
+
triggers.triggersList.click && /* @__PURE__ */ jsxDEV(
|
|
1591
1749
|
"div",
|
|
1592
1750
|
{
|
|
1593
1751
|
className: styles$3.clickOverlay,
|
|
@@ -1596,9 +1754,17 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1596
1754
|
sliderRef.go("+1");
|
|
1597
1755
|
}
|
|
1598
1756
|
}
|
|
1599
|
-
}
|
|
1757
|
+
},
|
|
1758
|
+
void 0,
|
|
1759
|
+
false,
|
|
1760
|
+
{
|
|
1761
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1762
|
+
lineNumber: 226,
|
|
1763
|
+
columnNumber: 9
|
|
1764
|
+
},
|
|
1765
|
+
this
|
|
1600
1766
|
),
|
|
1601
|
-
pagination2.isActive && /* @__PURE__ */
|
|
1767
|
+
pagination2.isActive && /* @__PURE__ */ jsxDEV(
|
|
1602
1768
|
"div",
|
|
1603
1769
|
{
|
|
1604
1770
|
className: cn(styles$3.pagination, {
|
|
@@ -1612,7 +1778,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1612
1778
|
[styles$3.paginationOutsideRight]: pagination2.position === "outside-2" && direction === "vert",
|
|
1613
1779
|
[styles$3.paginationVertical]: direction === "vert"
|
|
1614
1780
|
}),
|
|
1615
|
-
children: /* @__PURE__ */
|
|
1781
|
+
children: /* @__PURE__ */ jsxDEV(
|
|
1616
1782
|
"div",
|
|
1617
1783
|
{
|
|
1618
1784
|
className: styles$3.paginationInner,
|
|
@@ -1620,7 +1786,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1620
1786
|
backgroundColor: pagination2.colors[2],
|
|
1621
1787
|
transform: `scale(${pagination2.scale / 100}) translate(${scalingValue(pagination2.offset.x, isEditor)}, ${scalingValue(pagination2.offset.y, isEditor)}) rotate(${direction === "horiz" ? "0deg" : "90deg"})`
|
|
1622
1788
|
},
|
|
1623
|
-
children: content.map((_, index) => /* @__PURE__ */
|
|
1789
|
+
children: content.map((_, index) => /* @__PURE__ */ jsxDEV(
|
|
1624
1790
|
"button",
|
|
1625
1791
|
{
|
|
1626
1792
|
onClick: () => {
|
|
@@ -1629,7 +1795,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1629
1795
|
}
|
|
1630
1796
|
},
|
|
1631
1797
|
className: cn(styles$3.paginationItem),
|
|
1632
|
-
children: /* @__PURE__ */
|
|
1798
|
+
children: /* @__PURE__ */ jsxDEV(
|
|
1633
1799
|
"div",
|
|
1634
1800
|
{
|
|
1635
1801
|
className: cn(styles$3.dot, {
|
|
@@ -1639,19 +1805,70 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
|
|
|
1639
1805
|
backgroundColor: index === currentSlideIndex ? pagination2.colors[0] : pagination2.colors[1],
|
|
1640
1806
|
["--pagination-hover-color"]: pagination2.hover
|
|
1641
1807
|
}
|
|
1642
|
-
}
|
|
1808
|
+
},
|
|
1809
|
+
void 0,
|
|
1810
|
+
false,
|
|
1811
|
+
{
|
|
1812
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1813
|
+
lineNumber: 266,
|
|
1814
|
+
columnNumber: 17
|
|
1815
|
+
},
|
|
1816
|
+
this
|
|
1643
1817
|
)
|
|
1644
1818
|
},
|
|
1645
|
-
index
|
|
1819
|
+
index,
|
|
1820
|
+
false,
|
|
1821
|
+
{
|
|
1822
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1823
|
+
lineNumber: 257,
|
|
1824
|
+
columnNumber: 15
|
|
1825
|
+
},
|
|
1826
|
+
this
|
|
1646
1827
|
))
|
|
1647
|
-
}
|
|
1828
|
+
},
|
|
1829
|
+
void 0,
|
|
1830
|
+
false,
|
|
1831
|
+
{
|
|
1832
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1833
|
+
lineNumber: 249,
|
|
1834
|
+
columnNumber: 11
|
|
1835
|
+
},
|
|
1836
|
+
this
|
|
1648
1837
|
)
|
|
1649
|
-
}
|
|
1838
|
+
},
|
|
1839
|
+
void 0,
|
|
1840
|
+
false,
|
|
1841
|
+
{
|
|
1842
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1843
|
+
lineNumber: 236,
|
|
1844
|
+
columnNumber: 9
|
|
1845
|
+
},
|
|
1846
|
+
this
|
|
1650
1847
|
)
|
|
1651
|
-
] }
|
|
1848
|
+
] }, void 0, true, {
|
|
1849
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1850
|
+
lineNumber: 66,
|
|
1851
|
+
columnNumber: 7
|
|
1852
|
+
}, this) }, void 0, false, {
|
|
1853
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1854
|
+
lineNumber: 65,
|
|
1855
|
+
columnNumber: 5
|
|
1856
|
+
}, this);
|
|
1652
1857
|
}
|
|
1653
1858
|
function ArrowIcon({ color, className }) {
|
|
1654
|
-
return /* @__PURE__ */
|
|
1859
|
+
return /* @__PURE__ */ jsxDEV("svg", { viewBox: "0 0 10 18", className, children: /* @__PURE__ */ jsxDEV("g", { id: "Symbols", stroke: "none", strokeWidth: "1", fillRule: "evenodd", children: /* @__PURE__ */ jsxDEV("path", { d: "M-3.70710678,4.29289322 C-3.34662282,3.93240926 -2.77939176,3.90467972 -2.38710056,4.20970461 L-2.29289322,4.29289322 L5,11.585 L12.2928932,4.29289322 C12.6533772,3.93240926 13.2206082,3.90467972 13.6128994,4.20970461 L13.7071068,4.29289322 C14.0675907,4.65337718 14.0953203,5.22060824 13.7902954,5.61289944 L13.7071068,5.70710678 L5.70710678,13.7071068 C5.34662282,14.0675907 4.77939176,14.0953203 4.38710056,13.7902954 L4.29289322,13.7071068 L-3.70710678,5.70710678 C-4.09763107,5.31658249 -4.09763107,4.68341751 -3.70710678,4.29289322 Z", id: "Shape-Copy", fill: color, transform: "translate(5, 9) rotate(-90) translate(-5, -9)" }, void 0, false, {
|
|
1860
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1861
|
+
lineNumber: 289,
|
|
1862
|
+
columnNumber: 11
|
|
1863
|
+
}, this) }, void 0, false, {
|
|
1864
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1865
|
+
lineNumber: 288,
|
|
1866
|
+
columnNumber: 7
|
|
1867
|
+
}, this) }, void 0, false, {
|
|
1868
|
+
fileName: "H:/mom/sdk/src/Components/ControlSlider/ControlSlider.tsx",
|
|
1869
|
+
lineNumber: 287,
|
|
1870
|
+
columnNumber: 5
|
|
1871
|
+
}, this);
|
|
1655
1872
|
}
|
|
1656
1873
|
const ControlSliderComponent = {
|
|
1657
1874
|
element: ControlSlider,
|
|
@@ -2202,112 +2419,119 @@ function isMouseOverImage(mouseX, mouseY, placedImages) {
|
|
|
2202
2419
|
}
|
|
2203
2420
|
return false;
|
|
2204
2421
|
}
|
|
2422
|
+
function getImageSize(url) {
|
|
2423
|
+
return new Promise((resolve) => {
|
|
2424
|
+
const img2 = new Image();
|
|
2425
|
+
img2.src = url;
|
|
2426
|
+
img2.onload = () => {
|
|
2427
|
+
resolve({ width: img2.naturalWidth, height: img2.naturalHeight });
|
|
2428
|
+
};
|
|
2429
|
+
});
|
|
2430
|
+
}
|
|
2431
|
+
async function calculateImageWidthHeight(imgUrl, sizeType, customWidth, randomRange) {
|
|
2432
|
+
let width;
|
|
2433
|
+
let height;
|
|
2434
|
+
if (sizeType === "custom") {
|
|
2435
|
+
width = customWidth;
|
|
2436
|
+
const size = await getImageSize(imgUrl);
|
|
2437
|
+
height = size.height / size.width * width;
|
|
2438
|
+
} else if (sizeType === "random") {
|
|
2439
|
+
width = Math.random() * (randomRange.max - randomRange.min) + randomRange.min;
|
|
2440
|
+
const size = await getImageSize(imgUrl);
|
|
2441
|
+
height = size.height / size.width * width;
|
|
2442
|
+
} else {
|
|
2443
|
+
const size = await getImageSize(imgUrl);
|
|
2444
|
+
width = size.width;
|
|
2445
|
+
height = size.height;
|
|
2446
|
+
}
|
|
2447
|
+
return { width, height, finalWidth: `${width}px` };
|
|
2448
|
+
}
|
|
2205
2449
|
function ImageRevealSlider({ settings, content, isEditor }) {
|
|
2206
|
-
const revealPosition = settings.position.revealPosition;
|
|
2207
|
-
const visibleType = settings.position.visible;
|
|
2208
|
-
const sizeType = settings.imageSize.sizeType;
|
|
2209
|
-
const customWidth = settings.imageSize.imageWidth;
|
|
2210
|
-
const randomRange = settings.imageSize.randomRangeImageWidth;
|
|
2211
|
-
const clickTarget = settings.position.target;
|
|
2212
|
-
const defaultCursorUrl = settings.cursor.defaultCursor;
|
|
2213
|
-
const hoverCursorUrl = settings.cursor.hoverCursor;
|
|
2214
|
-
const cursorType = settings.cursor.cursorType;
|
|
2215
|
-
const [counter, setCounter] = useState(0);
|
|
2216
2450
|
const divRef = useRef(null);
|
|
2217
2451
|
const [placedImages, setPlacedImages] = useState([]);
|
|
2452
|
+
const [counter, setCounter] = useState(0);
|
|
2218
2453
|
const imageIdCounter = useRef(0);
|
|
2454
|
+
const defaultImageCount = 1;
|
|
2455
|
+
const { sizeType, imageWidth: customWidth, randomRangeImageWidth: randomRange } = settings.imageSize;
|
|
2456
|
+
const { revealPosition, visible, target } = settings.position;
|
|
2457
|
+
const { cursorType, defaultCursor, hoverCursor } = settings.cursor;
|
|
2458
|
+
const createNewImage = async (imgData, containerWidth, containerHeight, position = {}) => {
|
|
2459
|
+
const { width, height, finalWidth } = await calculateImageWidthHeight(
|
|
2460
|
+
imgData.url,
|
|
2461
|
+
sizeType,
|
|
2462
|
+
customWidth,
|
|
2463
|
+
randomRange
|
|
2464
|
+
);
|
|
2465
|
+
let x = position.x ?? Math.random() * containerWidth;
|
|
2466
|
+
let y = position.y ?? Math.random() * containerHeight;
|
|
2467
|
+
const adjustedX = Math.min(Math.max(x, width / 2), containerWidth - width / 2);
|
|
2468
|
+
const adjustedY = Math.min(Math.max(y, height / 2), containerHeight - height / 2);
|
|
2469
|
+
return {
|
|
2470
|
+
id: imageIdCounter.current++,
|
|
2471
|
+
url: imgData.url,
|
|
2472
|
+
name: imgData.name,
|
|
2473
|
+
x: adjustedX,
|
|
2474
|
+
y: adjustedY,
|
|
2475
|
+
width: finalWidth
|
|
2476
|
+
};
|
|
2477
|
+
};
|
|
2219
2478
|
useEffect(() => {
|
|
2220
|
-
if (
|
|
2221
|
-
setPlacedImages(
|
|
2222
|
-
(prev) => prev.length > 0 ? [prev[prev.length - 1]] : []
|
|
2223
|
-
);
|
|
2224
|
-
}
|
|
2225
|
-
}, [visibleType]);
|
|
2226
|
-
const handleMouseMove = (e) => {
|
|
2227
|
-
if (!divRef.current) return;
|
|
2228
|
-
if (cursorType === "system") {
|
|
2229
|
-
divRef.current.style.cursor = "";
|
|
2230
|
-
return;
|
|
2231
|
-
}
|
|
2479
|
+
if (!divRef.current || content.length === 0) return;
|
|
2232
2480
|
const rect = divRef.current.getBoundingClientRect();
|
|
2233
|
-
const
|
|
2234
|
-
const
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2481
|
+
const containerWidth = rect.width;
|
|
2482
|
+
const containerHeight = rect.height;
|
|
2483
|
+
const defaultPlaced = [];
|
|
2484
|
+
const placeImages = async () => {
|
|
2485
|
+
for (let i = 0; i < defaultImageCount && i < content.length; i++) {
|
|
2486
|
+
const imgData = content[i].image;
|
|
2487
|
+
const newImg = await createNewImage(imgData, containerWidth, containerHeight);
|
|
2488
|
+
defaultPlaced.push(newImg);
|
|
2489
|
+
}
|
|
2490
|
+
setPlacedImages(defaultPlaced);
|
|
2491
|
+
setCounter(defaultImageCount % content.length);
|
|
2492
|
+
};
|
|
2493
|
+
placeImages();
|
|
2494
|
+
}, [content, sizeType, customWidth, randomRange]);
|
|
2495
|
+
useEffect(() => {
|
|
2496
|
+
if (visible === "lastOne") {
|
|
2497
|
+
setPlacedImages((prev) => prev.length > 0 ? [prev[prev.length - 1]] : []);
|
|
2243
2498
|
}
|
|
2244
|
-
};
|
|
2245
|
-
const handleClick = (e) => {
|
|
2499
|
+
}, [visible]);
|
|
2500
|
+
const handleClick = async (e) => {
|
|
2246
2501
|
if (!divRef.current) return;
|
|
2247
2502
|
const rect = divRef.current.getBoundingClientRect();
|
|
2248
2503
|
const clickX = e.clientX - rect.left;
|
|
2249
2504
|
const clickY = e.clientY - rect.top;
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
if (clickTarget === "image") {
|
|
2253
|
-
const hit = isMouseOverImage(clickX, clickY, placedImages);
|
|
2254
|
-
if (!hit) return;
|
|
2255
|
-
}
|
|
2256
|
-
let x;
|
|
2257
|
-
let y;
|
|
2505
|
+
if (target === "image" && !isMouseOverImage(clickX, clickY, placedImages)) return;
|
|
2506
|
+
let x = 0, y = 0;
|
|
2258
2507
|
if (revealPosition === "onClick") {
|
|
2259
2508
|
x = clickX;
|
|
2260
2509
|
y = clickY;
|
|
2261
2510
|
} else if (revealPosition === "same") {
|
|
2262
|
-
x =
|
|
2263
|
-
y =
|
|
2511
|
+
x = rect.width / 2;
|
|
2512
|
+
y = rect.height / 2;
|
|
2264
2513
|
} else {
|
|
2265
|
-
x = Math.random() *
|
|
2266
|
-
y = Math.random() *
|
|
2514
|
+
x = Math.random() * rect.width;
|
|
2515
|
+
y = Math.random() * rect.height;
|
|
2267
2516
|
}
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2517
|
+
const imgData = content[counter].image;
|
|
2518
|
+
const newImage = await createNewImage(imgData, rect.width, rect.height, { x, y });
|
|
2519
|
+
setPlacedImages((prev) => visible === "all" ? [...prev, newImage] : [newImage]);
|
|
2520
|
+
setCounter((prev) => prev >= content.length - 1 ? 0 : prev + 1);
|
|
2521
|
+
};
|
|
2522
|
+
const handleMouseMove = (e) => {
|
|
2523
|
+
if (!divRef.current) return;
|
|
2524
|
+
if (cursorType === "system") {
|
|
2525
|
+
divRef.current.style.cursor = "";
|
|
2526
|
+
return;
|
|
2277
2527
|
}
|
|
2278
|
-
const
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
const halfW = imgWidth / 2;
|
|
2284
|
-
const halfH = imgHeight / 2;
|
|
2285
|
-
const adjustedX = Math.min(Math.max(x, halfW), containerWidth - halfW);
|
|
2286
|
-
let adjustedY;
|
|
2287
|
-
if (imgHeight > containerHeight) {
|
|
2288
|
-
adjustedY = containerHeight / 2;
|
|
2289
|
-
} else {
|
|
2290
|
-
adjustedY = Math.min(Math.max(y, halfH), containerHeight - halfH);
|
|
2291
|
-
}
|
|
2292
|
-
const newImage = {
|
|
2293
|
-
id: imageIdCounter.current++,
|
|
2294
|
-
url: content[counter].image.url,
|
|
2295
|
-
name: content[counter].image.name,
|
|
2296
|
-
x: adjustedX,
|
|
2297
|
-
y: adjustedY,
|
|
2298
|
-
width: finalWidth
|
|
2299
|
-
};
|
|
2300
|
-
setPlacedImages((prev) => {
|
|
2301
|
-
if (visibleType === "all") {
|
|
2302
|
-
return [...prev, newImage];
|
|
2303
|
-
} else {
|
|
2304
|
-
return [newImage];
|
|
2305
|
-
}
|
|
2306
|
-
});
|
|
2307
|
-
setCounter((prev) => prev >= content.length - 1 ? 0 : prev + 1);
|
|
2308
|
-
};
|
|
2528
|
+
const rect = divRef.current.getBoundingClientRect();
|
|
2529
|
+
const mouseX = e.clientX - rect.left;
|
|
2530
|
+
const mouseY = e.clientY - rect.top;
|
|
2531
|
+
const isHover = target === "area" || isMouseOverImage(mouseX, mouseY, placedImages);
|
|
2532
|
+
divRef.current.style.cursor = isHover ? `url(${hoverCursor}), auto` : `url(${defaultCursor}), auto`;
|
|
2309
2533
|
};
|
|
2310
|
-
return /* @__PURE__ */
|
|
2534
|
+
return /* @__PURE__ */ jsxDEV(
|
|
2311
2535
|
"div",
|
|
2312
2536
|
{
|
|
2313
2537
|
ref: divRef,
|
|
@@ -2315,7 +2539,7 @@ function ImageRevealSlider({ settings, content, isEditor }) {
|
|
|
2315
2539
|
onMouseEnter: handleMouseMove,
|
|
2316
2540
|
onMouseMove: handleMouseMove,
|
|
2317
2541
|
className: styles.imageRevealSlider,
|
|
2318
|
-
children: placedImages.map((img2) => /* @__PURE__ */
|
|
2542
|
+
children: placedImages.map((img2) => /* @__PURE__ */ jsxDEV(
|
|
2319
2543
|
"img",
|
|
2320
2544
|
{
|
|
2321
2545
|
src: img2.url,
|
|
@@ -2330,9 +2554,24 @@ function ImageRevealSlider({ settings, content, isEditor }) {
|
|
|
2330
2554
|
height: "auto"
|
|
2331
2555
|
}
|
|
2332
2556
|
},
|
|
2333
|
-
img2.id
|
|
2557
|
+
img2.id,
|
|
2558
|
+
false,
|
|
2559
|
+
{
|
|
2560
|
+
fileName: "H:/mom/sdk/src/Components/ImageRevealSlider/ImageRevealSlider.tsx",
|
|
2561
|
+
lineNumber: 237,
|
|
2562
|
+
columnNumber: 9
|
|
2563
|
+
},
|
|
2564
|
+
this
|
|
2334
2565
|
))
|
|
2335
|
-
}
|
|
2566
|
+
},
|
|
2567
|
+
void 0,
|
|
2568
|
+
false,
|
|
2569
|
+
{
|
|
2570
|
+
fileName: "H:/mom/sdk/src/Components/ImageRevealSlider/ImageRevealSlider.tsx",
|
|
2571
|
+
lineNumber: 229,
|
|
2572
|
+
columnNumber: 5
|
|
2573
|
+
},
|
|
2574
|
+
this
|
|
2336
2575
|
);
|
|
2337
2576
|
}
|
|
2338
2577
|
const ControlImageRevealSliderComponent = {
|
|
@@ -2457,7 +2696,7 @@ const ControlImageRevealSliderComponent = {
|
|
|
2457
2696
|
},
|
|
2458
2697
|
default: {
|
|
2459
2698
|
imageSize: {
|
|
2460
|
-
sizeType: "
|
|
2699
|
+
sizeType: "custom",
|
|
2461
2700
|
imageWidth: 500,
|
|
2462
2701
|
randomRangeImageWidth: {
|
|
2463
2702
|
min: 100,
|
|
@@ -2550,23 +2789,51 @@ const ControlImageRevealSliderComponent = {
|
|
|
2550
2789
|
{
|
|
2551
2790
|
image: {
|
|
2552
2791
|
objectFit: "cover",
|
|
2553
|
-
url: "https://cdn.cntrl.site/projects/
|
|
2792
|
+
url: "https://cdn.cntrl.site/projects/01JJKT02AWY2FGN2QJ7A173RNZ/articles-assets/01K740QZCY7R9HD9KTMB6XGPJ4.jpeg",
|
|
2554
2793
|
name: "Slider-1.jpeg"
|
|
2555
2794
|
}
|
|
2556
2795
|
},
|
|
2557
2796
|
{
|
|
2558
2797
|
image: {
|
|
2559
2798
|
objectFit: "cover",
|
|
2560
|
-
url: "https://cdn.cntrl.site/projects/
|
|
2799
|
+
url: "https://cdn.cntrl.site/projects/01JJKT02AWY2FGN2QJ7A173RNZ/articles-assets/01K740S36970GH347RCZ8GW6QF.jpeg",
|
|
2561
2800
|
name: "Slider-2.jpeg"
|
|
2562
2801
|
}
|
|
2563
2802
|
},
|
|
2564
2803
|
{
|
|
2565
2804
|
image: {
|
|
2566
2805
|
objectFit: "cover",
|
|
2567
|
-
url: "https://cdn.cntrl.site/projects/
|
|
2806
|
+
url: "https://cdn.cntrl.site/projects/01JJKT02AWY2FGN2QJ7A173RNZ/articles-assets/01K740RZ7VG1PWA7CRMR6TW0QS.jpeg",
|
|
2568
2807
|
name: "Slider-3.jpeg"
|
|
2569
2808
|
}
|
|
2809
|
+
},
|
|
2810
|
+
{
|
|
2811
|
+
image: {
|
|
2812
|
+
objectFit: "cover",
|
|
2813
|
+
url: "https://cdn.cntrl.site/projects/01JJKT02AWY2FGN2QJ7A173RNZ/articles-assets/01K740RV2XQMBWM2RZABY6AP9N.jpeg",
|
|
2814
|
+
name: "Slider-4.jpeg"
|
|
2815
|
+
}
|
|
2816
|
+
},
|
|
2817
|
+
{
|
|
2818
|
+
image: {
|
|
2819
|
+
objectFit: "cover",
|
|
2820
|
+
url: "https://cdn.cntrl.site/projects/01JJKT02AWY2FGN2QJ7A173RNZ/articles-assets/01K740RQ4E62FG7Y92J4AP8T0A.jpeg",
|
|
2821
|
+
name: "Slider-5.jpeg"
|
|
2822
|
+
}
|
|
2823
|
+
},
|
|
2824
|
+
{
|
|
2825
|
+
image: {
|
|
2826
|
+
objectFit: "cover",
|
|
2827
|
+
url: "https://cdn.cntrl.site/projects/01JJKT02AWY2FGN2QJ7A173RNZ/articles-assets/01K740RE073FS2HZX8AVP3MCR7.jpeg",
|
|
2828
|
+
name: "Slider-6.jpeg"
|
|
2829
|
+
}
|
|
2830
|
+
},
|
|
2831
|
+
{
|
|
2832
|
+
image: {
|
|
2833
|
+
objectFit: "cover",
|
|
2834
|
+
url: "https://cdn.cntrl.site/projects/01JJKT02AWY2FGN2QJ7A173RNZ/articles-assets/01K740R841W216BPQR07XZN8G4.jpeg",
|
|
2835
|
+
name: "Slider-7.jpeg"
|
|
2836
|
+
}
|
|
2570
2837
|
}
|
|
2571
2838
|
]
|
|
2572
2839
|
}
|