{"version":3,"file":"script.js","mappings":"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","sources":["webpack://content-slider-block/./src/script.js"],"sourcesContent":["// Import Sass\r\nimport './style.scss';\r\n\r\nimport 'swiper/css/bundle'; // Swiper CSS\r\n\r\n// Content Slider\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n const allSlider = document.querySelectorAll('.wp-block-csb-content-slider-block');\r\n Object.values(allSlider).map(slider => {\r\n const sliderEl = document.getElementById(slider.id);\r\n const calcPercentage = (child, parent) => 100 * parseFloat(child / parent);\r\n const elWidth = el => parseInt(el?.clientWidth);\r\n const elHeight = el => parseInt(el?.clientHeight);\r\n\r\n const { slides, columns, columnGap, isLoop, isTouchMove, isAutoplay, speed, effect, isPageClickable, isPageDynamic } = JSON.parse(sliderEl.dataset.slider);\r\n\r\n new Swiper(`#${slider.id} .csbContentSlider`, {\r\n // Optional parameters\r\n direction: 'horizontal',\r\n slidesPerView: columns?.mobile,\r\n breakpoints: {\r\n // when window width is >= 576px\r\n 576: { slidesPerView: columns?.tablet },\r\n // when window width is >= 768px\r\n 768: { slidesPerView: columns?.desktop },\r\n },\r\n spaceBetween: columnGap,\r\n loop: isLoop,\r\n allowTouchMove: isTouchMove,\r\n grabCursor: isTouchMove,\r\n autoplay: isAutoplay ? { delay: speed * 1000 } : false,\r\n speed: speed * 1000,\r\n effect,\r\n fadeEffect: { crossFade: true },\r\n creativeEffect: {\r\n prev: {\r\n shadow: true,\r\n translate: [\"-120%\", 0, -500],\r\n },\r\n next: {\r\n shadow: true,\r\n translate: [\"120%\", 0, -500],\r\n }\r\n },\r\n allowSlideNext: true,\r\n allowSlidePrev: true,\r\n autoHeight: false,\r\n notificationClass: null,\r\n\r\n // Controllers\r\n pagination: {\r\n el: '.swiper-pagination',\r\n clickable: isPageClickable,\r\n dynamicBullets: isPageDynamic\r\n },\r\n navigation: {\r\n nextEl: '.swiper-button-next',\r\n prevEl: '.swiper-button-prev',\r\n }\r\n });\r\n\r\n const csbContentSliderStyle = document.querySelector(`#${slider.id} .csbContentSliderStyle`); // Style Tag\r\n let childElPositionCSS = ''; // Style holder\r\n slides.map((item, index) => {\r\n const { position, childPositions = [{ left: 5.8, top: 11 }, { left: 5.8, top: 22 }, { left: 5.8, top: 33 }] } = item;\r\n let positionPlaceholder = position;\r\n\r\n // Select Slider Content and Child\r\n const sliderContent = document.querySelector(`#${slider.id} .csbContentSlider .slide-${index}:not(.swiper-slide-duplicate) .sliderContent`);\r\n const contentChild = sliderContent?.children || [];\r\n\r\n // 3.0.0 v fixing start\r\n // Get some tool for array position\r\n const childPositionsForOld = (i, top, left) => {\r\n childPositions[i]['top'] = parseFloat(top);\r\n childPositions[i]['left'] = parseFloat(left);\r\n }\r\n const revI = [...Array(contentChild?.length).keys()].reverse();\r\n const middleI = Math.ceil(contentChild?.length / 2 - 1);\r\n const beforeMiddleRevI = [...Array(middleI).keys()].reverse();\r\n\r\n for (let i = 0; i < contentChild.length; i++) {\r\n // Position recycling\r\n const contentChildWidthPer = calcPercentage(elWidth(contentChild[i]), elWidth(sliderContent));\r\n const contentChildHeightPer = calcPercentage(elHeight(contentChild[i]), elHeight(sliderContent));\r\n\r\n if (0 < contentChildWidthPer && 0 < contentChildHeightPer && isFinite(contentChildWidthPer) && isFinite(contentChildHeightPer)) {\r\n const verticalLeft = 5.8;\r\n const verticalCenter = parseFloat((50 - (contentChildWidthPer / 2)).toFixed(3));\r\n const verticalRight = parseFloat((100 - contentChildWidthPer - verticalLeft).toFixed(3));\r\n\r\n const horizontalTop = (i + 1) * 11;\r\n const horizontalCenterQuery = i === middleI ? 50 : i < middleI ? 50 - (11 * (beforeMiddleRevI[i] + 1)) : 50 + (11 * (i - middleI));\r\n const horizontalCenter = parseFloat((horizontalCenterQuery - (contentChildHeightPer / 2)).toFixed(3));\r\n const horizontalBottom = parseFloat((100 - (11 * (i + 1)) - contentChildHeightPer).toFixed(3));\r\n\r\n if ('top left' === positionPlaceholder) {\r\n childPositionsForOld(i, horizontalTop, verticalLeft);\r\n } else if ('top center' === positionPlaceholder) {\r\n childPositionsForOld(i, horizontalTop, verticalCenter);\r\n } else if ('top right' === positionPlaceholder) {\r\n childPositionsForOld(i, horizontalTop, verticalRight);\r\n } else if ('center left' === positionPlaceholder) {\r\n childPositionsForOld(i, horizontalCenter, verticalLeft);\r\n } else if ('center center' === positionPlaceholder) {\r\n childPositionsForOld(i, horizontalCenter, verticalCenter);\r\n } else if ('center right' === positionPlaceholder) {\r\n childPositionsForOld(i, horizontalCenter, verticalRight);\r\n } else if ('bottom left' === positionPlaceholder) {\r\n childPositionsForOld(revI[i], horizontalBottom, verticalLeft);\r\n } else if ('bottom center' === positionPlaceholder) {\r\n childPositionsForOld(revI[i], horizontalBottom, verticalCenter);\r\n } else if ('bottom right' === positionPlaceholder) {\r\n childPositionsForOld(revI[i], horizontalBottom, verticalRight);\r\n }\r\n }\r\n }\r\n // 3.0.0 v fix end\r\n\r\n // For CSS styling\r\n for (let i = 0; i < contentChild.length; i++) {\r\n childPositions[i] = childPositions[i] || { left: 5.8, top: (i + 1) * 11 };\r\n\r\n childElPositionCSS += `#${slider.id} .csbContentSlider .slide-${index} .sliderContent > *:nth-child(${i + 1}){ top: ${childPositions[i].top}%; left: ${childPositions[i].left}%; } `;\r\n }\r\n csbContentSliderStyle.innerText = childElPositionCSS;\r\n });\r\n\r\n sliderEl?.removeAttribute('data-slider');\r\n });\r\n});"],"names":["document","addEventListener","allSlider","querySelectorAll","Object","values","map","slider","sliderEl","getElementById","id","calcPercentage","child","parent","parseFloat","elWidth","el","parseInt","clientWidth","elHeight","clientHeight","JSON","parse","dataset","slides","columns","columnGap","isLoop","isTouchMove","isAutoplay","speed","effect","isPageClickable","isPageDynamic","Swiper","direction","slidesPerView","mobile","breakpoints","tablet","desktop","spaceBetween","loop","allowTouchMove","grabCursor","autoplay","delay","fadeEffect","crossFade","creativeEffect","prev","shadow","translate","next","allowSlideNext","allowSlidePrev","autoHeight","notificationClass","pagination","clickable","dynamicBullets","navigation","nextEl","prevEl","csbContentSliderStyle","querySelector","childElPositionCSS","item","index","position","childPositions","left","top","positionPlaceholder","sliderContent","contentChild","children","childPositionsForOld","i","revI","Array","length","keys","reverse","middleI","Math","ceil","beforeMiddleRevI","contentChildWidthPer","contentChildHeightPer","isFinite","verticalLeft","verticalCenter","toFixed","verticalRight","horizontalTop","horizontalCenterQuery","horizontalCenter","horizontalBottom","innerText","removeAttribute"],"sourceRoot":""}