1(function ($) { 2 'use strict'; 3 $('*') 4 .on('touchstart', function () { 5 $(this).trigger('hover'); 6 }) 7 .on('touchend', function () { 8 $(this).trigger('hover'); 9 }); 10 11 $(function () { 12 preFunction(); 13 $(document) 14 .on('mouseover', '.tss-isotope-button-wrapper.tooltip-active .rt-iso-button', function () { 15 var self = $(this), 16 count = self.attr('data-filter-counter'), 17 id = self.parents('.tss-wrapper').attr('id'); 18 $tooltip = 19 '<div class="tss-tooltip" id="tss-tooltip-' + 20 id + 21 '">' + 22 '<div class="tss-tooltip-content">' + 23 count + 24 '</div>' + 25 '<div class="tss-tooltip-bottom"></div>' + 26 '</div>'; 27 $('body').append($tooltip); 28 var $tooltip = $('body > .tss-tooltip'); 29 var tHeight = $tooltip.outerHeight(); 30 var tBottomHeight = $tooltip.find('.tss-tooltip-bottom').outerHeight(); 31 var tWidth = $tooltip.outerWidth(); 32 var tHolderWidth = self.outerWidth(); 33 var top = self.offset().top - (tHeight + tBottomHeight); 34 var left = self.offset().left; 35 $tooltip 36 .css({ 37 top: top + 'px', 38 left: left + 'px', 39 opacity: 1 40 }) 41 .show(); 42 if (tWidth <= tHolderWidth) { 43 var itemLeft = (tHolderWidth - tWidth) / 2; 44 left = left + itemLeft; 45 $tooltip.css('left', left + 'px'); 46 } else { 47 var itemLeft = (tWidth - tHolderWidth) / 2; 48 left = left - itemLeft; 49 if (left < 0) { 50 left = 0; 51 } 52 $tooltip.css('left', left + 'px'); 53 } 54 }) 55 .on('mouseout', '.tss-isotope-button-wrapper.tooltip-active .rt-iso-button', function () { 56 $('body > .tss-tooltip').fadeOut(300, function () { $(this).remove(); }); 57 }); 58 }); 59 60 $(window).on('load resize', function () { 61 preFunction(); 62 }); 63 64 function preFunction() { 65 overlayIconResize(); 66 } 67 68 RTInitCaroIso(); 69 70 function RTInitCaroIso() { 71 var elementInstances = []; 72 var elementThumbInstances = []; 73 74 $('.tss-wrapper').each(function (index) { 75 var container = $(this); 76 var str = $(this).attr('data-layout'); 77 if (str) { 78 var qsRegex, 79 buttonFilter, 80 Iso = container.find('.tss-isotope'), 81 caro = container.find('.tss-carousel'), 82 caroThumb = container.find('.tss-carousel-main'), 83 html_loading = 84 '<div class="rt-loading-overlay"></div><div class="rt-loading rt-ball-clip-rotate"><div></div></div>', 85 preLoader = container.find('.tss-pre-loader'); 86 if (preLoader.find('.rt-loading-overlay').length == 0) { 87 preLoader.append(html_loading); 88 } 89 90 if (caroThumb.length) { 91 var carouselOptions = RTCarouselOptions(caroThumb); 92 93 carouselOptions.responsive = { 94 0: { 95 slidesPerView: carouselOptions.mItems ? carouselOptions.mItems : 3 96 }, 97 575: { 98 slidesPerView: carouselOptions.tItems ? carouselOptions.tItems : 3 99 }, 100 991: { 101 slidesPerView: carouselOptions.items ? carouselOptions.items : 5 102 } 103 }; 104 105 RTElementThumbCarousel(container, carouselOptions, elementThumbInstances, index); 106 107 caroThumb.parents('.rt-row').removeClass('tss-pre-loader'); 108 caroThumb.parents('.rt-row').find('.rt-loading-overlay, .rt-loading').fadeOut(100); 109 110 // Updating the sliders 111 setTimeout(function () { 112 elementThumbInstances.forEach(function (sliders) { 113 sliders.forEach(function (slider) { 114 slider.update(); 115 }); 116 }); 117 }, 50); 118 } 119 120 if (caro.length) { 121 var carouselEl = { 122 container: container.find('.tss-carousel'), 123 navPrev: '.swiper-button-prev', 124 navNext: '.swiper-button-next', 125 dotsEl: '.swiper-pagination' 126 }; 127 128 var carouselOptions = RTCarouselOptions(caro); 129 130 carouselOptions.responsive = { 131 0: { 132 slidesPerView: carouselOptions.mItems ? carouselOptions.mItems : 1, 133 slidesPerGroup: carouselOptions.mItems ? carouselOptions.mItems : 1 134 }, 135 767: { 136 slidesPerView: carouselOptions.tItems ? carouselOptions.tItems : 2, 137 slidesPerGroup: carouselOptions.tItems ? carouselOptions.tItems : 2 138 },
139 991: { 140 slidesPerView: carouselOptions.items ? carouselOptions.items : 3, 141 slidesPerGroup: carouselOptions.items ? carouselOptions.items : 3 142 } 143 }; 144 145 RTElementCarousel(carouselEl, carouselOptions, elementInstances, index); 146 147 // Updating the sliders 148 setTimeout(function () { 149 elementInstances.forEach(function (slider) { 150 slider.update(); 151 }); 152 }, 50); 153 154 // Updating the sliders in tab 155 $('body').on('shown.bs.tab', 'a[data-bs-toggle="tab"], a[data-bs-toggle="pill"]', function (e) { 156 elementInstances.forEach(function (slider) { 157 slider.update(); 158 }); 159 }); 160 161 $('.vc_tta-tabs-list li').on('click', function () { 162 setTimeout(function () { 163 elementInstances.forEach(function (slider) { 164 slider.update(); 165 }); 166 }, 100); 167 }); 168 169 caro.parents('.rt-row').removeClass('tss-pre-loader'); 170 caro.parents('.rt-row').find('.rt-loading-overlay, .rt-loading').fadeOut(100); 171 } else if (Iso.length) { 172 var IsoButton = container.find('.tss-isotope-button-wrapper'); 173 if (!buttonFilter) { 174 buttonFilter = IsoButton.find('.rt-iso-button.selected').data('filter'); 175 } 176 var isotope = Iso.imagesLoaded(function () { 177 Iso.parents('.rt-row').removeClass('tss-pre-loader'); 178 Iso.parents('.rt-row').find('.rt-loading-overlay, .rt-loading').remove(); 179 preFunction(); 180 isotope.isotope({ 181 itemSelector: '.isotope-item', 182 masonry: { 183 columnWidth: '.isotope-item' 184 }, 185 filter: function () { 186 var $this = $(this); 187 var searchResult = qsRegex ? $this.text().match(qsRegex) : true; 188 var buttonResult = buttonFilter ? $this.is(buttonFilter) : true; 189 return searchResult && buttonResult; 190 } 191 }); 192 isoFilterCounter(container, isotope); 193 }); 194 // use value of search field to filter 195 var $quicksearch = container.find('.iso-search-input').keyup( 196 debounce(function () { 197 qsRegex = new RegExp($quicksearch.val(), 'gi'); 198 isotope.isotope(); 199 }) 200 ); 201 202 IsoButton.on('click', '.rt-iso-button', function (e) { 203 e.preventDefault(); 204 buttonFilter = $(this).attr('data-filter'); 205 isotope.isotope(); 206 $(this).parent().find('.selected').removeClass('selected'); 207 $(this).addClass('selected'); 208 }); 209 210 if (container.find('.tss-utility .tss-load-more').length) { 211 container.find('.tss-load-more').on('click', '.rt-button', function (e) { 212 e.preventDefault(e); 213 loadMoreButton($(this), isotope, container, 'isotope', IsoButton); 214 }); 215 } 216 217 if (container.find('.tss-utility .tss-scroll-load-more').length) { 218 $(window).on('scroll', function () { 219 var $this = container.find('.tss-utility .tss-scroll-load-more'); 220 scrollLoadMore($this, isotope, container, 'isotope', IsoButton); 221 }); 222 } 223 } else if (container.find('.rt-row.tss-masonry').length) { 224 var masonryTarget = container.find('.rt-row.tss-masonry'); 225 preFunction(); 226 var isotopeM = masonryTarget.imagesLoaded(function () { 227 isotopeM.isotope({ 228 itemSelector: '.masonry-grid-item', 229 masonry: { 230 columnWidth: '.masonry-grid-item' 231 } 232 }); 233 }); 234 if (container.find('.tss-utility .tss-load-more').length) { 235 container.find('.tss-load-more').on('click', '.rt-button', function (e) { 236 e.preventDefault(e); 237 loadMoreButton($(this), isotopeM, container, 'mLayout'); 238 }); 239 } 240 if (container.find('.tss-utility .tss-scroll-load-more').length) { 241 $(window).on('scroll', function () { 242 var $this = container.find('.tss-utility .tss-scroll-load-more'); 243 if ($this.attr('data-trigger') > 0) { 244 scrollLoadMore($this, isotopeM, container, 'mLayout'); 245 } 246 }); 247 } 248 249 if (container.find('.tss-utility .tss-pagination.tss-ajax').length) { 250 ajaxPagination(container, isotopeM); 251 } 252 } else { 253 if (container.find('.tss-utility .tss-load-more').length) { 254 container.find('.tss-load-more').on('click', '.rt-button', function (e) { 255 e.preventDefault(e);
256 loadMoreButton($(this), isotopeM, container, 'eLayout'); 257 }); 258 } 259 if (container.find('.tss-utility .tss-scroll-load-more').length) { 260 $(window).on('scroll', function () { 261 var $this = container.find('.tss-utility .tss-scroll-load-more'); 262 if ($this.attr('data-trigger') > 0) { 263 scrollLoadMore($this, isotopeM, container, 'eLayout'); 264 } 265 }); 266 } 267 if (container.find('.tss-utility .tss-pagination.tss-ajax').length) { 268 ajaxPagination(container); 269 } 270 } 271 } 272 }); 273 } 274 275 function RTCarouselOptions(el) { 276 return { 277 items: parseInt(el.data('items-desktop')), 278 tItems: parseInt(el.data('items-tab')), 279 mItems: parseInt(el.data('items-mobile')), 280 loop: el.data('loop'), 281 nav: el.data('nav'), 282 dots: el.data('dots'), 283 autoplay: el.data('autoplay'), 284 autoplayDelay: parseInt(el.data('autoplay-timeout'), 10), 285 autoPlayHoverPause: el.data('autoplay-hover-pause'), 286 autoHeight: el.data('auto-height'), 287 lazyLoad: el.data('lazy-load'), 288 rtl: el.data('rtl'), 289 smartSpeed: parseInt(el.data('smart-speed')) 290 }; 291 } 292 293 function RTElementCarousel(elements, carouselOptions, instance, index) { 294 var slider = elements.container.addClass('instance-' + index); 295 elements.container.parent().find(elements.navPrev).addClass('prev-' + index); 296 elements.container.parent().find(elements.navNext).addClass('next-' + index); 297 298 var options = { 299 slidesPerView: carouselOptions.items ? carouselOptions.items : 2, 300 slidesPerGroup: carouselOptions.items ? carouselOptions.items : 2, 301 spaceBetween: 0, 302 speed: carouselOptions.smartSpeed ? carouselOptions.smartSpeed : 1000, 303 loop: carouselOptions.loop ? carouselOptions.loop : false, 304 autoHeight: carouselOptions.autoHeight ? carouselOptions.autoHeight : false, 305 306 // Responsive breakpoints 307 breakpoints: carouselOptions.responsive 308 }; 309 310 if (carouselOptions.autoplay) { 311 options.autoplay = { 312 delay: carouselOptions.autoplayDelay, 313 pauseOnMouseEnter: carouselOptions.autoPlayHoverPause, 314 disableOnInteraction: false 315 }; 316 } 317 318 if (carouselOptions.lazyLoad) { 319 options.preloadImages = false; 320 options.lazy = true; 321 } 322 323 if (carouselOptions.nav) { 324 options.navigation = { 325 nextEl: elements.navNext, 326 prevEl: elements.navPrev 327 }; 328 } 329 330 if (carouselOptions.dots) { 331 options.pagination = { 332 el: elements.dotsEl, 333 type: 'bullets', 334 clickable: true 335 }; 336 } 337 instance[index] = new Swiper(slider[0], options); 338 } 339 340 function RTElementThumbCarousel(container, options, instance, index) { 341 // Params 342 var mainSlider = container.find('.tss-carousel-main').addClass('instance-' + index), 343 navSlider = container.find('.tss-carousel-thumb').addClass('instance-' + index), 344 navPrev = '.swiper-button-prev', 345 navNext = '.swiper-button-next', 346 dotsEl = '.swiper-pagination'; 347 348 container.find(navPrev).addClass('prev-' + index); 349 container.find(navNext).addClass('next-' + index); 350 351 // Main Slider 352 var mainSliderOptions = { 353 loop: true, 354 speed: options.smartSpeed ? options.smartSpeed : 1000, 355 loopedSlides: 5, 356 autoHeight: options.autoHeight ? options.autoHeight : false 357 }; 358 359 if (options.nav) { 360 mainSliderOptions.navigation = { 361 nextEl: navNext, 362 prevEl: navPrev 363 }; 364 } 365 366 if (options.dots) { 367 mainSliderOptions.pagination = { 368 el: dotsEl, 369 type: 'bullets', 370 clickable: true 371 }; 372 } 373 var main = new Swiper(mainSlider[0], mainSliderOptions); 374 375 // Navigation Slider 376 var navSliderOptions = { 377 loop: true, 378 speed: options.smartSpeed ? options.smartSpeed : 1000, 379 observer: true, 380 observerParents: true, 381 slidesPerView: options.items ? options.items : 5, 382 centeredSlides: true, 383 spaceBetween: 0, 384 touchRatio: 0.2, 385 slideToClickedSlide: true, 386 loopedSlides: 5, 387 watchSlidesProgress: true, 388 breakpoints: options.responsive 389 }; 390 391 if (options.autoplay) { 392 navSliderOptions.autoplay = { 393 delay: options.autoplayDelay, 394 pauseOnMouseEnter: options.autoPlayHoverPause, 395 disableOnInteraction: false 396 }; 397 } 398 399 if (options.lazyLoad) { 400 navSliderOptions.preloadImages = false; 401 navSliderOptions.lazy = true; 402 } 403 404 var thumb = new Swiper(navSlider[0], navSliderOptions); 405 406 // Syncing the sliders 407 main.controller.control = thumb; 408 thumb.controller.control = main; 409 410 instance[index] = [main, thumb]; 411 } 412 413 function isoFilterCounter(container, isotope) { 414 var total = 0; 415 container.find('.tss-isotope-button-wrapper .rt-iso-button').each(function () { 416 var self = $(this), 417 filter = self.data('filter'), 418 itemTotal = isotope.find(filter).length; 419 if (filter != '*') { 420 self.attr('data-filter-counter', itemTotal); 421 total = total + itemTotal; 422 } 423 }); 424 container 425 .find('.tss-isotope-button-wrapper .rt-iso-button[data-filter="*"]') 426 .attr('data-filter-counter', total); 427 } 428 429 function loadMoreButton($this, $isotope, container, layout, IsoButton) { 430 var $thisText = $this.clone().children().remove().end().text(), 431 noMorePostText = $this.data('no-more-post-text'), 432 loadingText = $this.data('loading-text'), 433 scID = $this.attr('data-sc-id'), 434 elData = $this.data('tss-elementor'), 435 paged = parseInt($this.attr('data-paged'), 10) + 1, 436 totalPages = parseInt($this.data('total-pages'), 10),
437 foundPosts = parseInt($this.data('found-posts'), 10), 438 postsPerPage = parseInt($this.data('posts-per-page'), 10), 439 data = 'scID=' + scID + '&paged=' + paged, 440 morePosts = foundPosts - postsPerPage * paged, 441 data; 442 443 data = 'scID=' + scID + '&paged=' + paged; 444 445 if (typeof elData !== 'undefined') { 446 data = 'scID=elementor&elData=' + JSON.stringify(elData) + '&paged=' + paged; 447 } 448 449 if (morePosts > 0) { 450 $thisText = $thisText + ' <span>(' + morePosts + ')</span>'; 451 } else { 452 $thisText = noMorePostText; 453 } 454 data = data + '&action=tssLoadMore&' + tss.nonceId + '=' + tss.nonce; 455 if (container.data('archive')) { 456 data = data + '&archive=' + container.data('archive'); 457 if (container.data('archive-value')) { 458 data = data + '&archive-value=' + container.data('archive-value'); 459 } 460 } 461 462 $.ajax({ 463 type: 'post', 464 url: tss.ajaxurl, 465 data: data, 466 beforeSend: function () { 467 $this.html('<span class="more-loading">' + loadingText + '</span>'); 468 }, 469 success: function (data) { 470 if (!data.error) { 471 $this.attr('data-paged', paged); 472 if (layout == 'isotope') { 473 renderIsotope(container, $isotope, data.data, IsoButton); 474 } else if (layout == 'mLayout') { 475 $isotope 476 .append(data.data) 477 .isotope('appended', data.data) 478 .isotope('updateSortData') 479 .isotope('reloadItems'); 480 $isotope.imagesLoaded(function () { 481 $isotope.isotope(); 482 }); 483 } else { 484 container.children('.rt-row').append(data.data); 485 container.children('.rt-row').imagesLoaded(function () { 486 preFunction(); 487 }); 488 } 489 $this.html($thisText); 490 if (totalPages <= paged) { 491 $this.css("pointer-events", "none"); 492 $this.unbind("click"); 493 } 494 } else { 495 $this.text(data.msg); 496 $this.attr('disabled', 'disabled'); 497 $this.parent().hide(); 498 } 499 }, 500 error: function (jqXHR, textStatus, errorThrown) { 501 container.find('.more-loading').remove(); 502 alert(textStatus + ' (' + errorThrown + ')'); 503 } 504 }); 505 return false; 506 } 507 508 function renderIsotope(container, $isotope, data, IsoButton) { 509 var qsRegexG, buttonFilter; 510 if (!buttonFilter) { 511 buttonFilter = IsoButton.find('.rt-iso-button.selected').data('filter'); 512 } 513 514 $isotope.append(data).isotope('appended', data).isotope('reloadItems').isotope('updateSortData'); 515 $isotope.imagesLoaded(function () { 516 preFunction(); 517 $isotope.isotope(); 518 }); 519 520 $(IsoButton).on('click', '.rt-iso-button', function (e) { 521 e.preventDefault(); 522 buttonFilter = $(this).attr('data-filter'); 523 $isotope.isotope(); 524 $(this).parent().find('.selected').removeClass('selected'); 525 $(this).addClass('selected'); 526 }); 527 var $quicksearch = container.find('.iso-search-input').keyup( 528 debounce(function () { 529 qsRegexG = new RegExp($quicksearch.val(), 'gi'); 530 $isotope.isotope(); 531 }) 532 ); 533 isoFilterCounter(container, $isotope); 534 } 535 536 function scrollLoadMore($this, $isotope, container, layout, IsoButton) { 537 var viewportHeight = $(window).height(); 538 var scrollTop = $(window).scrollTop(); 539 var targetHeight = $this.offset().top + $this.outerHeight() - 50; 540 var targetScroll = scrollTop + viewportHeight; 541 542 if (targetScroll >= targetHeight) { 543 var trigger = $this.attr('data-trigger'); 544 if (trigger == 1) { 545 // $this.data('trigger', false); 546 $this.attr('data-trigger', 0); 547 var data, 548 scID = $this.attr('data-sc-id'), 549 elData = $this.data('tss-elementor'), 550 maxpage = $this.data('max-page'), 551 paged = parseInt($this.attr('data-paged'), 10); 552 553 data = 'scID=' + scID + '&paged=' + paged; 554 555 if (typeof elData !== 'undefined') { 556 data = 'scID=elementor&elData=' + JSON.stringify(elData) + '&paged=' + paged; 557 } 558 559 // data = 'scID=' + scID + '&paged=' + paged; 560 data = data + '&action=tssLoadMore&' + tss.nonceId + '=' + tss.nonce; 561 562 if (container.data('archive')) { 563 data = data + '&archive=' + container.data('archive'); 564 if (container.data('archive-value')) { 565 data = data + '&archive-value=' + container.data('archive-value'); 566 } 567 } 568 $.ajax({
569 type: 'post', 570 url: tss.ajaxurl, 571 data: data, 572 beforeSend: function () { 573 $this.html('<span class="more-loading">Loading ...</span>'); 574 }, 575 success: function (data) { 576 if (!data.error) { 577 $this.attr('data-paged', paged + 1); 578 if (layout == 'isotope') { 579 renderIsotope(container, $isotope, data.data, IsoButton); 580 } else if (layout == 'mLayout') { 581 $isotope 582 .append(data.data) 583 .isotope('appended', data.data) 584 .isotope('updateSortData') 585 .isotope('reloadItems'); 586 $isotope.imagesLoaded(function () { 587 $isotope.isotope(); 588 }); 589 } else { 590 container.children('.rt-row').append(data.data); 591 container.children('.rt-row').imagesLoaded(function () { 592 preFunction(); 593 }); 594 } 595 $this.html(''); 596 $this.attr('data-trigger', 1); 597 598 if ($this.attr('data-paged') > maxpage) { 599 $this.attr('data-trigger', 0); 600 } 601 } else { 602 $this.html(''); 603 $this.attr('data-trigger', 0); 604 } 605 }, 606 error: function (jqXHR, textStatus, errorThrown) { 607 container.find('.more-loading').remove(); 608 alert(textStatus + ' (' + errorThrown + ')'); 609 } 610 }); 611 } // if trigger == 1 612 } 613 } 614 615 function ajaxPagination(container, isotopeM) { 616 container.find('.tss-pagination.tss-ajax ul li').on('click', 'a', function (e) { 617 e.preventDefault(); 618 var data, 619 $this = $(this), 620 target = $this.parents('li'), 621 parent = target.parents('.tss-pagination.tss-ajax'), 622 activeLi = parent.find('li.active'), 623 activeNumber = parseInt(activeLi.text(), 10), 624 replaced = "<a data-paged='" + activeNumber + "' href='#'>" + activeNumber + '</a>', 625 scID = parent.data('sc-id'), 626 elData = parent.data('tss-elementor'), 627 paged = $this.data('paged'); 628 activeLi.html(replaced); 629 parent.find('li').removeClass('active'); 630 target.addClass('active'); 631 target.html('<span>' + paged + '</span>'); 632 633 data = 'scID=' + scID + '&paged=' + paged; 634 635 if (typeof elData !== 'undefined') { 636 data = 'scID=elementor&elData=' + JSON.stringify(elData) + '&paged=' + paged; 637 } 638 639 data = data + '&action=tssLoadMore&' + tss.nonceId + '=' + tss.nonce; 640 641 if (container.data('archive')) { 642 data = data + '&archive=' + container.data('archive'); 643 if (container.data('archive-value')) { 644 data = data + '&archive-value=' + container.data('archive-value'); 645 } 646 } 647 $.ajax({ 648 type: 'post', 649 url: tss.ajaxurl, 650 data: data, 651 beforeSend: function () { 652 parent.append( 653 '<div class="tss-loading-holder"><span class="more-loading">Loading ...</span></div>' 654 ); 655 }, 656 success: function (data) { 657 658 if (!data.error) { 659 if (typeof isotopeM === 'undefined') { 660 container.children('.rt-row').animate({ 661 opacity: 0 662 }); 663 setTimeout(function () { 664 container.children('.rt-row').html(data.data); 665 container.children('.rt-row').imagesLoaded(function () { 666 preFunction(); 667 container.children('.rt-row').animate( 668 { 669 opacity: 1 670 }, 671 1000 672 ); 673 });
674 }, 500); 675 } else { 676 container.children('.rt-row').find('.masonry-grid-item').remove(); 677 isotopeM 678 .append(data.data) 679 .isotope('appended', data.data) 680 .isotope('updateSortData') 681 .isotope('reloadItems'); 682 isotopeM.imagesLoaded(function () { 683 preFunction(); 684 isotopeM.isotope(); 685 }); 686 } 687 688 $('.tss-wrapper').animate({ scrollTop: 0 }, 700); 689 $('html, body').animate({ 690 scrollTop: ($('.tss-wrapper').offset().top - 100) 691 }, 700); 692 } else { 693 alert(data.msg); 694 } 695 container.find('.tss-loading-holder').remove(); 696 }, 697 error: function (jqXHR, textStatus, errorThrown) { 698 container.find('.tss-loading-holder').remove(); 699 alert(textStatus + ' (' + errorThrown + ')'); 700 } 701 }); 702 }); 703 } 704 705 // debounce so filtering doesn't happen every millisecond 706 function debounce(fn, threshold) { 707 var timeout; 708 return function debounced() { 709 if (timeout) { 710 clearTimeout(timeout); 711 } 712 713 function delayed() { 714 fn(); 715 timeout = null; 716 } 717 718 setTimeout(delayed, threshold || 100); 719 }; 720 } 721 722 function overlayIconResize() { 723 $('.tlp-item').each(function () { 724 var holder_height = $(this).height(); 725 var a_height = $(this).find('.tlp-overlay .link-icon').height(); 726 var h = (holder_height - a_height) / 2; 727 $(this).find('.link-icon').css('margin-top', h + 'px'); 728 }); 729 } 730 731 function RTPromoContent() { 732 parent.document.addEventListener("mousedown", function (e) { 733 var widgets = parent.document.querySelectorAll(".elementor-element--promotion"); 734 735 if (widgets.length > 0) { 736 for (var i = 0; i < widgets.length; i++) { 737 if (widgets[i].contains(e.target)) { 738 var dialog = parent.document.querySelector("#elementor-element--promotion__dialog"); 739 var icon = widgets[i].querySelector(".icon > i"); 740 741 if (icon.classList.toString().indexOf("tss-promotional-element") >= 0) { 742 dialog.querySelector(".dialog-buttons-action").style.visibility = "hidden"; 743 dialog.querySelector(".dialog-buttons-action").style.width = 0; 744 dialog.querySelector(".dialog-buttons-action").style.height = 0; 745 dialog.querySelector(".dialog-buttons-action").style.opacity = 0; 746 dialog.querySelector(".dialog-buttons-action").style.padding = 0; 747 748 if (dialog.querySelector(".rt-dialog-buttons-action") === null) { 749 var button = document.createElement("a"); 750 var buttonText = document.createTextNode("Get Pro"); 751 752 button.setAttribute("href", "https://www.radiustheme.com/downloads/wp-testimonial-slider-showcase-pro-wordpress/"); 753 button.setAttribute("target", "_blank"); 754 button.classList.add( 755 "dialog-button", 756 "dialog-action", 757 "dialog-buttons-action", 758 "elementor-button", 759 "elementor-button-success", 760 "rt-dialog-buttons-action" 761 ); 762 button.appendChild(buttonText); 763 764 dialog.querySelector(".dialog-buttons-action").insertAdjacentHTML("afterend", button.outerHTML); 765 } else { 766 dialog.querySelector(".rt-dialog-buttons-action").style.display = ""; 767 } 768 } else { 769 dialog.querySelector(".dialog-buttons-action").style.display = ""; 770 dialog.querySelector(".dialog-buttons-action").style.visibility = ""; 771 dialog.querySelector(".dialog-buttons-action").style.width = ""; 772 dialog.querySelector(".dialog-buttons-action").style.height = ""; 773 dialog.querySelector(".dialog-buttons-action").style.opacity = ""; 774 dialog.querySelector(".dialog-buttons-action").style.padding = ""; 775 776 if (dialog.querySelector(".rt-dialog-buttons-action") !== null) { 777 dialog.querySelector(".rt-dialog-buttons-action").style.display = "none"; 778 } 779 } 780 781 break; 782 } 783 } 784 } 785 }); 786 } 787 788 function RTInitIsotope() { 789 var container = jQuery('.tss-wrapper'); 790 791 if (container.find('.tss-isotope, .tss-isotope2').length) { 792 container.find('.tss-isotope, .tss-isotope2').isotope(); 793 } 794 795 if (container.find('.rt-row.tss-masonry').length) { 796 var masonryTarget = container.find('.rt-row.tss-masonry'); 797 masonryTarget.isotope({ 798 itemSelector: '.isotope-item', 799 masonry: { columnWidth: '.isotope-item' } 800 }); 801 } 802 } 803 804 // Elementor Frontend Load 805 $(window).on('elementor/frontend/init', function () { 806 if (elementorFrontend.isEditMode()) { 807 elementorFrontend.hooks.addAction('frontend/element_ready/widget', function () { 808 RTInitCaroIso(); 809 preFunction(); 810 }); 811 812 // Promo Content. 813 RTPromoContent(); 814 } 815 }); 816})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.