Changeset 3446823
- Timestamp:
- 01/26/2026 05:26:28 AM (3 weeks ago)
- Location:
- wp-swiper/trunk
- Files:
-
- 14 edited
-
README.txt (modified) (2 diffs)
-
build/blocks/slide/block.json (modified) (1 diff)
-
build/blocks/slides/block.json (modified) (3 diffs)
-
build/frontend-rtl.css (modified) (1 diff)
-
build/frontend.build.asset.php (modified) (1 diff)
-
build/frontend.build.js (modified) (1 diff)
-
build/frontend.css (modified) (1 diff)
-
build/index-rtl.css (modified) (1 diff)
-
build/index.build.asset.php (modified) (1 diff)
-
build/index.build.js (modified) (1 diff)
-
build/index.css (modified) (1 diff)
-
includes/admin/class-wp-swiper-admin.php (modified) (2 diffs)
-
includes/core/class-wp-swiper.php (modified) (1 diff)
-
wp-swiper.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wp-swiper/trunk/README.txt
r3431465 r3446823 5 5 Requires at least: 3.0.1 6 6 Tested up to: 6.9 7 Stable tag: 1. 13.127 Stable tag: 1.4.0 8 8 License: GPLv2 or later 9 9 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 149 149 150 150 == Changelog == 151 = 1.4.0-beta.1 = 152 * NEW: Drag and drop photos to create slides automatically 153 * NEW: Enhanced autoplay controls with additional options 154 * NEW: Customizable navigation colors for arrows and buttons 155 * NEW: Add overlays to slides with color and opacity controls 156 * IMPROVEMENT: Better user experience for slide creation workflow 157 * BETA: This is a beta release - please test and provide feedback 151 = 1.4.0 = 152 * **Swiper Bundle Update**: Upgraded Swiper to version **v12.0.2** for improved performance and features 153 * **UI Modernization**: Complete overhaul of block editor interface with modern design patterns 154 - CSS custom properties for consistent theming 155 - Modern tab navigation with pill-style active states 156 - Card-like container with subtle shadows and rounded corners 157 - Smooth transitions and animations 158 - Improved visual hierarchy and spacing 159 - Create slides from drop zone images 160 - Better drop zone feedback with hover/drag animations 161 - Modern gradient-based remove buttons 162 - Prepared for future dark mode support 163 * **Bug Fixes**: 164 - Fixed ReferenceError for reverseDirection, stopOnLastSlide, and waitForTransition variables in slides block 165 - Fixed block validation error caused by conditional overlay style rendering 166 - Improved attribute handling in save functions 158 167 159 168 = 1.3.10 = -
wp-swiper/trunk/build/blocks/slide/block.json
r3428937 r3446823 2 2 "apiVersion": 3, 3 3 "name": "da/wp-swiper-slide", 4 "icon": { 5 "src": "<svg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'><rect x='3' y='5' width='18' height='14' rx='2' fill='none' stroke='currentColor' stroke-width='2'/><circle cx='8' cy='10' r='1.5' fill='currentColor'/><path d='M3 15 L8 11 L12 14 L16 10 L21 14 L21 17 C21 18.1 20.1 19 19 19 L5 19 C3.9 19 3 18.1 3 17 Z' fill='currentColor' opacity='0.4'/></svg>" 6 }, 4 7 "parent": [ 5 8 "da/wp-swiper-slides" -
wp-swiper/trunk/build/blocks/slides/block.json
r3428937 r3446823 17 17 "default": "" 18 18 }, 19 "txtColor": {20 "type": "string"21 },22 19 "overlayColor": { 23 20 "type": "object", … … 181 178 "default": true 182 179 }, 180 "sliderHeight": { 181 "type": "string", 182 "default": "500px" 183 }, 183 184 "freeMode": { 184 185 "type": "boolean", … … 224 225 "type": "boolean", 225 226 "default": false 227 }, 228 "navigationColor": { 229 "type": "string", 230 "default": "" 231 }, 232 "paginationColor": { 233 "type": "string", 234 "default": "" 226 235 } 227 236 } -
wp-swiper/trunk/build/frontend-rtl.css
r3428937 r3446823 1 /*!*************************************************************************************************************************************************************************************************************************************************!*\ 2 !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/styles/frontend.scss ***! 3 \*************************************************************************************************************************************************************************************************************************************************/ 4 .wp-swiper { 5 position: relative; 6 } 7 .wp-swiper .wp_swiper__button-prev img, 8 .wp-swiper .wp_swiper__button-next img { 9 width: 45px; 10 height: 45px; 11 } 12 .wp-swiper .wp_swiper__button-prev::after, 13 .wp-swiper .wp_swiper__button-next::after { 14 content: none; 15 } 16 .wp-swiper > .wp-swiper__wrapper { 17 position: relative; 18 margin-bottom: 10px; 19 } 20 .wp-swiper__thumbs { 21 overflow: hidden; 22 } 23 .wp-swiper__thumbs img { 24 width: 100%; 25 height: 100%; 26 -o-object-fit: cover; 27 object-fit: cover; 28 cursor: pointer; 29 } 30 .wp-swiper__thumbs .wp-swiper__thumb { 31 box-sizing: border-box; 32 height: 100px; 33 width: 100px; 34 overflow: hidden; 35 } 36 .wp-swiper.is-style-overlayed-text-right .wp-swiper__slide-content .wp-block-columns .wp-block-column:first-child { 37 margin-left: 30%; 38 } 39 .wp-swiper.is-style-overlayed-text-right .wp-swiper__slide-content .wp-block-columns .wp-block-column:last-child { 40 position: absolute; 41 background: white; 42 z-index: 1; 43 max-width: 40%; 44 left: 0; 45 right: auto; 46 padding: 40px; 47 } 48 .wp-swiper.is-style-overlayed-text-right .swiper-button-prev { 49 top: unset; 50 bottom: 10%; 51 right: auto; 52 left: calc(var(--swiper-navigation-size) + 20px); 53 } 54 .wp-swiper.is-style-overlayed-text-right .swiper-button-next { 55 top: unset; 56 bottom: 10%; 57 } 58 .wp-swiper.is-style-overlayed-text-right .wp_swiper__button-prev img, 59 .wp-swiper.is-style-overlayed-text-right .wp_swiper__button-next img { 60 width: 36px; 61 height: 36px; 62 } 63 .wp-swiper.is-style-overlayed-text-right .wp_swiper__button-prev::after, 64 .wp-swiper.is-style-overlayed-text-right .wp_swiper__button-next::after { 65 content: none; 66 } 67 .wp-swiper.is-style-thumbnails-bottom-right .swiper-pagination-bullets.swiper-pagination-horizontal { 68 width: auto; 69 right: 2%; 70 } 71 .wp-swiper.is-style-thumbnails-bottom-right .swiper-button-prev { 72 top: 110%; 73 right: 20px; 74 } 75 .wp-swiper.is-style-thumbnails-bottom-right .swiper-button-next { 76 top: 110%; 77 left: auto; 78 right: calc(var(--swiper-navigation-size) + 40px); 79 } 80 .wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs { 81 position: absolute; 82 left: 5%; 83 width: 50%; 84 transform: translateY(-50%); 85 z-index: 1; 86 } 87 .wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs .swiper-slide { 88 border: 2px solid transparent; 89 } 90 .wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs .swiper-slide.swiper-slide-thumb-active { 91 border: 2px solid white; 92 } 93 .wp-swiper.is-style-testimonials { 94 position: relative; 95 } 96 .wp-swiper.is-style-testimonials .wp-swiper__quotes { 97 opacity: 0.1; 98 position: absolute; 99 top: 0; 100 } 101 .wp-swiper.is-style-testimonials .wp-swiper__quotes svg { 102 width: 128px; 103 height: 128px; 104 } 105 .wp-swiper.is-style-testimonials .swiper-pagination { 106 position: relative; 107 } 108 .wp-swiper.is-style-testimonials .swiper-pagination-bullet { 109 width: 16px; 110 height: 16px; 111 } 112 .wp-swiper.is-style-testimonials .swiper-pagination-bullet-active { 113 background-color: #000000; 114 } 115 .wp-swiper.is-style-testimonials .wp-swiper__wrapper { 116 padding-right: 80px; 117 padding-left: 80px; 118 } 119 .wp-swiper.is-style-testimonials .wp-swiper__slide-content p { 120 font-size: 22px; 121 } 122 .wp-swiper.is-style-testimonials .swiper-button-prev svg, 123 .wp-swiper.is-style-testimonials .swiper-button-next svg { 124 fill: #000000; 125 width: 32px; 126 height: 32px; 127 } 128 .wp-swiper--halign-left { 129 align-items: flex-start; 130 } 131 .wp-swiper--halign-center { 132 align-items: center; 133 } 134 .wp-swiper--halign-right { 135 align-items: flex-end; 136 } 137 .wp-swiper--valign-left { 138 justify-content: flex-start; 139 } 140 .wp-swiper--valign-center { 141 justify-content: center; 142 } 143 .wp-swiper--valign-right { 144 justify-content: flex-end; 145 } 146 .wp-swiper .swiper-container-autoheight .swiper-slide { 147 height: 100%; 148 } 149 .wp-swiper .swiper-overflow-visible { 150 overflow: visible !important; 151 } 152 .wp-swiper__overlay-color { 153 position: absolute; 154 right: 0; 155 top: 0; 156 left: 0; 157 bottom: 0; 158 z-index: 4; 159 } 160 .wp-swiper__overlay-img { 161 position: absolute; 162 right: 0; 163 top: 0; 164 left: 0; 165 bottom: 0; 166 background-position: center; 167 background-repeat: no-repeat; 168 background-size: contain; 169 pointer-events: none; 170 z-index: 5; 171 } 172 .wp-swiper__slide .wp-swiper__slide-content { 173 position: relative; 174 box-sizing: border-box; 175 width: 100%; 176 margin-right: auto; 177 margin-left: auto; 178 z-index: 5; 179 } 180 @media (max-width: 768px) { 181 .wp-swiper.is-style-testimonials .wp-swiper__wrapper { 182 padding-right: 0; 183 padding-left: 0; 184 } 185 .swiper-button-next, 186 .swiper-button-prev { 187 display: none !important; 188 } 189 } 1 .wp-swiper{position:relative}.wp-swiper__thumbs{overflow:hidden}.wp-swiper__thumbs img{cursor:pointer;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.wp-swiper__thumbs .wp-swiper__thumb{box-sizing:border-box;height:100px;overflow:hidden;width:100px}.wp-swiper.is-style-overlayed-text-right .wp-swiper__slide-content .wp-block-columns .wp-block-column:first-child{margin-left:30%}.wp-swiper.is-style-overlayed-text-right .wp-swiper__slide-content .wp-block-columns .wp-block-column:last-child{background:#fff;right:auto;max-width:40%;padding:40px;position:absolute;left:0;z-index:1}.wp-swiper.is-style-overlayed-text-right .swiper-button-prev{bottom:10%;right:auto;left:calc(var(--swiper-navigation-size) + 20px);top:unset}.wp-swiper.is-style-overlayed-text-right .swiper-button-next{bottom:10%;top:unset}.wp-swiper.is-style-overlayed-text-right .wp_swiper__button-next img,.wp-swiper.is-style-overlayed-text-right .wp_swiper__button-prev img{height:36px;width:36px}.wp-swiper.is-style-overlayed-text-right .wp_swiper__button-next:after,.wp-swiper.is-style-overlayed-text-right .wp_swiper__button-prev:after{content:none}.wp-swiper.is-style-thumbnails-bottom-right .swiper-pagination-bullets.swiper-pagination-horizontal{right:2%;width:auto}.wp-swiper.is-style-thumbnails-bottom-right .swiper-button-prev{right:20px;top:110%}.wp-swiper.is-style-thumbnails-bottom-right .swiper-button-next{right:calc(var(--swiper-navigation-size) + 40px);left:auto;top:110%}.wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs{position:absolute;left:5%;transform:translateY(-50%);width:50%;z-index:1}.wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs .swiper-slide{border:2px solid transparent}.wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs .swiper-slide.swiper-slide-thumb-active{border:2px solid #fff}.wp-swiper.is-style-testimonials{position:relative}.wp-swiper.is-style-testimonials .wp-swiper__quotes{opacity:.1;position:absolute;top:0}.wp-swiper.is-style-testimonials .wp-swiper__quotes svg{height:128px;width:128px}.wp-swiper.is-style-testimonials .swiper-pagination{position:relative}.wp-swiper.is-style-testimonials .swiper-pagination-bullet{height:16px;width:16px}.wp-swiper.is-style-testimonials .swiper-pagination-bullet-active{background-color:#000}.wp-swiper.is-style-testimonials .wp-swiper__wrapper{padding-right:80px;padding-left:80px}.wp-swiper.is-style-testimonials .wp-swiper__slide-content p{font-size:22px}.wp-swiper.is-style-testimonials .swiper-button-next svg,.wp-swiper.is-style-testimonials .swiper-button-prev svg{fill:#000;height:32px;width:32px}.wp-swiper--halign-left{align-items:flex-start}.wp-swiper--halign-center{align-items:center}.wp-swiper--halign-right{align-items:flex-end}.wp-swiper--valign-left{justify-content:flex-start}.wp-swiper--valign-center{justify-content:center}.wp-swiper--valign-right{justify-content:flex-end}.wp-swiper .swiper-container-autoheight .swiper-slide{height:100%}.wp-swiper .swiper-overflow-visible{overflow:visible!important}.wp-swiper__overlay-color{bottom:0;right:0;position:absolute;left:0;top:0;z-index:4}.wp-swiper__overlay-img{background-position:50%;background-repeat:no-repeat;background-size:contain;bottom:0;right:0;pointer-events:none;position:absolute;left:0;top:0;z-index:5}.wp-swiper__slide .wp-swiper__slide-content{box-sizing:border-box;display:flex;flex-direction:column;height:100%;justify-content:center;margin-right:auto;margin-left:auto;position:relative;width:100%;z-index:5}.wp-swiper__slide.is-position-bottom-center .wp-swiper__slide-content{justify-content:flex-end}.wp-swiper .swiper-button-next,.wp-swiper .swiper-button-prev{color:var(--wp-swiper-navigation-color,#000)}.wp-swiper .swiper-button-next svg,.wp-swiper .swiper-button-prev svg{fill:var(--wp-swiper-navigation-color,#000)}.wp-swiper .swiper-pagination-bullet-active,.wp-swiper .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background-color:var(--wp-swiper-pagination-color,#000)}@media(max-width:768px){.wp-swiper.is-style-testimonials .wp-swiper__wrapper{padding-right:0;padding-left:0}.swiper-button-next,.swiper-button-prev{display:none!important}} -
wp-swiper/trunk/build/frontend.build.asset.php
r3428937 r3446823 1 <?php return array('dependencies' => array(), 'version' => ' 93271732143fc7453ecc');1 <?php return array('dependencies' => array(), 'version' => '2d72f515109409657331'); -
wp-swiper/trunk/build/frontend.build.js
r3428937 r3446823 1 /******/ (() => { // webpackBootstrap 2 /******/ "use strict"; 3 /******/ var __webpack_modules__ = ({ 4 5 /***/ "./src/styles/frontend.scss" 6 /*!**********************************!*\ 7 !*** ./src/styles/frontend.scss ***! 8 \**********************************/ 9 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 10 11 __webpack_require__.r(__webpack_exports__); 12 // extracted by mini-css-extract-plugin 13 14 15 /***/ } 16 17 /******/ }); 18 /************************************************************************/ 19 /******/ // The module cache 20 /******/ var __webpack_module_cache__ = {}; 21 /******/ 22 /******/ // The require function 23 /******/ function __webpack_require__(moduleId) { 24 /******/ // Check if module is in cache 25 /******/ var cachedModule = __webpack_module_cache__[moduleId]; 26 /******/ if (cachedModule !== undefined) { 27 /******/ return cachedModule.exports; 28 /******/ } 29 /******/ // Check if module exists (development only) 30 /******/ if (__webpack_modules__[moduleId] === undefined) { 31 /******/ var e = new Error("Cannot find module '" + moduleId + "'"); 32 /******/ e.code = 'MODULE_NOT_FOUND'; 33 /******/ throw e; 34 /******/ } 35 /******/ // Create a new module (and put it into the cache) 36 /******/ var module = __webpack_module_cache__[moduleId] = { 37 /******/ // no module.id needed 38 /******/ // no module.loaded needed 39 /******/ exports: {} 40 /******/ }; 41 /******/ 42 /******/ // Execute the module function 43 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); 44 /******/ 45 /******/ // Return the exports of the module 46 /******/ return module.exports; 47 /******/ } 48 /******/ 49 /************************************************************************/ 50 /******/ /* webpack/runtime/make namespace object */ 51 /******/ (() => { 52 /******/ // define __esModule on exports 53 /******/ __webpack_require__.r = (exports) => { 54 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 55 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 56 /******/ } 57 /******/ Object.defineProperty(exports, '__esModule', { value: true }); 58 /******/ }; 59 /******/ })(); 60 /******/ 61 /************************************************************************/ 62 var __webpack_exports__ = {}; 63 // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. 64 (() => { 65 /*!*************************!*\ 66 !*** ./src/frontend.js ***! 67 \*************************/ 68 __webpack_require__.r(__webpack_exports__); 69 /* harmony import */ var _styles_frontend_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./styles/frontend.scss */ "./src/styles/frontend.scss"); 70 71 var wp_swiper = new function () { 72 var self = this; 73 self.init = function () { 74 self.init_options(); 75 }; 76 self.getNumber = function (value, inital = 1) { 77 return Number(value) ? Number(value) : inital; 78 }; 79 this.JSONify = obj => { 80 var o = {}; 81 for (var i in obj) { 82 o['"' + i + '"'] = obj[i]; // make the quotes 83 } 84 return o; 85 }; 86 self.init_options = function () { 87 var wpSwipers = document.querySelectorAll('.wp-swiper'); 88 window.wpSwiper = []; 89 window.wpSwiperThumbs = []; 90 for (let i = 0; i < wpSwipers.length; i++) { 91 let options = {}; 92 wpSwipers[i].classList.add(`wp-swiper--${i}`); 93 let swiper_container = wpSwipers[i].querySelector('.swiper-container'); 94 let swiper_config = JSON.parse(swiper_container.getAttribute('data-swiper')); 95 options = swiper_config; 96 97 // Convert slidesPerView to integer if it's not 'auto' 98 if (options.slidesPerView && options.slidesPerView !== 'auto') { 99 options.slidesPerView = parseInt(options.slidesPerView, 10); 100 } 101 if (options.navigation) { 102 options.navigation = { 103 nextEl: `.wp-swiper--${i} .swiper-button-next`, 104 prevEl: `.wp-swiper--${i} .swiper-button-prev` 105 }; 106 } 107 if (options.pagination) { 108 options.pagination.el = wpSwipers[i].querySelector('.swiper-pagination'); 109 } else { 110 options.pagination = false; 111 } 112 if (options.breakpoints) { 113 if (typeof options.breakpoints === "string") { 114 options.breakpoints = JSON.parse(options.breakpoints.replace(/\\/g, '')); 115 } 116 } 117 118 // Swiper Thumbs 119 if (swiper_container.hasAttribute('data-thumbs')) { 120 let thumbsConfig = { 121 spaceBetween: 10, 122 slidesPerView: 4, 123 freeMode: true, 124 watchSlidesProgress: true 125 }; 126 const slides = wpSwipers[i].querySelectorAll('.wp-swiper__slide'); 127 const thumbsSwiper = wpSwipers[i].querySelector('.wp-swiper__thumbs .swiper-container'); 128 const thumbsWrapper = wpSwipers[i].querySelector('.wp-swiper__thumbs .swiper-wrapper'); 129 const existingThumbs = thumbsWrapper.querySelectorAll('.wp-swiper__thumb'); 130 let thumbSlidesArray = []; 131 Array.from(slides).forEach((slide, index) => { 132 const thumbNumber = index + 1; // Assuming thumb numbers start from 1 133 const matchingThumb = Array.from(existingThumbs).find(thumb => parseInt(thumb.getAttribute('data-thumb')) === thumbNumber); 134 if (matchingThumb) { 135 thumbSlidesArray[index] = matchingThumb.cloneNode(true); 136 } else { 137 thumbSlidesArray[index] = slide.cloneNode(true); 138 thumbSlidesArray[index].removeAttribute('data-tab'); 139 thumbSlidesArray[index].classList.remove('wp-swiper__slide'); 140 thumbSlidesArray[index].classList.add('wp-swiper__thumb'); 141 } 142 }); 143 thumbsWrapper.innerHTML = ''; // Clear existing content 144 thumbSlidesArray.forEach(element => { 145 thumbsWrapper.appendChild(element); 146 }); 147 thumbsConfig = JSON.parse(swiper_container.getAttribute('data-thumbs')); 148 window.wpSwiperThumbs[i] = new Swiper(thumbsSwiper, thumbsConfig); 149 options = { 150 ...options, 151 thumbs: { 152 swiper: window.wpSwiperThumbs[i] 153 } 154 }; 155 } 156 if (options.direction == 'vertical') { 157 options.on = { 158 init: function () { 159 var swiperWrapper = this.wrapperEl; 160 var swiperSlideHeight = swiperWrapper.children[this.activeIndex].querySelector('.wp-swiper__slide-content').offsetHeight; 161 swiperWrapper.style.height = swiperSlideHeight + 'px'; 162 }, 163 slideChangeTransitionEnd: function () { 164 var swiperWrapper = this.wrapperEl; 165 var swiperSlideHeight = swiperWrapper.children[this.activeIndex].querySelector('.wp-swiper__slide-content').offsetHeight; 166 swiperWrapper.style.height = swiperSlideHeight + 'px'; 167 } 168 }; 169 } 170 if (swiper_container.hasAttribute('data-debug')) { 171 if (swiper_container.getAttribute('data-debug') == 'true') { 172 console.log({ 173 swiper_container, 174 options: options 175 }); 176 } 177 } 178 179 // Auto Slide Width logic - attach lifecycle events to override Swiper's width calculations 180 if (options.autoSlideWidth) { 181 // Width fix function that sets each slide to auto width (with redundancy check) 182 const fixWidths = swiper => { 183 swiper.slides.forEach(slide => { 184 if (slide.style.width !== 'auto') { 185 slide.style.width = 'auto'; 186 } 187 }); 188 }; 189 190 // Helper to wrap event handlers while preserving existing handlers 191 const wrapHandler = existingHandler => { 192 return function (swiper) { 193 if (existingHandler) { 194 existingHandler.call(this, swiper); 195 } 196 fixWidths(swiper); 197 }; 198 }; 199 200 // Merge with existing 'on' handlers if any (e.g., vertical direction) 201 // Only essential events to minimize performance impact 202 const existingOn = options.on || {}; 203 options.on = { 204 ...existingOn, 205 init: wrapHandler(existingOn.init), 206 update: wrapHandler(existingOn.update), 207 slideChangeTransitionStart: wrapHandler(existingOn.slideChangeTransitionStart), 208 resize: wrapHandler(existingOn.resize), 209 beforeResize: wrapHandler(existingOn.beforeResize) 210 }; 211 212 // Remove autoSlideWidth from options as it's not a native Swiper property 213 delete options.autoSlideWidth; 214 } 215 window.wpSwiper[i] = new Swiper(swiper_container, options); 216 } 217 }; 218 window.addEventListener('DOMContentLoaded', event => { 219 try { 220 self.init(); 221 } catch (e) { 222 console.warn('JS Error: '); 223 console.log(e); 224 } 225 }); 226 }(); 227 })(); 228 229 /******/ })() 230 ; 231 //# sourceMappingURL=frontend.build.js.map 1 (()=>{"use strict";new function(){var e=this;e.init=function(){e.init_options()},e.getNumber=function(e,t=1){return Number(e)?Number(e):t},this.JSONify=e=>{var t={};for(var i in e)t['"'+i+'"']=e[i];return t},e.init_options=function(){var e=document.querySelectorAll(".wp-swiper");window.wpSwiper=[],window.wpSwiperThumbs=[];for(let t=0;t<e.length;t++){let i={};e[t].classList.add(`wp-swiper--${t}`);let r=e[t].querySelector(".swiper-container");if(i=JSON.parse(r.getAttribute("data-swiper")),i.slidesPerView&&"auto"!==i.slidesPerView&&(i.slidesPerView=parseInt(i.slidesPerView,10)),i.navigation&&(i.navigation={nextEl:`.wp-swiper--${t} .swiper-button-next`,prevEl:`.wp-swiper--${t} .swiper-button-prev`}),i.pagination?i.pagination.el=e[t].querySelector(".swiper-pagination"):i.pagination=!1,i.breakpoints&&"string"==typeof i.breakpoints&&(i.breakpoints=JSON.parse(i.breakpoints.replace(/\\/g,""))),r.hasAttribute("data-thumbs")){let n={spaceBetween:10,slidesPerView:4,freeMode:!0,watchSlidesProgress:!0};const s=e[t].querySelectorAll(".wp-swiper__slide"),o=e[t].querySelector(".wp-swiper__thumbs .swiper-container"),a=e[t].querySelector(".wp-swiper__thumbs .swiper-wrapper"),p=a.querySelectorAll(".wp-swiper__thumb");let w=[];Array.from(s).forEach((e,t)=>{const i=t+1,r=Array.from(p).find(e=>parseInt(e.getAttribute("data-thumb"))===i);r?w[t]=r.cloneNode(!0):(w[t]=e.cloneNode(!0),w[t].removeAttribute("data-tab"),w[t].classList.remove("wp-swiper__slide"),w[t].classList.add("wp-swiper__thumb"))}),a.innerHTML="",w.forEach(e=>{a.appendChild(e)}),n=JSON.parse(r.getAttribute("data-thumbs")),window.wpSwiperThumbs[t]=new Swiper(o,n),i={...i,thumbs:{swiper:window.wpSwiperThumbs[t]}}}if("vertical"==i.direction&&(i.on={init:function(){var e=this.wrapperEl,t=e.children[this.activeIndex].querySelector(".wp-swiper__slide-content").offsetHeight;e.style.height=t+"px"},slideChangeTransitionEnd:function(){var e=this.wrapperEl,t=e.children[this.activeIndex].querySelector(".wp-swiper__slide-content").offsetHeight;e.style.height=t+"px"}}),r.hasAttribute("data-debug")&&"true"==r.getAttribute("data-debug")&&console.log({swiper_container:r,options:i}),i.autoSlideWidth){const e=e=>{e.slides.forEach(e=>{"auto"!==e.style.width&&(e.style.width="auto")})},t=t=>function(i){t&&t.call(this,i),e(i)},r=i.on||{};i.on={...r,init:t(r.init),update:t(r.update),slideChangeTransitionStart:t(r.slideChangeTransitionStart),resize:t(r.resize),beforeResize:t(r.beforeResize)},delete i.autoSlideWidth}window.wpSwiper[t]=new Swiper(r,i)}},window.addEventListener("DOMContentLoaded",t=>{try{e.init()}catch(e){console.warn("JS Error: "),console.log(e)}})}})(); -
wp-swiper/trunk/build/frontend.css
r3428937 r3446823 1 /*!*************************************************************************************************************************************************************************************************************************************************!*\ 2 !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/styles/frontend.scss ***! 3 \*************************************************************************************************************************************************************************************************************************************************/ 4 .wp-swiper { 5 position: relative; 6 } 7 .wp-swiper .wp_swiper__button-prev img, 8 .wp-swiper .wp_swiper__button-next img { 9 width: 45px; 10 height: 45px; 11 } 12 .wp-swiper .wp_swiper__button-prev::after, 13 .wp-swiper .wp_swiper__button-next::after { 14 content: none; 15 } 16 .wp-swiper > .wp-swiper__wrapper { 17 position: relative; 18 margin-bottom: 10px; 19 } 20 .wp-swiper__thumbs { 21 overflow: hidden; 22 } 23 .wp-swiper__thumbs img { 24 width: 100%; 25 height: 100%; 26 -o-object-fit: cover; 27 object-fit: cover; 28 cursor: pointer; 29 } 30 .wp-swiper__thumbs .wp-swiper__thumb { 31 box-sizing: border-box; 32 height: 100px; 33 width: 100px; 34 overflow: hidden; 35 } 36 .wp-swiper.is-style-overlayed-text-right .wp-swiper__slide-content .wp-block-columns .wp-block-column:first-child { 37 margin-right: 30%; 38 } 39 .wp-swiper.is-style-overlayed-text-right .wp-swiper__slide-content .wp-block-columns .wp-block-column:last-child { 40 position: absolute; 41 background: white; 42 z-index: 1; 43 max-width: 40%; 44 right: 0; 45 left: auto; 46 padding: 40px; 47 } 48 .wp-swiper.is-style-overlayed-text-right .swiper-button-prev { 49 top: unset; 50 bottom: 10%; 51 left: auto; 52 right: calc(var(--swiper-navigation-size) + 20px); 53 } 54 .wp-swiper.is-style-overlayed-text-right .swiper-button-next { 55 top: unset; 56 bottom: 10%; 57 } 58 .wp-swiper.is-style-overlayed-text-right .wp_swiper__button-prev img, 59 .wp-swiper.is-style-overlayed-text-right .wp_swiper__button-next img { 60 width: 36px; 61 height: 36px; 62 } 63 .wp-swiper.is-style-overlayed-text-right .wp_swiper__button-prev::after, 64 .wp-swiper.is-style-overlayed-text-right .wp_swiper__button-next::after { 65 content: none; 66 } 67 .wp-swiper.is-style-thumbnails-bottom-right .swiper-pagination-bullets.swiper-pagination-horizontal { 68 width: auto; 69 left: 2%; 70 } 71 .wp-swiper.is-style-thumbnails-bottom-right .swiper-button-prev { 72 top: 110%; 73 left: 20px; 74 } 75 .wp-swiper.is-style-thumbnails-bottom-right .swiper-button-next { 76 top: 110%; 77 right: auto; 78 left: calc(var(--swiper-navigation-size) + 40px); 79 } 80 .wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs { 81 position: absolute; 82 right: 5%; 83 width: 50%; 84 transform: translateY(-50%); 85 z-index: 1; 86 } 87 .wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs .swiper-slide { 88 border: 2px solid transparent; 89 } 90 .wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs .swiper-slide.swiper-slide-thumb-active { 91 border: 2px solid white; 92 } 93 .wp-swiper.is-style-testimonials { 94 position: relative; 95 } 96 .wp-swiper.is-style-testimonials .wp-swiper__quotes { 97 opacity: 0.1; 98 position: absolute; 99 top: 0; 100 } 101 .wp-swiper.is-style-testimonials .wp-swiper__quotes svg { 102 width: 128px; 103 height: 128px; 104 } 105 .wp-swiper.is-style-testimonials .swiper-pagination { 106 position: relative; 107 } 108 .wp-swiper.is-style-testimonials .swiper-pagination-bullet { 109 width: 16px; 110 height: 16px; 111 } 112 .wp-swiper.is-style-testimonials .swiper-pagination-bullet-active { 113 background-color: #000000; 114 } 115 .wp-swiper.is-style-testimonials .wp-swiper__wrapper { 116 padding-left: 80px; 117 padding-right: 80px; 118 } 119 .wp-swiper.is-style-testimonials .wp-swiper__slide-content p { 120 font-size: 22px; 121 } 122 .wp-swiper.is-style-testimonials .swiper-button-prev svg, 123 .wp-swiper.is-style-testimonials .swiper-button-next svg { 124 fill: #000000; 125 width: 32px; 126 height: 32px; 127 } 128 .wp-swiper--halign-left { 129 align-items: flex-start; 130 } 131 .wp-swiper--halign-center { 132 align-items: center; 133 } 134 .wp-swiper--halign-right { 135 align-items: flex-end; 136 } 137 .wp-swiper--valign-left { 138 justify-content: flex-start; 139 } 140 .wp-swiper--valign-center { 141 justify-content: center; 142 } 143 .wp-swiper--valign-right { 144 justify-content: flex-end; 145 } 146 .wp-swiper .swiper-container-autoheight .swiper-slide { 147 height: 100%; 148 } 149 .wp-swiper .swiper-overflow-visible { 150 overflow: visible !important; 151 } 152 .wp-swiper__overlay-color { 153 position: absolute; 154 left: 0; 155 top: 0; 156 right: 0; 157 bottom: 0; 158 z-index: 4; 159 } 160 .wp-swiper__overlay-img { 161 position: absolute; 162 left: 0; 163 top: 0; 164 right: 0; 165 bottom: 0; 166 background-position: center; 167 background-repeat: no-repeat; 168 background-size: contain; 169 pointer-events: none; 170 z-index: 5; 171 } 172 .wp-swiper__slide .wp-swiper__slide-content { 173 position: relative; 174 box-sizing: border-box; 175 width: 100%; 176 margin-left: auto; 177 margin-right: auto; 178 z-index: 5; 179 } 180 @media (max-width: 768px) { 181 .wp-swiper.is-style-testimonials .wp-swiper__wrapper { 182 padding-left: 0; 183 padding-right: 0; 184 } 185 .swiper-button-next, 186 .swiper-button-prev { 187 display: none !important; 188 } 189 } 190 191 /*# sourceMappingURL=frontend.css.map*/ 1 .wp-swiper{position:relative}.wp-swiper__thumbs{overflow:hidden}.wp-swiper__thumbs img{cursor:pointer;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.wp-swiper__thumbs .wp-swiper__thumb{box-sizing:border-box;height:100px;overflow:hidden;width:100px}.wp-swiper.is-style-overlayed-text-right .wp-swiper__slide-content .wp-block-columns .wp-block-column:first-child{margin-right:30%}.wp-swiper.is-style-overlayed-text-right .wp-swiper__slide-content .wp-block-columns .wp-block-column:last-child{background:#fff;left:auto;max-width:40%;padding:40px;position:absolute;right:0;z-index:1}.wp-swiper.is-style-overlayed-text-right .swiper-button-prev{bottom:10%;left:auto;right:calc(var(--swiper-navigation-size) + 20px);top:unset}.wp-swiper.is-style-overlayed-text-right .swiper-button-next{bottom:10%;top:unset}.wp-swiper.is-style-overlayed-text-right .wp_swiper__button-next img,.wp-swiper.is-style-overlayed-text-right .wp_swiper__button-prev img{height:36px;width:36px}.wp-swiper.is-style-overlayed-text-right .wp_swiper__button-next:after,.wp-swiper.is-style-overlayed-text-right .wp_swiper__button-prev:after{content:none}.wp-swiper.is-style-thumbnails-bottom-right .swiper-pagination-bullets.swiper-pagination-horizontal{left:2%;width:auto}.wp-swiper.is-style-thumbnails-bottom-right .swiper-button-prev{left:20px;top:110%}.wp-swiper.is-style-thumbnails-bottom-right .swiper-button-next{left:calc(var(--swiper-navigation-size) + 40px);right:auto;top:110%}.wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs{position:absolute;right:5%;transform:translateY(-50%);width:50%;z-index:1}.wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs .swiper-slide{border:2px solid transparent}.wp-swiper.is-style-thumbnails-bottom-right .wp-swiper__thumbs .swiper-slide.swiper-slide-thumb-active{border:2px solid #fff}.wp-swiper.is-style-testimonials{position:relative}.wp-swiper.is-style-testimonials .wp-swiper__quotes{opacity:.1;position:absolute;top:0}.wp-swiper.is-style-testimonials .wp-swiper__quotes svg{height:128px;width:128px}.wp-swiper.is-style-testimonials .swiper-pagination{position:relative}.wp-swiper.is-style-testimonials .swiper-pagination-bullet{height:16px;width:16px}.wp-swiper.is-style-testimonials .swiper-pagination-bullet-active{background-color:#000}.wp-swiper.is-style-testimonials .wp-swiper__wrapper{padding-left:80px;padding-right:80px}.wp-swiper.is-style-testimonials .wp-swiper__slide-content p{font-size:22px}.wp-swiper.is-style-testimonials .swiper-button-next svg,.wp-swiper.is-style-testimonials .swiper-button-prev svg{fill:#000;height:32px;width:32px}.wp-swiper--halign-left{align-items:flex-start}.wp-swiper--halign-center{align-items:center}.wp-swiper--halign-right{align-items:flex-end}.wp-swiper--valign-left{justify-content:flex-start}.wp-swiper--valign-center{justify-content:center}.wp-swiper--valign-right{justify-content:flex-end}.wp-swiper .swiper-container-autoheight .swiper-slide{height:100%}.wp-swiper .swiper-overflow-visible{overflow:visible!important}.wp-swiper__overlay-color{bottom:0;left:0;position:absolute;right:0;top:0;z-index:4}.wp-swiper__overlay-img{background-position:50%;background-repeat:no-repeat;background-size:contain;bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.wp-swiper__slide .wp-swiper__slide-content{box-sizing:border-box;display:flex;flex-direction:column;height:100%;justify-content:center;margin-left:auto;margin-right:auto;position:relative;width:100%;z-index:5}.wp-swiper__slide.is-position-bottom-center .wp-swiper__slide-content{justify-content:flex-end}.wp-swiper .swiper-button-next,.wp-swiper .swiper-button-prev{color:var(--wp-swiper-navigation-color,#000)}.wp-swiper .swiper-button-next svg,.wp-swiper .swiper-button-prev svg{fill:var(--wp-swiper-navigation-color,#000)}.wp-swiper .swiper-pagination-bullet-active,.wp-swiper .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background-color:var(--wp-swiper-pagination-color,#000)}@media(max-width:768px){.wp-swiper.is-style-testimonials .wp-swiper__wrapper{padding-left:0;padding-right:0}.swiper-button-next,.swiper-button-prev{display:none!important}} -
wp-swiper/trunk/build/index-rtl.css
r3428937 r3446823 1 /*!***********************************************************************************************************************************************************************************************************************************************!*\ 2 !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/styles/editor.scss ***! 3 \***********************************************************************************************************************************************************************************************************************************************/ 4 .wp-swiper__slides .wb-tabs-buttons { 5 display: flex; 6 flex-wrap: wrap; 7 margin-bottom: 20px; 8 border-bottom: 1px solid #dee2e6; 9 } 10 .wp-swiper__slides .wp-swiper__slide-content { 11 display: flex; 12 flex-direction: column; 13 } 14 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide { 15 display: flex; 16 flex-grow: 1; 17 position: relative; 18 padding: 10px; 19 border: 1px solid gray; 20 min-height: 430px; 21 align-items: center; 22 justify-content: center; 23 } 24 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .block-editor-inner-blocks { 25 flex-grow: 1; 26 } 27 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__content { 28 z-index: 5; 29 } 30 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__slide-overlay { 31 position: absolute; 32 right: 0; 33 top: 0; 34 left: 0; 35 bottom: 0; 36 } 37 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__slide-overlay--image { 38 background-size: cover; 39 background-repeat: no-repeat; 40 opacity: 0.2; 41 } 42 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-left { 43 justify-content: flex-start; 44 align-items: flex-start; 45 } 46 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-left { 47 align-items: center; 48 justify-content: flex-start; 49 } 50 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-left { 51 align-items: flex-end; 52 justify-content: flex-start; 53 } 54 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-center { 55 align-items: flex-start; 56 justify-content: center; 57 } 58 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-center { 59 align-items: center; 60 } 61 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-center { 62 align-items: flex-end; 63 justify-content: center; 64 } 65 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-right { 66 align-items: flex-start; 67 justify-content: flex-end; 68 } 69 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-right { 70 justify-content: flex-end; 71 align-items: center; 72 } 73 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-right { 74 align-items: flex-end; 75 justify-content: flex-end; 76 } 77 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-left .block-editor-block-list__layout, .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-center .block-editor-block-list__layout, .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-right .block-editor-block-list__layout { 78 display: flex; 79 flex-direction: column; 80 } 81 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-left .block-editor-block-list__layout .wp-block-spacer, .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-center .block-editor-block-list__layout .wp-block-spacer, .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-right .block-editor-block-list__layout .wp-block-spacer { 82 margin-right: 0; 83 margin-left: 0; 84 } 85 .wp-swiper__slide-content > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-editor-block-list__block > .block-editor-block-list__block-edit { 86 margin-top: 12px; 87 } 88 .wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-start { 89 justify-content: flex-start; 90 } 91 .wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-center { 92 justify-content: center; 93 } 94 .wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-end { 95 justify-content: flex-end; 96 } 97 .wp-swiper__slides .wb-tabs-buttons .edit-post-visual-editor, 98 .wp-swiper__slides .wb-tabs-buttons .edit-post-visual-editor p, 99 .wp-swiper__slides .wb-tabs-buttons .editor-rich-text__tinymce.mce-content-body { 100 line-height: inherit; 101 } 102 .wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item { 103 position: relative; 104 flex-basis: 20%; 105 text-align: center; 106 margin-bottom: -1px; 107 cursor: pointer; 108 background-color: transparent; 109 border: 1px solid gray; 110 border-top-right-radius: 3px; 111 border-top-left-radius: 3px; 112 box-shadow: none; 113 opacity: 0.6; 114 transition: 0.15s border-color, 0.15s background-color, 0.15s opacity; 115 will-change: border-color, background-color, opacity; 116 box-sizing: border-box; 117 } 118 .wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item h4 { 119 color: #191e23; 120 margin-top: 10px; 121 margin-bottom: 10px; 122 font-size: 16px; 123 } 124 .wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item:hover { 125 border-color: #dee2e6; 126 opacity: 1; 127 } 128 .wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item.wb-tabs-buttons-item-active { 129 background-color: rgba(180, 180, 180, 0.5); 130 border-color: #dee2e6; 131 border-bottom-color: #fff; 132 opacity: 1; 133 } 134 .wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item:not(:hover) > .wb-component-remove-button { 135 opacity: 0; 136 } 137 .wp-swiper__slides .wp-swiper__slide-content [data-tab] { 138 display: none; 139 } 140 .wp-swiper__slides .wb-tabs-buttons { 141 margin-bottom: 0; 142 } 143 .wp-swiper__slides div[data-type="da/wp-swiper-slide"] { 144 margin-top: 0; 145 } 146 /* <remove button> */ 147 div[data-type="da/wp-swiper-slides"] button.wb-component-remove-button { 148 position: absolute; 149 align-items: center; 150 justify-content: center; 151 top: 0; 152 left: 0; 153 width: 20px; 154 height: 20px; 155 padding: 0; 156 margin-top: -10px; 157 margin-left: -10px; 158 color: #fff; 159 background-color: #4f5969; 160 border-radius: 50%; 161 opacity: 0.7; 162 transition: 0.2s opacity, 0.2s background-color; 163 } 164 .wb-component-remove-button:hover { 165 background-color: #5c39a7; 166 opacity: 1; 167 } 168 .wb-component-remove-button svg { 169 width: auto; 170 height: 0.8em; 171 } 172 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep, 173 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope { 174 padding: 0; 175 margin-right: 5px; 176 } 177 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:hover, 178 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:focus, 179 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:hover, 180 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:focus { 181 text-decoration: underline; 182 } 183 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep, 184 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:focus, 185 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope, 186 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:focus { 187 background: none; 188 box-shadow: none; 189 } 190 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep, 191 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:focus { 192 color: #ffffff; 193 } 194 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope, 195 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:focus { 196 color: #999; 197 } 198 .wb-component-remove-button-confirm.components-popover::before { 199 border-color: transparent; 200 } 201 .wb-component-remove-button-confirm.components-popover.is-top::after { 202 border-top-color: #191e23; 203 } 204 .wb-component-remove-button-confirm.components-popover.is-bottom::after { 205 border-bottom-color: #191e23; 206 } 207 .wb-component-remove-button-confirm .components-popover__content { 208 padding: 4px 12px; 209 color: #ffffff; 210 white-space: nowrap; 211 background: #191e23; 212 border-width: 0; 213 } 214 .wb-component-remove-button-confirm:not(.is-mobile) .components-popover__content { 215 min-width: 0; 216 } 217 .wb-component-remove-button-confirm .components-tooltip__shortcut { 218 display: block; 219 color: #7e8993; 220 text-align: center; 221 } 222 /* </remove button> */ 1 :root{--wpswiper-primary:var(--wp-admin-theme-color);--wpswiper-primary-hover:var(--wp-admin-theme-color-darker-10);--wpswiper-primary-light:#eef1fd;--wpswiper-border:#e0e0e0;--wpswiper-border-light:#f0f0f0;--wpswiper-bg:#fff;--wpswiper-bg-subtle:#f8f9fa;--wpswiper-bg-hover:#f0f2f5;--wpswiper-text:#1e1e1e;--wpswiper-text-muted:#757575;--wpswiper-shadow-sm:0 1px 3px rgba(0,0,0,.08);--wpswiper-shadow:0 2px 8px rgba(0,0,0,.08);--wpswiper-shadow-lg:0 4px 16px rgba(0,0,0,.12);--wpswiper-radius:8px;--wpswiper-radius-sm:4px;--wpswiper-radius-lg:12px;--wpswiper-transition:0.2s cubic-bezier(0.4,0,0.2,1)}.wp-swiper__slides{background:var(--wpswiper-bg);border-radius:var(--wpswiper-radius-lg);box-shadow:var(--wpswiper-shadow);overflow:hidden}.wp-swiper__slides .wb-tabs-buttons-wrapper{background:var(--wpswiper-bg-subtle);border-bottom:1px solid var(--wpswiper-border);padding:16px 16px 0}.wp-swiper__slides .wb-tabs-buttons{border-bottom:none;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:0;padding-bottom:16px}.wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-start{justify-content:flex-start}.wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-center{justify-content:center}.wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-end{justify-content:flex-end}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item{align-items:center;background:var(--wpswiper-bg);border:1px solid var(--wpswiper-border);border-radius:var(--wpswiper-radius);box-shadow:var(--wpswiper-shadow-sm);cursor:pointer;display:flex;justify-content:center;min-width:100px;opacity:1;padding:10px 16px;position:relative;transition:all var(--wpswiper-transition)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item h4{color:var(--wpswiper-text-muted);font-size:13px;font-weight:500;margin:0;transition:color var(--wpswiper-transition)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item:hover{background:var(--wpswiper-bg);border-color:var(--wpswiper-primary);box-shadow:var(--wpswiper-shadow);transform:translateY(-1px)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item:hover h4{color:var(--wpswiper-primary)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item.wb-tabs-buttons-item-active{background:var(--wpswiper-primary);border-color:var(--wpswiper-primary);box-shadow:var(--wpswiper-shadow)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item.wb-tabs-buttons-item-active h4{color:#fff;font-weight:600}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item.wb-tabs-buttons-item-active:hover{background:var(--wpswiper-primary-hover);border-color:var(--wpswiper-primary-hover);transform:translateY(-1px)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item:not(:hover)>.wb-component-remove-button{opacity:0}.wp-swiper__slides .wb-tabs-buttons>.components-button{align-items:center;background:var(--wpswiper-primary-light);border:2px dashed var(--wpswiper-primary);border-radius:var(--wpswiper-radius);color:var(--wpswiper-primary);display:flex;height:40px;justify-content:center;min-width:40px;padding:0;transition:all var(--wpswiper-transition)}.wp-swiper__slides .wb-tabs-buttons>.components-button:hover{background:var(--wpswiper-primary);border-style:solid;color:#fff;transform:translateY(-1px)}.wp-swiper__slides .wb-tabs-buttons>.components-button svg{color:#fff}.wp-swiper__slides .wp-swiper__slide-content{background:var(--wpswiper-bg);display:flex;flex-direction:column;padding:16px}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide{background:var(--wpswiper-bg-subtle);border:1px solid var(--wpswiper-border);border-radius:var(--wpswiper-radius);display:flex;flex-grow:1;min-height:400px;padding:24px;position:relative;transition:all var(--wpswiper-transition)}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide:hover{border-color:var(--wpswiper-primary);box-shadow:0 0 0 1px var(--wpswiper-primary)}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .block-editor-inner-blocks{display:flex;flex-direction:column;flex-grow:1;justify-content:center;z-index:5}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__content{z-index:5}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__slide-overlay{border-radius:inherit;inset:0;pointer-events:none;position:absolute}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__slide-overlay--image{background-repeat:no-repeat;background-size:cover;opacity:.25}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__slide-overlay--color{z-index:1}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-left{align-items:center;justify-content:flex-start}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-center{align-items:flex-start;justify-content:center}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-center{align-items:center}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-right{align-items:center;justify-content:flex-end}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-center .block-editor-block-list__layout,.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-left .block-editor-block-list__layout,.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-right .block-editor-block-list__layout{display:flex;flex-direction:column}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-center .block-editor-block-list__layout .wp-block-spacer,.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-left .block-editor-block-list__layout .wp-block-spacer,.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-right .block-editor-block-list__layout .wp-block-spacer{margin-right:0;margin-left:0}.wp-swiper__slides .wp-swiper__slide-content [data-tab]{display:none}.wp-swiper__slide-content>.block-editor-inner-blocks>.block-editor-block-list__layout>.block-editor-block-list__block>.block-editor-block-list__block-edit{margin-top:12px}.wp-swiper__slides div[data-type="da/wp-swiper-slide"]{margin-top:0}div[data-type="da/wp-swiper-slides"] button.wb-component-remove-button{align-items:center;background:linear-gradient(-135deg,#ef4444,#dc2626);border:2px solid #fff;border-radius:50%;box-shadow:var(--wpswiper-shadow);color:#fff;display:flex;height:22px;justify-content:center;opacity:0;padding:0;position:absolute;left:-6px;top:-6px;transition:all var(--wpswiper-transition);width:22px;z-index:10}div[data-type="da/wp-swiper-slides"] button.wb-component-remove-button svg{height:10px;width:10px}div[data-type="da/wp-swiper-slides"] button.wb-component-remove-button:hover{background:linear-gradient(-135deg,#dc2626,#b91c1c);box-shadow:var(--wpswiper-shadow-lg);transform:scale(1.1)}div[data-type="da/wp-swiper-slides"] .wb-tabs-buttons-item:hover .wb-component-remove-button{opacity:1}.wb-component-remove-button-confirm .components-popover__content{background:#1e1e1e;border:none;border-radius:var(--wpswiper-radius);box-shadow:var(--wpswiper-shadow-lg);color:#fff;padding:8px 16px;white-space:nowrap}.wb-component-remove-button-confirm:before{border-color:transparent}.wb-component-remove-button-confirm.is-top:after{border-top-color:#1e1e1e}.wb-component-remove-button-confirm.is-bottom:after{border-bottom-color:#1e1e1e}.wb-component-remove-button-confirm:not(.is-mobile) .components-popover__content{min-width:0}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep{background:none;border-radius:var(--wpswiper-radius-sm);box-shadow:none;font-weight:500;margin-right:8px;padding:4px 8px;transition:all var(--wpswiper-transition)}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:focus,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:hover,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:focus,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:hover{text-decoration:none}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep{background:#ef4444;color:#fff}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:focus,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:hover{background:#dc2626}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope{color:#a0a0a0}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:focus,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:hover{background:hsla(0,0%,100%,.1);color:#fff}.wb-component-remove-button-confirm .components-tooltip__shortcut{color:#7e8993;display:block;margin-top:4px;text-align:center}.wp-swiper__drop-zone-wrapper{background:var(--wpswiper-bg-subtle);border:2px dashed var(--wpswiper-border);border-radius:var(--wpswiper-radius);margin:16px;padding:32px;position:relative;transition:all var(--wpswiper-transition)}.wp-swiper__drop-zone-wrapper:hover{background:var(--wpswiper-primary-light);border-color:var(--wpswiper-primary)}.wp-swiper__drop-zone-wrapper:hover .wp-swiper__drop-zone-content{color:var(--wpswiper-primary)}.wp-swiper__drop-zone-wrapper:hover .wp-swiper__drop-zone-content .dashicons{transform:scale(1.1)}.wp-swiper__drop-zone-wrapper.is-dragging-over{background:var(--wpswiper-primary-light);border-color:var(--wpswiper-primary);border-style:solid;box-shadow:0 0 0 4px rgba(56,88,233,.15);transform:scale(1.01)}.wp-swiper__drop-zone-wrapper.is-dragging-over .wp-swiper__drop-zone-content{color:var(--wpswiper-primary)}.wp-swiper__drop-zone-wrapper.is-dragging-over .wp-swiper__drop-zone-content .dashicons{animation:wpswiper-bounce .5s ease infinite alternate}.wp-swiper__drop-zone-wrapper.is-uploading{background:var(--wpswiper-primary-light);border-color:var(--wpswiper-primary);border-style:solid;pointer-events:none}.wp-swiper__drop-zone-wrapper.is-uploading .wp-swiper__drop-zone-content{color:var(--wpswiper-primary)}.wp-swiper__drop-zone-wrapper .components-drop-zone{border-radius:inherit}.wp-swiper__drop-zone-wrapper .components-drop-zone__content{display:none}.wp-swiper__drop-zone-content{align-items:center;color:var(--wpswiper-text-muted);display:flex;flex-direction:column;justify-content:center;pointer-events:none;text-align:center}.wp-swiper__drop-zone-content .dashicons{font-size:40px;height:40px;margin-bottom:12px;transition:transform var(--wpswiper-transition);width:40px}.wp-swiper__drop-zone-content p{font-size:14px;font-weight:500;margin:0}.wp-swiper__drop-zone-spinner{animation:wpswiper-spin 1s linear infinite}@keyframes wpswiper-spin{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}@keyframes wpswiper-bounce{0%{transform:translateY(0)}to{transform:translateY(-4px)}}.wp-swiper-inspector .components-panel__body-title{font-weight:600}.wp-swiper-inspector .wp-swiper-separator{border-top:1px solid var(--wpswiper-border-light);margin:16px 0}.wp-swiper-inspector .wp-swiper-config-editor textarea{background:var(--wpswiper-bg-subtle);border:1px solid var(--wpswiper-border);border-radius:var(--wpswiper-radius-sm);font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:12px;line-height:1.5;padding:12px;resize:vertical;transition:all var(--wpswiper-transition)}.wp-swiper-inspector .wp-swiper-config-editor textarea:focus{border-color:var(--wpswiper-primary);box-shadow:0 0 0 1px var(--wpswiper-primary);outline:none}.wp-swiper-inspector .wp-swiper-config-editor textarea.is-invalid{background:#fef2f2;border-color:#ef4444}.wp-swiper-inspector .wp-swiper-helper-text{color:var(--wpswiper-text-muted);font-size:12px;line-height:1.5;margin-top:8px}.wp-swiper__slides .wb-tabs-buttons .edit-post-visual-editor,.wp-swiper__slides .wb-tabs-buttons .edit-post-visual-editor p,.wp-swiper__slides .wb-tabs-buttons .editor-rich-text__tinymce.mce-content-body{line-height:inherit} -
wp-swiper/trunk/build/index.build.asset.php
r3428937 r3446823 1 <?php return array('dependencies' => array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp- compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-keycodes'), 'version' => '748ad59cc5d54307e86c');1 <?php return array('dependencies' => array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-keycodes'), 'version' => '3a3992f353767a38ea99'); -
wp-swiper/trunk/build/index.build.js
r3428937 r3446823 1 /******/ (() => { // webpackBootstrap 2 /******/ var __webpack_modules__ = ({ 3 4 /***/ "./node_modules/classnames/dedupe.js" 5 /*!*******************************************!*\ 6 !*** ./node_modules/classnames/dedupe.js ***! 7 \*******************************************/ 8 (module, exports) { 9 10 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 11 Copyright (c) 2018 Jed Watson. 12 Licensed under the MIT License (MIT), see 13 http://jedwatson.github.io/classnames 14 */ 15 /* global define */ 16 17 (function () { 18 'use strict'; 19 20 var classNames = (function () { 21 // don't inherit from Object so we can skip hasOwnProperty check later 22 // http://stackoverflow.com/questions/15518328/creating-js-object-with-object-createnull#answer-21079232 23 function StorageObject() {} 24 StorageObject.prototype = Object.create(null); 25 26 function _parseArray (resultSet, array) { 27 var length = array.length; 28 29 for (var i = 0; i < length; ++i) { 30 _parse(resultSet, array[i]); 31 } 32 } 33 34 var hasOwn = {}.hasOwnProperty; 35 36 function _parseNumber (resultSet, num) { 37 resultSet[num] = true; 38 } 39 40 function _parseObject (resultSet, object) { 41 if (object.toString !== Object.prototype.toString && !object.toString.toString().includes('[native code]')) { 42 resultSet[object.toString()] = true; 43 return; 44 } 45 46 for (var k in object) { 47 if (hasOwn.call(object, k)) { 48 // set value to false instead of deleting it to avoid changing object structure 49 // https://www.smashingmagazine.com/2012/11/writing-fast-memory-efficient-javascript/#de-referencing-misconceptions 50 resultSet[k] = !!object[k]; 51 } 52 } 53 } 54 55 var SPACE = /\s+/; 56 function _parseString (resultSet, str) { 57 var array = str.split(SPACE); 58 var length = array.length; 59 60 for (var i = 0; i < length; ++i) { 61 resultSet[array[i]] = true; 62 } 63 } 64 65 function _parse (resultSet, arg) { 66 if (!arg) return; 67 var argType = typeof arg; 68 69 // 'foo bar' 70 if (argType === 'string') { 71 _parseString(resultSet, arg); 72 73 // ['foo', 'bar', ...] 74 } else if (Array.isArray(arg)) { 75 _parseArray(resultSet, arg); 76 77 // { 'foo': true, ... } 78 } else if (argType === 'object') { 79 _parseObject(resultSet, arg); 80 81 // '130' 82 } else if (argType === 'number') { 83 _parseNumber(resultSet, arg); 84 } 85 } 86 87 function _classNames () { 88 // don't leak arguments 89 // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments 90 var len = arguments.length; 91 var args = Array(len); 92 for (var i = 0; i < len; i++) { 93 args[i] = arguments[i]; 94 } 95 96 var classSet = new StorageObject(); 97 _parseArray(classSet, args); 98 99 var list = []; 100 101 for (var k in classSet) { 102 if (classSet[k]) { 103 list.push(k) 104 } 105 } 106 107 return list.join(' '); 108 } 109 110 return _classNames; 111 })(); 112 113 if ( true && module.exports) { 114 classNames.default = classNames; 115 module.exports = classNames; 116 } else if (true) { 117 // register as 'classnames', consistent with npm package name 118 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { 119 return classNames; 120 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 121 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 122 } else // removed by dead control flow 123 {} 124 }()); 125 126 127 /***/ }, 128 129 /***/ "./node_modules/slugify/slugify.js" 130 /*!*****************************************!*\ 131 !*** ./node_modules/slugify/slugify.js ***! 132 \*****************************************/ 133 (module) { 134 135 136 ;(function (name, root, factory) { 137 if (true) { 138 module.exports = factory() 139 module.exports["default"] = factory() 140 } 141 /* istanbul ignore next */ 142 else // removed by dead control flow 143 {} 144 }('slugify', this, function () { 145 var charMap = JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E\'","Ը":"Y\'","Թ":"T\'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C\'","Կ":"K","Հ":"H","Ձ":"D\'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R\'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P\'","Ք":"Q\'","Օ":"O\'\'","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"\'","’":"\'","“":"\\\"","”":"\\\"","„":"\\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}') 146 var locales = JSON.parse('{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}') 147 148 function replace (string, options) { 149 if (typeof string !== 'string') { 150 throw new Error('slugify: string argument expected') 151 } 152 153 options = (typeof options === 'string') 154 ? {replacement: options} 155 : options || {} 156 157 var locale = locales[options.locale] || {} 158 159 var replacement = options.replacement === undefined ? '-' : options.replacement 160 161 var trim = options.trim === undefined ? true : options.trim 162 163 var slug = string.normalize().split('') 164 // replace characters based on charMap 165 .reduce(function (result, ch) { 166 var appendChar = locale[ch]; 167 if (appendChar === undefined) appendChar = charMap[ch]; 168 if (appendChar === undefined) appendChar = ch; 169 if (appendChar === replacement) appendChar = ' '; 170 return result + appendChar 171 // remove not allowed characters 172 .replace(options.remove || /[^\w\s$*_+~.()'"!\-:@]+/g, '') 173 }, ''); 174 175 if (options.strict) { 176 slug = slug.replace(/[^A-Za-z0-9\s]/g, ''); 177 } 178 179 if (trim) { 180 slug = slug.trim() 181 } 182 183 // Replace spaces with replacement character, treating multiple consecutive 184 // spaces as a single space. 185 slug = slug.replace(/\s+/g, replacement); 186 187 if (options.lower) { 188 slug = slug.toLowerCase() 189 } 190 191 return slug 192 } 193 194 replace.extend = function (customMap) { 195 Object.assign(charMap, customMap) 196 } 197 198 return replace 199 })) 200 201 202 /***/ }, 203 204 /***/ "./node_modules/striptags/src/striptags.js" 205 /*!*************************************************!*\ 206 !*** ./node_modules/striptags/src/striptags.js ***! 207 \*************************************************/ 208 (module, exports, __webpack_require__) { 209 210 "use strict"; 211 var __WEBPACK_AMD_DEFINE_RESULT__; 212 213 (function (global) { 214 215 // minimal symbol polyfill for IE11 and others 216 if (typeof Symbol !== 'function') { 217 var Symbol = function(name) { 218 return name; 219 } 220 221 Symbol.nonNative = true; 222 } 223 224 const STATE_PLAINTEXT = Symbol('plaintext'); 225 const STATE_HTML = Symbol('html'); 226 const STATE_COMMENT = Symbol('comment'); 227 228 const ALLOWED_TAGS_REGEX = /<(\w*)>/g; 229 const NORMALIZE_TAG_REGEX = /<\/?([^\s\/>]+)/; 230 231 function striptags(html, allowable_tags, tag_replacement) { 232 html = html || ''; 233 allowable_tags = allowable_tags || []; 234 tag_replacement = tag_replacement || ''; 235 236 let context = init_context(allowable_tags, tag_replacement); 237 238 return striptags_internal(html, context); 239 } 240 241 function init_striptags_stream(allowable_tags, tag_replacement) { 242 allowable_tags = allowable_tags || []; 243 tag_replacement = tag_replacement || ''; 244 245 let context = init_context(allowable_tags, tag_replacement); 246 247 return function striptags_stream(html) { 248 return striptags_internal(html || '', context); 249 }; 250 } 251 252 striptags.init_streaming_mode = init_striptags_stream; 253 254 function init_context(allowable_tags, tag_replacement) { 255 allowable_tags = parse_allowable_tags(allowable_tags); 256 257 return { 258 allowable_tags : allowable_tags, 259 tag_replacement: tag_replacement, 260 261 state : STATE_PLAINTEXT, 262 tag_buffer : '', 263 depth : 0, 264 in_quote_char : '' 265 }; 266 } 267 268 function striptags_internal(html, context) { 269 if (typeof html != "string") { 270 throw new TypeError("'html' parameter must be a string"); 271 } 272 273 let allowable_tags = context.allowable_tags; 274 let tag_replacement = context.tag_replacement; 275 276 let state = context.state; 277 let tag_buffer = context.tag_buffer; 278 let depth = context.depth; 279 let in_quote_char = context.in_quote_char; 280 let output = ''; 281 282 for (let idx = 0, length = html.length; idx < length; idx++) { 283 let char = html[idx]; 284 285 if (state === STATE_PLAINTEXT) { 286 switch (char) { 287 case '<': 288 state = STATE_HTML; 289 tag_buffer += char; 290 break; 291 292 default: 293 output += char; 294 break; 295 } 296 } 297 298 else if (state === STATE_HTML) { 299 switch (char) { 300 case '<': 301 // ignore '<' if inside a quote 302 if (in_quote_char) { 303 break; 304 } 305 306 // we're seeing a nested '<' 307 depth++; 308 break; 309 310 case '>': 311 // ignore '>' if inside a quote 312 if (in_quote_char) { 313 break; 314 } 315 316 // something like this is happening: '<<>>' 317 if (depth) { 318 depth--; 319 320 break; 321 } 322 323 // this is closing the tag in tag_buffer 324 in_quote_char = ''; 325 state = STATE_PLAINTEXT; 326 tag_buffer += '>'; 327 328 if (allowable_tags.has(normalize_tag(tag_buffer))) { 329 output += tag_buffer; 330 } else { 331 output += tag_replacement; 332 } 333 334 tag_buffer = ''; 335 break; 336 337 case '"': 338 case '\'': 339 // catch both single and double quotes 340 341 if (char === in_quote_char) { 342 in_quote_char = ''; 343 } else { 344 in_quote_char = in_quote_char || char; 345 } 346 347 tag_buffer += char; 348 break; 349 350 case '-': 351 if (tag_buffer === '<!-') { 352 state = STATE_COMMENT; 353 } 354 355 tag_buffer += char; 356 break; 357 358 case ' ': 359 case '\n': 360 if (tag_buffer === '<') { 361 state = STATE_PLAINTEXT; 362 output += '< '; 363 tag_buffer = ''; 364 365 break; 366 } 367 368 tag_buffer += char; 369 break; 370 371 default: 372 tag_buffer += char; 373 break; 374 } 375 } 376 377 else if (state === STATE_COMMENT) { 378 switch (char) { 379 case '>': 380 if (tag_buffer.slice(-2) == '--') { 381 // close the comment 382 state = STATE_PLAINTEXT; 383 } 384 385 tag_buffer = ''; 386 break; 387 388 default: 389 tag_buffer += char; 390 break; 391 } 392 } 393 } 394 395 // save the context for future iterations 396 context.state = state; 397 context.tag_buffer = tag_buffer; 398 context.depth = depth; 399 context.in_quote_char = in_quote_char; 400 401 return output; 402 } 403 404 function parse_allowable_tags(allowable_tags) { 405 let tag_set = new Set(); 406 407 if (typeof allowable_tags === 'string') { 408 let match; 409 410 while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) { 411 tag_set.add(match[1]); 412 } 413 } 414 415 else if (!Symbol.nonNative && 416 typeof allowable_tags[Symbol.iterator] === 'function') { 417 418 tag_set = new Set(allowable_tags); 419 } 420 421 else if (typeof allowable_tags.forEach === 'function') { 422 // IE11 compatible 423 allowable_tags.forEach(tag_set.add, tag_set); 424 } 425 426 return tag_set; 427 } 428 429 function normalize_tag(tag_buffer) { 430 let match = NORMALIZE_TAG_REGEX.exec(tag_buffer); 431 432 return match ? match[1].toLowerCase() : null; 433 } 434 435 if (true) { 436 // AMD 437 !(__WEBPACK_AMD_DEFINE_RESULT__ = (function module_factory() { return striptags; }).call(exports, __webpack_require__, exports, module), 438 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 439 } 440 441 else // removed by dead control flow 442 {} 443 }(this)); 444 445 446 /***/ }, 447 448 /***/ "./src/blocks/slide/block.json" 449 /*!*************************************!*\ 450 !*** ./src/blocks/slide/block.json ***! 451 \*************************************/ 452 (module) { 453 454 "use strict"; 455 module.exports = /*#__PURE__*/JSON.parse('{"apiVersion":3,"name":"da/wp-swiper-slide","parent":["da/wp-swiper-slides"],"category":"media","supports":{"html":false,"className":false,"anchor":true,"inserter":false,"reusable":false},"attributes":{"align":{"type":"string","default":"undefined"},"slideImgId":{"type":"number"},"slideImg":{"type":"string"},"thumbImg":{"type":"string"},"slug":{"type":"string"},"contentValign":{"type":"string","default":""},"contentHalign":{"type":"string","default":""},"contentVHalign":{"type":"string"},"focalPoint":{"type":"object","default":{"x":0.5,"y":0.5}},"overlayColor":{"type":"object","default":{"rgb":{"r":0,"g":0,"b":0,"a":0}}},"containerWidth":{"type":"number"}}}'); 456 457 /***/ }, 458 459 /***/ "./src/blocks/slide/deprecated.js" 460 /*!****************************************!*\ 461 !*** ./src/blocks/slide/deprecated.js ***! 462 \****************************************/ 463 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 464 465 "use strict"; 466 __webpack_require__.r(__webpack_exports__); 467 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 468 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 469 /* harmony export */ }); 470 /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./block.json */ "./src/blocks/slide/block.json"); 471 /* harmony import */ var _save1033__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./save1033 */ "./src/blocks/slide/save1033.js"); 472 /** 473 * Internal dependencies 474 */ 475 476 477 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ([{ 478 supports: _block_json__WEBPACK_IMPORTED_MODULE_0__.supports, 479 attributes: { 480 ..._block_json__WEBPACK_IMPORTED_MODULE_0__.attributes 481 }, 482 save: _save1033__WEBPACK_IMPORTED_MODULE_1__["default"] 483 }]); 484 485 /***/ }, 486 487 /***/ "./src/blocks/slide/edit.js" 488 /*!**********************************!*\ 489 !*** ./src/blocks/slide/edit.js ***! 490 \**********************************/ 491 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 492 493 "use strict"; 494 __webpack_require__.r(__webpack_exports__); 495 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 496 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 497 /* harmony export */ }); 498 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames/dedupe */ "./node_modules/classnames/dedupe.js"); 499 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__); 500 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 501 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__); 502 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 503 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__); 504 /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); 505 /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_3__); 506 /* harmony import */ var _components_block_alignment_matrix_control__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/block-alignment-matrix-control */ "./src/components/block-alignment-matrix-control/index.js"); 507 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 508 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__); 509 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 510 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__); 511 /* harmony import */ var _utils_shared__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/shared */ "./src/utils/shared.js"); 512 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); 513 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__); 514 /** 515 * External dependencies 516 */ 517 518 519 /** 520 * WordPress dependencies 521 */ 522 523 524 525 526 527 528 529 530 /** 531 * Block Edit Class. 532 */ 533 534 function edit(props) { 535 const onSelectImage = media => { 536 let img_url = media.sizes.full.url; 537 props.setAttributes({ 538 slideImg: img_url 539 }); 540 }; 541 const onSelectThumb = media => { 542 let img_url = media.sizes.full.url; 543 props.setAttributes({ 544 thumbImg: img_url 545 }); 546 }; 547 const isEmpty = val => { 548 return true; 549 }; 550 const getOverlayImage = style => { 551 if (props.attributes.slideImg) { 552 style.backgroundImage = `url(${props.attributes.slideImg})`; 553 } 554 return style; 555 }; 556 const getOverlayColor = style => { 557 if (props.attributes.overlayColor) { 558 let { 559 overlayColor 560 } = props.attributes; 561 style.backgroundColor = `rgba(${overlayColor.rgb.r}, ${overlayColor.rgb.g}, ${overlayColor.rgb.b}, ${overlayColor.rgb.a})`; 562 } 563 return style; 564 }; 565 const setFocalPoint = value => { 566 props.setAttributes({ 567 focalPoint: value 568 }); 569 }; 570 const { 571 setAttributes, 572 hasChildBlocks, 573 attributes 574 } = props; 575 let { 576 className = '' 577 } = props; 578 const { 579 slideImg, 580 thumbImg, 581 overlayColor, 582 contentVHalign, 583 slug 584 } = attributes; 585 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, 'wp-swiper__slide'); 586 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, { 587 'has-image': isEmpty(slideImg) 588 }); 589 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, (0,_utils_shared__WEBPACK_IMPORTED_MODULE_7__.getPositionClassName)(contentVHalign)); 590 const blockProps = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.useBlockProps)({ 591 className: className, 592 'data-tab': slug 593 }); 594 595 /* Example function to render the CSS styles based on Focal Point Picker value */ 596 const style = { 597 backgroundImage: `url(${slideImg})`, 598 backgroundPosition: `${props.attributes.focalPoint.x * 100}% ${props.attributes.focalPoint.y * 100}%` 599 }; 600 let style_overlay_image = {}; 601 let style_overlay_color = {}; 602 style_overlay_image = getOverlayImage(style_overlay_image); 603 style_overlay_color = getOverlayColor(style_overlay_color); 604 style_overlay_image = { 605 ...style_overlay_image, 606 ...style 607 }; 608 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { 609 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.InspectorControls, { 610 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 611 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Image Settings'), 612 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.BaseControl, { 613 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Slide Image', '@@text_domain'), 614 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 615 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.MediaUploadCheck, { 616 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.MediaUpload, { 617 value: slideImg, 618 onSelect: onSelectImage, 619 type: "image", 620 render: open => { 621 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 622 onClick: open.open, 623 className: "button", 624 children: "Select slide image" 625 }); 626 } 627 }) 628 }) 629 }), slideImg && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 630 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.FocalPointPicker, { 631 url: slideImg, 632 value: props.attributes.focalPoint, 633 onDragStart: setFocalPoint, 634 onDrag: setFocalPoint, 635 onChange: setFocalPoint 636 }) 637 }), slideImg && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 638 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 639 isSecondary: true, 640 size: "small", 641 className: "block-library-cover__reset-button", 642 onClick: () => setAttributes({ 643 slideImg: undefined 644 }), 645 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Clear Media') 646 }) 647 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 648 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.MediaUploadCheck, { 649 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.MediaUpload, { 650 value: thumbImg, 651 onSelect: onSelectThumb, 652 type: "image", 653 render: open => { 654 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 655 onClick: open.open, 656 className: "button", 657 children: "Select thumb image" 658 }); 659 } 660 }) 661 }) 662 }), thumbImg && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 663 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.FocalPointPicker, { 664 url: thumbImg, 665 value: props.attributes.focalPoint, 666 onDragStart: setFocalPoint, 667 onDrag: setFocalPoint, 668 onChange: setFocalPoint 669 }) 670 }), thumbImg && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 671 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 672 isSecondary: true, 673 size: "small", 674 className: "block-library-cover__reset-button", 675 onClick: () => setAttributes({ 676 thumbImg: undefined 677 }), 678 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Clear Media') 679 }) 680 })] 681 }) 682 }) 683 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.BlockControls, { 684 group: "block", 685 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_components_block_alignment_matrix_control__WEBPACK_IMPORTED_MODULE_4__["default"], { 686 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Change content position'), 687 value: contentVHalign, 688 onChange: value => { 689 setAttributes({ 690 contentVHalign: value 691 }); 692 } 693 }) 694 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", { 695 ...blockProps, 696 children: [slideImg && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", { 697 className: "wp-swiper__slide-overlay wp-swiper__slide-overlay--image", 698 style: style_overlay_image 699 }), overlayColor.rgb.a > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", { 700 className: "wp-swiper__slide-overlay wp-swiper__slide-overlay--color", 701 style: style_overlay_color 702 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.InnerBlocks, { 703 renderAppender: hasChildBlocks ? undefined : () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.InnerBlocks.ButtonBlockAppender, {}) 704 })] 705 })] 706 }); 707 } 708 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_wordpress_data__WEBPACK_IMPORTED_MODULE_3__.withSelect)((select, props) => { 709 const { 710 clientId 711 } = props; 712 const { 713 getBlockOrder 714 } = select('core/block-editor'); 715 return { 716 hasChildBlocks: getBlockOrder(clientId).length > 0 717 }; 718 })(edit)); 719 720 /***/ }, 721 722 /***/ "./src/blocks/slide/index.js" 723 /*!***********************************!*\ 724 !*** ./src/blocks/slide/index.js ***! 725 \***********************************/ 726 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 727 728 "use strict"; 729 __webpack_require__.r(__webpack_exports__); 730 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 731 /* harmony export */ metadata: () => (/* reexport default export from named module */ _block_json__WEBPACK_IMPORTED_MODULE_0__), 732 /* harmony export */ name: () => (/* binding */ name), 733 /* harmony export */ settings: () => (/* binding */ settings) 734 /* harmony export */ }); 735 /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./block.json */ "./src/blocks/slide/block.json"); 736 /* harmony import */ var _edit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./edit */ "./src/blocks/slide/edit.js"); 737 /* harmony import */ var _save__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./save */ "./src/blocks/slide/save.js"); 738 /* harmony import */ var _deprecated__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./deprecated */ "./src/blocks/slide/deprecated.js"); 739 /** 740 * WordPress dependencies 741 */ 742 const { 743 __ 744 } = wp.i18n; 745 746 /** 747 * Internal dependencies 748 */ 749 750 751 752 753 const { 754 name 755 } = _block_json__WEBPACK_IMPORTED_MODULE_0__; 756 757 const settings = { 758 ..._block_json__WEBPACK_IMPORTED_MODULE_0__, 759 title: __('Slide', '@@text_domain'), 760 description: __('A single slide within a wp-swiper block.', '@@text_domain'), 761 icon: 'admin', 762 getEditWrapperProps(attributes) { 763 return { 764 'data-tab': attributes.slug 765 }; 766 }, 767 edit: _edit__WEBPACK_IMPORTED_MODULE_1__["default"], 768 save: _save__WEBPACK_IMPORTED_MODULE_2__["default"], 769 deprecated: _deprecated__WEBPACK_IMPORTED_MODULE_3__["default"] 770 }; 771 772 /***/ }, 773 774 /***/ "./src/blocks/slide/save.js" 775 /*!**********************************!*\ 776 !*** ./src/blocks/slide/save.js ***! 777 \**********************************/ 778 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 779 780 "use strict"; 781 __webpack_require__.r(__webpack_exports__); 782 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 783 /* harmony export */ "default": () => (/* binding */ save) 784 /* harmony export */ }); 785 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames/dedupe */ "./node_modules/classnames/dedupe.js"); 786 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__); 787 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 788 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__); 789 /* harmony import */ var _utils_shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/shared */ "./src/utils/shared.js"); 790 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); 791 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__); 792 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "react"); 793 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__); 794 /** 795 * External dependencies 796 */ 797 798 799 /** 800 * WordPress dependencies 801 */ 802 803 804 /** 805 * Internal dependencies 806 */ 807 808 809 /** 810 * Block Save Class. 811 */ 812 813 814 function save(props) { 815 const { 816 attributes 817 } = props; 818 const { 819 overlayColor, 820 slug, 821 slideImg, 822 contentVHalign, 823 containerWidth, 824 focalPoint 825 } = attributes; 826 let className = 'wp-swiper__slide swiper-slide'; 827 if (contentVHalign != '' && typeof contentVHalign !== 'undefined') { 828 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, (0,_utils_shared__WEBPACK_IMPORTED_MODULE_2__.getPositionClassName)(contentVHalign)); 829 } 830 831 // background size: cover 832 // needed becaue some people 833 // use Slide Image 834 // under Image Settings 835 const style = slideImg ? { 836 backgroundImage: `url(${slideImg})`, 837 backgroundSize: 'cover', 838 backgroundPosition: `${focalPoint.x * 100}% ${focalPoint.y * 100}%` 839 } : {}; 840 const contaienr_width_style = containerWidth ? { 841 maxWidth: `${containerWidth}%` 842 } : null; 843 const style_overlay_color = overlayColor ? { 844 backgroundColor: `rgba(${overlayColor.rgb.r}, ${overlayColor.rgb.g}, ${overlayColor.rgb.b}, ${overlayColor.rgb.a})` 845 } : null; 846 const blockProps = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps.save(); 847 return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_4__.createElement)("div", { 848 ...blockProps, 849 key: slug, 850 "data-tab": slug, 851 className: className, 852 style: style 853 }, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { 854 className: "wp-swiper__overlay-color", 855 ...(style_overlay_color && { 856 style: style_overlay_color 857 }) 858 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { 859 className: "wp-swiper__slide-content", 860 style: contaienr_width_style, 861 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.InnerBlocks.Content, {}) 862 })); 863 } 864 865 /***/ }, 866 867 /***/ "./src/blocks/slide/save1033.js" 868 /*!**************************************!*\ 869 !*** ./src/blocks/slide/save1033.js ***! 870 \**************************************/ 871 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 872 873 "use strict"; 874 __webpack_require__.r(__webpack_exports__); 875 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 876 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 877 /* harmony export */ }); 878 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames/dedupe */ "./node_modules/classnames/dedupe.js"); 879 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__); 880 /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./block.json */ "./src/blocks/slide/block.json"); 881 /* harmony import */ var _utils_shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/shared */ "./src/utils/shared.js"); 882 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); 883 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__); 884 /** 885 * External dependencies 886 */ 887 888 889 /** 890 * WordPress dependencies 891 */ 892 const { 893 applyFilters 894 } = wp.hooks; 895 const { 896 Component 897 } = wp.element; 898 const { 899 InnerBlocks 900 } = wp.blockEditor; 901 902 /** 903 * Internal dependencies 904 */ 905 906 907 908 const { 909 name 910 } = _block_json__WEBPACK_IMPORTED_MODULE_1__; 911 912 /** 913 * Block Save Class. 914 */ 915 class BlockSave extends Component { 916 render() { 917 const { 918 overlayColor, 919 slug, 920 slideImg, 921 contentVHalign, 922 containerWidth 923 } = this.props.attributes; 924 let className = 'wp-swiper__slide swiper-slide'; 925 if (contentVHalign != '' && typeof contentVHalign !== 'undefined') { 926 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, (0,_utils_shared__WEBPACK_IMPORTED_MODULE_2__.getPositionClassName)(contentVHalign)); 927 } 928 929 // background size: cover 930 // needed becaue some people 931 // use Slide Image 932 // under Image Settings 933 const style = slideImg ? { 934 backgroundImage: `url(${slideImg})`, 935 backgroundSize: 'cover' 936 } : {}; 937 const contaienr_width_style = containerWidth ? { 938 maxWidth: `${containerWidth}%` 939 } : null; 940 const style_overlay_color = overlayColor ? { 941 backgroundColor: `rgba(${overlayColor.rgb.r}, ${overlayColor.rgb.g}, ${overlayColor.rgb.b}, ${overlayColor.rgb.a})` 942 } : {}; 943 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { 944 className: className, 945 "data-tab": slug, 946 style: style, 947 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { 948 className: "wp-swiper__overlay-color", 949 style: style_overlay_color 950 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { 951 className: "wp-swiper__slide-content", 952 style: contaienr_width_style, 953 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(InnerBlocks.Content, {}) 954 })] 955 }); 956 } 957 } 958 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BlockSave); 959 960 /***/ }, 961 962 /***/ "./src/blocks/slides/block.json" 963 /*!**************************************!*\ 964 !*** ./src/blocks/slides/block.json ***! 965 \**************************************/ 966 (module) { 967 968 "use strict"; 969 module.exports = /*#__PURE__*/JSON.parse('{"apiVersion":3,"name":"da/wp-swiper-slides","category":"media","supports":{"html":false,"className":false,"anchor":true,"align":["wide","full"]},"attributes":{"align":{"type":"string","default":""},"txtColor":{"type":"string"},"overlayColor":{"type":"object","default":{"rgb":{"r":0,"g":0,"b":0,"a":0}}},"containerWidth":{"type":"number"},"overlayImg":{"type":"string"},"previousIcon":{"type":"string"},"nextIcon":{"type":"string"},"overlayImgOpacity":{"type":"number","default":0.5},"currentSlide":{"type":"number","default":0},"tabActive":{"type":"string","default":"slide-1"},"buttonsAlign":{"type":"string","default":"start"},"autoplay":{"type":"boolean","default":false},"disableOnInteraction":{"type":"boolean","default":true},"pauseOnMouseEnter":{"type":"boolean","default":false},"reverseDirection":{"type":"boolean","default":false},"stopOnLastSlide":{"type":"boolean","default":false},"waitForTransition":{"type":"boolean","default":true},"navigation":{"type":"boolean","default":true},"pagination":{"type":"boolean","default":true},"clickable_pagination":{"type":"boolean","default":false},"loop":{"type":"boolean","default":false},"loopAddBlankSlides":{"type":"boolean","default":true},"loopAdditionalSlides":{"type":"number","default":0},"effect":{"type":"string","default":"slide"},"speed":{"type":"number","default":500},"delay":{"type":"number","default":3000},"slidesPerView":{"type":"string","default":"1"},"slidesPerGroup":{"type":"number","default":1},"slidesPerGroupAuto":{"type":"boolean","default":false},"slidesPerGroupSkip":{"type":"number","default":0},"spaceBetween":{"type":"number","default":0},"autoSlideWidth":{"type":"boolean","default":false},"slidesOffsetBefore":{"type":"number","default":0},"slidesOffsetAfter":{"type":"number","default":0},"tabsData":{"type":"array","default":[{"clientId":"","slug":"slide-1","slideImg":"","thumbImg":""}]},"breakpoints":{"type":"string"},"thumbs":{"type":"boolean","default":false},"thumbsSlidesPerView":{"type":"number","default":4},"thumbsSpaceBetween":{"type":"number","default":10},"autoHeight":{"type":"boolean","default":true},"freeMode":{"type":"boolean","default":false},"freeModeMinimumVelocity":{"type":"number","default":0.02},"freeModeMomentum":{"type":"boolean","default":true},"freeModeMomentumBounce":{"type":"boolean","default":true},"freeModeMomentumBounceRatio":{"type":"number","default":1},"freeModeMomentumRatio":{"type":"number","default":1},"freeModeMomentumVelocityRatio":{"type":"number","default":1},"freeModeSticky":{"type":"boolean","default":false},"debug":{"type":"boolean","default":false},"direction":{"type":"string","default":"horizontal"},"overflowVisible":{"type":"boolean","default":false}}}'); 970 971 /***/ }, 972 973 /***/ "./src/blocks/slides/deprecated.js" 974 /*!*****************************************!*\ 975 !*** ./src/blocks/slides/deprecated.js ***! 976 \*****************************************/ 977 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 978 979 "use strict"; 980 __webpack_require__.r(__webpack_exports__); 981 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 982 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 983 /* harmony export */ }); 984 /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./block.json */ "./src/blocks/slides/block.json"); 985 /* harmony import */ var _oldsave__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./oldsave */ "./src/blocks/slides/oldsave.js"); 986 /* harmony import */ var _save_v1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./save-v1 */ "./src/blocks/slides/save-v1.js"); 987 /** 988 * Internal dependencies 989 */ 990 991 992 993 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ([ 994 // Version 2: Migrate from sticky to freeModeSticky 995 { 996 attributes: { 997 ..._block_json__WEBPACK_IMPORTED_MODULE_0__.attributes, 998 sticky: { 999 type: 'boolean', 1000 default: false 1001 } 1002 }, 1003 save: _save_v1__WEBPACK_IMPORTED_MODULE_2__["default"], 1004 migrate(attributes) { 1005 // Migrate old sticky attribute to freeModeSticky 1006 const { 1007 sticky, 1008 ...restAttributes 1009 } = attributes; 1010 return { 1011 ...restAttributes, 1012 freeModeSticky: sticky || false 1013 }; 1014 } 1015 }, 1016 // Version 1: Original old save format 1017 { 1018 save: _oldsave__WEBPACK_IMPORTED_MODULE_1__["default"] 1019 }]); 1020 1021 /***/ }, 1022 1023 /***/ "./src/blocks/slides/edit.js" 1024 /*!***********************************!*\ 1025 !*** ./src/blocks/slides/edit.js ***! 1026 \***********************************/ 1027 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1028 1029 "use strict"; 1030 __webpack_require__.r(__webpack_exports__); 1031 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 1032 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 1033 /* harmony export */ }); 1034 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames/dedupe */ "./node_modules/classnames/dedupe.js"); 1035 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__); 1036 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react"); 1037 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); 1038 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 1039 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__); 1040 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 1041 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__); 1042 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); 1043 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_4__); 1044 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 1045 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__); 1046 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 1047 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__); 1048 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 1049 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_7__); 1050 /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); 1051 /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_8__); 1052 /* harmony import */ var _components_remove_button__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../components/remove-button */ "./src/components/remove-button/index.js"); 1053 /* harmony import */ var _utils_get_unique_slug__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../utils/get-unique-slug */ "./src/utils/get-unique-slug/index.js"); 1054 /* harmony import */ var _utils_get_image__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../utils/get-image */ "./src/utils/get-image/index.js"); 1055 /* harmony import */ var _utils_shared__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../utils/shared */ "./src/utils/shared.js"); 1056 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); 1057 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__); 1058 /** 1059 * External dependencies 1060 */ 1061 1062 1063 /** 1064 * WordPress dependencies 1065 */ 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 /** 1076 * Internal dependencies 1077 */ 1078 1079 1080 1081 1082 1083 // Template for default inner blocks (one slide by default) 1084 1085 const INNER_BLOCKS_TEMPLATE = [['da/wp-swiper-slide', { 1086 slug: 'slide-1' 1087 }]]; 1088 1089 /** 1090 * Helper function to build the Swiper config object from attributes 1091 * This mirrors the logic in save.js to generate the same data-swiper JSON 1092 */ 1093 function buildSwiperConfig(attributes) { 1094 const { 1095 slidesPerView, 1096 slidesPerGroup, 1097 slidesPerGroupAuto, 1098 slidesPerGroupSkip, 1099 spaceBetween, 1100 autoSlideWidth, 1101 autoplay, 1102 disableOnInteraction, 1103 pauseOnMouseEnter, 1104 reverseDirection, 1105 stopOnLastSlide, 1106 waitForTransition, 1107 delay, 1108 speed, 1109 loop, 1110 loopAddBlankSlides, 1111 loopAdditionalSlides, 1112 effect, 1113 navigation, 1114 mousewheel, 1115 releaseOnEdges, 1116 pagination_type, 1117 clickable_pagination, 1118 breakpoints, 1119 freeMode, 1120 freeModeMinimumVelocity, 1121 freeModeMomentum, 1122 freeModeMomentumBounce, 1123 freeModeMomentumBounceRatio, 1124 freeModeMomentumRatio, 1125 freeModeMomentumVelocityRatio, 1126 freeModeSticky, 1127 autoHeight, 1128 direction, 1129 slidesOffsetBefore, 1130 slidesOffsetAfter 1131 } = attributes; 1132 let data_atts = { 1133 slidesPerView: slidesPerView === 'auto' ? 'auto' : parseInt(slidesPerView, 10), 1134 slidesPerGroup, 1135 slidesPerGroupAuto, 1136 slidesPerGroupSkip, 1137 navigation, 1138 pagination: {}, 1139 delay: delay, 1140 speed: speed, 1141 loop: loop, 1142 direction, 1143 slidesOffsetBefore, 1144 slidesOffsetAfter, 1145 autoHeight, 1146 spaceBetween, 1147 releaseOnEdges 1148 }; 1149 1150 // Auto Slide Width logic 1151 if (autoSlideWidth) { 1152 data_atts.autoSlideWidth = true; 1153 } 1154 1155 // Mousewheel and release on edges logic 1156 if (mousewheel && releaseOnEdges) { 1157 data_atts.mousewheel = { 1158 releaseOnEdges: releaseOnEdges === 'true' 1159 }; 1160 } 1161 1162 // Loop logic 1163 if (loop) { 1164 data_atts.loopAddBlankSlides = loopAddBlankSlides; 1165 data_atts.loopAdditionalSlides = loopAdditionalSlides; 1166 } 1167 1168 // Effect logic 1169 if (effect) { 1170 data_atts.effect = effect; 1171 if (effect === 'fade') { 1172 data_atts.fadeEffect = { 1173 crossFade: true 1174 }; 1175 } 1176 } 1177 1178 // Autoplay logic 1179 if (autoplay) { 1180 data_atts.autoplay = true; 1181 if (delay !== null && delay !== undefined) { 1182 data_atts.autoplay = { 1183 delay: Number(delay) 1184 }; 1185 } 1186 if (disableOnInteraction) { 1187 if (!data_atts.autoplay || data_atts.autoplay === true) { 1188 data_atts.autoplay = {}; 1189 } 1190 data_atts.autoplay.disableOnInteraction = true; 1191 } 1192 if (pauseOnMouseEnter) { 1193 if (!data_atts.autoplay || data_atts.autoplay === true) { 1194 data_atts.autoplay = {}; 1195 } 1196 data_atts.autoplay.pauseOnMouseEnter = true; 1197 } 1198 if (reverseDirection) { 1199 if (!data_atts.autoplay || data_atts.autoplay === true) { 1200 data_atts.autoplay = {}; 1201 } 1202 data_atts.autoplay.reverseDirection = true; 1203 } 1204 if (stopOnLastSlide) { 1205 if (!data_atts.autoplay || data_atts.autoplay === true) { 1206 data_atts.autoplay = {}; 1207 } 1208 data_atts.autoplay.stopOnLastSlide = true; 1209 } 1210 if (waitForTransition !== undefined && waitForTransition !== null) { 1211 if (!data_atts.autoplay || data_atts.autoplay === true) { 1212 data_atts.autoplay = {}; 1213 } 1214 data_atts.autoplay.waitForTransition = waitForTransition; 1215 } 1216 } 1217 1218 // Freemode 1219 if (freeMode) { 1220 data_atts.freeMode = { 1221 enabled: true, 1222 minimumVelocity: freeModeMinimumVelocity, 1223 momentum: freeModeMomentum, 1224 momentumBounce: freeModeMomentumBounce, 1225 momentumBounceRatio: freeModeMomentumBounceRatio, 1226 momentumRatio: freeModeMomentumRatio, 1227 momentumVelocityRatio: freeModeMomentumVelocityRatio, 1228 sticky: freeModeSticky 1229 }; 1230 } 1231 1232 // Pagination 1233 data_atts.pagination.type = pagination_type !== 'bullets' ? pagination_type : 'bullets'; 1234 if (clickable_pagination) { 1235 data_atts.pagination.clickable = clickable_pagination ? true : ''; 1236 } 1237 if (typeof breakpoints !== 'undefined' && breakpoints !== '') { 1238 data_atts.breakpoints = breakpoints; 1239 } 1240 return data_atts; 1241 } 1242 1243 /** 1244 * Swiper Config Editor Component 1245 * Displays editable JSON config for the slider 1246 */ 1247 function SwiperConfigEditor({ 1248 attributes, 1249 setAttributes 1250 }) { 1251 const [jsonValue, setJsonValue] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''); 1252 const [isValid, setIsValid] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true); 1253 const [hasChanges, setHasChanges] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false); 1254 1255 // Build the current config from attributes 1256 const currentConfig = buildSwiperConfig(attributes); 1257 const currentConfigJson = JSON.stringify(currentConfig, null, 2); 1258 1259 // Update local state when attributes change (but only if user hasn't made changes) 1260 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => { 1261 if (!hasChanges) { 1262 setJsonValue(currentConfigJson); 1263 } 1264 }, [currentConfigJson, hasChanges]); 1265 1266 // Initialize on mount 1267 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => { 1268 setJsonValue(currentConfigJson); 1269 }, []); 1270 const handleJsonChange = value => { 1271 setJsonValue(value); 1272 setHasChanges(true); 1273 1274 // Validate JSON 1275 try { 1276 JSON.parse(value); 1277 setIsValid(true); 1278 } catch (e) { 1279 setIsValid(false); 1280 } 1281 }; 1282 const handleSave = () => { 1283 if (!isValid) return; 1284 try { 1285 const parsed = JSON.parse(jsonValue); 1286 1287 // Map JSON config back to block attributes 1288 const newAttributes = {}; 1289 if (parsed.slidesPerView !== undefined) newAttributes.slidesPerView = parsed.slidesPerView; 1290 if (parsed.slidesPerGroup !== undefined) newAttributes.slidesPerGroup = parsed.slidesPerGroup; 1291 if (parsed.slidesPerGroupAuto !== undefined) newAttributes.slidesPerGroupAuto = parsed.slidesPerGroupAuto; 1292 if (parsed.slidesPerGroupSkip !== undefined) newAttributes.slidesPerGroupSkip = parsed.slidesPerGroupSkip; 1293 if (parsed.spaceBetween !== undefined) newAttributes.spaceBetween = parsed.spaceBetween; 1294 if (parsed.autoSlideWidth !== undefined) newAttributes.autoSlideWidth = parsed.autoSlideWidth; 1295 if (parsed.navigation !== undefined) newAttributes.navigation = parsed.navigation; 1296 if (parsed.delay !== undefined) newAttributes.delay = parsed.delay; 1297 if (parsed.speed !== undefined) newAttributes.speed = parsed.speed; 1298 if (parsed.loop !== undefined) newAttributes.loop = parsed.loop; 1299 if (parsed.direction !== undefined) newAttributes.direction = parsed.direction; 1300 if (parsed.slidesOffsetBefore !== undefined) newAttributes.slidesOffsetBefore = parsed.slidesOffsetBefore; 1301 if (parsed.slidesOffsetAfter !== undefined) newAttributes.slidesOffsetAfter = parsed.slidesOffsetAfter; 1302 if (parsed.autoHeight !== undefined) newAttributes.autoHeight = parsed.autoHeight; 1303 if (parsed.releaseOnEdges !== undefined) newAttributes.releaseOnEdges = parsed.releaseOnEdges; 1304 if (parsed.effect !== undefined) newAttributes.effect = parsed.effect; 1305 if (parsed.loopAddBlankSlides !== undefined) newAttributes.loopAddBlankSlides = parsed.loopAddBlankSlides; 1306 if (parsed.loopAdditionalSlides !== undefined) newAttributes.loopAdditionalSlides = parsed.loopAdditionalSlides; 1307 1308 // Handle autoplay object 1309 if (parsed.autoplay !== undefined) { 1310 if (parsed.autoplay === true || typeof parsed.autoplay === 'object') { 1311 newAttributes.autoplay = true; 1312 if (typeof parsed.autoplay === 'object') { 1313 if (parsed.autoplay.delay !== undefined) newAttributes.delay = parsed.autoplay.delay; 1314 if (parsed.autoplay.disableOnInteraction !== undefined) newAttributes.disableOnInteraction = parsed.autoplay.disableOnInteraction; 1315 if (parsed.autoplay.pauseOnMouseEnter !== undefined) newAttributes.pauseOnMouseEnter = parsed.autoplay.pauseOnMouseEnter; 1316 if (parsed.autoplay.reverseDirection !== undefined) newAttributes.reverseDirection = parsed.autoplay.reverseDirection; 1317 if (parsed.autoplay.stopOnLastSlide !== undefined) newAttributes.stopOnLastSlide = parsed.autoplay.stopOnLastSlide; 1318 if (parsed.autoplay.waitForTransition !== undefined) newAttributes.waitForTransition = parsed.autoplay.waitForTransition; 1319 } 1320 } else { 1321 newAttributes.autoplay = false; 1322 } 1323 } 1324 1325 // Handle freeMode object 1326 if (parsed.freeMode !== undefined) { 1327 if (typeof parsed.freeMode === 'object' && parsed.freeMode.enabled) { 1328 newAttributes.freeMode = true; 1329 if (parsed.freeMode.minimumVelocity !== undefined) newAttributes.freeModeMinimumVelocity = parsed.freeMode.minimumVelocity; 1330 if (parsed.freeMode.momentum !== undefined) newAttributes.freeModeMomentum = parsed.freeMode.momentum; 1331 if (parsed.freeMode.momentumBounce !== undefined) newAttributes.freeModeMomentumBounce = parsed.freeMode.momentumBounce; 1332 if (parsed.freeMode.momentumBounceRatio !== undefined) newAttributes.freeModeMomentumBounceRatio = parsed.freeMode.momentumBounceRatio; 1333 if (parsed.freeMode.momentumRatio !== undefined) newAttributes.freeModeMomentumRatio = parsed.freeMode.momentumRatio; 1334 if (parsed.freeMode.momentumVelocityRatio !== undefined) newAttributes.freeModeMomentumVelocityRatio = parsed.freeMode.momentumVelocityRatio; 1335 if (parsed.freeMode.sticky !== undefined) newAttributes.freeModeSticky = parsed.freeMode.sticky; 1336 } else { 1337 newAttributes.freeMode = false; 1338 } 1339 } 1340 1341 // Handle pagination object 1342 if (parsed.pagination !== undefined) { 1343 if (parsed.pagination.type !== undefined) newAttributes.pagination_type = parsed.pagination.type; 1344 if (parsed.pagination.clickable !== undefined) newAttributes.clickable_pagination = parsed.pagination.clickable; 1345 } 1346 1347 // Handle breakpoints 1348 if (parsed.breakpoints !== undefined) newAttributes.breakpoints = parsed.breakpoints; 1349 1350 // Handle mousewheel 1351 if (parsed.mousewheel !== undefined) { 1352 newAttributes.mousewheel = true; 1353 if (typeof parsed.mousewheel === 'object' && parsed.mousewheel.releaseOnEdges !== undefined) { 1354 newAttributes.releaseOnEdges = parsed.mousewheel.releaseOnEdges ? 'true' : 'false'; 1355 } 1356 } 1357 setAttributes(newAttributes); 1358 setHasChanges(false); 1359 } catch (e) { 1360 console.error('Failed to parse JSON config:', e); 1361 } 1362 }; 1363 const handleReset = () => { 1364 setJsonValue(currentConfigJson); 1365 setHasChanges(false); 1366 setIsValid(true); 1367 }; 1368 const helperTextStyle = { 1369 marginTop: '8px', 1370 fontSize: '12px', 1371 fontStyle: 'normal', 1372 color: 'rgb(117, 117, 117)', 1373 marginBottom: '12px' 1374 }; 1375 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.Fragment, { 1376 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.BaseControl, { 1377 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Swiper Configuration (JSON)'), 1378 help: !isValid ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Invalid JSON format. Please fix the syntax errors.') : '', 1379 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("textarea", { 1380 value: jsonValue, 1381 onChange: e => handleJsonChange(e.target.value), 1382 rows: 15, 1383 style: { 1384 width: '100%', 1385 fontFamily: 'monospace', 1386 fontSize: '11px', 1387 padding: '8px', 1388 border: `1px solid ${isValid ? '#8c8f94' : '#cc1818'}`, 1389 borderRadius: '4px', 1390 backgroundColor: isValid ? '#fff' : '#fff5f5', 1391 resize: 'vertical' 1392 } 1393 }) 1394 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1395 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 1396 variant: "primary", 1397 onClick: handleSave, 1398 disabled: !isValid || !hasChanges, 1399 style: { 1400 marginRight: '8px' 1401 }, 1402 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Apply Changes') 1403 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 1404 variant: "secondary", 1405 onClick: handleReset, 1406 disabled: !hasChanges, 1407 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Reset') 1408 })] 1409 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("p", { 1410 style: helperTextStyle, 1411 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('This JSON object represents the Swiper initialization configuration. You can edit properties directly here and click "Apply Changes" to update the slider settings. This is useful for advanced customizations or copying configurations between sliders.') 1412 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("p", { 1413 style: helperTextStyle, 1414 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("strong", { 1415 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Tip:') 1416 }), " ", (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Changes made here will update the corresponding settings in the sidebar panels. Some nested properties (like autoplay options) will be extracted to their respective settings.')] 1417 })] 1418 }); 1419 } 1420 1421 /** 1422 * Block Edit Class. 1423 */ 1424 function BlockEdit(props) { 1425 const { 1426 clientId, 1427 attributes, 1428 setAttributes, 1429 isSelectedBlockInRoot, 1430 getBlocks, 1431 replaceInnerBlocks, 1432 updateBlockAttributes, 1433 block, 1434 updateSlugsForInnerBlocks 1435 } = props; 1436 let { 1437 className 1438 } = props; 1439 const blockProps = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.useBlockProps)(); 1440 const { 1441 tabActive, 1442 buttonsAlign, 1443 tabsData, 1444 txtColor, 1445 overlayColor, 1446 overlayImg, 1447 overlayImgOpacity, 1448 autoplay, 1449 disableOnInteraction, 1450 pauseOnMouseEnter, 1451 reverseDirection, 1452 stopOnLastSlide, 1453 waitForTransition, 1454 delay, 1455 speed, 1456 loop, 1457 loopAddBlankSlides, 1458 loopAdditionalSlides, 1459 effect, 1460 slidesPerView, 1461 slidesPerGroup, 1462 slidesPerGroupAuto, 1463 slidesPerGroupSkip, 1464 spaceBetween, 1465 autoSlideWidth, 1466 navigation, 1467 pagination, 1468 containerWidth, 1469 mousewheel, 1470 releaseOnEdges, 1471 pagination_type, 1472 clickable_pagination, 1473 breakpoints, 1474 freeMode, 1475 freeModeMinimumVelocity, 1476 freeModeMomentum, 1477 freeModeMomentumBounce, 1478 freeModeMomentumBounceRatio, 1479 freeModeMomentumRatio, 1480 freeModeMomentumVelocityRatio, 1481 freeModeSticky, 1482 thumbs, 1483 thumbsSlidesPerView, 1484 thumbsSpaceBetween, 1485 autoHeight, 1486 debug, 1487 direction, 1488 previousIcon, 1489 nextIcon, 1490 slidesOffsetBefore, 1491 slidesOffsetAfter, 1492 overflowVisible 1493 } = attributes; 1494 const child_blocks = getBlocks(clientId); 1495 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => { 1496 // Extract the client IDs of the inner blocks 1497 const prevClientIdOrder = block.innerBlocks.map(ib => ib.attributes.slug); 1498 const propClientIdOrder = props.attributes.tabsData.map(tabData => tabData.slug); 1499 const prevThumbImg = block.innerBlocks.map(ib => ib.attributes.thumbImg); 1500 const propThumbImg = props.attributes.tabsData.map(tabData => tabData.thumbImg); 1501 1502 // console.log({ 1503 // child_blocks, 1504 // innerBlocks: block.innerBlocks, 1505 // prevClientIdOrder, 1506 // propClientIdOrder, 1507 // areArraysEqualWithoutOrder: areArraysEqualWithoutOrder(prevClientIdOrder, propClientIdOrder), 1508 // }); 1509 1510 // Disabled: for now, this was preventing the thumbs to update 1511 // Check if the order of client IDs has changed 1512 1513 let counter = 0; 1514 1515 // if we disable this line of code, then adding new slide doesnt work 1516 // intorducing if else , fixed the problem, above line can be removed 1517 // && is important to make sure both conditions are evaluated before proceeding 1518 if (!areArraysEqualWithoutOrder(prevClientIdOrder, propClientIdOrder && !areArraysEqualWithoutOrder(prevThumbImg, propThumbImg))) { 1519 const newTabsData = block.innerBlocks.map((tabData, index) => { 1520 counter++; 1521 1522 // removed: logically we do this step later in setAttributes 1523 // updateBlockAttributes(tabData.clientId, { 1524 // slug: `slide-${counter}`, 1525 // }); 1526 1527 // console.log({ 1528 // "trigger": "child_blocks", 1529 // clientId: tabData.clientId, 1530 // slideImg: tabData.attributes.slideImg, 1531 // thumbImg: tabData.attributes.thumbImg, 1532 // slug: `slide-${counter}`, 1533 // }); 1534 1535 return { 1536 clientId: tabData.clientId, 1537 slideImg: tabData.attributes.slideImg, 1538 thumbImg: tabData.attributes.thumbImg, 1539 slug: `slide-${counter}` 1540 }; 1541 }); 1542 updateSlugsForInnerBlocks(block.innerBlocks); 1543 setAttributes({ 1544 tabsData: newTabsData 1545 }); 1546 } 1547 }, [child_blocks]); 1548 const [alignment, setAlignment] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('bottom center'); 1549 1550 // Function to check if two arrays are equal without considering the order of elements 1551 const areArraysEqualWithoutOrder = (arr1, arr2) => { 1552 // Check if the lengths of the arrays are different, if so, they can't be equal 1553 if (arr1.length !== arr2.length) { 1554 // Arrays have different lengths, so they are not equal 1555 return false; 1556 } 1557 1558 // Use the every() method to check if every element at the same index is equal 1559 return arr1.every((value, index) => { 1560 // console.log(`Comparing: "${value}" === "${arr2[index]}"`); 1561 return value === arr2[index]; 1562 }); 1563 }; 1564 1565 /** 1566 * Returns the layouts configuration for a given number of tabs. 1567 * 1568 * @param {number} attributes tabs attributes. 1569 * 1570 * @return {Object[]} Tabs layout configuration. 1571 */ 1572 const getTabsTemplate = () => { 1573 const { 1574 tabsData 1575 } = attributes; 1576 return tabsData.map(tabData => ['da/wp-swiper-slide', tabData]); 1577 }; 1578 const getTabs = () => { 1579 return block.innerBlocks; 1580 }; 1581 const changeLabel = (dataType, value, i) => { 1582 const { 1583 setAttributes, 1584 attributes, 1585 updateBlockAttributes 1586 } = props; 1587 const { 1588 tabsData 1589 } = attributes; 1590 const tabs = getTabs(); 1591 if (tabs[i]) { 1592 const newSlug = dataType == 'title' ? (0,_utils_get_unique_slug__WEBPACK_IMPORTED_MODULE_10__["default"])(`tab ${value}`, tabs[i].clientId) : tabsData[i].slug; 1593 const newTabsData = tabsData.map((oldTabData, newIndex) => { 1594 if (i === newIndex) { 1595 return { 1596 ...oldTabData, 1597 ...{ 1598 title: dataType == 'title' ? value : tabsData[i].title, 1599 subtitle: dataType == 'subtitle' ? value : tabsData[i].subtitle, 1600 image: dataType == 'image' ? value : tabsData[i].image, 1601 overlayImg: dataType == 'overlayImg' ? value : tabsData[i].overlayImg, 1602 overlayColor: dataType == 'overlayColor' ? value : tabsData[i].overlayColor, 1603 slug: newSlug 1604 } 1605 }; 1606 } 1607 return oldTabData; 1608 }); 1609 setAttributes({ 1610 currentSlide: i, 1611 tabActive: newSlug, 1612 tabsData: newTabsData 1613 }); 1614 updateBlockAttributes(tabs[i].clientId, { 1615 slug: newSlug 1616 }); 1617 } 1618 }; 1619 const removeTab = i => { 1620 const { 1621 setAttributes, 1622 attributes, 1623 block, 1624 getBlocks, 1625 replaceInnerBlocks, 1626 removeBlock 1627 } = props; 1628 const { 1629 tabsData = [] 1630 } = attributes; 1631 if (1 >= block.innerBlocks.length) { 1632 removeBlock(block.clientId); 1633 } else if (block.innerBlocks[i]) { 1634 if (tabsData[i]) { 1635 const newTabsData = (0,_utils_shared__WEBPACK_IMPORTED_MODULE_12__.deepClone)(tabsData); 1636 newTabsData.splice(i, 1); 1637 1638 // const slug = i; 1639 // tabsData[i] = { 1640 // ...tabsData[i], 1641 // slug: `slide-${slug}`, 1642 // }; 1643 // console.log('2', tabsData); 1644 1645 // update slug attribute 1646 // for inner blocks (slide) 1647 1648 removeBlock(block.innerBlocks[i].clientId); 1649 for (let j = i; j < newTabsData.length; j++) { 1650 const newSlug = `slide-${j + 1}`; 1651 newTabsData[j].slug = newSlug; 1652 updateBlockAttributes(newTabsData[j].clientId, { 1653 slug: newSlug 1654 }); 1655 } 1656 setAttributes({ 1657 tabsData: newTabsData 1658 }); 1659 } 1660 } 1661 }; 1662 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => { 1663 return; 1664 // removed by dead control flow 1665 1666 1667 // Extract the client IDs of the inner blocks 1668 // removed by dead control flow 1669 1670 // removed by dead control flow 1671 1672 1673 // Check if the order of client IDs has changed 1674 // removed by dead control flow 1675 1676 }, [tabsData]); 1677 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, 'wp-swiper__slides'); 1678 let buttonsAlignValForControl = buttonsAlign; 1679 if (buttonsAlignValForControl === 'start') { 1680 buttonsAlignValForControl = 'left'; 1681 } else if (buttonsAlignValForControl === 'end') { 1682 buttonsAlignValForControl = 'right'; 1683 } 1684 1685 // used for the map function to create numbered tabs 1686 let counter = 1; 1687 const style = txtColor ? { 1688 color: txtColor 1689 } : {}; 1690 const Seperator = () => { 1691 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1692 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("div", { 1693 style: { 1694 borderTop: '1px solid #dddddd', 1695 marginTop: '16px', 1696 marginBottom: '16px', 1697 width: '100%' 1698 } 1699 }) 1700 }); 1701 }; 1702 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.Fragment, { 1703 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.InspectorControls, { 1704 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 1705 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Overlay Settings'), 1706 initialOpen: false, 1707 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1708 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.MediaUploadCheck, { 1709 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.MediaUpload, { 1710 value: overlayImg, 1711 onSelect: media => { 1712 let img_url = media.sizes.full.url; 1713 setAttributes({ 1714 overlayImg: img_url 1715 }); 1716 }, 1717 type: "image", 1718 render: open => { 1719 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 1720 onClick: open.open, 1721 className: "button", 1722 children: "Select overlay image" 1723 }); 1724 } 1725 }) 1726 }) 1727 }), overlayImg && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1728 children: (0,_utils_get_image__WEBPACK_IMPORTED_MODULE_11__["default"])(overlayImg) 1729 }), overlayImg && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1730 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 1731 isSecondary: true, 1732 size: "small", 1733 className: "block-library-cover__reset-button", 1734 onClick: () => setAttributes({ 1735 overlayImg: undefined 1736 }), 1737 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Clear Media') 1738 }) 1739 }), overlayImg && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.BaseControl, { 1740 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Image Overlay Opacity', '@@text_domain'), 1741 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.RangeControl, { 1742 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Opacity'), 1743 value: overlayImgOpacity, 1744 onChange: value => setAttributes({ 1745 overlayImgOpacity: value 1746 }), 1747 min: 0, 1748 max: 1, 1749 step: 0.01, 1750 required: true 1751 }) 1752 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(Seperator, {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.BaseControl, { 1753 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Overlay Color', '@@text_domain'), 1754 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ColorPicker, { 1755 color: overlayColor.hex || overlayColor, 1756 onChangeComplete: color => { 1757 setAttributes({ 1758 overlayColor: color 1759 }); 1760 let iBlocks = block.innerBlocks; 1761 iBlocks.map(iBlock => { 1762 updateBlockAttributes(iBlock.clientId, { 1763 overlayColor: color 1764 }); 1765 }); 1766 } 1767 }) 1768 }), overlayColor.rgb.a > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1769 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 1770 isSecondary: true, 1771 size: "small", 1772 className: "block-library-cover__reset-button", 1773 onClick: () => { 1774 const defaultColor = { 1775 rgb: { 1776 r: 0, 1777 g: 0, 1778 b: 0, 1779 a: 0 1780 } 1781 }; 1782 setAttributes({ 1783 overlayColor: defaultColor 1784 }); 1785 1786 // Update all inner blocks 1787 let iBlocks = block.innerBlocks; 1788 iBlocks.map(iBlock => { 1789 updateBlockAttributes(iBlock.clientId, { 1790 overlayColor: defaultColor 1791 }); 1792 }); 1793 }, 1794 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Clear Color') 1795 }) 1796 })] 1797 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 1798 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Color Settings'), 1799 initialOpen: false, 1800 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.BaseControl, { 1801 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Text Color', '@@text_domain'), 1802 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ColorPicker, { 1803 color: txtColor, 1804 onChangeComplete: color => setAttributes({ 1805 txtColor: color.hex 1806 }) 1807 }) 1808 }) 1809 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 1810 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Basic Slider Settings'), 1811 icon: "controls-play", 1812 initialOpen: true, 1813 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1814 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 1815 label: "Auto Play", 1816 checked: autoplay, 1817 onChange: () => { 1818 setAttributes({ 1819 autoplay: !autoplay 1820 }); 1821 } 1822 }) 1823 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1824 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 1825 label: "Loop", 1826 checked: loop, 1827 onChange: () => { 1828 setAttributes({ 1829 loop: !loop 1830 }); 1831 } 1832 }) 1833 }), loop && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.Fragment, { 1834 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1835 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 1836 label: "Loop Add Blank Slides", 1837 help: "Automatically adds blank slides if you use Grid or slidesPerGroup and the total amount of slides is not even to slidesPerGroup or to grid.rows", 1838 checked: loopAddBlankSlides, 1839 onChange: () => { 1840 setAttributes({ 1841 loopAddBlankSlides: !loopAddBlankSlides 1842 }); 1843 } 1844 }) 1845 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1846 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextControl, { 1847 label: "Loop Additional Slides", 1848 help: "Allows to increase amount of looped slides", 1849 value: loopAdditionalSlides, 1850 type: "number", 1851 onChange: option => { 1852 setAttributes({ 1853 loopAdditionalSlides: parseInt(option) 1854 }); 1855 } 1856 }) 1857 })] 1858 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1859 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextControl, { 1860 label: "Speed", 1861 help: "Duration of transition between slides (in ms)", 1862 value: speed, 1863 type: "number", 1864 onChange: option => { 1865 setAttributes({ 1866 speed: parseInt(option) 1867 }); 1868 } 1869 }) 1870 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1871 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextControl, { 1872 label: "Delay", 1873 help: "Delay between transitions (in ms)", 1874 value: delay, 1875 type: "number", 1876 onChange: option => { 1877 setAttributes({ 1878 delay: parseInt(option) 1879 }); 1880 } 1881 }) 1882 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1883 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.RangeControl, { 1884 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Container Max Width %'), 1885 help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Frontend: Set the max width for the content with text.'), 1886 value: containerWidth, 1887 onChange: value => { 1888 setAttributes({ 1889 containerWidth: value 1890 }); 1891 let iBlocks = block.innerBlocks; 1892 iBlocks.map(iBlock => { 1893 updateBlockAttributes(iBlock.clientId, { 1894 containerWidth: value 1895 }); 1896 }); 1897 }, 1898 min: 1, 1899 max: 100, 1900 step: 1, 1901 required: true 1902 }) 1903 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1904 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 1905 label: "Overflow Visible", 1906 help: "Apply overflow visible to the swiper container", 1907 checked: overflowVisible, 1908 onChange: () => { 1909 setAttributes({ 1910 overflowVisible: !overflowVisible 1911 }); 1912 } 1913 }) 1914 })] 1915 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 1916 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Slides Configuration'), 1917 icon: "grid-view", 1918 initialOpen: false, 1919 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1920 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextControl, { 1921 label: "Slides per view", 1922 help: "Number of slides per view (slides visible at the same time on slider's container). Can be a number or auto", 1923 value: slidesPerView, 1924 onChange: option => { 1925 setAttributes({ 1926 slidesPerView: option 1927 }); 1928 } 1929 }) 1930 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1931 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextControl, { 1932 label: "Slides Per Group", 1933 help: "Set numbers of slides to define and enable group sliding. Useful to use with slidesPerView > 1", 1934 value: slidesPerGroup, 1935 type: "number", 1936 onChange: option => { 1937 setAttributes({ 1938 slidesPerGroup: parseInt(option) 1939 }); 1940 } 1941 }) 1942 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1943 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 1944 label: "Slides Per Group Auto", 1945 help: "This param intended to be used only with slidesPerView: 'auto' and slidesPerGroup: 1. When enabled, it will skip all slides in view on .slideNext() & .slidePrev() methods calls, on Navigation buttons clicks and in autoplay.", 1946 checked: slidesPerGroupAuto, 1947 onChange: () => { 1948 setAttributes({ 1949 slidesPerGroupAuto: !slidesPerGroupAuto 1950 }); 1951 } 1952 }) 1953 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1954 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextControl, { 1955 label: "Slides Per Group Skip", 1956 help: "If slidesPerGroupSkip equals 0 (default), no slides are excluded from grouping. If slidesPerGroupSkip is equal or greater than 1, the first X slides are treated as single groups, whereas all following slides are grouped by the slidesPerGroup value.", 1957 value: slidesPerGroupSkip, 1958 type: "number", 1959 onChange: option => { 1960 setAttributes({ 1961 slidesPerGroupSkip: parseInt(option) 1962 }); 1963 } 1964 }) 1965 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1966 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextControl, { 1967 label: "Space Between", 1968 help: "Distance between slides in px.", 1969 value: spaceBetween, 1970 onChange: option => { 1971 setAttributes({ 1972 spaceBetween: parseInt(option) 1973 }); 1974 } 1975 }) 1976 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1977 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 1978 label: "Auto Slide Width", 1979 help: "Makes each slide size itself based on its content instead of being evenly distributed. Useful for logos, badges, small cards, or any element that should not be stretched.", 1980 checked: autoSlideWidth, 1981 onChange: () => { 1982 setAttributes({ 1983 autoSlideWidth: !autoSlideWidth 1984 }); 1985 } 1986 }) 1987 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1988 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextControl, { 1989 label: "Slides Offset Before", 1990 help: "Add (in px) additional slide offset in the beginning of the container (before all slides)", 1991 value: slidesOffsetBefore, 1992 onChange: option => { 1993 setAttributes({ 1994 slidesOffsetBefore: parseInt(option) 1995 }); 1996 } 1997 }) 1998 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 1999 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextControl, { 2000 label: "Slides Offset After", 2001 help: "Add (in px) additional slide offset in the end of the container (after all slides)", 2002 value: slidesOffsetAfter, 2003 onChange: option => { 2004 setAttributes({ 2005 slidesOffsetAfter: parseInt(option) 2006 }); 2007 } 2008 }) 2009 })] 2010 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 2011 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Navigation & Controls'), 2012 icon: "leftright", 2013 initialOpen: false, 2014 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2015 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2016 label: "Show Navigation", 2017 checked: navigation, 2018 onChange: () => { 2019 setAttributes({ 2020 navigation: !navigation 2021 }); 2022 } 2023 }) 2024 }), navigation && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.Fragment, { 2025 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2026 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("p", { 2027 children: "You can customize icons by uploading your own. Default icons used otherwise." 2028 }) 2029 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2030 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.MediaUploadCheck, { 2031 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.MediaUpload, { 2032 value: previousIcon, 2033 onSelect: media => { 2034 let img_url = media.sizes.full.url; 2035 setAttributes({ 2036 previousIcon: img_url 2037 }); 2038 }, 2039 type: "image", 2040 render: open => { 2041 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 2042 onClick: open.open, 2043 className: "button", 2044 children: "Select previous slide icon" 2045 }); 2046 } 2047 }) 2048 }) 2049 }), previousIcon && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2050 children: (0,_utils_get_image__WEBPACK_IMPORTED_MODULE_11__["default"])(previousIcon) 2051 }), previousIcon && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2052 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 2053 isSecondary: true, 2054 size: "small", 2055 className: "block-library-cover__reset-button", 2056 onClick: () => setAttributes({ 2057 previousIcon: undefined 2058 }), 2059 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Clear Media') 2060 }) 2061 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2062 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.MediaUploadCheck, { 2063 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.MediaUpload, { 2064 value: nextIcon, 2065 onSelect: media => { 2066 let img_url = media.sizes.full.url; 2067 setAttributes({ 2068 nextIcon: img_url 2069 }); 2070 }, 2071 type: "image", 2072 render: open => { 2073 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 2074 onClick: open.open, 2075 className: "button", 2076 children: "Select next slide icon" 2077 }); 2078 } 2079 }) 2080 }) 2081 }), nextIcon && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2082 children: (0,_utils_get_image__WEBPACK_IMPORTED_MODULE_11__["default"])(nextIcon) 2083 }), nextIcon && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2084 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 2085 isSecondary: true, 2086 size: "small", 2087 className: "block-library-cover__reset-button", 2088 onClick: () => setAttributes({ 2089 nextIcon: undefined 2090 }), 2091 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Clear Media') 2092 }) 2093 })] 2094 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(Seperator, {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2095 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2096 label: "Show Pagination", 2097 checked: pagination, 2098 onChange: () => { 2099 setAttributes({ 2100 pagination: !pagination 2101 }); 2102 } 2103 }) 2104 }), pagination && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.Fragment, { 2105 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2106 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.SelectControl, { 2107 label: "Type of pagination", 2108 value: pagination_type, 2109 options: [{ 2110 label: 'Bullets', 2111 value: 'bullets' 2112 }, { 2113 label: 'Fraction', 2114 value: 'fraction' 2115 }, { 2116 label: 'Progress Bar', 2117 value: 'progressbar' 2118 }], 2119 onChange: option => { 2120 setAttributes({ 2121 pagination_type: option 2122 }); 2123 } 2124 }) 2125 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2126 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2127 label: "Clickable Pagination", 2128 checked: clickable_pagination, 2129 onChange: () => { 2130 setAttributes({ 2131 clickable_pagination: !clickable_pagination 2132 }); 2133 } 2134 }) 2135 })] 2136 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(Seperator, {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2137 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2138 label: "Auto Height", 2139 help: "Set to true and slider wrapper will adapt its height to the height of the currently active slide", 2140 checked: autoHeight, 2141 onChange: () => { 2142 setAttributes({ 2143 autoHeight: !autoHeight 2144 }); 2145 } 2146 }) 2147 })] 2148 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 2149 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Direction Settings'), 2150 icon: "sort", 2151 initialOpen: false, 2152 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.SelectControl, { 2153 label: "Direction", 2154 help: "For vertical slider, Slides Per View should be set to 1", 2155 value: direction, 2156 options: [{ 2157 label: 'Horizontal', 2158 value: 'horizontal' 2159 }, { 2160 label: 'Vertical', 2161 value: 'vertical' 2162 }], 2163 onChange: option => { 2164 setAttributes({ 2165 direction: option 2166 }); 2167 } 2168 }) 2169 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 2170 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Autoplay Behavior'), 2171 icon: "controls-repeat", 2172 initialOpen: false, 2173 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2174 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2175 label: "Disable On Interaction", 2176 checked: disableOnInteraction, 2177 help: "Set to false and autoplay will not be disabled after user interactions (swipes), it will be restarted every time after interaction", 2178 onChange: () => { 2179 setAttributes({ 2180 disableOnInteraction: !disableOnInteraction 2181 }); 2182 } 2183 }) 2184 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2185 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2186 label: "Pause On Mouse Enter", 2187 checked: pauseOnMouseEnter, 2188 help: "When enabled autoplay will be paused on pointer (mouse) enter over Swiper container.", 2189 onChange: () => { 2190 setAttributes({ 2191 pauseOnMouseEnter: !pauseOnMouseEnter 2192 }); 2193 } 2194 }) 2195 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2196 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2197 label: "Reverse Direction", 2198 checked: reverseDirection, 2199 help: "Enables autoplay in reverse direction", 2200 onChange: () => { 2201 setAttributes({ 2202 reverseDirection: !reverseDirection 2203 }); 2204 } 2205 }) 2206 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2207 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2208 label: "Stop On Last Slide", 2209 checked: stopOnLastSlide, 2210 help: "Enable this parameter and autoplay will be stopped when it reaches last slide (has no effect in loop mode)", 2211 onChange: () => { 2212 setAttributes({ 2213 stopOnLastSlide: !stopOnLastSlide 2214 }); 2215 } 2216 }) 2217 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2218 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2219 label: "Wait For Transition", 2220 checked: waitForTransition, 2221 help: "When enabled autoplay will wait for wrapper transition to continue. Can be disabled in case of using Virtual Translate when your slider may not have transition", 2222 onChange: () => { 2223 setAttributes({ 2224 waitForTransition: !waitForTransition 2225 }); 2226 } 2227 }) 2228 })] 2229 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 2230 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Advanced Features'), 2231 icon: "admin-generic", 2232 initialOpen: false, 2233 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2234 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.SelectControl, { 2235 label: "Effect (Under Construction)", 2236 value: effect, 2237 options: [{ 2238 label: 'Slide', 2239 value: 'slide' 2240 }, { 2241 label: 'Fade', 2242 value: 'fade' 2243 }, { 2244 label: 'Cube', 2245 value: 'cube' 2246 }, { 2247 label: 'Coverflow', 2248 value: 'coverflow' 2249 }, { 2250 label: 'Flip', 2251 value: 'flip' 2252 }], 2253 onChange: option => { 2254 setAttributes({ 2255 effect: option 2256 }); 2257 } 2258 }) 2259 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2260 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2261 label: "Mouse Wheel", 2262 help: "Enables navigation through slides using mouse wheel.", 2263 checked: mousewheel, 2264 onChange: () => { 2265 setAttributes({ 2266 mousewheel: !mousewheel 2267 }); 2268 } 2269 }) 2270 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2271 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2272 label: "Release On Edges", 2273 help: "Set to true and swiper will release mousewheel event and allow page scrolling when swiper is on edge positions (in the beginning or in the end) NOTE: Mouse Wheel must be set to true for this to work.", 2274 checked: releaseOnEdges, 2275 onChange: () => { 2276 setAttributes({ 2277 releaseOnEdges: !releaseOnEdges 2278 }); 2279 } 2280 }) 2281 })] 2282 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 2283 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Free Mode'), 2284 icon: "controls-play", 2285 initialOpen: false, 2286 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2287 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2288 label: "Enable Free Mode", 2289 help: "Whether the free mode is enabled. Slide will continue moving for a while after you release it.", 2290 checked: freeMode, 2291 onChange: () => { 2292 if (freeMode) { 2293 setAttributes({ 2294 freeModeSticky: false 2295 }); 2296 } 2297 setAttributes({ 2298 freeMode: !freeMode 2299 }); 2300 } 2301 }) 2302 }), freeMode && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.Fragment, { 2303 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2304 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.RangeControl, { 2305 label: "Minimum Velocity", 2306 help: "Minimum touchmove-velocity required to trigger free mode momentum", 2307 value: freeModeMinimumVelocity, 2308 onChange: value => { 2309 setAttributes({ 2310 freeModeMinimumVelocity: value 2311 }); 2312 }, 2313 min: 0, 2314 max: 1, 2315 step: 0.01 2316 }) 2317 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2318 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2319 label: "Momentum", 2320 help: "If enabled, then slide will keep moving for a while after you release it", 2321 checked: freeModeMomentum, 2322 onChange: () => { 2323 setAttributes({ 2324 freeModeMomentum: !freeModeMomentum 2325 }); 2326 } 2327 }) 2328 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2329 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2330 label: "Momentum Bounce", 2331 help: "Set to false if you want to disable momentum bounce in free mode", 2332 checked: freeModeMomentumBounce, 2333 onChange: () => { 2334 setAttributes({ 2335 freeModeMomentumBounce: !freeModeMomentumBounce 2336 }); 2337 } 2338 }) 2339 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2340 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.RangeControl, { 2341 label: "Momentum Bounce Ratio", 2342 help: "Higher value produces larger momentum bounce effect", 2343 value: freeModeMomentumBounceRatio, 2344 onChange: value => { 2345 setAttributes({ 2346 freeModeMomentumBounceRatio: value 2347 }); 2348 }, 2349 min: 0, 2350 max: 10, 2351 step: 0.1 2352 }) 2353 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2354 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.RangeControl, { 2355 label: "Momentum Ratio", 2356 help: "Higher value produces larger momentum distance after you release slider", 2357 value: freeModeMomentumRatio, 2358 onChange: value => { 2359 setAttributes({ 2360 freeModeMomentumRatio: value 2361 }); 2362 }, 2363 min: 0, 2364 max: 10, 2365 step: 0.1 2366 }) 2367 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2368 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.RangeControl, { 2369 label: "Momentum Velocity Ratio", 2370 help: "Higher value produces larger momentum velocity after you release slider", 2371 value: freeModeMomentumVelocityRatio, 2372 onChange: value => { 2373 setAttributes({ 2374 freeModeMomentumVelocityRatio: value 2375 }); 2376 }, 2377 min: 0, 2378 max: 10, 2379 step: 0.1 2380 }) 2381 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2382 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2383 label: "Sticky", 2384 help: "Set to enabled to enable snap to slides positions in free mode", 2385 checked: freeModeSticky, 2386 onChange: () => { 2387 setAttributes({ 2388 freeModeSticky: !freeModeSticky 2389 }); 2390 } 2391 }) 2392 })] 2393 })] 2394 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 2395 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Responsive Breakpoints'), 2396 icon: "smartphone", 2397 initialOpen: false, 2398 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2399 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextareaControl, { 2400 label: "Responsive breakpoints (JSON Object)", 2401 help: "Allows to set different parameter for different responsive breakpoints (screen sizes). Not all parameters can be changed in breakpoints, only those which are not required different layout and logic, like slidesPerView, slidesPerGroup, spaceBetween, grid.rows. Such parameters like loop and effect won't work", 2402 value: breakpoints, 2403 onChange: option => { 2404 setAttributes({ 2405 breakpoints: option 2406 }); 2407 } 2408 }) 2409 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2410 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("p", { 2411 children: ["Example: ", '{\"720\":{\"slidesPerView\":2}}', " - Notice the double quotes"] 2412 }) 2413 })] 2414 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 2415 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Thumbnails'), 2416 icon: "images-alt2", 2417 initialOpen: false, 2418 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2419 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2420 label: "Thumbs", 2421 help: "Enables thumbs to be used as pagination.", 2422 checked: thumbs, 2423 onChange: () => { 2424 setAttributes({ 2425 thumbs: !thumbs 2426 }); 2427 } 2428 }) 2429 }), thumbs && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.Fragment, { 2430 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2431 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextControl, { 2432 label: "Space Between", 2433 help: "Distance between slides in px.", 2434 value: thumbsSpaceBetween, 2435 onChange: option => { 2436 setAttributes({ 2437 thumbsSpaceBetween: parseInt(option) 2438 }); 2439 } 2440 }) 2441 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2442 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.TextControl, { 2443 label: "Thumbs per view", 2444 help: "Number of slides per view (slides visible at the same time on slider's container). Can be a number or auto", 2445 value: thumbsSlidesPerView, 2446 onChange: option => { 2447 setAttributes({ 2448 thumbsSlidesPerView: parseInt(option) 2449 }); 2450 } 2451 }) 2452 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2453 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.__experimentalAlignmentMatrixControl, { 2454 disableAlignment: ['center'], 2455 value: alignment, 2456 onChange: newAlignment => setAlignment(newAlignment) 2457 }) 2458 })] 2459 })] 2460 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelBody, { 2461 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Developer Tools'), 2462 icon: "admin-tools", 2463 initialOpen: false, 2464 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.ToggleControl, { 2465 label: "Debug", 2466 help: "Show (console.log) config JSON object for each slider", 2467 checked: debug, 2468 onChange: () => { 2469 setAttributes({ 2470 debug: !debug 2471 }); 2472 } 2473 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2474 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 2475 onClick: () => { 2476 let counter = 1; 2477 tabsData.forEach((tab, index) => { 2478 tab.slug = `slide-${counter}`; 2479 counter++; 2480 }); 2481 setAttributes({ 2482 tabsData 2483 }); 2484 updateSlugsForInnerBlocks(block.innerBlocks); 2485 }, 2486 className: "button", 2487 children: "Fix Slide Slugs" 2488 }) 2489 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.PanelRow, { 2490 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("p", { 2491 style: { 2492 marginTop: 'calc(8px)', 2493 fontSize: '12px', 2494 fontStyle: 'normal', 2495 color: 'rgb(117, 117, 117)', 2496 marginBottom: 'revert' 2497 }, 2498 children: "On rare occasions, if the slide slugs become out of sync with the slide data stored in the parent block, you might notice all slide contents appearing under a single tab. Clicking this button could help resolve the issue. This action iterates over each slide and resets the slugs in ascending order (e.g., slide-1, slide-2, etc.), ensuring that each tab properly corresponds to its respective slide." 2499 }) 2500 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(SwiperConfigEditor, { 2501 attributes: attributes, 2502 setAttributes: setAttributes 2503 })] 2504 })] 2505 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("div", { 2506 ...blockProps, 2507 className: classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(blockProps.className, className), 2508 "data-tab-active": tabActive, 2509 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("div", { 2510 className: "wb-tabs-buttons-wrapper", 2511 style: style, 2512 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("div", { 2513 className: classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()('wb-tabs-buttons', `wb-tabs-buttons-align-${buttonsAlign}`), 2514 children: [tabsData.map((tabData, i) => { 2515 const { 2516 slug 2517 } = tabData; 2518 const selected = tabActive === slug; 2519 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("div", { 2520 className: classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()('wb-tabs-buttons-item', selected ? 'wb-tabs-buttons-item-active' : ''), 2521 onClick: () => setAttributes({ 2522 tabActive: slug 2523 }), 2524 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("h4", { 2525 children: ["Slide ", counter++] 2526 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_components_remove_button__WEBPACK_IMPORTED_MODULE_9__["default"], { 2527 show: isSelectedBlockInRoot, 2528 tooltipText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Remove slide?', '@@text_domain'), 2529 onRemove: () => { 2530 removeTab(i); 2531 } 2532 })] 2533 }, `tab_button_${tabData.slug}`); 2534 }), isSelectedBlockInRoot ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Tooltip, { 2535 text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Add Slide', '@@text_domain'), 2536 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { 2537 icon: 'insert', 2538 onClick: () => { 2539 let newTabsData = []; 2540 const newDataLength = tabsData.length + 1; 2541 const block = (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_4__.createBlock)('da/wp-swiper-slide', { 2542 slug: `slide-${newDataLength}` 2543 }); 2544 newTabsData = [...tabsData]; 2545 newTabsData.push({ 2546 clientId: block.clientId, 2547 slug: `slide-${newDataLength}`, 2548 slideImg: '', 2549 thumbImg: '' 2550 }); 2551 let innerBlocks = getBlocks(clientId); 2552 innerBlocks = [...innerBlocks, block]; 2553 replaceInnerBlocks(clientId, innerBlocks, false); 2554 setAttributes({ 2555 tabsData: newTabsData 2556 }); 2557 } 2558 }) 2559 }) : ''] 2560 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("div", { 2561 className: "wp-swiper__slide-content", 2562 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.InnerBlocks, { 2563 template: INNER_BLOCKS_TEMPLATE, 2564 templateLock: false, 2565 allowedBlocks: ['da/wp-swiper-slide'] 2566 }) 2567 })] 2568 }) 2569 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("style", { 2570 children: ` 2571 [data-block="${props.clientId}"] [data-tab] { 2572 display: none; 2573 } 2574 [data-block="${props.clientId}"] [data-tab="${tabActive !== null && tabActive !== void 0 ? tabActive : 'slide-1'}"] { 2575 display: block !important; 2576 } 2577 ` 2578 })] 2579 }); 2580 } 2581 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_7__.compose)([(0,_wordpress_data__WEBPACK_IMPORTED_MODULE_8__.withSelect)((select, ownProps) => { 2582 const { 2583 getBlock, 2584 isBlockSelected, 2585 hasSelectedInnerBlock 2586 } = select('core/block-editor'); 2587 const { 2588 clientId 2589 } = ownProps; 2590 const block = getBlock(clientId); 2591 return { 2592 innerBlocks: block ? block.innerBlocks : [], 2593 // Get inner blocks if the block exists 2594 blocks: select(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_6__.store).getBlocks(), 2595 block, 2596 isSelectedBlockInRoot: isBlockSelected(clientId) || hasSelectedInnerBlock(clientId, true) 2597 }; 2598 }), (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_8__.withDispatch)((dispatch, ownProps, registry) => { 2599 const { 2600 updateBlockAttributes, 2601 removeBlock, 2602 replaceInnerBlocks, 2603 moveBlockToPosition, 2604 moveBlocksDown 2605 } = dispatch('core/block-editor'); 2606 const { 2607 getBlocks 2608 } = registry.select('core/block-editor'); 2609 2610 // Function to update slug attribute for inner blocks 2611 const updateSlugsForInnerBlocks = innerBlocks => { 2612 let counter = 1; 2613 innerBlocks.forEach((innerBlock, index) => { 2614 updateBlockAttributes(innerBlock.clientId, { 2615 slug: `slide-${counter}` 2616 }); 2617 counter++; 2618 }); 2619 }; 2620 return { 2621 moveBlocksDown, 2622 moveBlockToPosition, 2623 replaceInnerBlocks, 2624 getBlocks, 2625 updateBlockAttributes, 2626 removeBlock, 2627 updateSlugsForInnerBlocks 2628 }; 2629 })])(BlockEdit)); 2630 2631 /***/ }, 2632 2633 /***/ "./src/blocks/slides/index.js" 2634 /*!************************************!*\ 2635 !*** ./src/blocks/slides/index.js ***! 2636 \************************************/ 2637 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2638 2639 "use strict"; 2640 __webpack_require__.r(__webpack_exports__); 2641 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 2642 /* harmony export */ metadata: () => (/* reexport default export from named module */ _block_json__WEBPACK_IMPORTED_MODULE_1__), 2643 /* harmony export */ name: () => (/* binding */ name), 2644 /* harmony export */ settings: () => (/* binding */ settings) 2645 /* harmony export */ }); 2646 /* harmony import */ var _deprecated__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./deprecated */ "./src/blocks/slides/deprecated.js"); 2647 /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./block.json */ "./src/blocks/slides/block.json"); 2648 /* harmony import */ var _edit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./edit */ "./src/blocks/slides/edit.js"); 2649 /* harmony import */ var _save__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./save */ "./src/blocks/slides/save.js"); 2650 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); 2651 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__); 2652 /** 2653 * WordPress dependencies 2654 */ 2655 const { 2656 __ 2657 } = wp.i18n; 2658 2659 // Import Swiper React components 2660 2661 /** 2662 * Internal dependencies 2663 */ 2664 2665 2666 2667 2668 2669 const { 2670 name 2671 } = _block_json__WEBPACK_IMPORTED_MODULE_1__; 2672 2673 const settings = { 2674 ..._block_json__WEBPACK_IMPORTED_MODULE_1__, 2675 title: __('WP Swiper', '@@text_domain'), 2676 description: __('Create an awesome slider.', '@@text_domain'), 2677 icon: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("svg", { 2678 width: "24", 2679 height: "24", 2680 viewBox: "0 0 24 24", 2681 fill: "none", 2682 xmlns: "http://www.w3.org/2000/svg", 2683 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("path", { 2684 d: "M20 17.4444C20 17.857 19.8314 18.2527 19.5314 18.5444C19.2313 18.8361 18.8243 19 18.4 19H5.6C5.17565 19 4.76869 18.8361 4.46863 18.5444C4.16857 18.2527 4 17.857 4 17.4444V6.55556C4 6.143 4.16857 5.74733 4.46863 5.45561C4.76869 5.16389 5.17565 5 5.6 5H9.6L11.2 7.33333H18.4C18.8243 7.33333 19.2313 7.49722 19.5314 7.78894C19.8314 8.08067 20 8.47633 20 8.88889V17.4444Z", 2685 stroke: "currentColor", 2686 fill: "transparent", 2687 "stroke-width": "1.5", 2688 "stroke-linecap": "round", 2689 "stroke-linejoin": "round" 2690 }) 2691 }), 2692 keywords: [__('swiper', '@@text_domain'), __('slider', '@@text_domain'), __('wp slider', '@@text_domain'), __('wp swiper', '@@text_domain')], 2693 edit: _edit__WEBPACK_IMPORTED_MODULE_2__["default"], 2694 save: _save__WEBPACK_IMPORTED_MODULE_3__["default"], 2695 deprecated: _deprecated__WEBPACK_IMPORTED_MODULE_0__["default"] 2696 }; 2697 settings.attributes = { 2698 ...settings.attributes, 2699 freeMode: { 2700 type: 'boolean', 2701 default: false 2702 }, 2703 freeModeMinimumVelocity: { 2704 type: 'number', 2705 default: 0.02 2706 }, 2707 freeModeMomentum: { 2708 type: 'boolean', 2709 default: true 2710 }, 2711 freeModeMomentumBounce: { 2712 type: 'boolean', 2713 default: true 2714 }, 2715 freeModeMomentumBounceRatio: { 2716 type: 'number', 2717 default: 1 2718 }, 2719 freeModeMomentumRatio: { 2720 type: 'number', 2721 default: 1 2722 }, 2723 freeModeMomentumVelocityRatio: { 2724 type: 'number', 2725 default: 1 2726 }, 2727 freeModeSticky: { 2728 type: 'boolean', 2729 default: false 2730 }, 2731 mousewheel: { 2732 type: 'boolean', 2733 default: false 2734 }, 2735 releaseOnEdges: { 2736 type: 'boolean', 2737 default: false 2738 }, 2739 pagination_type: { 2740 type: 'string', 2741 default: 'bullets' 2742 } 2743 }; 2744 2745 2746 /***/ }, 2747 2748 /***/ "./src/blocks/slides/oldsave.js" 2749 /*!**************************************!*\ 2750 !*** ./src/blocks/slides/oldsave.js ***! 2751 \**************************************/ 2752 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2753 2754 "use strict"; 2755 __webpack_require__.r(__webpack_exports__); 2756 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 2757 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 2758 /* harmony export */ }); 2759 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames/dedupe */ "./node_modules/classnames/dedupe.js"); 2760 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__); 2761 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 2762 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__); 2763 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); 2764 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__); 2765 /** 2766 * External dependencies 2767 */ 2768 2769 2770 /** 2771 * WordPress dependencies 2772 */ 2773 2774 2775 /** 2776 * Block Save Class. 2777 */ 2778 2779 function save(props) { 2780 let { 2781 className 2782 } = props.attributes; 2783 const { 2784 align, 2785 overlayImg, 2786 overlayImgOpacity, 2787 slidesPerView, 2788 spaceBetween, 2789 txtColor, 2790 autoplay, 2791 disableOnInteraction, 2792 pauseOnMouseEnter, 2793 reverseDirection, 2794 stopOnLastSlide, 2795 waitForTransition, 2796 delay, 2797 speed, 2798 loop, 2799 effect, 2800 navigation, 2801 pagination, 2802 mousewheel, 2803 releaseOnEdges, 2804 pagination_type, 2805 clickable_pagination, 2806 breakpoints, 2807 thumbs, 2808 thumbsSpaceBetween, 2809 thumbsSlidesPerView, 2810 autoHeight, 2811 freeMode, 2812 sticky, 2813 debug, 2814 direction, 2815 tabsData, 2816 previousIcon, 2817 nextIcon, 2818 slidesOffsetBefore, 2819 slidesOffsetAfter 2820 } = props.attributes; 2821 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, 'wp-swiper'); 2822 if (align) { 2823 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, `align${align}`); 2824 } 2825 const blockProps = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps.save({ 2826 className: className 2827 }); 2828 const innerBlocksProps = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useInnerBlocksProps; 2829 const thumbsElements = (typeof tabsData !== 'undefined' ? tabsData : []).map((tab, index) => { 2830 return (tab.thumbImg || tab.slideImg) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2831 className: "swiper-slide wp-swiper__thumb", 2832 "data-thumb": index + 1, 2833 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("img", { 2834 src: tab.thumbImg || tab.slideImg, 2835 alt: `Thumbnail ${index + 1}` 2836 }) 2837 }, index); 2838 }); 2839 const style_overlay_image = overlayImg ? { 2840 backgroundImage: `url(${overlayImg})` 2841 } : {}; 2842 if (overlayImgOpacity) { 2843 style_overlay_image.opacity = overlayImgOpacity; 2844 } 2845 const style_overlay_wrapper = txtColor ? { 2846 color: txtColor 2847 } : {}; 2848 let thumbsConfig = { 2849 'data-thumbs': {} 2850 }; 2851 let data_atts = { 2852 'slidesPerView-': slidesPerView, 2853 'navigation': navigation, 2854 'pagination': pagination, 2855 'autoplay': autoplay, 2856 'disableOnInteraction': disableOnInteraction, 2857 'pauseOnMouseEnter': pauseOnMouseEnter, 2858 'delay': delay, 2859 'speed': speed, 2860 'loop': loop, 2861 'effect': effect 2862 }; 2863 if (debug) { 2864 data_atts['debug'] = debug; 2865 } 2866 if (freeMode && sticky) { 2867 data_atts['sticky'] = sticky; 2868 } 2869 data_atts['slidesOffsetBefore'] = slidesOffsetBefore; 2870 data_atts['slidesOffsetAfter'] = slidesOffsetAfter; 2871 data_atts['direction'] = direction; 2872 data_atts['freeMode'] = freeMode; 2873 data_atts['autoHeight'] = autoHeight; 2874 data_atts['spaceBetween'] = spaceBetween; 2875 data_atts['mousewheel'] = mousewheel; 2876 data_atts['releaseOnEdges'] = releaseOnEdges; 2877 data_atts['type'] = pagination_type != 'bullets' ? pagination_type : 'bullets'; 2878 if (clickable_pagination) { 2879 data_atts['clickable'] = clickable_pagination ? true : ''; 2880 } 2881 if (typeof breakpoints !== 'undefined' && breakpoints != '') { 2882 data_atts['data-breakpoints'] = JSON.stringify(breakpoints.replace(/^\s+|\s+|\n$/gm, '')); 2883 data_atts['data-breakpoints'] = data_atts['breakpoints'].substring(1, data_atts['breakpoints'].length - 1); 2884 } 2885 if (thumbs) { 2886 thumbsConfig['data-thumbs'] = JSON.stringify({ 2887 spaceBetween: thumbsSpaceBetween, 2888 slidesPerView: thumbsSlidesPerView, 2889 freeMode: true, 2890 watchSlidesProgress: true, 2891 navigation: false 2892 }); 2893 } 2894 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", { 2895 ...blockProps, 2896 children: [getOverlayImg(overlayImg, style_overlay_image), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", { 2897 className: "wp-swiper__wrapper", 2898 style: style_overlay_wrapper, 2899 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2900 className: "swiper-container swiper", 2901 "data-swiper": JSON.stringify(data_atts), 2902 ...thumbsConfig, 2903 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2904 className: "swiper-wrapper", 2905 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.InnerBlocks.Content, {}) 2906 }) 2907 }), getNavigation(props), getPagination(props)] 2908 }), getQuoteSVG(props), thumbs && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2909 className: "wp-swiper__thumbs", 2910 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2911 className: "wp-swiper__wrapper", 2912 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2913 className: "swiper-container", 2914 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2915 className: "swiper-wrapper", 2916 children: thumbsElements 2917 }) 2918 }) 2919 }) 2920 })] 2921 }); 2922 function getOverlayImg(overlayImg, style_overlay_image) { 2923 if (overlayImg === undefined) { 2924 return; 2925 } 2926 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2927 className: "wp-swiper__overlay-img", 2928 style: style_overlay_image 2929 }); 2930 } 2931 function getPagination({ 2932 attributes 2933 }) { 2934 const { 2935 pagination 2936 } = attributes; 2937 if (pagination) { 2938 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2939 className: "swiper-pagination" 2940 }); 2941 } 2942 } 2943 function getNavigation({ 2944 attributes 2945 }) { 2946 const { 2947 navigation 2948 } = attributes; 2949 if (navigation) { 2950 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, { 2951 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2952 className: "wp_swiper__navigation", 2953 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", { 2954 className: "wp_swiper__navigation-container", 2955 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2956 className: `swiper-button-prev ${previousIcon ? 'wp_swiper__button-prev' : ''}`, 2957 children: previousIcon ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("img", { 2958 src: previousIcon, 2959 alt: "Previous" 2960 }) : null 2961 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2962 className: `swiper-button-next ${nextIcon ? 'wp_swiper__button-next' : ''}`, 2963 children: nextIcon ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("img", { 2964 src: nextIcon, 2965 alt: "Previous" 2966 }) : null 2967 })] 2968 }) 2969 }) 2970 }); 2971 } 2972 } 2973 function getQuoteSVG({ 2974 attributes 2975 }) { 2976 let { 2977 className 2978 } = attributes; 2979 className = className ? className.toString() : ''; 2980 if (className.indexOf('is-style-testimonials') !== -1) { 2981 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, { 2982 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 2983 className: "wp-swiper__quotes", 2984 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("svg", { 2985 "aria-hidden": "true", 2986 focusable: "false", 2987 "data-prefix": "fas", 2988 "data-icon": "quote-right", 2989 role: "img", 2990 xmlns: "http://www.w3.org/2000/svg", 2991 viewBox: "0 0 512 512", 2992 class: "svg-inline--fa fa-quote-right fa-w-16 fa-5x", 2993 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("path", { 2994 fill: "currentColor", 2995 d: "M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z", 2996 class: "" 2997 }) 2998 }) 2999 }) 3000 }); 3001 } 3002 } 3003 } 3004 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (save); 3005 3006 /***/ }, 3007 3008 /***/ "./src/blocks/slides/save-v1.js" 3009 /*!**************************************!*\ 3010 !*** ./src/blocks/slides/save-v1.js ***! 3011 \**************************************/ 3012 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3013 3014 "use strict"; 3015 __webpack_require__.r(__webpack_exports__); 3016 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 3017 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 3018 /* harmony export */ }); 3019 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames/dedupe */ "./node_modules/classnames/dedupe.js"); 3020 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__); 3021 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 3022 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__); 3023 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); 3024 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__); 3025 /** 3026 * External dependencies 3027 */ 3028 3029 3030 /** 3031 * WordPress dependencies 3032 */ 3033 3034 3035 /** 3036 * Block Save Class - Version 1 (with old sticky attribute) 3037 * This is for backward compatibility with blocks created before Free Mode parameters were added 3038 */ 3039 3040 function save(props) { 3041 let { 3042 className 3043 } = props.attributes; 3044 const { 3045 align, 3046 overlayImg, 3047 overlayImgOpacity, 3048 slidesPerView, 3049 slidesPerGroup, 3050 slidesPerGroupAuto, 3051 slidesPerGroupSkip, 3052 spaceBetween, 3053 txtColor, 3054 autoplay, 3055 disableOnInteraction, 3056 pauseOnMouseEnter, 3057 reverseDirection, 3058 stopOnLastSlide, 3059 waitForTransition, 3060 delay, 3061 speed, 3062 loop, 3063 effect, 3064 navigation, 3065 pagination, 3066 mousewheel, 3067 releaseOnEdges, 3068 pagination_type, 3069 clickable_pagination, 3070 breakpoints, 3071 thumbs, 3072 thumbsSpaceBetween, 3073 thumbsSlidesPerView, 3074 autoHeight, 3075 freeMode, 3076 sticky, 3077 debug, 3078 direction, 3079 tabsData, 3080 previousIcon, 3081 nextIcon, 3082 slidesOffsetBefore, 3083 slidesOffsetAfter, 3084 overflowVisible 3085 } = props.attributes; 3086 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, 'wp-swiper'); 3087 if (align) { 3088 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, `align${align}`); 3089 } 3090 const blockProps = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps.save({ 3091 className: className 3092 }); 3093 const innerBlocksProps = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useInnerBlocksProps; 3094 const style_overlay_image = overlayImg ? { 3095 backgroundImage: `url(${overlayImg})` 3096 } : {}; 3097 if (overlayImgOpacity) { 3098 style_overlay_image.opacity = overlayImgOpacity; 3099 } 3100 const style_overlay_wrapper = txtColor ? { 3101 color: txtColor 3102 } : {}; 3103 let thumbsConfig = { 3104 'data-thumbs': {} 3105 }; 3106 let data_atts = { 3107 slidesPerView: slidesPerView === 'auto' ? 'auto' : parseInt(slidesPerView, 10), 3108 slidesPerGroup, 3109 slidesPerGroupAuto, 3110 slidesPerGroupSkip, 3111 navigation, 3112 pagination: {}, 3113 delay: delay, 3114 speed: speed, 3115 loop: loop, 3116 direction, 3117 slidesOffsetBefore, 3118 slidesOffsetAfter, 3119 autoHeight, 3120 spaceBetween, 3121 releaseOnEdges 3122 }; 3123 3124 // Mousewheel and release on edges logic 3125 if (mousewheel && releaseOnEdges) { 3126 data_atts.mousewheel = { 3127 releaseOnEdges: releaseOnEdges === 'true' 3128 }; 3129 } 3130 3131 // Effect logic 3132 if (effect) { 3133 data_atts.effect = effect; 3134 3135 // If the effect is 'fade', enable crossFade 3136 if (effect === 'fade') { 3137 data_atts.fadeEffect = { 3138 crossFade: true 3139 }; 3140 } 3141 } 3142 3143 // Autoplay 3144 // -- START -- Autoplay logic 3145 if (autoplay) { 3146 data_atts.autoplay = true; 3147 3148 // Delay logic 3149 if (delay !== null && delay !== undefined) { 3150 data_atts.autoplay = { 3151 delay: Number(delay) 3152 }; 3153 } 3154 3155 // Disable on interaction 3156 if (disableOnInteraction) { 3157 if (!data_atts.autoplay) { 3158 data_atts.autoplay = {}; 3159 } 3160 data_atts.autoplay.disableOnInteraction = true; 3161 } 3162 3163 // Pause on mouse enter 3164 if (pauseOnMouseEnter) { 3165 if (!data_atts.autoplay) { 3166 data_atts.autoplay = {}; 3167 } 3168 data_atts.autoplay.pauseOnMouseEnter = true; 3169 } 3170 3171 // Reverse direction 3172 if (reverseDirection) { 3173 if (!data_atts.autoplay) { 3174 data_atts.autoplay = {}; 3175 } 3176 data_atts.autoplay.reverseDirection = true; 3177 } 3178 3179 // Stop on last slide 3180 if (stopOnLastSlide) { 3181 if (!data_atts.autoplay) { 3182 data_atts.autoplay = {}; 3183 } 3184 data_atts.autoplay.stopOnLastSlide = true; 3185 } 3186 3187 // Wait for transition 3188 if (waitForTransition !== undefined && waitForTransition !== null) { 3189 if (!data_atts.autoplay) { 3190 data_atts.autoplay = {}; 3191 } 3192 data_atts.autoplay.waitForTransition = waitForTransition; 3193 } 3194 } 3195 // -- END -- Autoplay logic 3196 3197 // Freemode (old version with sticky attribute) 3198 if (freeMode) { 3199 data_atts.freeMode = { 3200 enabled: true 3201 }; 3202 3203 // If both freeMode and sticky are true, enable sticky mode 3204 if (sticky) { 3205 data_atts.freeMode.sticky = true; 3206 } 3207 } 3208 3209 // Pagination 3210 data_atts.pagination.type = pagination_type != 'bullets' ? pagination_type : 'bullets'; 3211 if (clickable_pagination) { 3212 data_atts.pagination.clickable = clickable_pagination ? true : ''; 3213 } 3214 if (typeof breakpoints !== 'undefined' && breakpoints != '') { 3215 data_atts.breakpoints = breakpoints; 3216 } 3217 if (thumbs) { 3218 thumbsConfig['data-thumbs'] = JSON.stringify({ 3219 spaceBetween: thumbsSpaceBetween, 3220 slidesPerView: thumbsSlidesPerView, 3221 freeMode: true, 3222 watchSlidesProgress: true, 3223 navigation: false 3224 }); 3225 } 3226 const thumbsElements = (typeof tabsData !== 'undefined' ? tabsData : []).map((tab, index) => { 3227 return (tab.thumbImg || tab.slideImg) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3228 className: "swiper-slide wp-swiper__thumb", 3229 "data-thumb": index + 1, 3230 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("img", { 3231 src: tab.thumbImg || tab.slideImg, 3232 alt: `Thumbnail ${index + 1}` 3233 }) 3234 }, index); 3235 }); 3236 const swiperContainerClassName = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()('swiper-container', 'swiper', { 3237 'swiper-overflow-visible': overflowVisible 3238 }); 3239 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", { 3240 ...blockProps, 3241 children: [getOverlayImg(overlayImg, style_overlay_image), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", { 3242 className: "wp-swiper__wrapper", 3243 style: style_overlay_wrapper, 3244 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3245 className: swiperContainerClassName, 3246 ...(debug ? { 3247 'data-debug': true 3248 } : {}), 3249 // Only include data-debug if debug is true 3250 "data-swiper": JSON.stringify(data_atts), 3251 ...thumbsConfig, 3252 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3253 className: "swiper-wrapper", 3254 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.InnerBlocks.Content, {}) 3255 }) 3256 }), getNavigation(props), getPagination(props)] 3257 }), getQuoteSVG(props), thumbs && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3258 className: "wp-swiper__thumbs", 3259 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3260 className: "wp-swiper__wrapper", 3261 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3262 className: "swiper-container", 3263 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3264 className: "swiper-wrapper", 3265 children: thumbsElements 3266 }) 3267 }) 3268 }) 3269 })] 3270 }); 3271 function getOverlayImg(overlayImg, style_overlay_image) { 3272 if (overlayImg === undefined) { 3273 return; 3274 } 3275 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3276 className: "wp-swiper__overlay-img", 3277 style: style_overlay_image 3278 }); 3279 } 3280 function getPagination({ 3281 attributes 3282 }) { 3283 const { 3284 pagination 3285 } = attributes; 3286 if (pagination) { 3287 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3288 className: "swiper-pagination" 3289 }); 3290 } 3291 } 3292 function getNavigation({ 3293 attributes 3294 }) { 3295 const { 3296 navigation 3297 } = attributes; 3298 if (navigation) { 3299 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, { 3300 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3301 className: "wp_swiper__navigation", 3302 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", { 3303 className: "wp_swiper__navigation-container", 3304 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3305 className: `swiper-button-prev ${previousIcon ? 'wp_swiper__button-prev' : ''}`, 3306 children: previousIcon ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("img", { 3307 src: previousIcon, 3308 alt: "Previous" 3309 }) : null 3310 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3311 className: `swiper-button-next ${nextIcon ? 'wp_swiper__button-next' : ''}`, 3312 children: nextIcon ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("img", { 3313 src: nextIcon, 3314 alt: "Previous" 3315 }) : null 3316 })] 3317 }) 3318 }) 3319 }); 3320 } 3321 } 3322 function getQuoteSVG({ 3323 attributes 3324 }) { 3325 let { 3326 className 3327 } = attributes; 3328 className = className ? className.toString() : ''; 3329 if (className.indexOf('is-style-testimonials') !== -1) { 3330 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, { 3331 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3332 className: "wp-swiper__quotes", 3333 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("svg", { 3334 "aria-hidden": "true", 3335 focusable: "false", 3336 "data-prefix": "fas", 3337 "data-icon": "quote-right", 3338 role: "img", 3339 xmlns: "http://www.w3.org/2000/svg", 3340 viewBox: "0 0 512 512", 3341 class: "svg-inline--fa fa-quote-right fa-w-16 fa-5x", 3342 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("path", { 3343 fill: "currentColor", 3344 d: "M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z", 3345 class: "" 3346 }) 3347 }) 3348 }) 3349 }); 3350 } 3351 } 3352 } 3353 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (save); 3354 3355 /***/ }, 3356 3357 /***/ "./src/blocks/slides/save.js" 3358 /*!***********************************!*\ 3359 !*** ./src/blocks/slides/save.js ***! 3360 \***********************************/ 3361 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3362 3363 "use strict"; 3364 __webpack_require__.r(__webpack_exports__); 3365 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 3366 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 3367 /* harmony export */ }); 3368 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames/dedupe */ "./node_modules/classnames/dedupe.js"); 3369 /* harmony import */ var classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames_dedupe__WEBPACK_IMPORTED_MODULE_0__); 3370 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 3371 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__); 3372 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); 3373 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__); 3374 /** 3375 * External dependencies 3376 */ 3377 3378 3379 /** 3380 * WordPress dependencies 3381 */ 3382 3383 3384 /** 3385 * Block Save Class. 3386 */ 3387 3388 function save(props) { 3389 let { 3390 className 3391 } = props.attributes; 3392 const { 3393 align, 3394 overlayImg, 3395 overlayImgOpacity, 3396 slidesPerView, 3397 slidesPerGroup, 3398 slidesPerGroupAuto, 3399 slidesPerGroupSkip, 3400 spaceBetween, 3401 autoSlideWidth, 3402 txtColor, 3403 autoplay, 3404 disableOnInteraction, 3405 pauseOnMouseEnter, 3406 reverseDirection, 3407 stopOnLastSlide, 3408 waitForTransition, 3409 delay, 3410 speed, 3411 loop, 3412 loopAddBlankSlides, 3413 loopAdditionalSlides, 3414 effect, 3415 navigation, 3416 pagination, 3417 mousewheel, 3418 releaseOnEdges, 3419 pagination_type, 3420 clickable_pagination, 3421 breakpoints, 3422 thumbs, 3423 thumbsSpaceBetween, 3424 thumbsSlidesPerView, 3425 autoHeight, 3426 freeMode, 3427 freeModeMinimumVelocity, 3428 freeModeMomentum, 3429 freeModeMomentumBounce, 3430 freeModeMomentumBounceRatio, 3431 freeModeMomentumRatio, 3432 freeModeMomentumVelocityRatio, 3433 freeModeSticky, 3434 debug, 3435 direction, 3436 tabsData, 3437 previousIcon, 3438 nextIcon, 3439 slidesOffsetBefore, 3440 slidesOffsetAfter, 3441 overflowVisible 3442 } = props.attributes; 3443 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, 'wp-swiper'); 3444 if (align) { 3445 className = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()(className, `align${align}`); 3446 } 3447 const blockProps = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps.save({ 3448 className: className 3449 }); 3450 const innerBlocksProps = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useInnerBlocksProps; 3451 const style_overlay_image = overlayImg ? { 3452 backgroundImage: `url(${overlayImg})` 3453 } : {}; 3454 if (overlayImgOpacity) { 3455 style_overlay_image.opacity = overlayImgOpacity; 3456 } 3457 const style_overlay_wrapper = txtColor ? { 3458 color: txtColor 3459 } : {}; 3460 let thumbsConfig = { 3461 'data-thumbs': {} 3462 }; 3463 let data_atts = { 3464 slidesPerView: slidesPerView === 'auto' ? 'auto' : parseInt(slidesPerView, 10), 3465 slidesPerGroup, 3466 slidesPerGroupAuto, 3467 slidesPerGroupSkip, 3468 navigation, 3469 pagination: {}, 3470 delay: delay, 3471 speed: speed, 3472 loop: loop, 3473 direction, 3474 slidesOffsetBefore, 3475 slidesOffsetAfter, 3476 autoHeight, 3477 spaceBetween, 3478 releaseOnEdges 3479 }; 3480 3481 // Auto Slide Width logic - only include if true 3482 if (autoSlideWidth) { 3483 data_atts.autoSlideWidth = true; 3484 } 3485 3486 // Mousewheel and release on edges logic 3487 if (mousewheel && releaseOnEdges) { 3488 data_atts.mousewheel = { 3489 releaseOnEdges: releaseOnEdges === 'true' 3490 }; 3491 } 3492 3493 // Loop logic 3494 if (loop) { 3495 data_atts.loopAddBlankSlides = loopAddBlankSlides; 3496 data_atts.loopAdditionalSlides = loopAdditionalSlides; 3497 } 3498 3499 // Effect logic 3500 if (effect) { 3501 data_atts.effect = effect; 3502 3503 // If the effect is 'fade', enable crossFade 3504 if (effect === 'fade') { 3505 data_atts.fadeEffect = { 3506 crossFade: true 3507 }; 3508 } 3509 } 3510 3511 // Autoplay 3512 // -- START -- Autoplay logic 3513 if (autoplay) { 3514 data_atts.autoplay = true; 3515 3516 // Delay logic 3517 if (delay !== null && delay !== undefined) { 3518 data_atts.autoplay = { 3519 delay: Number(delay) 3520 }; 3521 } 3522 3523 // Disable on interaction 3524 if (disableOnInteraction) { 3525 if (!data_atts.autoplay) { 3526 data_atts.autoplay = {}; 3527 } 3528 data_atts.autoplay.disableOnInteraction = true; 3529 } 3530 3531 // Pause on mouse enter 3532 if (pauseOnMouseEnter) { 3533 if (!data_atts.autoplay) { 3534 data_atts.autoplay = {}; 3535 } 3536 data_atts.autoplay.pauseOnMouseEnter = true; 3537 } 3538 3539 // Reverse direction 3540 if (reverseDirection) { 3541 if (!data_atts.autoplay) { 3542 data_atts.autoplay = {}; 3543 } 3544 data_atts.autoplay.reverseDirection = true; 3545 } 3546 3547 // Stop on last slide 3548 if (stopOnLastSlide) { 3549 if (!data_atts.autoplay) { 3550 data_atts.autoplay = {}; 3551 } 3552 data_atts.autoplay.stopOnLastSlide = true; 3553 } 3554 3555 // Wait for transition 3556 if (waitForTransition !== undefined && waitForTransition !== null) { 3557 if (!data_atts.autoplay) { 3558 data_atts.autoplay = {}; 3559 } 3560 data_atts.autoplay.waitForTransition = waitForTransition; 3561 } 3562 } 3563 // -- END -- Autoplay logic 3564 3565 // Freemode 3566 if (freeMode) { 3567 data_atts.freeMode = { 3568 enabled: true, 3569 minimumVelocity: freeModeMinimumVelocity, 3570 momentum: freeModeMomentum, 3571 momentumBounce: freeModeMomentumBounce, 3572 momentumBounceRatio: freeModeMomentumBounceRatio, 3573 momentumRatio: freeModeMomentumRatio, 3574 momentumVelocityRatio: freeModeMomentumVelocityRatio, 3575 sticky: freeModeSticky 3576 }; 3577 } 3578 3579 // Pagination 3580 data_atts.pagination.type = pagination_type != 'bullets' ? pagination_type : 'bullets'; 3581 if (clickable_pagination) { 3582 data_atts.pagination.clickable = clickable_pagination ? true : ''; 3583 } 3584 if (typeof breakpoints !== 'undefined' && breakpoints != '') { 3585 data_atts.breakpoints = breakpoints; 3586 } 3587 if (thumbs) { 3588 thumbsConfig['data-thumbs'] = JSON.stringify({ 3589 spaceBetween: thumbsSpaceBetween, 3590 slidesPerView: thumbsSlidesPerView, 3591 freeMode: true, 3592 watchSlidesProgress: true, 3593 navigation: false 3594 }); 3595 } 3596 const thumbsElements = (typeof tabsData !== 'undefined' ? tabsData : []).map((tab, index) => { 3597 return (tab.thumbImg || tab.slideImg) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3598 className: "swiper-slide wp-swiper__thumb", 3599 "data-thumb": index + 1, 3600 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("img", { 3601 src: tab.thumbImg || tab.slideImg, 3602 alt: `Thumbnail ${index + 1}` 3603 }) 3604 }, index); 3605 }); 3606 const swiperContainerClassName = classnames_dedupe__WEBPACK_IMPORTED_MODULE_0___default()('swiper-container', 'swiper', { 3607 'swiper-overflow-visible': overflowVisible 3608 }); 3609 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", { 3610 ...blockProps, 3611 children: [getOverlayImg(overlayImg, style_overlay_image), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", { 3612 className: "wp-swiper__wrapper", 3613 style: style_overlay_wrapper, 3614 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3615 className: swiperContainerClassName, 3616 ...(debug ? { 3617 'data-debug': true 3618 } : {}), 3619 // Only include data-debug if debug is true 3620 "data-swiper": JSON.stringify(data_atts), 3621 ...thumbsConfig, 3622 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3623 className: "swiper-wrapper", 3624 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.InnerBlocks.Content, {}) 3625 }) 3626 }), getNavigation(props), getPagination(props)] 3627 }), getQuoteSVG(props), thumbs && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3628 className: "wp-swiper__thumbs", 3629 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3630 className: "wp-swiper__wrapper", 3631 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3632 className: "swiper-container", 3633 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3634 className: "swiper-wrapper", 3635 children: thumbsElements 3636 }) 3637 }) 3638 }) 3639 })] 3640 }); 3641 function getOverlayImg(overlayImg, style_overlay_image) { 3642 if (overlayImg === undefined) { 3643 return; 3644 } 3645 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3646 className: "wp-swiper__overlay-img", 3647 style: style_overlay_image 3648 }); 3649 } 3650 function getPagination({ 3651 attributes 3652 }) { 3653 const { 3654 pagination 3655 } = attributes; 3656 if (pagination) { 3657 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3658 className: "swiper-pagination" 3659 }); 3660 } 3661 } 3662 function getNavigation({ 3663 attributes 3664 }) { 3665 const { 3666 navigation 3667 } = attributes; 3668 if (navigation) { 3669 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, { 3670 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3671 className: "wp_swiper__navigation", 3672 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", { 3673 className: "wp_swiper__navigation-container", 3674 children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3675 className: `swiper-button-prev ${previousIcon ? 'wp_swiper__button-prev' : ''}`, 3676 children: previousIcon ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("img", { 3677 src: previousIcon, 3678 alt: "Previous" 3679 }) : null 3680 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3681 className: `swiper-button-next ${nextIcon ? 'wp_swiper__button-next' : ''}`, 3682 children: nextIcon ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("img", { 3683 src: nextIcon, 3684 alt: "Previous" 3685 }) : null 3686 })] 3687 }) 3688 }) 3689 }); 3690 } 3691 } 3692 function getQuoteSVG({ 3693 attributes 3694 }) { 3695 let { 3696 className 3697 } = attributes; 3698 className = className ? className.toString() : ''; 3699 if (className.indexOf('is-style-testimonials') !== -1) { 3700 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, { 3701 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { 3702 className: "wp-swiper__quotes", 3703 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("svg", { 3704 "aria-hidden": "true", 3705 focusable: "false", 3706 "data-prefix": "fas", 3707 "data-icon": "quote-right", 3708 role: "img", 3709 xmlns: "http://www.w3.org/2000/svg", 3710 viewBox: "0 0 512 512", 3711 class: "svg-inline--fa fa-quote-right fa-w-16 fa-5x", 3712 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("path", { 3713 fill: "currentColor", 3714 d: "M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z", 3715 class: "" 3716 }) 3717 }) 3718 }) 3719 }); 3720 } 3721 } 3722 } 3723 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (save); 3724 3725 /***/ }, 3726 3727 /***/ "./src/components/block-alignment-matrix-control/index.js" 3728 /*!****************************************************************!*\ 3729 !*** ./src/components/block-alignment-matrix-control/index.js ***! 3730 \****************************************************************/ 3731 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3732 3733 "use strict"; 3734 __webpack_require__.r(__webpack_exports__); 3735 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 3736 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 3737 /* harmony export */ }); 3738 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 3739 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 3740 /* harmony import */ var _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/keycodes */ "@wordpress/keycodes"); 3741 /* harmony import */ var _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_keycodes__WEBPACK_IMPORTED_MODULE_1__); 3742 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 3743 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__); 3744 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); 3745 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__); 3746 /** 3747 * WordPress dependencies 3748 */ 3749 3750 3751 3752 3753 function BlockAlignmentMatrixControl(props) { 3754 const { 3755 label = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Change matrix alignment'), 3756 onChange = 'undefined', 3757 value = 'center', 3758 isDisabled 3759 } = props; 3760 const icon = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.__experimentalAlignmentMatrixControl.Icon, { 3761 value: value 3762 }); 3763 const className = 'block-editor-block-alignment-matrix-control'; 3764 const popoverClassName = `${className}__popover`; 3765 const isAlternate = true; 3766 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Dropdown, { 3767 placement: "bottom right", 3768 className: className, 3769 popoverProps: { 3770 className: popoverClassName, 3771 isAlternate 3772 }, 3773 renderToggle: ({ 3774 onToggle, 3775 isOpen 3776 }) => { 3777 const openOnArrowDown = event => { 3778 if (!isOpen && event.keyCode === _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_1__.DOWN) { 3779 event.preventDefault(); 3780 event.stopPropagation(); 3781 onToggle(); 3782 } 3783 }; 3784 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.ToolbarButton, { 3785 onClick: onToggle, 3786 "aria-haspopup": "true", 3787 "aria-expanded": isOpen, 3788 onKeyDown: openOnArrowDown, 3789 label: label, 3790 icon: icon, 3791 showTooltip: true, 3792 disabled: isDisabled 3793 }); 3794 }, 3795 renderContent: () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.__experimentalAlignmentMatrixControl, { 3796 hasFocusBorder: false, 3797 onChange: onChange, 3798 value: value 3799 }) 3800 }); 3801 } 3802 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BlockAlignmentMatrixControl); 3803 3804 /***/ }, 3805 3806 /***/ "./src/components/remove-button/index.js" 3807 /*!***********************************************!*\ 3808 !*** ./src/components/remove-button/index.js ***! 3809 \***********************************************/ 3810 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3811 3812 "use strict"; 3813 __webpack_require__.r(__webpack_exports__); 3814 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 3815 /* harmony export */ "default": () => (/* binding */ RemoveButton) 3816 /* harmony export */ }); 3817 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); 3818 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__); 3819 3820 /** 3821 * WordPress dependencies 3822 */ 3823 const { 3824 Component 3825 } = wp.element; 3826 const { 3827 __ 3828 } = wp.i18n; 3829 const { 3830 Button, 3831 Popover 3832 } = wp.components; 3833 3834 /** 3835 * Component Class 3836 */ 3837 class RemoveButton extends Component { 3838 constructor() { 3839 super(...arguments); 3840 this.state = { 3841 confirmed: -1 3842 }; 3843 } 3844 render() { 3845 const { 3846 onRemove, 3847 show, 3848 style, 3849 tooltipText = __('Remove Slide?', '@@text_domain'), 3850 tooltipRemoveText = __('Remove', '@@text_domain'), 3851 tooltipCancelText = __('Cancel', '@@text_domain') 3852 } = this.props; 3853 const { 3854 confirmed 3855 } = this.state; 3856 if (!show) { 3857 return ''; 3858 } 3859 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Button, { 3860 className: "wb-component-remove-button", 3861 onClick: () => { 3862 if (confirmed === -1) { 3863 this.setState({ 3864 confirmed: 0 3865 }); 3866 } 3867 }, 3868 style: style, 3869 children: [confirmed === 0 ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Popover, { 3870 className: "wb-component-remove-button-confirm", 3871 onClose: () => { 3872 this.setState({ 3873 confirmed: -1 3874 }); 3875 }, 3876 onClickOutside: () => { 3877 this.setState({ 3878 confirmed: -1 3879 }); 3880 }, 3881 children: [tooltipText, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Button, { 3882 className: "wb-component-remove-button-confirm-yep", 3883 onClick: onRemove, 3884 children: tooltipRemoveText 3885 }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Button, { 3886 className: "wb-component-remove-button-confirm-nope", 3887 onClick: () => { 3888 this.setState({ 3889 confirmed: -1 3890 }); 3891 }, 3892 children: tooltipCancelText 3893 })] 3894 }) : '', /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { 3895 "aria-hidden": "true", 3896 focusable: "false", 3897 "data-prefix": "fas", 3898 "data-icon": "trash", 3899 role: "img", 3900 xmlns: "http://www.w3.org/2000/svg", 3901 viewBox: "0 0 448 512", 3902 class: "svg-inline--fa fa-trash fa-w-14 fa-3x", 3903 children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { 3904 fill: "currentColor", 3905 d: "M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z", 3906 class: "" 3907 }) 3908 })] 3909 }); 3910 } 3911 } 3912 3913 /***/ }, 3914 3915 /***/ "./src/styles/editor.scss" 3916 /*!********************************!*\ 3917 !*** ./src/styles/editor.scss ***! 3918 \********************************/ 3919 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3920 3921 "use strict"; 3922 __webpack_require__.r(__webpack_exports__); 3923 // extracted by mini-css-extract-plugin 3924 3925 3926 /***/ }, 3927 3928 /***/ "./src/utils/get-image/index.js" 3929 /*!**************************************!*\ 3930 !*** ./src/utils/get-image/index.js ***! 3931 \**************************************/ 3932 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3933 3934 "use strict"; 3935 __webpack_require__.r(__webpack_exports__); 3936 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 3937 /* harmony export */ "default": () => (/* binding */ get_image) 3938 /* harmony export */ }); 3939 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); 3940 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__); 3941 3942 function get_image(tab_image) { 3943 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { 3944 className: "wb-tabs-icon", 3945 children: '' != tab_image && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("img", { 3946 className: "wb-tabs-icon_image", 3947 src: tab_image 3948 }) 3949 }); 3950 } 3951 3952 /***/ }, 3953 3954 /***/ "./src/utils/get-unique-slug/index.js" 3955 /*!********************************************!*\ 3956 !*** ./src/utils/get-unique-slug/index.js ***! 3957 \********************************************/ 3958 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3959 3960 "use strict"; 3961 __webpack_require__.r(__webpack_exports__); 3962 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 3963 /* harmony export */ "default": () => (/* binding */ getUniqueSlug), 3964 /* harmony export */ getSlug: () => (/* binding */ getSlug) 3965 /* harmony export */ }); 3966 /* harmony import */ var slugify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! slugify */ "./node_modules/slugify/slugify.js"); 3967 /* harmony import */ var slugify__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(slugify__WEBPACK_IMPORTED_MODULE_0__); 3968 /* harmony import */ var striptags__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! striptags */ "./node_modules/striptags/src/striptags.js"); 3969 /* harmony import */ var striptags__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(striptags__WEBPACK_IMPORTED_MODULE_1__); 3970 /** 3971 * External dependencies 3972 */ 3973 3974 3975 3976 /** 3977 * WordPress dependencies 3978 */ 3979 const { 3980 getBlocks 3981 } = wp.data.select('core/block-editor'); 3982 3983 /** 3984 * Get all block IDs. 3985 * 3986 * @param {Array} excludeId exclude block client id. 3987 * @param {Array} blocks blocks list to check. 3988 * 3989 * @return {Array} block anchors and slugs array. 3990 */ 3991 function getAllSlugs(excludeId, blocks = 'none') { 3992 let slugs = []; 3993 if ('none' === blocks) { 3994 blocks = getBlocks(); 3995 } 3996 blocks.forEach(block => { 3997 if (block.clientId !== excludeId && block.attributes) { 3998 if (block.attributes.anchor) { 3999 slugs.push(block.attributes.anchor); 4000 } 4001 if (block.name === 'wb/tabs-tab' && block.attributes.slug) { 4002 slugs.push(block.attributes.slug); 4003 } 4004 } 4005 if (block.innerBlocks && block.innerBlocks.length) { 4006 slugs = [...slugs, ...getAllSlugs(excludeId, block.innerBlocks)]; 4007 } 4008 }); 4009 return slugs; 4010 } 4011 4012 /** 4013 * Check if slug is unique. 4014 * 4015 * @param {String} slug new slug. 4016 * @param {Array} slugs slugs list to check. 4017 * 4018 * @return {Boolean} is unique. 4019 */ 4020 function isUniqueSlug(slug, slugs) { 4021 let isUnique = true; 4022 slugs.forEach(thisSlug => { 4023 if (thisSlug === slug) { 4024 isUnique = false; 4025 } 4026 }); 4027 return isUnique; 4028 } 4029 4030 /** 4031 * Get slug from title. 4032 * 4033 * @param {String} title title string. 4034 * 4035 * @return {String} slug. 4036 */ 4037 function getSlug(title) { 4038 return slugify__WEBPACK_IMPORTED_MODULE_0___default()(striptags__WEBPACK_IMPORTED_MODULE_1___default()(title), { 4039 replacement: '-', 4040 remove: /[*_+~()'"!?\/\-—–−:@^|&#.,;%<>{}]/g, 4041 lower: true 4042 }); 4043 } 4044 4045 /** 4046 * Get unique slug from title. 4047 * 4048 * @param {String} title title string. 4049 * @param {String} excludeBlockId exclude block id to not check. 4050 * 4051 * @return {String} slug. 4052 */ 4053 function getUniqueSlug(title, excludeBlockId) { 4054 let newSlug = ''; 4055 let i = 0; 4056 const allSlugs = getAllSlugs(excludeBlockId); 4057 while (!newSlug || !isUniqueSlug(newSlug, allSlugs)) { 4058 if (newSlug) { 4059 i += 1; 4060 } 4061 newSlug = `${getSlug(title)}${i ? `-${i}` : ''}`; 4062 } 4063 return newSlug; 4064 } 4065 4066 /***/ }, 4067 4068 /***/ "./src/utils/shared.js" 4069 /*!*****************************!*\ 4070 !*** ./src/utils/shared.js ***! 4071 \*****************************/ 4072 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { 4073 4074 "use strict"; 4075 __webpack_require__.r(__webpack_exports__); 4076 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 4077 /* harmony export */ deepClone: () => (/* binding */ deepClone), 4078 /* harmony export */ getPositionClassName: () => (/* binding */ getPositionClassName), 4079 /* harmony export */ isContentPositionCenter: () => (/* binding */ isContentPositionCenter) 4080 /* harmony export */ }); 4081 const POSITION_CLASSNAMES = { 4082 'top left': 'is-position-top-left', 4083 'top center': 'is-position-top-center', 4084 'top right': 'is-position-top-right', 4085 'center left': 'is-position-center-left', 4086 'center center': 'is-position-center-center', 4087 center: 'is-position-center-center', 4088 'center right': 'is-position-center-right', 4089 'bottom left': 'is-position-bottom-left', 4090 'bottom center': 'is-position-bottom-center', 4091 'bottom right': 'is-position-bottom-right' 4092 }; 4093 function isContentPositionCenter(contentPosition) { 4094 return !contentPosition || contentPosition === 'center center' || contentPosition === 'center'; 4095 } 4096 function getPositionClassName(contentPosition) { 4097 /* 4098 * Only render a className if the contentPosition is not center (the default). 4099 */ 4100 if (isContentPositionCenter(contentPosition)) return ''; 4101 return POSITION_CLASSNAMES[contentPosition]; 4102 } 4103 function deepClone(obj) { 4104 if (Array.isArray(obj)) { 4105 return obj.map(item => deepClone(item)); 4106 } else if (typeof obj === 'object' && obj !== null) { 4107 const clone = {}; 4108 for (let key in obj) { 4109 if (obj.hasOwnProperty(key)) { 4110 clone[key] = deepClone(obj[key]); 4111 } 4112 } 4113 return clone; 4114 } else { 4115 return obj; 4116 } 4117 } 4118 4119 /***/ }, 4120 4121 /***/ "@wordpress/block-editor" 4122 /*!*************************************!*\ 4123 !*** external ["wp","blockEditor"] ***! 4124 \*************************************/ 4125 (module) { 4126 4127 "use strict"; 4128 module.exports = window["wp"]["blockEditor"]; 4129 4130 /***/ }, 4131 4132 /***/ "@wordpress/blocks" 4133 /*!********************************!*\ 4134 !*** external ["wp","blocks"] ***! 4135 \********************************/ 4136 (module) { 4137 4138 "use strict"; 4139 module.exports = window["wp"]["blocks"]; 4140 4141 /***/ }, 4142 4143 /***/ "@wordpress/components" 4144 /*!************************************!*\ 4145 !*** external ["wp","components"] ***! 4146 \************************************/ 4147 (module) { 4148 4149 "use strict"; 4150 module.exports = window["wp"]["components"]; 4151 4152 /***/ }, 4153 4154 /***/ "@wordpress/compose" 4155 /*!*********************************!*\ 4156 !*** external ["wp","compose"] ***! 4157 \*********************************/ 4158 (module) { 4159 4160 "use strict"; 4161 module.exports = window["wp"]["compose"]; 4162 4163 /***/ }, 4164 4165 /***/ "@wordpress/data" 4166 /*!******************************!*\ 4167 !*** external ["wp","data"] ***! 4168 \******************************/ 4169 (module) { 4170 4171 "use strict"; 4172 module.exports = window["wp"]["data"]; 4173 4174 /***/ }, 4175 4176 /***/ "@wordpress/element" 4177 /*!*********************************!*\ 4178 !*** external ["wp","element"] ***! 4179 \*********************************/ 4180 (module) { 4181 4182 "use strict"; 4183 module.exports = window["wp"]["element"]; 4184 4185 /***/ }, 4186 4187 /***/ "@wordpress/i18n" 4188 /*!******************************!*\ 4189 !*** external ["wp","i18n"] ***! 4190 \******************************/ 4191 (module) { 4192 4193 "use strict"; 4194 module.exports = window["wp"]["i18n"]; 4195 4196 /***/ }, 4197 4198 /***/ "@wordpress/keycodes" 4199 /*!**********************************!*\ 4200 !*** external ["wp","keycodes"] ***! 4201 \**********************************/ 4202 (module) { 4203 4204 "use strict"; 4205 module.exports = window["wp"]["keycodes"]; 4206 4207 /***/ }, 4208 4209 /***/ "react" 4210 /*!************************!*\ 4211 !*** external "React" ***! 4212 \************************/ 4213 (module) { 4214 4215 "use strict"; 4216 module.exports = window["React"]; 4217 4218 /***/ }, 4219 4220 /***/ "react/jsx-runtime" 4221 /*!**********************************!*\ 4222 !*** external "ReactJSXRuntime" ***! 4223 \**********************************/ 4224 (module) { 4225 4226 "use strict"; 4227 module.exports = window["ReactJSXRuntime"]; 4228 4229 /***/ } 4230 4231 /******/ }); 4232 /************************************************************************/ 4233 /******/ // The module cache 4234 /******/ var __webpack_module_cache__ = {}; 4235 /******/ 4236 /******/ // The require function 4237 /******/ function __webpack_require__(moduleId) { 4238 /******/ // Check if module is in cache 4239 /******/ var cachedModule = __webpack_module_cache__[moduleId]; 4240 /******/ if (cachedModule !== undefined) { 4241 /******/ return cachedModule.exports; 4242 /******/ } 4243 /******/ // Check if module exists (development only) 4244 /******/ if (__webpack_modules__[moduleId] === undefined) { 4245 /******/ var e = new Error("Cannot find module '" + moduleId + "'"); 4246 /******/ e.code = 'MODULE_NOT_FOUND'; 4247 /******/ throw e; 4248 /******/ } 4249 /******/ // Create a new module (and put it into the cache) 4250 /******/ var module = __webpack_module_cache__[moduleId] = { 4251 /******/ // no module.id needed 4252 /******/ // no module.loaded needed 4253 /******/ exports: {} 4254 /******/ }; 4255 /******/ 4256 /******/ // Execute the module function 4257 /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); 4258 /******/ 4259 /******/ // Return the exports of the module 4260 /******/ return module.exports; 4261 /******/ } 4262 /******/ 4263 /************************************************************************/ 4264 /******/ /* webpack/runtime/compat get default export */ 4265 /******/ (() => { 4266 /******/ // getDefaultExport function for compatibility with non-harmony modules 4267 /******/ __webpack_require__.n = (module) => { 4268 /******/ var getter = module && module.__esModule ? 4269 /******/ () => (module['default']) : 4270 /******/ () => (module); 4271 /******/ __webpack_require__.d(getter, { a: getter }); 4272 /******/ return getter; 4273 /******/ }; 4274 /******/ })(); 4275 /******/ 4276 /******/ /* webpack/runtime/define property getters */ 4277 /******/ (() => { 4278 /******/ // define getter functions for harmony exports 4279 /******/ __webpack_require__.d = (exports, definition) => { 4280 /******/ for(var key in definition) { 4281 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 4282 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 4283 /******/ } 4284 /******/ } 4285 /******/ }; 4286 /******/ })(); 4287 /******/ 4288 /******/ /* webpack/runtime/hasOwnProperty shorthand */ 4289 /******/ (() => { 4290 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 4291 /******/ })(); 4292 /******/ 4293 /******/ /* webpack/runtime/make namespace object */ 4294 /******/ (() => { 4295 /******/ // define __esModule on exports 4296 /******/ __webpack_require__.r = (exports) => { 4297 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 4298 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 4299 /******/ } 4300 /******/ Object.defineProperty(exports, '__esModule', { value: true }); 4301 /******/ }; 4302 /******/ })(); 4303 /******/ 4304 /************************************************************************/ 4305 var __webpack_exports__ = {}; 4306 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode. 4307 (() => { 4308 "use strict"; 4309 /*!**********************!*\ 4310 !*** ./src/index.js ***! 4311 \**********************/ 4312 __webpack_require__.r(__webpack_exports__); 4313 /* harmony import */ var _styles_editor_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./styles/editor.scss */ "./src/styles/editor.scss"); 4314 /* harmony import */ var _blocks_slides__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./blocks/slides */ "./src/blocks/slides/index.js"); 4315 /* harmony import */ var _blocks_slide__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blocks/slide */ "./src/blocks/slide/index.js"); 4316 4317 4318 4319 const { 4320 registerBlockType, 4321 registerBlockStyle 4322 } = wp.blocks; 4323 4324 /** 4325 * Register blocks 4326 */ 4327 registerBlockType(_blocks_slides__WEBPACK_IMPORTED_MODULE_1__.name, _blocks_slides__WEBPACK_IMPORTED_MODULE_1__.settings); 4328 registerBlockType(_blocks_slide__WEBPACK_IMPORTED_MODULE_2__.name, _blocks_slide__WEBPACK_IMPORTED_MODULE_2__.settings); 4329 registerBlockStyle(_blocks_slides__WEBPACK_IMPORTED_MODULE_1__.name, [{ 4330 name: 'testimonials', 4331 label: 'Testimonials' 4332 }, { 4333 name: 'thumbnails-bottom-right', 4334 label: 'Thumbnails Bottom Right' 4335 }, { 4336 name: 'overlayed-text-right', 4337 label: 'Overlayed Text Right' 4338 }]); 4339 })(); 4340 4341 /******/ })() 4342 ; 4343 //# sourceMappingURL=index.build.js.map 1 (()=>{var e={655(e,t){var i;!function(){"use strict";var s=function(){function e(){}function t(e,t){for(var i=t.length,s=0;s<i;++s)o(e,t[s])}e.prototype=Object.create(null);var i={}.hasOwnProperty,s=/\s+/;function o(e,o){if(o){var a=typeof o;"string"===a?function(e,t){for(var i=t.split(s),o=i.length,a=0;a<o;++a)e[i[a]]=!0}(e,o):Array.isArray(o)?t(e,o):"object"===a?function(e,t){if(t.toString===Object.prototype.toString||t.toString.toString().includes("[native code]"))for(var s in t)i.call(t,s)&&(e[s]=!!t[s]);else e[t.toString()]=!0}(e,o):"number"===a&&function(e,t){e[t]=!0}(e,o)}}return function(){for(var i=arguments.length,s=Array(i),o=0;o<i;o++)s[o]=arguments[o];var a=new e;t(a,s);var l=[];for(var n in a)a[n]&&l.push(n);return l.join(" ")}}();e.exports?(s.default=s,e.exports=s):void 0===(i=function(){return s}.apply(t,[]))||(e.exports=i)}()}},t={};function i(s){var o=t[s];if(void 0!==o)return o.exports;var a=t[s]={exports:{}};return e[s](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";const e=JSON.parse('{"apiVersion":3,"name":"da/wp-swiper-slides","category":"media","supports":{"html":false,"className":false,"anchor":true,"align":["wide","full"]},"attributes":{"align":{"type":"string","default":""},"overlayColor":{"type":"object","default":{"rgb":{"r":0,"g":0,"b":0,"a":0}}},"containerWidth":{"type":"number"},"overlayImg":{"type":"string"},"previousIcon":{"type":"string"},"nextIcon":{"type":"string"},"overlayImgOpacity":{"type":"number","default":0.5},"currentSlide":{"type":"number","default":0},"tabActive":{"type":"string","default":"slide-1"},"buttonsAlign":{"type":"string","default":"start"},"autoplay":{"type":"boolean","default":false},"disableOnInteraction":{"type":"boolean","default":true},"pauseOnMouseEnter":{"type":"boolean","default":false},"reverseDirection":{"type":"boolean","default":false},"stopOnLastSlide":{"type":"boolean","default":false},"waitForTransition":{"type":"boolean","default":true},"navigation":{"type":"boolean","default":true},"pagination":{"type":"boolean","default":true},"clickable_pagination":{"type":"boolean","default":false},"loop":{"type":"boolean","default":false},"loopAddBlankSlides":{"type":"boolean","default":true},"loopAdditionalSlides":{"type":"number","default":0},"effect":{"type":"string","default":"slide"},"speed":{"type":"number","default":500},"delay":{"type":"number","default":3000},"slidesPerView":{"type":"string","default":"1"},"slidesPerGroup":{"type":"number","default":1},"slidesPerGroupAuto":{"type":"boolean","default":false},"slidesPerGroupSkip":{"type":"number","default":0},"spaceBetween":{"type":"number","default":0},"autoSlideWidth":{"type":"boolean","default":false},"slidesOffsetBefore":{"type":"number","default":0},"slidesOffsetAfter":{"type":"number","default":0},"tabsData":{"type":"array","default":[{"clientId":"","slug":"slide-1","slideImg":"","thumbImg":""}]},"breakpoints":{"type":"string"},"thumbs":{"type":"boolean","default":false},"thumbsSlidesPerView":{"type":"number","default":4},"thumbsSpaceBetween":{"type":"number","default":10},"autoHeight":{"type":"boolean","default":true},"sliderHeight":{"type":"string","default":"500px"},"freeMode":{"type":"boolean","default":false},"freeModeMinimumVelocity":{"type":"number","default":0.02},"freeModeMomentum":{"type":"boolean","default":true},"freeModeMomentumBounce":{"type":"boolean","default":true},"freeModeMomentumBounceRatio":{"type":"number","default":1},"freeModeMomentumRatio":{"type":"number","default":1},"freeModeMomentumVelocityRatio":{"type":"number","default":1},"freeModeSticky":{"type":"boolean","default":false},"debug":{"type":"boolean","default":false},"direction":{"type":"string","default":"horizontal"},"overflowVisible":{"type":"boolean","default":false},"navigationColor":{"type":"string","default":""},"paginationColor":{"type":"string","default":""}}}');var t=i(655),s=i.n(t);const o=window.wp.blockEditor,a=window.ReactJSXRuntime,{sliderHeight:l,navigationColor:n,paginationColor:r,autoHeight:d,...p}=e.attributes,c={...p,autoHeight:{type:"boolean",default:!0},pagination_type:{type:"string",default:"bullets"},mousewheel:{type:"boolean",default:!1},releaseOnEdges:{type:"boolean",default:!1}},u=[{attributes:{...c,tabsData:{type:"array",default:[]}},save:function(e){let{className:t}=e.attributes;const{align:i,overlayImg:l,overlayImgOpacity:n,slidesPerView:r,slidesPerGroup:d,slidesPerGroupAuto:p,slidesPerGroupSkip:c,spaceBetween:u,autoSlideWidth:w,autoplay:m,disableOnInteraction:g,pauseOnMouseEnter:h,reverseDirection:f,stopOnLastSlide:b,waitForTransition:v,delay:y,speed:x,loop:_,loopAddBlankSlides:j,loopAdditionalSlides:k,effect:C,navigation:P,pagination:S,mousewheel:M,releaseOnEdges:B,pagination_type:O,clickable_pagination:I,breakpoints:N,thumbs:R,thumbsSpaceBetween:A,thumbsSlidesPerView:T,autoHeight:V,freeMode:E,freeModeMinimumVelocity:D,freeModeMomentum:H,freeModeMomentumBounce:F,freeModeMomentumBounceRatio:G,freeModeMomentumRatio:$,freeModeMomentumVelocityRatio:z,freeModeSticky:L,debug:W,direction:J,tabsData:q,previousIcon:U,nextIcon:Z,slidesOffsetBefore:X,slidesOffsetAfter:Y,overflowVisible:K}=e.attributes;t=s()(t,"wp-swiper"),i&&(t=s()(t,`align${i}`));const Q={className:t},ee=l?{backgroundImage:`url(${l})`}:{};n&&(ee.opacity=n);let te={"data-thumbs":{}},ie={slidesPerView:"auto"===r?"auto":parseInt(r,10),slidesPerGroup:d,slidesPerGroupAuto:p,slidesPerGroupSkip:c,navigation:P,pagination:{},delay:y,speed:x,loop:_,direction:J,slidesOffsetBefore:X,slidesOffsetAfter:Y,autoHeight:V,spaceBetween:u,releaseOnEdges:B};w&&(ie.autoSlideWidth=!0),M&&B&&(ie.mousewheel={releaseOnEdges:"true"===B}),_&&(ie.loopAddBlankSlides=j,ie.loopAdditionalSlides=k),ie.effect=C||"slide","fade"===C&&(ie.fadeEffect={crossFade:!0}),m&&(ie.autoplay=!0,null!=y&&(ie.autoplay={delay:Number(y)}),g&&(ie.autoplay||(ie.autoplay={}),ie.autoplay.disableOnInteraction=!0),h&&(ie.autoplay||(ie.autoplay={}),ie.autoplay.pauseOnMouseEnter=!0),f&&(ie.autoplay||(ie.autoplay={}),ie.autoplay.reverseDirection=!0),b&&(ie.autoplay||(ie.autoplay={}),ie.autoplay.stopOnLastSlide=!0),null!=v&&(ie.autoplay||(ie.autoplay={}),ie.autoplay.waitForTransition=v)),E&&(ie.freeMode={enabled:!0,minimumVelocity:D,momentum:H,momentumBounce:F,momentumBounceRatio:G,momentumRatio:$,momentumVelocityRatio:z,sticky:L}),ie.pagination.type="bullets"!=O?O:"bullets",I&&(ie.pagination.clickable=!!I||""),void 0!==N&&""!=N&&(ie.breakpoints=N),R&&(te["data-thumbs"]=JSON.stringify({spaceBetween:A,slidesPerView:T,freeMode:!0,watchSlidesProgress:!0,navigation:!1}));const se=(void 0!==q?q:[]).map((e,t)=>(e.thumbImg||e.slideImg)&&(0,a.jsx)("div",{className:"swiper-slide wp-swiper__thumb","data-thumb":t+1,children:(0,a.jsx)("img",{src:e.thumbImg||e.slideImg,alt:`Thumbnail ${t+1}`})},t)),oe=s()("swiper-container","swiper",{"swiper-overflow-visible":K});return(0,a.jsxs)("div",{...Q,children:[function(e,t){if(void 0!==e)return(0,a.jsx)("div",{className:"wp-swiper__overlay-img",style:t})}(l,ee),(0,a.jsxs)("div",{className:"wp-swiper__wrapper",children:[(0,a.jsx)("div",{className:oe,...W?{"data-debug":!0}:{},"data-swiper":JSON.stringify(ie),...te,children:(0,a.jsxs)("div",{className:"swiper-wrapper",children:["\n",(0,a.jsx)(o.InnerBlocks.Content,{}),"\n"]})}),function({attributes:e}){const{navigation:t}=e;if(t)return(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("div",{className:"wp_swiper__navigation",children:(0,a.jsxs)("div",{className:"wp_swiper__navigation-container",children:[(0,a.jsx)("div",{className:"swiper-button-prev "+(U?"wp_swiper__button-prev":""),children:U?(0,a.jsx)("img",{src:U,alt:"Previous"}):null}),(0,a.jsx)("div",{className:"swiper-button-next "+(Z?"wp_swiper__button-next":""),children:Z?(0,a.jsx)("img",{src:Z,alt:"Previous"}):null})]})})})}(e),function({attributes:e}){const{pagination:t}=e;if(t)return(0,a.jsx)("div",{className:"swiper-pagination"})}(e)]}),function({attributes:e}){let{className:t}=e;if(t=t?t.toString():"",-1!==t.indexOf("is-style-testimonials"))return(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("div",{className:"wp-swiper__quotes",children:(0,a.jsx)("svg",{"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"quote-right",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",class:"svg-inline--fa fa-quote-right fa-w-16 fa-5x",children:(0,a.jsx)("path",{fill:"currentColor",d:"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z",class:""})})})})}(e),R&&(0,a.jsx)("div",{className:"wp-swiper__thumbs",children:(0,a.jsx)("div",{className:"wp-swiper__wrapper",children:(0,a.jsx)("div",{className:"swiper-container",children:(0,a.jsx)("div",{className:"swiper-wrapper",children:se})})})})]})},migrate:e=>({...e,sliderHeight:"500px",navigationColor:void 0,paginationColor:void 0})},{attributes:{...c,sticky:{type:"boolean",default:!1},tabsData:{type:"array",default:[]}},save:function(e){let{className:t}=e.attributes;const{align:i,overlayImg:l,overlayImgOpacity:n,slidesPerView:r,slidesPerGroup:d,slidesPerGroupAuto:p,slidesPerGroupSkip:c,spaceBetween:u,txtColor:w,autoplay:m,disableOnInteraction:g,pauseOnMouseEnter:h,reverseDirection:f,stopOnLastSlide:b,waitForTransition:v,delay:y,speed:x,loop:_,effect:j,navigation:k,pagination:C,mousewheel:P,releaseOnEdges:S,pagination_type:M,clickable_pagination:B,breakpoints:O,thumbs:I,thumbsSpaceBetween:N,thumbsSlidesPerView:R,autoHeight:A,freeMode:T,sticky:V,debug:E,direction:D,tabsData:H,previousIcon:F,nextIcon:G,slidesOffsetBefore:$,slidesOffsetAfter:z,overflowVisible:L}=e.attributes;t=s()(t,"wp-swiper"),i&&(t=s()(t,`align${i}`));const W=o.useBlockProps.save({className:t}),J=(o.useInnerBlocksProps,l?{backgroundImage:`url(${l})`}:{});n&&(J.opacity=n);const q=w?{color:w}:{};let U={"data-thumbs":{}},Z={slidesPerView:"auto"===r?"auto":parseInt(r,10),slidesPerGroup:d,slidesPerGroupAuto:p,slidesPerGroupSkip:c,navigation:k,pagination:{},delay:y,speed:x,loop:_,direction:D,slidesOffsetBefore:$,slidesOffsetAfter:z,autoHeight:A,spaceBetween:u,releaseOnEdges:S};P&&S&&(Z.mousewheel={releaseOnEdges:"true"===S}),j&&(Z.effect=j,"fade"===j&&(Z.fadeEffect={crossFade:!0})),m&&(Z.autoplay=!0,null!=y&&(Z.autoplay={delay:Number(y)}),g&&(Z.autoplay||(Z.autoplay={}),Z.autoplay.disableOnInteraction=!0),h&&(Z.autoplay||(Z.autoplay={}),Z.autoplay.pauseOnMouseEnter=!0),f&&(Z.autoplay||(Z.autoplay={}),Z.autoplay.reverseDirection=!0),b&&(Z.autoplay||(Z.autoplay={}),Z.autoplay.stopOnLastSlide=!0),null!=v&&(Z.autoplay||(Z.autoplay={}),Z.autoplay.waitForTransition=v)),T&&(Z.freeMode={enabled:!0},V&&(Z.freeMode.sticky=!0)),Z.pagination.type="bullets"!=M?M:"bullets",B&&(Z.pagination.clickable=!!B||""),void 0!==O&&""!=O&&(Z.breakpoints=O),I&&(U["data-thumbs"]=JSON.stringify({spaceBetween:N,slidesPerView:R,freeMode:!0,watchSlidesProgress:!0,navigation:!1}));const X=(void 0!==H?H:[]).map((e,t)=>(e.thumbImg||e.slideImg)&&(0,a.jsx)("div",{className:"swiper-slide wp-swiper__thumb","data-thumb":t+1,children:(0,a.jsx)("img",{src:e.thumbImg||e.slideImg,alt:`Thumbnail ${t+1}`})},t)),Y=s()("swiper-container","swiper",{"swiper-overflow-visible":L});return(0,a.jsxs)("div",{...W,children:[function(e,t){if(void 0!==e)return(0,a.jsx)("div",{className:"wp-swiper__overlay-img",style:t})}(l,J),(0,a.jsxs)("div",{className:"wp-swiper__wrapper",style:q,children:[(0,a.jsx)("div",{className:Y,...E?{"data-debug":!0}:{},"data-swiper":JSON.stringify(Z),...U,children:(0,a.jsx)("div",{className:"swiper-wrapper",children:(0,a.jsx)(o.InnerBlocks.Content,{})})}),function({attributes:e}){const{navigation:t}=e;if(t)return(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("div",{className:"wp_swiper__navigation",children:(0,a.jsxs)("div",{className:"wp_swiper__navigation-container",children:[(0,a.jsx)("div",{className:"swiper-button-prev "+(F?"wp_swiper__button-prev":""),children:F?(0,a.jsx)("img",{src:F,alt:"Previous"}):null}),(0,a.jsx)("div",{className:"swiper-button-next "+(G?"wp_swiper__button-next":""),children:G?(0,a.jsx)("img",{src:G,alt:"Previous"}):null})]})})})}(e),function({attributes:e}){const{pagination:t}=e;if(t)return(0,a.jsx)("div",{className:"swiper-pagination"})}(e)]}),function({attributes:e}){let{className:t}=e;if(t=t?t.toString():"",-1!==t.indexOf("is-style-testimonials"))return(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("div",{className:"wp-swiper__quotes",children:(0,a.jsx)("svg",{"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"quote-right",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",class:"svg-inline--fa fa-quote-right fa-w-16 fa-5x",children:(0,a.jsx)("path",{fill:"currentColor",d:"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z",class:""})})})})}(e),I&&(0,a.jsx)("div",{className:"wp-swiper__thumbs",children:(0,a.jsx)("div",{className:"wp-swiper__wrapper",children:(0,a.jsx)("div",{className:"swiper-container",children:(0,a.jsx)("div",{className:"swiper-wrapper",children:X})})})})]})},migrate(e){const{sticky:t,...i}=e;return{...i,freeModeSticky:t||!1,sliderHeight:"500px",navigationColor:void 0,paginationColor:void 0}}},{attributes:{...c,tabsData:{type:"array",default:[]}},save:function(e){let{className:t}=e.attributes;const{align:i,overlayImg:l,overlayImgOpacity:n,slidesPerView:r,spaceBetween:d,txtColor:p,autoplay:c,disableOnInteraction:u,pauseOnMouseEnter:w,reverseDirection:m,stopOnLastSlide:g,waitForTransition:h,delay:f,speed:b,loop:v,effect:y,navigation:x,pagination:_,mousewheel:j,releaseOnEdges:k,pagination_type:C,clickable_pagination:P,breakpoints:S,thumbs:M,thumbsSpaceBetween:B,thumbsSlidesPerView:O,autoHeight:I,freeMode:N,sticky:R,debug:A,direction:T,tabsData:V,previousIcon:E,nextIcon:D,slidesOffsetBefore:H,slidesOffsetAfter:F}=e.attributes;t=s()(t,"wp-swiper"),i&&(t=s()(t,`align${i}`));const G=o.useBlockProps.save({className:t}),$=(o.useInnerBlocksProps,(void 0!==V?V:[]).map((e,t)=>(e.thumbImg||e.slideImg)&&(0,a.jsx)("div",{className:"swiper-slide wp-swiper__thumb","data-thumb":t+1,children:(0,a.jsx)("img",{src:e.thumbImg||e.slideImg,alt:`Thumbnail ${t+1}`})},t))),z=l?{backgroundImage:`url(${l})`}:{};n&&(z.opacity=n);const L=p?{color:p}:{};let W={"data-thumbs":{}},J={"slidesPerView-":r,navigation:x,pagination:_,autoplay:c,disableOnInteraction:u,pauseOnMouseEnter:w,delay:f,speed:b,loop:v,effect:y};return A&&(J.debug=A),N&&R&&(J.sticky=R),J.slidesOffsetBefore=H,J.slidesOffsetAfter=F,J.direction=T,J.freeMode=N,J.autoHeight=I,J.spaceBetween=d,J.mousewheel=j,J.releaseOnEdges=k,J.type="bullets"!=C?C:"bullets",P&&(J.clickable=!!P||""),void 0!==S&&""!=S&&(J["data-breakpoints"]=JSON.stringify(S.replace(/^\s+|\s+|\n$/gm,"")),J["data-breakpoints"]=J.breakpoints.substring(1,J.breakpoints.length-1)),M&&(W["data-thumbs"]=JSON.stringify({spaceBetween:B,slidesPerView:O,freeMode:!0,watchSlidesProgress:!0,navigation:!1})),(0,a.jsxs)("div",{...G,children:[function(e,t){if(void 0!==e)return(0,a.jsx)("div",{className:"wp-swiper__overlay-img",style:t})}(l,z),(0,a.jsxs)("div",{className:"wp-swiper__wrapper",style:L,children:[(0,a.jsx)("div",{className:"swiper-container swiper","data-swiper":JSON.stringify(J),...W,children:(0,a.jsx)("div",{className:"swiper-wrapper",children:(0,a.jsx)(o.InnerBlocks.Content,{})})}),function({attributes:e}){const{navigation:t}=e;if(t)return(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("div",{className:"wp_swiper__navigation",children:(0,a.jsxs)("div",{className:"wp_swiper__navigation-container",children:[(0,a.jsx)("div",{className:"swiper-button-prev "+(E?"wp_swiper__button-prev":""),children:E?(0,a.jsx)("img",{src:E,alt:"Previous"}):null}),(0,a.jsx)("div",{className:"swiper-button-next "+(D?"wp_swiper__button-next":""),children:D?(0,a.jsx)("img",{src:D,alt:"Previous"}):null})]})})})}(e),function({attributes:e}){const{pagination:t}=e;if(t)return(0,a.jsx)("div",{className:"swiper-pagination"})}(e)]}),function({attributes:e}){let{className:t}=e;if(t=t?t.toString():"",-1!==t.indexOf("is-style-testimonials"))return(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("div",{className:"wp-swiper__quotes",children:(0,a.jsx)("svg",{"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"quote-right",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",class:"svg-inline--fa fa-quote-right fa-w-16 fa-5x",children:(0,a.jsx)("path",{fill:"currentColor",d:"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z",class:""})})})})}(e),M&&(0,a.jsx)("div",{className:"wp-swiper__thumbs",children:(0,a.jsx)("div",{className:"wp-swiper__wrapper",children:(0,a.jsx)("div",{className:"swiper-container",children:(0,a.jsx)("div",{className:"swiper-wrapper",children:$})})})})]})},migrate:e=>({...e,sliderHeight:"500px",navigationColor:void 0,paginationColor:void 0})}],w=window.wp.element,m=window.wp.i18n,g=window.wp.blocks,h=window.wp.data,f=window.wp.components,{Component:b}=wp.element,{__}=wp.i18n,{Button:v,Popover:y}=wp.components;class x extends b{constructor(){super(...arguments),this.state={confirmed:-1}}render(){const{onRemove:e,show:t,style:i,tooltipText:s=__("Remove Slide?","@@text_domain"),tooltipRemoveText:o=__("Remove","@@text_domain"),tooltipCancelText:l=__("Cancel","@@text_domain")}=this.props,{confirmed:n}=this.state;return t?(0,a.jsxs)(v,{className:"wb-component-remove-button",onClick:()=>{-1===n&&this.setState({confirmed:0})},style:i,children:[0===n?(0,a.jsxs)(y,{className:"wb-component-remove-button-confirm",onClose:()=>{this.setState({confirmed:-1})},onClickOutside:()=>{this.setState({confirmed:-1})},children:[s,(0,a.jsx)(v,{className:"wb-component-remove-button-confirm-yep",onClick:e,children:o}),(0,a.jsx)(v,{className:"wb-component-remove-button-confirm-nope",onClick:()=>{this.setState({confirmed:-1})},children:l})]}):"",(0,a.jsx)("svg",{"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"trash",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",class:"svg-inline--fa fa-trash fa-w-14 fa-3x",children:(0,a.jsx)("path",{fill:"currentColor",d:"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z",class:""})})]}):""}}function _(e){return(0,a.jsx)("div",{className:"wb-tabs-icon",children:""!=e&&(0,a.jsx)("img",{className:"wb-tabs-icon_image",src:e})})}const j={"top left":"is-position-top-left","top center":"is-position-top-center","top right":"is-position-top-right","center left":"is-position-center-left","center center":"is-position-center-center",center:"is-position-center-center","center right":"is-position-center-right","bottom left":"is-position-bottom-left","bottom center":"is-position-bottom-center","bottom right":"is-position-bottom-right"};function k(e){return function(e){return!e||"center center"===e||"center"===e}(e)?"":j[e]}function C(e){if(Array.isArray(e))return e.map(e=>C(e));if("object"==typeof e&&null!==e){const t={};for(let i in e)e.hasOwnProperty(i)&&(t[i]=C(e[i]));return t}return e}const P=[["da/wp-swiper-slide",{slug:"slide-1"}]];async function S(e){const t=new FormData;return t.append("file",e),await wp.apiFetch({path:"/wp/v2/media",method:"POST",body:t})}function M({attributes:e,setAttributes:t}){const[i,s]=(0,w.useState)(""),[o,l]=(0,w.useState)(!0),[n,r]=(0,w.useState)(!1),d=function(e){const{slidesPerView:t,slidesPerGroup:i,slidesPerGroupAuto:s,slidesPerGroupSkip:o,spaceBetween:a,autoSlideWidth:l,autoplay:n,disableOnInteraction:r,pauseOnMouseEnter:d,reverseDirection:p,stopOnLastSlide:c,waitForTransition:u,delay:w,speed:m,loop:g,loopAddBlankSlides:h,loopAdditionalSlides:f,effect:b,navigation:v,mousewheel:y,releaseOnEdges:x,pagination_type:_,clickable_pagination:j,breakpoints:k,freeMode:C,freeModeMinimumVelocity:P,freeModeMomentum:S,freeModeMomentumBounce:M,freeModeMomentumBounceRatio:B,freeModeMomentumRatio:O,freeModeMomentumVelocityRatio:I,freeModeSticky:N,autoHeight:R,direction:A,slidesOffsetBefore:T,slidesOffsetAfter:V}=e,E={slidesPerView:"auto"===t?"auto":parseInt(t,10),slidesPerGroup:i,slidesPerGroupAuto:s,slidesPerGroupSkip:o,navigation:v,pagination:{},delay:w,speed:m,loop:g,direction:A,slidesOffsetBefore:T,slidesOffsetAfter:V,autoHeight:R,spaceBetween:a,releaseOnEdges:x};return l&&(E.autoSlideWidth=!0),y&&x&&(E.mousewheel={releaseOnEdges:"true"===x}),g&&(E.loopAddBlankSlides=h,E.loopAdditionalSlides=f),b&&(E.effect=b,"fade"===b&&(E.fadeEffect={crossFade:!0})),n&&(E.autoplay=!0,null!=w&&(E.autoplay={delay:Number(w)}),r&&(E.autoplay&&!0!==E.autoplay||(E.autoplay={}),E.autoplay.disableOnInteraction=!0),d&&(E.autoplay&&!0!==E.autoplay||(E.autoplay={}),E.autoplay.pauseOnMouseEnter=!0),p&&(E.autoplay&&!0!==E.autoplay||(E.autoplay={}),E.autoplay.reverseDirection=!0),c&&(E.autoplay&&!0!==E.autoplay||(E.autoplay={}),E.autoplay.stopOnLastSlide=!0),null!=u&&(E.autoplay&&!0!==E.autoplay||(E.autoplay={}),E.autoplay.waitForTransition=u)),C&&(E.freeMode={enabled:!0,minimumVelocity:P,momentum:S,momentumBounce:M,momentumBounceRatio:B,momentumRatio:O,momentumVelocityRatio:I,sticky:N}),E.pagination.type="bullets"!==_?_:"bullets",j&&(E.pagination.clickable=!!j||""),void 0!==k&&""!==k&&(E.breakpoints=k),E}(e),p=JSON.stringify(d,null,2);(0,w.useEffect)(()=>{n||s(p)},[p,n]),(0,w.useEffect)(()=>{s(p)},[]);const c={marginTop:"8px",fontSize:"12px",fontStyle:"normal",color:"rgb(117, 117, 117)",marginBottom:"12px"};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.BaseControl,{label:(0,m.__)("Swiper Configuration (JSON)","wp-swiper"),help:o?"":(0,m.__)("Invalid JSON format. Please fix the syntax errors.","wp-swiper"),children:(0,a.jsx)("textarea",{value:i,onChange:e=>(e=>{s(e),r(!0);try{JSON.parse(e),l(!0)}catch(e){l(!1)}})(e.target.value),rows:15,style:{width:"100%",fontFamily:"monospace",fontSize:"11px",padding:"8px",border:"1px solid "+(o?"#8c8f94":"#cc1818"),borderRadius:"4px",backgroundColor:o?"#fff":"#fff5f5",resize:"vertical"}})}),(0,a.jsxs)(f.PanelRow,{children:[(0,a.jsx)(f.Button,{variant:"primary",onClick:()=>{if(o)try{const e=JSON.parse(i),s={};void 0!==e.slidesPerView&&(s.slidesPerView=e.slidesPerView),void 0!==e.slidesPerGroup&&(s.slidesPerGroup=e.slidesPerGroup),void 0!==e.slidesPerGroupAuto&&(s.slidesPerGroupAuto=e.slidesPerGroupAuto),void 0!==e.slidesPerGroupSkip&&(s.slidesPerGroupSkip=e.slidesPerGroupSkip),void 0!==e.spaceBetween&&(s.spaceBetween=e.spaceBetween),void 0!==e.autoSlideWidth&&(s.autoSlideWidth=e.autoSlideWidth),void 0!==e.navigation&&(s.navigation=e.navigation),void 0!==e.delay&&(s.delay=e.delay),void 0!==e.speed&&(s.speed=e.speed),void 0!==e.loop&&(s.loop=e.loop),void 0!==e.direction&&(s.direction=e.direction),void 0!==e.slidesOffsetBefore&&(s.slidesOffsetBefore=e.slidesOffsetBefore),void 0!==e.slidesOffsetAfter&&(s.slidesOffsetAfter=e.slidesOffsetAfter),void 0!==e.autoHeight&&(s.autoHeight=e.autoHeight),void 0!==e.releaseOnEdges&&(s.releaseOnEdges=e.releaseOnEdges),void 0!==e.effect&&(s.effect=e.effect),void 0!==e.loopAddBlankSlides&&(s.loopAddBlankSlides=e.loopAddBlankSlides),void 0!==e.loopAdditionalSlides&&(s.loopAdditionalSlides=e.loopAdditionalSlides),void 0!==e.autoplay&&(!0===e.autoplay||"object"==typeof e.autoplay?(s.autoplay=!0,"object"==typeof e.autoplay&&(void 0!==e.autoplay.delay&&(s.delay=e.autoplay.delay),void 0!==e.autoplay.disableOnInteraction&&(s.disableOnInteraction=e.autoplay.disableOnInteraction),void 0!==e.autoplay.pauseOnMouseEnter&&(s.pauseOnMouseEnter=e.autoplay.pauseOnMouseEnter),void 0!==e.autoplay.reverseDirection&&(s.reverseDirection=e.autoplay.reverseDirection),void 0!==e.autoplay.stopOnLastSlide&&(s.stopOnLastSlide=e.autoplay.stopOnLastSlide),void 0!==e.autoplay.waitForTransition&&(s.waitForTransition=e.autoplay.waitForTransition))):s.autoplay=!1),void 0!==e.freeMode&&("object"==typeof e.freeMode&&e.freeMode.enabled?(s.freeMode=!0,void 0!==e.freeMode.minimumVelocity&&(s.freeModeMinimumVelocity=e.freeMode.minimumVelocity),void 0!==e.freeMode.momentum&&(s.freeModeMomentum=e.freeMode.momentum),void 0!==e.freeMode.momentumBounce&&(s.freeModeMomentumBounce=e.freeMode.momentumBounce),void 0!==e.freeMode.momentumBounceRatio&&(s.freeModeMomentumBounceRatio=e.freeMode.momentumBounceRatio),void 0!==e.freeMode.momentumRatio&&(s.freeModeMomentumRatio=e.freeMode.momentumRatio),void 0!==e.freeMode.momentumVelocityRatio&&(s.freeModeMomentumVelocityRatio=e.freeMode.momentumVelocityRatio),void 0!==e.freeMode.sticky&&(s.freeModeSticky=e.freeMode.sticky)):s.freeMode=!1),void 0!==e.pagination&&(void 0!==e.pagination.type&&(s.pagination_type=e.pagination.type),void 0!==e.pagination.clickable&&(s.clickable_pagination=e.pagination.clickable)),void 0!==e.breakpoints&&(s.breakpoints=e.breakpoints),void 0!==e.mousewheel&&(s.mousewheel=!0,"object"==typeof e.mousewheel&&void 0!==e.mousewheel.releaseOnEdges&&(s.releaseOnEdges=e.mousewheel.releaseOnEdges?"true":"false")),t(s),r(!1)}catch(e){console.error("Failed to parse JSON config:",e)}},disabled:!o||!n,style:{marginRight:"8px"},children:(0,m.__)("Apply Changes","wp-swiper")}),(0,a.jsx)(f.Button,{variant:"secondary",onClick:()=>{s(p),r(!1),l(!0)},disabled:!n,children:(0,m.__)("Reset","wp-swiper")})]}),(0,a.jsx)("p",{style:c,children:(0,m.__)('This JSON object represents the Swiper initialization configuration. You can edit properties directly here and click "Apply Changes" to update the slider settings. This is useful for advanced customizations or copying configurations between sliders.',"wp-swiper")}),(0,a.jsxs)("p",{style:c,children:[(0,a.jsx)("strong",{children:(0,m.__)("Tip:","wp-swiper")})," ",(0,m.__)("Changes made here will update the corresponding settings in the sidebar panels. Some nested properties (like autoplay options) will be extracted to their respective settings.","wp-swiper")]})]})}const{__:B}=wp.i18n,{name:O}=e,I={...e,title:B("WP Swiper","@@text_domain"),description:B("Create an awesome slider.","@@text_domain"),icon:(0,a.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,a.jsx)("path",{d:"M20 17.4444C20 17.857 19.8314 18.2527 19.5314 18.5444C19.2313 18.8361 18.8243 19 18.4 19H5.6C5.17565 19 4.76869 18.8361 4.46863 18.5444C4.16857 18.2527 4 17.857 4 17.4444V6.55556C4 6.143 4.16857 5.74733 4.46863 5.45561C4.76869 5.16389 5.17565 5 5.6 5H9.6L11.2 7.33333H18.4C18.8243 7.33333 19.2313 7.49722 19.5314 7.78894C19.8314 8.08067 20 8.47633 20 8.88889V17.4444Z",stroke:"currentColor",fill:"transparent","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})}),keywords:[B("swiper","@@text_domain"),B("slider","@@text_domain"),B("wp slider","@@text_domain"),B("wp swiper","@@text_domain")],edit:function({clientId:e,attributes:t,setAttributes:i,className:l}){const n=(0,o.useBlockProps)(),{block:r,isSelectedBlockInRoot:d}=(0,h.useSelect)(t=>{const{getBlock:i,isBlockSelected:s,hasSelectedInnerBlock:a}=t(o.store);return{block:i(e),isSelectedBlockInRoot:s(e)||a(e,!0)}},[e]),{updateBlockAttributes:p,removeBlock:c,replaceInnerBlocks:u}=(0,h.useDispatch)(o.store),{getBlocks:b}=(0,h.useSelect)(e=>({getBlocks:e(o.store).getBlocks}),[]),v=(0,w.useCallback)(e=>{let t=1;e.forEach(e=>{p(e.clientId,{slug:`slide-${t}`}),t++})},[p]),{tabActive:y,buttonsAlign:j,tabsData:k,overlayColor:B,overlayImg:O,overlayImgOpacity:I,autoplay:N,disableOnInteraction:R,pauseOnMouseEnter:A,reverseDirection:T,stopOnLastSlide:V,waitForTransition:E,delay:D,speed:H,loop:F,loopAddBlankSlides:G,loopAdditionalSlides:$,effect:z,slidesPerView:L,slidesPerGroup:W,slidesPerGroupAuto:J,slidesPerGroupSkip:q,spaceBetween:U,autoSlideWidth:Z,navigation:X,pagination:Y,containerWidth:K,mousewheel:Q,releaseOnEdges:ee,pagination_type:te,clickable_pagination:ie,breakpoints:se,freeMode:oe,freeModeMinimumVelocity:ae,freeModeMomentum:le,freeModeMomentumBounce:ne,freeModeMomentumBounceRatio:re,freeModeMomentumRatio:de,freeModeMomentumVelocityRatio:pe,freeModeSticky:ce,thumbs:ue,thumbsSlidesPerView:we,thumbsSpaceBetween:me,autoHeight:ge,sliderHeight:he,debug:fe,direction:be,previousIcon:ve,nextIcon:ye,slidesOffsetBefore:xe,slidesOffsetAfter:_e,overflowVisible:je,navigationColor:ke,paginationColor:Ce}=t,Pe=b(e),Se=(0,w.useCallback)((e,t)=>!(!e||!t||e.length!==t.length)&&e.every((e,i)=>e===t[i]),[]);(0,w.useEffect)(()=>{if(!r?.innerBlocks)return;const e=r.innerBlocks.map(e=>e.attributes.slug),t=k.map(e=>e.slug),s=r.innerBlocks.map(e=>e.attributes.thumbImg),o=k.map(e=>e.thumbImg);let a=0;if(!Se(e,t)||!Se(s,o)){const e=r.innerBlocks.map(e=>(a++,{clientId:e.clientId,slideImg:e.attributes.slideImg,thumbImg:e.attributes.thumbImg,slug:`slide-${a}`}));v(r.innerBlocks),i({tabsData:e})}},[Pe,r,k,Se,v,i]);const[Me,Be]=(0,w.useState)("bottom center"),[Oe,Ie]=(0,w.useState)(!1),[Ne,Re]=(0,w.useState)(!1),Ae=(0,w.useCallback)(e=>{if(r?.innerBlocks)if(r.innerBlocks.length<=1)c(r.clientId);else if(r.innerBlocks[e]&&k[e]){const t=C(k);t.splice(e,1),c(r.innerBlocks[e].clientId);for(let i=e;i<t.length;i++){const e=`slide-${i+1}`;t[i].slug=e,p(t[i].clientId,{slug:e})}i({tabsData:t})}},[r,k,c,p,i]);l=s()(l,"wp-swiper__slides");let Te=j;"start"===Te?Te="left":"end"===Te&&(Te="right");let Ve=1;const Ee=()=>(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)("div",{style:{borderTop:"1px solid #dddddd",marginTop:"16px",marginBottom:"16px",width:"100%"}})});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(o.InspectorControls,{children:[(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Overlay Settings","wp-swiper"),initialOpen:!1,children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(o.MediaUploadCheck,{children:(0,a.jsx)(o.MediaUpload,{value:O,onSelect:e=>{const t=e.sizes?.full?.url||e.url;i({overlayImg:t})},allowedTypes:["image"],render:({open:e})=>(0,a.jsx)(f.Button,{onClick:e,className:"button",children:(0,m.__)("Select overlay image","wp-swiper")})})})}),O&&(0,a.jsx)(f.PanelRow,{children:_(O)}),O&&(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.Button,{variant:"secondary",size:"small",className:"block-library-cover__reset-button",onClick:()=>i({overlayImg:void 0}),children:(0,m.__)("Clear Media","wp-swiper")})}),O&&(0,a.jsx)(f.BaseControl,{label:(0,m.__)("Image Overlay Opacity","wp-swiper"),children:(0,a.jsx)(f.RangeControl,{label:(0,m.__)("Opacity","wp-swiper"),value:I,onChange:e=>i({overlayImgOpacity:e}),min:0,max:1,step:.01,required:!0})}),(0,a.jsx)(Ee,{}),(0,a.jsx)(f.BaseControl,{label:(0,m.__)("Overlay Color","wp-swiper"),children:(0,a.jsx)(f.ColorPalette,{value:"object"==typeof B?`rgba(${B.rgb.r}, ${B.rgb.g}, ${B.rgb.b}, ${B.rgb.a})`:B,onChange:e=>{i({overlayColor:e}),r.innerBlocks.map(t=>{p(t.clientId,{overlayColor:e})})}})}),B?.rgb?.a>0&&(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.Button,{variant:"secondary",size:"small",className:"block-library-cover__reset-button",onClick:()=>{const e={rgb:{r:0,g:0,b:0,a:0}};i({overlayColor:e}),(r?.innerBlocks||[]).forEach(t=>{p(t.clientId,{overlayColor:e})})},children:(0,m.__)("Clear Color","wp-swiper")})})]}),(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Color Settings","wp-swiper"),initialOpen:!1,children:[(0,a.jsx)(f.BaseControl,{label:(0,m.__)("Navigation Color","wp-swiper"),children:(0,a.jsx)(f.ColorPalette,{value:ke,onChange:e=>i({navigationColor:e})})}),ke&&(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.Button,{variant:"secondary",size:"small",onClick:()=>i({navigationColor:""}),children:(0,m.__)("Clear Navigation Color","wp-swiper")})}),(0,a.jsx)(Ee,{}),(0,a.jsx)(f.BaseControl,{label:(0,m.__)("Pagination Color","wp-swiper"),children:(0,a.jsx)(f.ColorPalette,{value:Ce,onChange:e=>i({paginationColor:e})})}),Ce&&(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.Button,{variant:"secondary",size:"small",onClick:()=>i({paginationColor:""}),children:(0,m.__)("Clear Pagination Color","wp-swiper")})})]}),(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Basic Slider Settings","wp-swiper"),icon:"controls-play",initialOpen:!0,children:[!ge&&(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.__experimentalUnitControl,{label:(0,m.__)("Slider Height","wp-swiper"),help:(0,m.__)("Set a fixed height for the slider","wp-swiper"),value:he,onChange:e=>{i({sliderHeight:e})},units:[{value:"px",label:"px",default:500},{value:"vh",label:"vh",default:50},{value:"%",label:"%",default:100},{value:"em",label:"em",default:20}]})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Auto Height","wp-swiper"),help:(0,m.__)("Slider wrapper will adapt its height to the height of the currently active slide","wp-swiper"),checked:ge,onChange:()=>{i({autoHeight:!ge})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Auto Play","wp-swiper"),checked:N,onChange:()=>{i({autoplay:!N})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Loop","wp-swiper"),checked:F,onChange:()=>{i({loop:!F})}})}),F&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Loop Add Blank Slides","wp-swiper"),help:(0,m.__)("Automatically adds blank slides if you use Grid or slidesPerGroup and the total amount of slides is not even to slidesPerGroup or to grid.rows","wp-swiper"),checked:G,onChange:()=>{i({loopAddBlankSlides:!G})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextControl,{label:(0,m.__)("Loop Additional Slides","wp-swiper"),help:(0,m.__)("Allows to increase amount of looped slides","wp-swiper"),value:$,type:"number",onChange:e=>{i({loopAdditionalSlides:parseInt(e)})}})})]}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextControl,{label:(0,m.__)("Speed","wp-swiper"),help:(0,m.__)("Duration of transition between slides (in ms)","wp-swiper"),value:H,type:"number",onChange:e=>{i({speed:parseInt(e)})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextControl,{label:(0,m.__)("Delay","wp-swiper"),help:(0,m.__)("Delay between transitions (in ms)","wp-swiper"),value:D,type:"number",onChange:e=>{i({delay:parseInt(e)})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.RangeControl,{label:(0,m.__)("Container Max Width %","wp-swiper"),help:(0,m.__)("Frontend: Set the max width for the content with text.","wp-swiper"),value:K,onChange:e=>{i({containerWidth:e}),(r?.innerBlocks||[]).forEach(t=>{p(t.clientId,{containerWidth:e})})},min:1,max:100,step:1,required:!0})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Overflow Visible","wp-swiper"),help:(0,m.__)("Apply overflow visible to the swiper container","wp-swiper"),checked:je,onChange:()=>{i({overflowVisible:!je})}})})]}),(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Slides Configuration","wp-swiper"),icon:"grid-view",initialOpen:!1,children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextControl,{label:(0,m.__)("Slides per view","wp-swiper"),help:(0,m.__)("Number of slides per view (slides visible at the same time on slider's container). Can be a number or auto","wp-swiper"),value:L,onChange:e=>{i({slidesPerView:e})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextControl,{label:(0,m.__)("Slides Per Group","wp-swiper"),help:(0,m.__)("Set numbers of slides to define and enable group sliding. Useful to use with slidesPerView > 1","wp-swiper"),value:W,type:"number",onChange:e=>{i({slidesPerGroup:parseInt(e)})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Slides Per Group Auto","wp-swiper"),help:(0,m.__)("This param intended to be used only with slidesPerView: 'auto' and slidesPerGroup: 1. When enabled, it will skip all slides in view on .slideNext() & .slidePrev() methods calls, on Navigation buttons clicks and in autoplay.","wp-swiper"),checked:J,onChange:()=>{i({slidesPerGroupAuto:!J})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextControl,{label:(0,m.__)("Slides Per Group Skip","wp-swiper"),help:(0,m.__)("If slidesPerGroupSkip equals 0 (default), no slides are excluded from grouping. If slidesPerGroupSkip is equal or greater than 1, the first X slides are treated as single groups, whereas all following slides are grouped by the slidesPerGroup value.","wp-swiper"),value:q,type:"number",onChange:e=>{i({slidesPerGroupSkip:parseInt(e)})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextControl,{label:(0,m.__)("Space Between","wp-swiper"),help:(0,m.__)("Distance between slides in px.","wp-swiper"),value:U,onChange:e=>{i({spaceBetween:parseInt(e)})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Auto Slide Width","wp-swiper"),help:(0,m.__)("Makes each slide size itself based on its content instead of being evenly distributed. Useful for logos, badges, small cards, or any element that should not be stretched.","wp-swiper"),checked:Z,onChange:()=>{i({autoSlideWidth:!Z})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextControl,{label:(0,m.__)("Slides Offset Before","wp-swiper"),help:(0,m.__)("Add (in px) additional slide offset in the beginning of the container (before all slides)","wp-swiper"),value:xe,onChange:e=>{i({slidesOffsetBefore:parseInt(e)})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextControl,{label:(0,m.__)("Slides Offset After","wp-swiper"),help:(0,m.__)("Add (in px) additional slide offset in the end of the container (after all slides)","wp-swiper"),value:_e,onChange:e=>{i({slidesOffsetAfter:parseInt(e)})}})})]}),(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Navigation & Controls","wp-swiper"),icon:"leftright",initialOpen:!1,children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Show Navigation","wp-swiper"),checked:X,onChange:()=>{i({navigation:!X})}})}),X&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)("p",{children:(0,m.__)("You can customize icons by uploading your own. Default icons used otherwise.","wp-swiper")})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(o.MediaUploadCheck,{children:(0,a.jsx)(o.MediaUpload,{value:ve,onSelect:e=>{const t=e.sizes?.full?.url||e.url;i({previousIcon:t})},allowedTypes:["image"],render:({open:e})=>(0,a.jsx)(f.Button,{onClick:e,className:"button",children:(0,m.__)("Select previous slide icon","wp-swiper")})})})}),ve&&(0,a.jsx)(f.PanelRow,{children:_(ve)}),ve&&(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.Button,{variant:"secondary",size:"small",className:"block-library-cover__reset-button",onClick:()=>i({previousIcon:void 0}),children:(0,m.__)("Clear Media","wp-swiper")})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(o.MediaUploadCheck,{children:(0,a.jsx)(o.MediaUpload,{value:ye,onSelect:e=>{const t=e.sizes?.full?.url||e.url;i({nextIcon:t})},allowedTypes:["image"],render:({open:e})=>(0,a.jsx)(f.Button,{onClick:e,className:"button",children:(0,m.__)("Select next slide icon","wp-swiper")})})})}),ye&&(0,a.jsx)(f.PanelRow,{children:_(ye)}),ye&&(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.Button,{variant:"secondary",size:"small",className:"block-library-cover__reset-button",onClick:()=>i({nextIcon:void 0}),children:(0,m.__)("Clear Media","wp-swiper")})})]}),(0,a.jsx)(Ee,{}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Show Pagination","wp-swiper"),checked:Y,onChange:()=>{i({pagination:!Y})}})}),Y&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.SelectControl,{label:(0,m.__)("Type of pagination","wp-swiper"),value:te,options:[{label:(0,m.__)("Bullets","wp-swiper"),value:"bullets"},{label:(0,m.__)("Fraction","wp-swiper"),value:"fraction"},{label:(0,m.__)("Progress Bar","wp-swiper"),value:"progressbar"}],onChange:e=>{i({pagination_type:e})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Clickable Pagination","wp-swiper"),checked:ie,onChange:()=>{i({clickable_pagination:!ie})}})})]})]}),(0,a.jsx)(f.PanelBody,{title:(0,m.__)("Direction Settings","wp-swiper"),icon:"sort",initialOpen:!1,children:(0,a.jsx)(f.SelectControl,{label:(0,m.__)("Direction","wp-swiper"),help:(0,m.__)("For vertical slider, Slides Per View should be set to 1","wp-swiper"),value:be,options:[{label:(0,m.__)("Horizontal","wp-swiper"),value:"horizontal"},{label:(0,m.__)("Vertical","wp-swiper"),value:"vertical"}],onChange:e=>{i({direction:e})}})}),(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Autoplay Behavior","wp-swiper"),icon:"controls-repeat",initialOpen:!1,children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Disable On Interaction","wp-swiper"),checked:R,help:(0,m.__)("Set to false and autoplay will not be disabled after user interactions (swipes), it will be restarted every time after interaction","wp-swiper"),onChange:()=>{i({disableOnInteraction:!R})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Pause On Mouse Enter","wp-swiper"),checked:A,help:(0,m.__)("When enabled autoplay will be paused on pointer (mouse) enter over Swiper container.","wp-swiper"),onChange:()=>{i({pauseOnMouseEnter:!A})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Reverse Direction","wp-swiper"),checked:T,help:(0,m.__)("Enables autoplay in reverse direction","wp-swiper"),onChange:()=>{i({reverseDirection:!T})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Stop On Last Slide","wp-swiper"),checked:V,help:(0,m.__)("Enable this parameter and autoplay will be stopped when it reaches last slide (has no effect in loop mode)","wp-swiper"),onChange:()=>{i({stopOnLastSlide:!V})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Wait For Transition","wp-swiper"),checked:E,help:(0,m.__)("When enabled autoplay will wait for wrapper transition to continue. Can be disabled in case of using Virtual Translate when your slider may not have transition","wp-swiper"),onChange:()=>{i({waitForTransition:!E})}})})]}),(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Advanced Features","wp-swiper"),icon:"admin-generic",initialOpen:!1,children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.SelectControl,{label:(0,m.__)("Effect (Under Construction)","wp-swiper"),value:z,options:[{label:(0,m.__)("Slide","wp-swiper"),value:"slide"},{label:(0,m.__)("Fade","wp-swiper"),value:"fade"},{label:(0,m.__)("Cube","wp-swiper"),value:"cube"},{label:(0,m.__)("Coverflow","wp-swiper"),value:"coverflow"},{label:(0,m.__)("Flip","wp-swiper"),value:"flip"}],onChange:e=>{i({effect:e})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Mouse Wheel","wp-swiper"),help:(0,m.__)("Enables navigation through slides using mouse wheel.","wp-swiper"),checked:Q,onChange:()=>{i({mousewheel:!Q})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Release On Edges","wp-swiper"),help:(0,m.__)("Set to true and swiper will release mousewheel event and allow page scrolling when swiper is on edge positions (in the beginning or in the end) NOTE: Mouse Wheel must be set to true for this to work.","wp-swiper"),checked:ee,onChange:()=>{i({releaseOnEdges:!ee})}})})]}),(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Free Mode","wp-swiper"),icon:"controls-play",initialOpen:!1,children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Enable Free Mode","wp-swiper"),help:(0,m.__)("Whether the free mode is enabled. Slide will continue moving for a while after you release it.","wp-swiper"),checked:oe,onChange:()=>{oe&&i({freeModeSticky:!1}),i({freeMode:!oe})}})}),oe&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.RangeControl,{label:(0,m.__)("Minimum Velocity","wp-swiper"),help:(0,m.__)("Minimum touchmove-velocity required to trigger free mode momentum","wp-swiper"),value:ae,onChange:e=>{i({freeModeMinimumVelocity:e})},min:0,max:1,step:.01})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Momentum","wp-swiper"),help:(0,m.__)("If enabled, then slide will keep moving for a while after you release it","wp-swiper"),checked:le,onChange:()=>{i({freeModeMomentum:!le})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Momentum Bounce","wp-swiper"),help:(0,m.__)("Set to false if you want to disable momentum bounce in free mode","wp-swiper"),checked:ne,onChange:()=>{i({freeModeMomentumBounce:!ne})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.RangeControl,{label:(0,m.__)("Momentum Bounce Ratio","wp-swiper"),help:(0,m.__)("Higher value produces larger momentum bounce effect","wp-swiper"),value:re,onChange:e=>{i({freeModeMomentumBounceRatio:e})},min:0,max:10,step:.1})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.RangeControl,{label:(0,m.__)("Momentum Ratio","wp-swiper"),help:(0,m.__)("Higher value produces larger momentum distance after you release slider","wp-swiper"),value:de,onChange:e=>{i({freeModeMomentumRatio:e})},min:0,max:10,step:.1})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.RangeControl,{label:(0,m.__)("Momentum Velocity Ratio","wp-swiper"),help:(0,m.__)("Higher value produces larger momentum velocity after you release slider","wp-swiper"),value:pe,onChange:e=>{i({freeModeMomentumVelocityRatio:e})},min:0,max:10,step:.1})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Sticky","wp-swiper"),help:(0,m.__)("Set to enabled to enable snap to slides positions in free mode","wp-swiper"),checked:ce,onChange:()=>{i({freeModeSticky:!ce})}})})]})]}),(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Responsive Breakpoints","wp-swiper"),icon:"smartphone",initialOpen:!1,children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextareaControl,{label:(0,m.__)("Responsive breakpoints (JSON Object)","wp-swiper"),help:(0,m.__)("Allows to set different parameter for different responsive breakpoints (screen sizes). Not all parameters can be changed in breakpoints, only those which are not required different layout and logic, like slidesPerView, slidesPerGroup, spaceBetween, grid.rows. Such parameters like loop and effect won't work","wp-swiper"),value:se,onChange:e=>{i({breakpoints:e})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsxs)("p",{children:[(0,m.__)("Example:","wp-swiper")," ",'{"720":{"slidesPerView":2}}'," - ",(0,m.__)("Notice the double quotes","wp-swiper")]})})]}),(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Thumbnails","wp-swiper"),icon:"images-alt2",initialOpen:!1,children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Thumbs","wp-swiper"),help:(0,m.__)("Enables thumbs to be used as pagination.","wp-swiper"),checked:ue,onChange:()=>{i({thumbs:!ue})}})}),ue&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextControl,{label:(0,m.__)("Space Between","wp-swiper"),help:(0,m.__)("Distance between slides in px.","wp-swiper"),value:me,onChange:e=>{i({thumbsSpaceBetween:parseInt(e)})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.TextControl,{label:(0,m.__)("Thumbs per view","wp-swiper"),help:(0,m.__)("Number of slides per view (slides visible at the same time on slider's container). Can be a number or auto","wp-swiper"),value:we,onChange:e=>{i({thumbsSlidesPerView:parseInt(e)})}})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.__experimentalAlignmentMatrixControl,{disableAlignment:["center"],value:Me,onChange:e=>Be(e)})})]})]}),(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Developer Tools","wp-swiper"),icon:"admin-tools",initialOpen:!1,children:[(0,a.jsx)(f.ToggleControl,{label:(0,m.__)("Debug","wp-swiper"),help:(0,m.__)("Show (console.log) config JSON object for each slider","wp-swiper"),checked:fe,onChange:()=>{i({debug:!fe})}}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.Button,{onClick:()=>{let e=1;k.forEach(t=>{t.slug=`slide-${e}`,e++}),i({tabsData:k}),v(r?.innerBlocks||[])},className:"button",children:(0,m.__)("Fix Slide Slugs","wp-swiper")})}),(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)("p",{style:{marginTop:"calc(8px)",fontSize:"12px",fontStyle:"normal",color:"rgb(117, 117, 117)",marginBottom:"revert"},children:(0,m.__)("On rare occasions, if the slide slugs become out of sync with the slide data stored in the parent block, you might notice all slide contents appearing under a single tab. Clicking this button could help resolve the issue. This action iterates over each slide and resets the slugs in ascending order (e.g., slide-1, slide-2, etc.), ensuring that each tab properly corresponds to its respective slide.","wp-swiper")})}),(0,a.jsx)(M,{attributes:t,setAttributes:i})]})]}),(0,a.jsx)("div",{...n,className:s()(n.className,l),"data-tab-active":y,children:(0,a.jsxs)("div",{className:"wb-tabs-buttons-wrapper",children:[(0,a.jsxs)("div",{className:s()("wb-tabs-buttons",`wb-tabs-buttons-align-${j}`),children:[k.map((e,t)=>{const{slug:o}=e,l=y===o;return(0,a.jsxs)("div",{className:s()("wb-tabs-buttons-item",l?"wb-tabs-buttons-item-active":""),onClick:()=>i({tabActive:o}),children:[(0,a.jsxs)("h4",{children:[(0,m.__)("Slide","wp-swiper")," ",Ve++]}),(0,a.jsx)(x,{show:d,tooltipText:(0,m.__)("Remove slide?","wp-swiper"),onRemove:()=>{Ae(t)}})]},`tab_button_${e.slug}`)}),d?(0,a.jsx)(f.Tooltip,{text:(0,m.__)("Add Slide","wp-swiper"),children:(0,a.jsx)(f.Button,{icon:"insert",onClick:()=>{const t=k.length+1,s=(0,g.createBlock)("da/wp-swiper-slide",{slug:`slide-${t}`}),o=[...k,{clientId:s.clientId,slug:`slide-${t}`,slideImg:"",thumbImg:""}],a=[...b(e),s];u(e,a,!1),i({tabsData:o})}})}):""]}),(0,a.jsx)("div",{className:"wp-swiper__slide-content",children:(0,a.jsx)(o.InnerBlocks,{template:P,templateLock:!1,allowedBlocks:["da/wp-swiper-slide"]})}),(0,a.jsxs)("div",{className:s()("wp-swiper__drop-zone-wrapper",{"is-dragging-over":Oe,"is-uploading":Ne}),children:[(0,a.jsx)(f.DropZone,{onFilesDrop:async t=>{if(!t||0===t.length)return;const s=Array.from(t).filter(e=>e.type.startsWith("image/"));if(0!==s.length){Re(!0),Ie(!1);try{const t=1===k.length&&!k[0].slideImg&&r?.innerBlocks?.[0]&&!r.innerBlocks[0].attributes.slideImg;let o=0,a=[...k],l=[...b(e)];if(t&&s.length>0){const e=s[0],t=await S(e),i=t.source_url||t.media_details?.sizes?.full?.source_url||"",n=t.media_details?.sizes?.thumbnail?.source_url||t.media_details?.sizes?.medium?.source_url||i,r=l[0],d=(0,g.createBlock)("da/wp-swiper-slide",{...r.attributes,slug:"slide-1",slideImg:i,slideImgId:t.id,thumbImg:n},r.innerBlocks);l[0]=d,a[0]={clientId:d.clientId,slug:"slide-1",slideImg:i,thumbImg:n},o=1}for(let e=o;e<s.length;e++){const t=s[e],i=await S(t),o=i.source_url||i.media_details?.sizes?.full?.source_url||"",n=i.media_details?.sizes?.thumbnail?.source_url||i.media_details?.sizes?.medium?.source_url||o,r=a.length+1,d=(0,g.createBlock)("da/wp-swiper-slide",{slug:`slide-${r}`,slideImg:o,slideImgId:i.id,thumbImg:n});a=[...a,{clientId:d.clientId,slug:`slide-${r}`,slideImg:o,thumbImg:n}],l=[...l,d]}l.length>0&&(u(e,l,!1),i({tabsData:a,tabActive:1===o?"slide-1":`slide-${a.length}`}))}catch(e){console.error("Error uploading images:",e)}finally{Re(!1)}}},onDragEnter:()=>Ie(!0),onDragLeave:()=>Ie(!1)}),(0,a.jsx)("div",{className:"wp-swiper__drop-zone-content",children:Ne?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("svg",{className:"wp-swiper__drop-zone-spinner",width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:[(0,a.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z",opacity:"0.3"}),(0,a.jsx)("path",{d:"M12 2v4c3.31 0 6 2.69 6 6h4c0-5.52-4.48-10-10-10z",children:(0,a.jsx)("animateTransform",{attributeName:"transform",attributeType:"XML",type:"rotate",from:"0 12 12",to:"360 12 12",dur:"1s",repeatCount:"indefinite"})})]}),(0,a.jsx)("p",{children:(0,m.__)("Uploading images...","wp-swiper")})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("svg",{width:"48",height:"48",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",children:(0,a.jsx)("path",{d:"M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"})}),(0,a.jsx)("p",{children:(0,m.__)("Drop images here to create slides","wp-swiper")})]})})]})]})}),(0,a.jsx)("style",{children:`\n\t\t\t\t\t\t[data-block="${e}"] [data-tab] {\n\t\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t[data-block="${e}"] [data-tab="${null!=y?y:"slide-1"}"] {\n\t\t\t\t\t\t\tdisplay: flex !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t`})]})},save:function(e){let{className:t}=e.attributes;const{align:i,overlayImg:l,overlayImgOpacity:n,slidesPerView:r,slidesPerGroup:d,slidesPerGroupAuto:p,slidesPerGroupSkip:c,spaceBetween:u,autoSlideWidth:w,autoplay:m,disableOnInteraction:g,pauseOnMouseEnter:h,reverseDirection:f,stopOnLastSlide:b,waitForTransition:v,delay:y,speed:x,loop:_,loopAddBlankSlides:j,loopAdditionalSlides:k,effect:C,navigation:P,pagination:S,mousewheel:M,releaseOnEdges:B,pagination_type:O,clickable_pagination:I,breakpoints:N,thumbs:R,thumbsSpaceBetween:A,thumbsSlidesPerView:T,autoHeight:V,sliderHeight:E,freeMode:D,freeModeMinimumVelocity:H,freeModeMomentum:F,freeModeMomentumBounce:G,freeModeMomentumBounceRatio:$,freeModeMomentumRatio:z,freeModeMomentumVelocityRatio:L,freeModeSticky:W,debug:J,direction:q,tabsData:U,previousIcon:Z,nextIcon:X,slidesOffsetBefore:Y,slidesOffsetAfter:K,overflowVisible:Q,navigationColor:ee,paginationColor:te}=e.attributes;t=s()(t,"wp-swiper"),i&&(t=s()(t,`align${i}`));const ie={};ee&&(ie["--wp-swiper-navigation-color"]=ee),te&&(ie["--wp-swiper-pagination-color"]=te);const se=o.useBlockProps.save({className:t,style:ie}),oe=(o.useInnerBlocksProps,l?{backgroundImage:`url(${l})`}:{});n&&(oe.opacity=n);let ae={"data-thumbs":{}},le={slidesPerView:"auto"===r?"auto":parseInt(r,10),slidesPerGroup:d,slidesPerGroupAuto:p,slidesPerGroupSkip:c,navigation:P,pagination:{},delay:y,speed:x,loop:_,direction:q,slidesOffsetBefore:Y,slidesOffsetAfter:K,autoHeight:V,spaceBetween:u,releaseOnEdges:B};w&&(le.autoSlideWidth=!0),M&&B&&(le.mousewheel={releaseOnEdges:"true"===B}),_&&(le.loopAddBlankSlides=j,le.loopAdditionalSlides=k),C&&(le.effect=C,"fade"===C&&(le.fadeEffect={crossFade:!0})),m&&(le.autoplay=!0,null!=y&&(le.autoplay={delay:Number(y)}),g&&(le.autoplay||(le.autoplay={}),le.autoplay.disableOnInteraction=!0),h&&(le.autoplay||(le.autoplay={}),le.autoplay.pauseOnMouseEnter=!0),f&&(le.autoplay||(le.autoplay={}),le.autoplay.reverseDirection=!0),b&&(le.autoplay||(le.autoplay={}),le.autoplay.stopOnLastSlide=!0),null!=v&&(le.autoplay||(le.autoplay={}),le.autoplay.waitForTransition=v)),D&&(le.freeMode={enabled:!0,minimumVelocity:H,momentum:F,momentumBounce:G,momentumBounceRatio:$,momentumRatio:z,momentumVelocityRatio:L,sticky:W}),le.pagination.type="bullets"!=O?O:"bullets",I&&(le.pagination.clickable=!!I||""),void 0!==N&&""!=N&&(le.breakpoints=N),R&&(ae["data-thumbs"]=JSON.stringify({spaceBetween:A,slidesPerView:T,freeMode:!0,watchSlidesProgress:!0,navigation:!1}));const ne=(void 0!==U?U:[]).map((e,t)=>(e.thumbImg||e.slideImg)&&(0,a.jsx)("div",{className:"swiper-slide wp-swiper__thumb","data-thumb":t+1,children:(0,a.jsx)("img",{src:e.thumbImg||e.slideImg,alt:`Thumbnail ${t+1}`})},t)),re=s()("swiper-container","swiper",{"swiper-overflow-visible":Q}),de={};return E&&!V&&(de.height=E),(0,a.jsxs)("div",{...se,children:[function(e,t){if(void 0!==e)return(0,a.jsx)("div",{className:"wp-swiper__overlay-img",style:t})}(l,oe),(0,a.jsxs)("div",{className:"wp-swiper__wrapper",children:[(0,a.jsx)("div",{className:re,style:Object.keys(de).length>0?de:void 0,...J?{"data-debug":!0}:{},"data-swiper":JSON.stringify(le),...ae,children:(0,a.jsx)("div",{className:"swiper-wrapper",children:(0,a.jsx)(o.InnerBlocks.Content,{})})}),function({attributes:e}){const{navigation:t}=e;if(t)return(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("div",{className:"wp_swiper__navigation",children:(0,a.jsxs)("div",{className:"wp_swiper__navigation-container",children:[(0,a.jsx)("div",{className:"swiper-button-prev "+(Z?"wp_swiper__button-prev":""),children:Z?(0,a.jsx)("img",{src:Z,alt:"Previous"}):null}),(0,a.jsx)("div",{className:"swiper-button-next "+(X?"wp_swiper__button-next":""),children:X?(0,a.jsx)("img",{src:X,alt:"Previous"}):null})]})})})}(e),function({attributes:e}){const{pagination:t}=e;if(t)return(0,a.jsx)("div",{className:"swiper-pagination"})}(e)]}),function({attributes:e}){let{className:t}=e;if(t=t?t.toString():"",-1!==t.indexOf("is-style-testimonials"))return(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("div",{className:"wp-swiper__quotes",children:(0,a.jsx)("svg",{"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"quote-right",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",class:"svg-inline--fa fa-quote-right fa-w-16 fa-5x",children:(0,a.jsx)("path",{fill:"currentColor",d:"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z",class:""})})})})}(e),R&&(0,a.jsx)("div",{className:"wp-swiper__thumbs",children:(0,a.jsx)("div",{className:"wp-swiper__wrapper",children:(0,a.jsx)("div",{className:"swiper-container",children:(0,a.jsx)("div",{className:"swiper-wrapper",children:ne})})})})]})},deprecated:u};I.attributes={...I.attributes,freeMode:{type:"boolean",default:!1},freeModeMinimumVelocity:{type:"number",default:.02},freeModeMomentum:{type:"boolean",default:!0},freeModeMomentumBounce:{type:"boolean",default:!0},freeModeMomentumBounceRatio:{type:"number",default:1},freeModeMomentumRatio:{type:"number",default:1},freeModeMomentumVelocityRatio:{type:"number",default:1},freeModeSticky:{type:"boolean",default:!1},mousewheel:{type:"boolean",default:!1},releaseOnEdges:{type:"boolean",default:!1},pagination_type:{type:"string",default:"bullets"}};const N=JSON.parse('{"apiVersion":3,"name":"da/wp-swiper-slide","icon":{"src":"<svg viewBox=\'0 0 24 24\' xmlns=\'http://www.w3.org/2000/svg\'><rect x=\'3\' y=\'5\' width=\'18\' height=\'14\' rx=\'2\' fill=\'none\' stroke=\'currentColor\' stroke-width=\'2\'/><circle cx=\'8\' cy=\'10\' r=\'1.5\' fill=\'currentColor\'/><path d=\'M3 15 L8 11 L12 14 L16 10 L21 14 L21 17 C21 18.1 20.1 19 19 19 L5 19 C3.9 19 3 18.1 3 17 Z\' fill=\'currentColor\' opacity=\'0.4\'/></svg>"},"parent":["da/wp-swiper-slides"],"category":"media","supports":{"html":false,"className":false,"anchor":true,"inserter":false,"reusable":false},"attributes":{"align":{"type":"string","default":"undefined"},"slideImgId":{"type":"number"},"slideImg":{"type":"string"},"thumbImg":{"type":"string"},"slug":{"type":"string"},"contentValign":{"type":"string","default":""},"contentHalign":{"type":"string","default":""},"contentVHalign":{"type":"string"},"focalPoint":{"type":"object","default":{"x":0.5,"y":0.5}},"overlayColor":{"type":"object","default":{"rgb":{"r":0,"g":0,"b":0,"a":0}}},"containerWidth":{"type":"number"}}}'),R=window.wp.keycodes,A=function(e){const{label:t=(0,m.__)("Change matrix alignment"),onChange:i="undefined",value:s="center",isDisabled:o}=e,l=(0,a.jsx)(f.__experimentalAlignmentMatrixControl.Icon,{value:s}),n="block-editor-block-alignment-matrix-control",r=`${n}__popover`;return(0,a.jsx)(f.Dropdown,{placement:"bottom right",className:n,popoverProps:{className:r,isAlternate:!0},renderToggle:({onToggle:e,isOpen:i})=>(0,a.jsx)(f.ToolbarButton,{onClick:e,"aria-haspopup":"true","aria-expanded":i,onKeyDown:t=>{i||t.keyCode!==R.DOWN||(t.preventDefault(),t.stopPropagation(),e())},label:t,icon:l,showTooltip:!0,disabled:o}),renderContent:()=>(0,a.jsx)(f.__experimentalAlignmentMatrixControl,{hasFocusBorder:!1,onChange:i,value:s})})},T=window.React,{applyFilters:V}=wp.hooks,{Component:E}=wp.element,{InnerBlocks:D}=wp.blockEditor,{name:H}=N,F=class extends E{render(){const{overlayColor:e,slug:t,slideImg:i,contentVHalign:o,containerWidth:l}=this.props.attributes;let n="wp-swiper__slide swiper-slide";""!=o&&void 0!==o&&(n=s()(n,k(o)));const r=i?{backgroundImage:`url(${i})`,backgroundSize:"cover"}:{},d=l?{maxWidth:`${l}%`}:null,p=e?{backgroundColor:`rgba(${e.rgb.r}, ${e.rgb.g}, ${e.rgb.b}, ${e.rgb.a})`}:{};return(0,a.jsxs)("div",{className:n,"data-tab":t,style:r,children:[(0,a.jsx)("div",{className:"wp-swiper__overlay-color",style:p}),(0,a.jsx)("div",{className:"wp-swiper__slide-content",style:d,children:(0,a.jsx)(D.Content,{})})]})}},{focalPoint:G,...$}=N.attributes,z=[{supports:N.supports,attributes:{...$},save:F,migrate:e=>({...e,focalPoint:{x:.5,y:.5}})},{supports:N.supports,attributes:{...N.attributes},save:F}],{__:L}=wp.i18n,{name:W}=N,J={...N,title:L("Slide","@@text_domain"),description:L("A single slide within a wp-swiper block.","@@text_domain"),icon:(0,a.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,a.jsx)("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2",stroke:"currentColor",fill:"transparent","stroke-width":"1.5"}),(0,a.jsx)("circle",{cx:"8",cy:"10",r:"1.5",fill:"currentColor"}),(0,a.jsx)("path",{d:"M3 15 L8 11 L12 14 L16 10 L21 14 L21 17 C21 18.1 20.1 19 19 19 L5 19 C3.9 19 3 18.1 3 17 Z",fill:"currentColor",opacity:"0.4"})]}),getEditWrapperProps:e=>({"data-tab":e.slug}),edit:function({attributes:e,setAttributes:t,clientId:i}){const{slideImg:l,thumbImg:n,overlayColor:r,contentVHalign:d,slug:p,focalPoint:c}=e,u=(0,h.useSelect)(e=>e(o.store).getBlockOrder(i).length>0,[i]),g=(0,w.useCallback)(e=>{const i=e?.sizes?.full?.url||e?.url;i&&t({slideImg:i})},[t]),b=(0,w.useCallback)(e=>{const i=e?.sizes?.full?.url||e?.url;i&&t({thumbImg:i})},[t]),v=(0,w.useCallback)(e=>{t({focalPoint:e})},[t]),y=(0,w.useCallback)(()=>{t({slideImg:void 0})},[t]),x=(0,w.useCallback)(()=>{t({thumbImg:void 0})},[t]),_=(0,w.useMemo)(()=>{let e=s()("wp-swiper__slide",{"has-image":Boolean(l)});return e=s()(e,k(d)),e},[l,d]),j=(0,o.useBlockProps)({className:_,"data-tab":p}),C=(0,w.useMemo)(()=>{var e,t;return l?{backgroundImage:`url(${l})`,backgroundPosition:`${100*(null!==(e=c?.x)&&void 0!==e?e:.5)}% ${100*(null!==(t=c?.y)&&void 0!==t?t:.5)}%`}:{}},[l,c]),P=(0,w.useMemo)(()=>{if(!r?.rgb)return{};const{r:e,g:t,b:i,a:s}=r.rgb;return{backgroundColor:`rgba(${e}, ${t}, ${i}, ${s})`}},[r]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.InspectorControls,{children:(0,a.jsxs)(f.PanelBody,{title:(0,m.__)("Image Settings","wp-swiper"),children:[(0,a.jsxs)(f.BaseControl,{label:(0,m.__)("Slide Image","wp-swiper"),children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(o.MediaUploadCheck,{children:(0,a.jsx)(o.MediaUpload,{value:l,onSelect:g,allowedTypes:["image"],render:({open:e})=>(0,a.jsx)(f.Button,{onClick:e,variant:"secondary",children:(0,m.__)("Select slide image","wp-swiper")})})})}),l&&(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.FocalPointPicker,{url:l,value:c,onDragStart:v,onDrag:v,onChange:v})}),l&&(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.Button,{variant:"secondary",size:"small",className:"block-library-cover__reset-button",onClick:y,children:(0,m.__)("Clear Media","wp-swiper")})})]}),(0,a.jsxs)(f.BaseControl,{label:(0,m.__)("Thumbnail Image","wp-swiper"),children:[(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(o.MediaUploadCheck,{children:(0,a.jsx)(o.MediaUpload,{value:n,onSelect:b,allowedTypes:["image"],render:({open:e})=>(0,a.jsx)(f.Button,{onClick:e,variant:"secondary",children:(0,m.__)("Select thumb image","wp-swiper")})})})}),n&&(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.FocalPointPicker,{url:n,value:c,onDragStart:v,onDrag:v,onChange:v})}),n&&(0,a.jsx)(f.PanelRow,{children:(0,a.jsx)(f.Button,{variant:"secondary",size:"small",className:"block-library-cover__reset-button",onClick:x,children:(0,m.__)("Clear Media","wp-swiper")})})]})]})}),(0,a.jsx)(o.BlockControls,{group:"block",children:(0,a.jsx)(A,{label:(0,m.__)("Change content position","wp-swiper"),value:d,onChange:e=>t({contentVHalign:e})})}),(0,a.jsxs)("div",{...j,children:[l&&(0,a.jsx)("div",{className:"wp-swiper__slide-overlay wp-swiper__slide-overlay--image",style:C}),r?.rgb?.a>0&&(0,a.jsx)("div",{className:"wp-swiper__slide-overlay wp-swiper__slide-overlay--color",style:P}),(0,a.jsx)(o.InnerBlocks,{renderAppender:u?void 0:o.InnerBlocks.ButtonBlockAppender})]})]})},save:function(e){const{attributes:t}=e,{overlayColor:i,slug:l,slideImg:n,contentVHalign:r,containerWidth:d,focalPoint:p}=t;let c="wp-swiper__slide swiper-slide";""!=r&&void 0!==r&&(c=s()(c,k(r)));const u=n?{backgroundImage:`url(${n})`,backgroundSize:"cover",backgroundPosition:`${100*p.x}% ${100*p.y}%`}:{},w=d?{maxWidth:`${d}%`}:null,m=i?{backgroundColor:`rgba(${i.rgb.r}, ${i.rgb.g}, ${i.rgb.b}, ${i.rgb.a})`}:null,g=o.useBlockProps.save();return(0,T.createElement)("div",{...g,key:l,"data-tab":l,className:c,style:u},(0,a.jsx)("div",{className:"wp-swiper__overlay-color",...m&&{style:m}}),(0,a.jsx)("div",{className:"wp-swiper__slide-content",style:w,children:(0,a.jsx)(o.InnerBlocks.Content,{})}))},deprecated:z},{registerBlockType:q,registerBlockStyle:U}=wp.blocks;q(O,I),q(W,J),U(O,[{name:"testimonials",label:"Testimonials"},{name:"thumbnails-bottom-right",label:"Thumbnails Bottom Right"},{name:"overlayed-text-right",label:"Overlayed Text Right"}])})()})(); -
wp-swiper/trunk/build/index.css
r3428937 r3446823 1 /*!***********************************************************************************************************************************************************************************************************************************************!*\ 2 !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/styles/editor.scss ***! 3 \***********************************************************************************************************************************************************************************************************************************************/ 4 .wp-swiper__slides .wb-tabs-buttons { 5 display: flex; 6 flex-wrap: wrap; 7 margin-bottom: 20px; 8 border-bottom: 1px solid #dee2e6; 9 } 10 .wp-swiper__slides .wp-swiper__slide-content { 11 display: flex; 12 flex-direction: column; 13 } 14 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide { 15 display: flex; 16 flex-grow: 1; 17 position: relative; 18 padding: 10px; 19 border: 1px solid gray; 20 min-height: 430px; 21 align-items: center; 22 justify-content: center; 23 } 24 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .block-editor-inner-blocks { 25 flex-grow: 1; 26 } 27 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__content { 28 z-index: 5; 29 } 30 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__slide-overlay { 31 position: absolute; 32 left: 0; 33 top: 0; 34 right: 0; 35 bottom: 0; 36 } 37 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__slide-overlay--image { 38 background-size: cover; 39 background-repeat: no-repeat; 40 opacity: 0.2; 41 } 42 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-left { 43 justify-content: flex-start; 44 align-items: flex-start; 45 } 46 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-left { 47 align-items: center; 48 justify-content: flex-start; 49 } 50 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-left { 51 align-items: flex-end; 52 justify-content: flex-start; 53 } 54 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-center { 55 align-items: flex-start; 56 justify-content: center; 57 } 58 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-center { 59 align-items: center; 60 } 61 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-center { 62 align-items: flex-end; 63 justify-content: center; 64 } 65 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-right { 66 align-items: flex-start; 67 justify-content: flex-end; 68 } 69 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-right { 70 justify-content: flex-end; 71 align-items: center; 72 } 73 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-right { 74 align-items: flex-end; 75 justify-content: flex-end; 76 } 77 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-left .block-editor-block-list__layout, .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-center .block-editor-block-list__layout, .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-right .block-editor-block-list__layout { 78 display: flex; 79 flex-direction: column; 80 } 81 .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-left .block-editor-block-list__layout .wp-block-spacer, .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-center .block-editor-block-list__layout .wp-block-spacer, .wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-right .block-editor-block-list__layout .wp-block-spacer { 82 margin-left: 0; 83 margin-right: 0; 84 } 85 .wp-swiper__slide-content > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-editor-block-list__block > .block-editor-block-list__block-edit { 86 margin-top: 12px; 87 } 88 .wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-start { 89 justify-content: flex-start; 90 } 91 .wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-center { 92 justify-content: center; 93 } 94 .wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-end { 95 justify-content: flex-end; 96 } 97 .wp-swiper__slides .wb-tabs-buttons .edit-post-visual-editor, 98 .wp-swiper__slides .wb-tabs-buttons .edit-post-visual-editor p, 99 .wp-swiper__slides .wb-tabs-buttons .editor-rich-text__tinymce.mce-content-body { 100 line-height: inherit; 101 } 102 .wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item { 103 position: relative; 104 flex-basis: 20%; 105 text-align: center; 106 margin-bottom: -1px; 107 cursor: pointer; 108 background-color: transparent; 109 border: 1px solid gray; 110 border-top-left-radius: 3px; 111 border-top-right-radius: 3px; 112 box-shadow: none; 113 opacity: 0.6; 114 transition: 0.15s border-color, 0.15s background-color, 0.15s opacity; 115 will-change: border-color, background-color, opacity; 116 box-sizing: border-box; 117 } 118 .wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item h4 { 119 color: #191e23; 120 margin-top: 10px; 121 margin-bottom: 10px; 122 font-size: 16px; 123 } 124 .wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item:hover { 125 border-color: #dee2e6; 126 opacity: 1; 127 } 128 .wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item.wb-tabs-buttons-item-active { 129 background-color: rgba(180, 180, 180, 0.5); 130 border-color: #dee2e6; 131 border-bottom-color: #fff; 132 opacity: 1; 133 } 134 .wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item:not(:hover) > .wb-component-remove-button { 135 opacity: 0; 136 } 137 .wp-swiper__slides .wp-swiper__slide-content [data-tab] { 138 display: none; 139 } 140 .wp-swiper__slides .wb-tabs-buttons { 141 margin-bottom: 0; 142 } 143 .wp-swiper__slides div[data-type="da/wp-swiper-slide"] { 144 margin-top: 0; 145 } 146 /* <remove button> */ 147 div[data-type="da/wp-swiper-slides"] button.wb-component-remove-button { 148 position: absolute; 149 align-items: center; 150 justify-content: center; 151 top: 0; 152 right: 0; 153 width: 20px; 154 height: 20px; 155 padding: 0; 156 margin-top: -10px; 157 margin-right: -10px; 158 color: #fff; 159 background-color: #4f5969; 160 border-radius: 50%; 161 opacity: 0.7; 162 transition: 0.2s opacity, 0.2s background-color; 163 } 164 .wb-component-remove-button:hover { 165 background-color: #5c39a7; 166 opacity: 1; 167 } 168 .wb-component-remove-button svg { 169 width: auto; 170 height: 0.8em; 171 } 172 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep, 173 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope { 174 padding: 0; 175 margin-left: 5px; 176 } 177 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:hover, 178 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:focus, 179 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:hover, 180 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:focus { 181 text-decoration: underline; 182 } 183 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep, 184 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:focus, 185 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope, 186 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:focus { 187 background: none; 188 box-shadow: none; 189 } 190 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep, 191 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:focus { 192 color: #ffffff; 193 } 194 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope, 195 .wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:focus { 196 color: #999; 197 } 198 .wb-component-remove-button-confirm.components-popover::before { 199 border-color: transparent; 200 } 201 .wb-component-remove-button-confirm.components-popover.is-top::after { 202 border-top-color: #191e23; 203 } 204 .wb-component-remove-button-confirm.components-popover.is-bottom::after { 205 border-bottom-color: #191e23; 206 } 207 .wb-component-remove-button-confirm .components-popover__content { 208 padding: 4px 12px; 209 color: #ffffff; 210 white-space: nowrap; 211 background: #191e23; 212 border-width: 0; 213 } 214 .wb-component-remove-button-confirm:not(.is-mobile) .components-popover__content { 215 min-width: 0; 216 } 217 .wb-component-remove-button-confirm .components-tooltip__shortcut { 218 display: block; 219 color: #7e8993; 220 text-align: center; 221 } 222 /* </remove button> */ 223 224 /*# sourceMappingURL=index.css.map*/ 1 :root{--wpswiper-primary:var(--wp-admin-theme-color);--wpswiper-primary-hover:var(--wp-admin-theme-color-darker-10);--wpswiper-primary-light:#eef1fd;--wpswiper-border:#e0e0e0;--wpswiper-border-light:#f0f0f0;--wpswiper-bg:#fff;--wpswiper-bg-subtle:#f8f9fa;--wpswiper-bg-hover:#f0f2f5;--wpswiper-text:#1e1e1e;--wpswiper-text-muted:#757575;--wpswiper-shadow-sm:0 1px 3px rgba(0,0,0,.08);--wpswiper-shadow:0 2px 8px rgba(0,0,0,.08);--wpswiper-shadow-lg:0 4px 16px rgba(0,0,0,.12);--wpswiper-radius:8px;--wpswiper-radius-sm:4px;--wpswiper-radius-lg:12px;--wpswiper-transition:0.2s cubic-bezier(0.4,0,0.2,1)}.wp-swiper__slides{background:var(--wpswiper-bg);border-radius:var(--wpswiper-radius-lg);box-shadow:var(--wpswiper-shadow);overflow:hidden}.wp-swiper__slides .wb-tabs-buttons-wrapper{background:var(--wpswiper-bg-subtle);border-bottom:1px solid var(--wpswiper-border);padding:16px 16px 0}.wp-swiper__slides .wb-tabs-buttons{border-bottom:none;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:0;padding-bottom:16px}.wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-start{justify-content:flex-start}.wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-center{justify-content:center}.wp-swiper__slides .wb-tabs-buttons.wb-tabs-buttons-align-end{justify-content:flex-end}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item{align-items:center;background:var(--wpswiper-bg);border:1px solid var(--wpswiper-border);border-radius:var(--wpswiper-radius);box-shadow:var(--wpswiper-shadow-sm);cursor:pointer;display:flex;justify-content:center;min-width:100px;opacity:1;padding:10px 16px;position:relative;transition:all var(--wpswiper-transition)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item h4{color:var(--wpswiper-text-muted);font-size:13px;font-weight:500;margin:0;transition:color var(--wpswiper-transition)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item:hover{background:var(--wpswiper-bg);border-color:var(--wpswiper-primary);box-shadow:var(--wpswiper-shadow);transform:translateY(-1px)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item:hover h4{color:var(--wpswiper-primary)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item.wb-tabs-buttons-item-active{background:var(--wpswiper-primary);border-color:var(--wpswiper-primary);box-shadow:var(--wpswiper-shadow)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item.wb-tabs-buttons-item-active h4{color:#fff;font-weight:600}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item.wb-tabs-buttons-item-active:hover{background:var(--wpswiper-primary-hover);border-color:var(--wpswiper-primary-hover);transform:translateY(-1px)}.wp-swiper__slides .wb-tabs-buttons .wb-tabs-buttons-item:not(:hover)>.wb-component-remove-button{opacity:0}.wp-swiper__slides .wb-tabs-buttons>.components-button{align-items:center;background:var(--wpswiper-primary-light);border:2px dashed var(--wpswiper-primary);border-radius:var(--wpswiper-radius);color:var(--wpswiper-primary);display:flex;height:40px;justify-content:center;min-width:40px;padding:0;transition:all var(--wpswiper-transition)}.wp-swiper__slides .wb-tabs-buttons>.components-button:hover{background:var(--wpswiper-primary);border-style:solid;color:#fff;transform:translateY(-1px)}.wp-swiper__slides .wb-tabs-buttons>.components-button svg{color:#fff}.wp-swiper__slides .wp-swiper__slide-content{background:var(--wpswiper-bg);display:flex;flex-direction:column;padding:16px}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide{background:var(--wpswiper-bg-subtle);border:1px solid var(--wpswiper-border);border-radius:var(--wpswiper-radius);display:flex;flex-grow:1;min-height:400px;padding:24px;position:relative;transition:all var(--wpswiper-transition)}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide:hover{border-color:var(--wpswiper-primary);box-shadow:0 0 0 1px var(--wpswiper-primary)}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .block-editor-inner-blocks{display:flex;flex-direction:column;flex-grow:1;justify-content:center;z-index:5}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__content{z-index:5}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__slide-overlay{border-radius:inherit;inset:0;pointer-events:none;position:absolute}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__slide-overlay--image{background-repeat:no-repeat;background-size:cover;opacity:.25}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide .wp-swiper__slide-overlay--color{z-index:1}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-left{align-items:center;justify-content:flex-start}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-center{align-items:flex-start;justify-content:center}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-center{align-items:center}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-center-right{align-items:center;justify-content:flex-end}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-center .block-editor-block-list__layout,.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-left .block-editor-block-list__layout,.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-right .block-editor-block-list__layout{display:flex;flex-direction:column}.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-center .block-editor-block-list__layout .wp-block-spacer,.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-left .block-editor-block-list__layout .wp-block-spacer,.wp-swiper__slides .wp-swiper__slide-content .wp-swiper__slide.halign-right .block-editor-block-list__layout .wp-block-spacer{margin-left:0;margin-right:0}.wp-swiper__slides .wp-swiper__slide-content [data-tab]{display:none}.wp-swiper__slide-content>.block-editor-inner-blocks>.block-editor-block-list__layout>.block-editor-block-list__block>.block-editor-block-list__block-edit{margin-top:12px}.wp-swiper__slides div[data-type="da/wp-swiper-slide"]{margin-top:0}div[data-type="da/wp-swiper-slides"] button.wb-component-remove-button{align-items:center;background:linear-gradient(135deg,#ef4444,#dc2626);border:2px solid #fff;border-radius:50%;box-shadow:var(--wpswiper-shadow);color:#fff;display:flex;height:22px;justify-content:center;opacity:0;padding:0;position:absolute;right:-6px;top:-6px;transition:all var(--wpswiper-transition);width:22px;z-index:10}div[data-type="da/wp-swiper-slides"] button.wb-component-remove-button svg{height:10px;width:10px}div[data-type="da/wp-swiper-slides"] button.wb-component-remove-button:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:var(--wpswiper-shadow-lg);transform:scale(1.1)}div[data-type="da/wp-swiper-slides"] .wb-tabs-buttons-item:hover .wb-component-remove-button{opacity:1}.wb-component-remove-button-confirm .components-popover__content{background:#1e1e1e;border:none;border-radius:var(--wpswiper-radius);box-shadow:var(--wpswiper-shadow-lg);color:#fff;padding:8px 16px;white-space:nowrap}.wb-component-remove-button-confirm:before{border-color:transparent}.wb-component-remove-button-confirm.is-top:after{border-top-color:#1e1e1e}.wb-component-remove-button-confirm.is-bottom:after{border-bottom-color:#1e1e1e}.wb-component-remove-button-confirm:not(.is-mobile) .components-popover__content{min-width:0}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep{background:none;border-radius:var(--wpswiper-radius-sm);box-shadow:none;font-weight:500;margin-left:8px;padding:4px 8px;transition:all var(--wpswiper-transition)}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:focus,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:hover,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:focus,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:hover{text-decoration:none}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep{background:#ef4444;color:#fff}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:focus,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-yep:hover{background:#dc2626}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope{color:#a0a0a0}.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:focus,.wb-component-remove-button-confirm .wb-component-remove-button-confirm-nope:hover{background:hsla(0,0%,100%,.1);color:#fff}.wb-component-remove-button-confirm .components-tooltip__shortcut{color:#7e8993;display:block;margin-top:4px;text-align:center}.wp-swiper__drop-zone-wrapper{background:var(--wpswiper-bg-subtle);border:2px dashed var(--wpswiper-border);border-radius:var(--wpswiper-radius);margin:16px;padding:32px;position:relative;transition:all var(--wpswiper-transition)}.wp-swiper__drop-zone-wrapper:hover{background:var(--wpswiper-primary-light);border-color:var(--wpswiper-primary)}.wp-swiper__drop-zone-wrapper:hover .wp-swiper__drop-zone-content{color:var(--wpswiper-primary)}.wp-swiper__drop-zone-wrapper:hover .wp-swiper__drop-zone-content .dashicons{transform:scale(1.1)}.wp-swiper__drop-zone-wrapper.is-dragging-over{background:var(--wpswiper-primary-light);border-color:var(--wpswiper-primary);border-style:solid;box-shadow:0 0 0 4px rgba(56,88,233,.15);transform:scale(1.01)}.wp-swiper__drop-zone-wrapper.is-dragging-over .wp-swiper__drop-zone-content{color:var(--wpswiper-primary)}.wp-swiper__drop-zone-wrapper.is-dragging-over .wp-swiper__drop-zone-content .dashicons{animation:wpswiper-bounce .5s ease infinite alternate}.wp-swiper__drop-zone-wrapper.is-uploading{background:var(--wpswiper-primary-light);border-color:var(--wpswiper-primary);border-style:solid;pointer-events:none}.wp-swiper__drop-zone-wrapper.is-uploading .wp-swiper__drop-zone-content{color:var(--wpswiper-primary)}.wp-swiper__drop-zone-wrapper .components-drop-zone{border-radius:inherit}.wp-swiper__drop-zone-wrapper .components-drop-zone__content{display:none}.wp-swiper__drop-zone-content{align-items:center;color:var(--wpswiper-text-muted);display:flex;flex-direction:column;justify-content:center;pointer-events:none;text-align:center}.wp-swiper__drop-zone-content .dashicons{font-size:40px;height:40px;margin-bottom:12px;transition:transform var(--wpswiper-transition);width:40px}.wp-swiper__drop-zone-content p{font-size:14px;font-weight:500;margin:0}.wp-swiper__drop-zone-spinner{animation:wpswiper-spin 1s linear infinite}@keyframes wpswiper-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes wpswiper-bounce{0%{transform:translateY(0)}to{transform:translateY(-4px)}}.wp-swiper-inspector .components-panel__body-title{font-weight:600}.wp-swiper-inspector .wp-swiper-separator{border-top:1px solid var(--wpswiper-border-light);margin:16px 0}.wp-swiper-inspector .wp-swiper-config-editor textarea{background:var(--wpswiper-bg-subtle);border:1px solid var(--wpswiper-border);border-radius:var(--wpswiper-radius-sm);font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:12px;line-height:1.5;padding:12px;resize:vertical;transition:all var(--wpswiper-transition)}.wp-swiper-inspector .wp-swiper-config-editor textarea:focus{border-color:var(--wpswiper-primary);box-shadow:0 0 0 1px var(--wpswiper-primary);outline:none}.wp-swiper-inspector .wp-swiper-config-editor textarea.is-invalid{background:#fef2f2;border-color:#ef4444}.wp-swiper-inspector .wp-swiper-helper-text{color:var(--wpswiper-text-muted);font-size:12px;line-height:1.5;margin-top:8px}.wp-swiper__slides .wb-tabs-buttons .edit-post-visual-editor,.wp-swiper__slides .wb-tabs-buttons .edit-post-visual-editor p,.wp-swiper__slides .wb-tabs-buttons .editor-rich-text__tinymce.mce-content-body{line-height:inherit} -
wp-swiper/trunk/includes/admin/class-wp-swiper-admin.php
r3431807 r3446823 83 83 } // set_options() 84 84 85 function enqueue_admin_styles() {85 public function enqueue_block_editor_styles() { 86 86 wp_enqueue_style( 87 87 $this->plugin_name . '-block-editor-style', … … 90 90 '1.0.0' 91 91 ); 92 wp_enqueue_style( 'dashicons' ); 92 93 } 93 94 -
wp-swiper/trunk/includes/core/class-wp-swiper.php
r3428984 r3446823 45 45 46 46 $this->loader->add_action('enqueue_block_editor_assets', $plugin_admin, 'register_gutenberg_block'); 47 $this->loader->add_action('enqueue_block_editor_assets', $plugin_admin, 'enqueue_admin_styles'); 48 $this->loader->add_action('admin_notices', $plugin_admin, 'display_beta_announcement_notice'); 49 $this->loader->add_action('wp_ajax_wpswiper_dismiss_beta_notice', $plugin_admin, 'dismiss_beta_notice'); 47 $this->loader->add_action('enqueue_block_editor_assets', $plugin_admin, 'enqueue_block_editor_styles'); 50 48 } 51 49 -
wp-swiper/trunk/wp-swiper.php
r3431465 r3446823 17 17 * Plugin URI: https://digitalapps.com/wp-swiper/ 18 18 * Description: Swiper JS as a Gutenberg Block. 19 * Version: 1. 3.1219 * Version: 1.4.0 20 20 * Author: Digital Apps 21 21 * Author URI: https://digitalapps.com/ … … 32 32 } 33 33 34 define( 'DAWPS_PLUGIN_VERSION', '1. 3.12' );34 define( 'DAWPS_PLUGIN_VERSION', '1.4.0' ); 35 35 define( 'DAWPS_BUNDLE_VERSION', '12.0.2' ); 36 36 define( 'DAWPS_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
Note: See TracChangeset
for help on using the changeset viewer.