1; 2(function ($) { 3 'use strict'; 4 //Slider item service 5 function st_service_list_slider_element($wrapper) { 6 let wrapper_list = $('.st-list-service', $wrapper); 7 let imageCarousel = $('.st-list-service .swiper-container', $wrapper); 8 let pagination = wrapper_list.attr('data-pagination'); 9 let navigation = wrapper_list.attr('data-navigation'); 10 let auto_play = wrapper_list.attr('data-auto-play'); 11 let delay = wrapper_list.attr('data-delay'); 12 let loop = wrapper_list.attr('data-loop'); 13 let option = { 14 observer: true, 15 observeParents: true, 16 speed: 400, 17 spaceBetween: 20, 18 preloadImages: true, 19 // effect: wrapper_list.attr('data-effect'), 20 } 21 option.breakpoints = { 22 640: { 23 slidesPerView: 1, 24 spaceBetween: 20, 25 }, 26 768: { 27 slidesPerView: 2, 28 spaceBetween: 20, 29 }, 30 992: { 31 slidesPerView: 2, 32 spaceBetween: 20, 33 }, 34 1024: { 35 slidesPerView: 2, 36 spaceBetween: 20, 37 }, 38 1366: { 39 slidesPerView: wrapper_list.attr('data-slides-per-view'), 40 spaceBetween: 20, 41 }, 42 }; 43 if (pagination == 'on') { 44 option.pagination = { 45 el: '.swiper-pagination', 46 clickable: true, 47 }; 48 } 49 if (navigation == 'on') { 50 option.navigation = { 51 nextEl: '.st-button-next', 52 prevEl: '.st-button-prev', 53 }; 54 } 55 if (auto_play == 'on') { 56 if (delay.length > 0) { 57 option.autoplay = { 58 delay: delay, 59 }; 60 } else { 61 option.autoplay = { 62 delay: 2000, 63 }; 64 } 65 66 } 67 if (loop == 'true') { 68 option.loop = true; 69 } 70 71 const Swiper = elementorFrontend.utils.swiper; 72 if (imageCarousel.length) { 73 const swipers = new Swiper(imageCarousel, option); 74 } 75 } 76 77 $(window).on('elementor/frontend/init', function () { 78 elementorFrontend.hooks.addAction('frontend/element_ready/st_list_service.default', function ($wrapper) { 79 st_service_list_slider_element($wrapper); 80 }); 81 }); 82 //End Slider item service 83 84 //Slider Image 85 $(window).on('elementor/frontend/init', function () { 86 elementorFrontend.hooks.addAction('frontend/element_ready/st_sliders.default', function ($wrapper) { 87 if (!$('.st-sliders').hasClass('st-list-slider')) { 88 st_sliders_element($wrapper); 89 } 90 }); 91 92 elementorFrontend.hooks.addAction('frontend/element_ready/st_destination.default', function ($wrapper) { 93 if ($('.st-list-destination.st-sliders').length) { 94 st_sliders_element_destination($wrapper); 95 } 96 }); 97 elementorFrontend.hooks.addAction('frontend/element_ready/st_blog_list.default', function ($wrapper) { 98 st_blogs_element($wrapper); 99 }); 100 }); 101 102 function st_blogs_element($wrapper) { 103 let wrapper_list = $('.st-sliders', $wrapper); 104 let imageCarousel = $('.st-sliders .swiper-container', $wrapper); 105 let pagination = wrapper_list.attr('data-pagination'); 106 let navigation = wrapper_list.attr('data-navigation'); 107 let auto_play = wrapper_list.attr('data-auto-play'); 108 let delay = wrapper_list.attr('data-delay'); 109 let loop = wrapper_list.attr('data-loop'); 110 let style_slider = wrapper_list.attr('data-style-slider') || 'style-1'; 111 let center_slider = wrapper_list.attr('data-center-slider'); 112 let spaceBetween = wrapper_list.attr('data-space-between') || 20; 113 let option = { 114 observer: true, 115 observeParents: true, 116 speed: 400, 117 spaceBetween: spaceBetween, 118 preloadImages: true, 119 centeredSlides: !!(center_slider == 'on'),
120 centeredSlidesBounds: true, 121 // effect: wrapper_list.attr('data-effect'), 122 123 } 124 if (style_slider === 'style-2') { 125 option.on = { 126 slideChange: function () { 127 $(".count-item-index", $wrapper).text(parseInt(this.realIndex + 1) + ' / ' + (this.loopedSlides)); 128 }, 129 init: function () { 130 $(".count-item-index", $wrapper).text(parseInt(this.realIndex + 1) + ' / ' + (this.loopedSlides)); 131 } 132 }; 133 } 134 option.breakpoints = { 135 320: { 136 slidesPerView: 1, 137 spaceBetween: 15 138 }, 139 480: { 140 slidesPerView: 1, 141 spaceBetween: 15, 142 }, 143 640: { 144 slidesPerView: 2, 145 spaceBetween: 15, 146 }, 147 768: { 148 slidesPerView: 2, 149 spaceBetween: 20, 150 }, 151 992: { 152 slidesPerView: 2, 153 spaceBetween: 20, 154 }, 155 1024: { 156 slidesPerView: 2, 157 spaceBetween: 20, 158 }, 159 1366: { 160 slidesPerView: wrapper_list.attr('data-slides-per-view'), 161 spaceBetween: 20, 162 }, 163 }; 164 if (pagination == 'on') { 165 option.pagination = { 166 el: '.swiper-pagination', 167 clickable: true, 168 }; 169 } 170 if (navigation == 'on') { 171 option.navigation = { 172 nextEl: '.st-button-next', 173 prevEl: '.st-button-prev', 174 }; 175 } else { 176 option.navigation = false; 177 } 178 if (auto_play == 'on') { 179 if (delay.length > 0) { 180 option.autoplay = { 181 delay: delay, 182 }; 183 } else { 184 option.autoplay = { 185 delay: 2000, 186 }; 187 } 188 189 } 190 if (loop == 'true') { 191 option.loop = true; 192 } 193 194 const Swiper = elementorFrontend.utils.swiper; 195 const swipers = new Swiper(imageCarousel, option); 196 } 197 198 function st_sliders_element($wrapper) { 199 let wrapper_list = $('.st-sliders', $wrapper); 200 let imageCarousel = $('.st-sliders .swiper-container', $wrapper); 201 let pagination = wrapper_list.attr('data-pagination'); 202 let navigation = wrapper_list.attr('data-navigation'); 203 let auto_play = wrapper_list.attr('data-auto-play'); 204 let delay = wrapper_list.attr('data-delay'); 205 let loop = wrapper_list.attr('data-loop'); 206 let style_slider = wrapper_list.attr('data-style-slider') || 'style-1'; 207 let center_slider = wrapper_list.attr('data-center-slider'); 208 let spaceBetween = wrapper_list.attr('data-space-between') || 20; 209 let responsive = wrapper_list.attr('data-responsive'); 210 let option = { 211 observer: true, 212 observeParents: true, 213 speed: 400, 214 spaceBetween: spaceBetween, 215 preloadImages: true, 216 centeredSlides: !!(center_slider == 'on'), 217 centeredSlidesBounds: true, 218 // effect: wrapper_list.attr('data-effect'), 219 220 } 221 222 if (style_slider === 'style-2') { 223 224 option.on = { 225 226 slideChange: function () { 227 if (loop == 'true') { 228 var total_slider = this.slides.length - this.loopedSlides * 2; 229 } else { 230 var total_slider = this.slides.length; 231 } 232 $(".count-item-index", $wrapper).text(parseInt(this.realIndex + 1) + ' / ' + (total_slider)); 233 }, 234 init: function () { 235 if (loop == 'true') { 236 var total_slider = this.slides.length - this.loopedSlides * 2; 237 } else { 238 var total_slider = this.slides.length; 239 } 240 $(".count-item-index", $wrapper).text(parseInt(this.realIndex + 1) + ' / ' + (total_slider)); 241 } 242 }; 243 } 244 if (style_slider === 'style-3') { 245 if (typeof responsive !== 'undefined') { 246 option.breakpoints = JSON.parse(responsive); 247 } else { 248 249 option.breakpoints = { 250 320: { 251 slidesPerView: 2, 252 spaceBetween: 15, 253 }, 254 640: { 255 slidesPerView: 2, 256 spaceBetween: 20, 257 }, 258 768: { 259 slidesPerView: 4, 260 spaceBetween: 20, 261 }, 262 992: { 263 slidesPerView: 4, 264 spaceBetween: 20, 265 }, 266 1024: { 267 slidesPerView: 4, 268 spaceBetween: 20, 269 }, 270 1366: { 271 slidesPerView: wrapper_list.attr('data-sli
271des-per-view'), 272 spaceBetween: 40, 273 }, 274 }; 275 } 276 } else { 277 if (center_slider == 'on') { 278 option.breakpoints = { 279 320: { 280 slidesPerView: 1, 281 spaceBetween: 1, 282 }, 283 768: { 284 slidesPerView: 1, 285 spaceBetween: 20, 286 }, 287 992: { 288 slidesPerView: 'auto', 289 spaceBetween: 20, 290 }, 291 1024: { 292 slidesPerView: 'auto', 293 spaceBetween: 20, 294 }, 295 }; 296 } else { 297 if (typeof responsive !== 'undefined') { 298 option.breakpoints = JSON.parse(responsive); 299 } else { 300 option.breakpoints = { 301 640: { 302 slidesPerView: 1, 303 spaceBetween: 20, 304 }, 305 768: { 306 slidesPerView: 1, 307 spaceBetween: 20, 308 }, 309 992: { 310 slidesPerView: 1, 311 spaceBetween: 20, 312 }, 313 1024: { 314 slidesPerView: wrapper_list.attr('data-slides-per-view'), 315 spaceBetween: 20, 316 }, 317 }; 318 } 319 } 320 } 321 if (pagination == 'on') { 322 option.pagination = { 323 el: '.swiper-pagination', 324 clickable: true, 325 }; 326 } 327 if (navigation == 'on') { 328 option.navigation = { 329 nextEl: '.st-button-next', 330 prevEl: '.st-button-prev', 331 }; 332 } else { 333 option.navigation = false; 334 } 335 if (auto_play == 'on') { 336 if (delay.length > 0) { 337 option.autoplay = { 338 delay: delay, 339 }; 340 } else { 341 option.autoplay = { 342 delay: 2000, 343 }; 344 } 345 346 } 347 if (loop == 'true') { 348 option.loop = true; 349 } 350 351 const Swiper = elementorFrontend.utils.swiper; 352 const swipers = new Swiper(imageCarousel, option); 353 354 } 355 356 function st_sliders_element_destination($wrapper) { 357 let wrapper_list = $('.st-sliders', $wrapper); 358 let imageCarousel = $('.st-sliders .swiper-container', $wrapper); 359 let pagination = wrapper_list.attr('data-pagination'); 360 let navigation = wrapper_list.attr('data-navigation'); 361 let auto_play = wrapper_list.attr('data-auto-play'); 362 let delay = wrapper_list.attr('data-delay'); 363 let loop = wrapper_list.attr('data-loop'); 364 let style_slider = wrapper_list.attr('data-style-slider') || 'style-1'; 365 let center_slider = wrapper_list.attr('data-center-slider'); 366 let spaceBetween = wrapper_list.attr('data-space-between') || 20; 367 let option = { 368 observer: true, 369 observeParents: true, 370 speed: 400, 371 spaceBetween: spaceBetween, 372 preloadImages: true, 373 centeredSlides: !!(center_slider == 'on'), 374 centeredSlidesBounds: true, 375 // effect: wrapper_list.attr('data-effect'), 376 slidesPerView: 2, 377 spaceBetween: 20 378 379 } 380 if (style_slider === 'style-2') { 381 option.on = { 382 slideChange: function () { 383 $(".count-item-index", $wrapper).text(parseInt(this.realIndex + 1) + ' / ' + (this.loopedSlides)); 384 }, 385 init: function () { 386 $(".count-item-index", $wrapper).text(parseInt(this.realIndex + 1) + ' / ' + (this.loopedSlides)); 387 } 388 }; 389 } 390 if (center_slider == 'on') { 391 option.breakpoints = { 392 320: { 393 slidesPerView: 2, 394 spaceBetween: 12 395 }, 396 480: { 397 slidesPerView: 2, 398 spaceBetween: 12, 399 }, 400 640: { 401 slidesPerView: 2, 402 spaceBetween: 20, 403 }, 404 768: { 405 slidesPerView: 'auto', 406 spaceBetween: 20, 407 }, 408 992: { 409 slidesPerView: 'auto', 410 spaceBetween: 20, 411 }, 412 1024: { 413 slidesPerView: 'auto', 414 spaceBetween: 20, 415 }, 416 }; 417 } else { 418 option.breakpoints = { 419 320: { 420 slidesPerView: 2, 421 spaceBetween: 25 422 }, 423 480: { 424 slidesPerView: 2, 425 spaceBetween: 25, 426 }, 427 640: { 428 slidesPerView: 2, 429 spaceBetween: 25, 430 }, 431 768: { 432 slidesPerView: 4, 433 spaceBetween: 25, 434 }, 435 992: { 436 slidesPerView: 4, 437 spaceBetween: 25, 438 }, 439 1024: { 440 slidesPerView: 4, 441 spaceBetween: 25, 442 }, 443 1366: {
444 slidesPerView: wrapper_list.attr('data-slides-per-view'), 445 spaceBetween: 40, 446 }, 447 }; 448 } 449 if (pagination == 'on') { 450 option.pagination = { 451 el: '.swiper-pagination', 452 clickable: true, 453 }; 454 } 455 if (navigation == 'on') { 456 option.navigation = { 457 nextEl: '.st-button-next', 458 prevEl: '.st-button-prev', 459 }; 460 } else { 461 option.navigation = false; 462 } 463 if (auto_play == 'on') { 464 if (delay.length > 0) { 465 option.autoplay = { 466 delay: delay, 467 }; 468 } else { 469 option.autoplay = { 470 delay: 2000, 471 }; 472 } 473 474 } 475 if (loop == 'true') { 476 option.loop = true; 477 } 478 479 const Swiper = elementorFrontend.utils.swiper; 480 if (imageCarousel.length) { 481 const swipers = new Swiper(imageCarousel, option); 482 } 483 484 } 485 //End Slider Image 486 487 //Slider Testimonial 488 $(window).on('elementor/frontend/init', function () { 489 elementorFrontend.hooks.addAction('frontend/element_ready/st_testimonial.default', function ($wrapper) { 490 st_testimonial_element($wrapper); 491 }); 492 }); 493 494 function st_testimonial_element($wrapper) { 495 let wrapper_list = $('.st-testimonial', $wrapper); 496 let imageCarousel = $('.st-testimonial .swiper-container', $wrapper); 497 let pagination = wrapper_list.attr('data-pagination'); 498 let navigation = wrapper_list.attr('data-navigation'); 499 let auto_play = wrapper_list.attr('data-auto-play'); 500 let delay = wrapper_list.attr('data-delay'); 501 let loop = wrapper_list.attr('data-loop'); 502 let responsive = wrapper_list.attr('data-responsive'); 503 let option = { 504 speed: 400, 505 spaceBetween: 20, 506 preloadImages: true, 507 observer: true, 508 observeParents: true, 509 // effect: wrapper_list.attr('data-effect'), 510 } 511 if (typeof responsive !== 'undefined') { 512 option.breakpoints = JSON.parse(responsive); 513 } else { 514 option.breakpoints = { 515 640: { 516 slidesPerView: 1, 517 spaceBetween: 20, 518 }, 519 768: { 520 slidesPerView: 2, 521 spaceBetween: 20, 522 }, 523 992: { 524 slidesPerView: 3, 525 spaceBetween: 20, 526 }, 527 1024: { 528 slidesPerView: wrapper_list.attr('data-slides-per-view'), 529 spaceBetween: 20, 530 }, 531 }; 532 } 533 534 if (pagination == 'on') { 535 option.pagination = { 536 el: '.swiper-pagination', 537 clickable: true, 538 }; 539 } 540 if (navigation == 'on') { 541 option.navigation = { 542 nextEl: '.st-button-next', 543 prevEl: '.st-button-prev', 544 }; 545 } 546 if (auto_play == 'on') { 547 if (delay.length > 0) { 548 option.autoplay = { 549 delay: delay, 550 }; 551 } else { 552 option.autoplay = { 553 delay: 2000, 554 }; 555 } 556 557 } 558 if (loop == 'true') { 559 option.loop = true; 560 } 561 const Swiper = elementorFrontend.utils.swiper; 562 $('.st-testimonial .swiper-wrapper .swiper-slide', $wrapper).matchHeight({ 563 remove: true 564 }); 565 $('.st-testimonial .swiper-wrapper .swiper-slide', $wrapper).matchHeight(); 566 const swipers = new Swiper(imageCarousel, option); 567 $('.st-testimonial .swiper-wrapper .swiper-slide', $wrapper).matchHeight(); 568 } 569 570 //Ajax list of service 571 function URLToArrayNew() { 572 var res = {}; 573 574 $('.toolbar .layout span').each(function () { 575 if ($(this).hasClass('active')) { 576 res['layout'] = $(this).data('value'); 577 } 578 }); 579 580 res['orderby'] = ''; 581 582 var sPageURL = window.location.search.substring(1); 583 if (sPageURL != '') { 584 var sURLVariables = sPageURL.split('&'); 585 if (sURLVariables.length) { 586 for (var i = 0; i < sURLVariables.length; i++) { 587 var sParameterName = sURLVariables[i].split('='); 588 if (sParameterName.length) { 589 let val = decodeURIComponent(sParameterName[1]); 590 res[decodeURIComponent(sParameterName[0])] = val == 'undefined' ? '' : val; 591 } 592 } 593 } 594 } 595 return res; 596 } 597 var dataAjax = URLToArrayNew(); 598 var requestRunning = false; 599 var xhr; 600 $(document).on('click', '.panigation-list-new-style a.page-numbers:not
600(.current, .dots)', function (e) { 601 e.preventDefault(); 602 var t = $(this); 603 var parent_panigation = t.closest('.panigation-list-new-style'); 604 605 var pagUrl = t.attr('href'); 606 var action_service = parent_panigation.data('action_service'); 607 let posts_per_page = parent_panigation.data('posts_per_page'); 608 let item_row = parent_panigation.data('st_item_row'); 609 let item_row_tablet = parent_panigation.data('st_item_row_tablet'); 610 let st_item_row_tablet_extra = parent_panigation.data('st_item_row_tablet_extra'); 611 if (typeof parent_panigation.data('st_location_id') !== 'undefined') { 612 var location_id = parent_panigation.data('st_location_id'); 613 } else { 614 var location_id = ''; 615 } 616 let order = parent_panigation.data('order'); 617 let orderby = parent_panigation.data('orderby'); 618 let stt_service = parent_panigation.data('stt_service'); 619 pageNum = 1; 620 621 if (typeof pagUrl !== typeof undefined && pagUrl !== false) { 622 var arr = pagUrl.split('/'); 623 var pageNum = arr[arr.indexOf('page') + 1]; 624 if (isNaN(pageNum)) { 625 pageNum = 1; 626 } 627 628 ajaxFilterHandler(action_service, posts_per_page, pageNum, order, orderby, item_row, item_row_tablet, st_item_row_tablet_extra, stt_service, t, location_id); 629 if ($('.modern-search-result-popup').length) { 630 $('.col-left-map').animate({ 631 scrollTop: 0 632 }, 'slow'); 633 } 634 635 if ($('#modern-result-string').length) { 636 window.scrollTo({ 637 top: $('#modern-result-string').offset().top - 20, 638 behavior: 'smooth' 639 }); 640 } 641 return false; 642 } else { 643 return false; 644 } 645 }); 646 647 function ajaxFilterHandler(action_service = '', posts_per_page = '', pageNum = 1, order = '', orderby = '', item_row = 4, item_row_tablet = 2, st_item_row_tablet_extra = 3, stt_service = '', t, location_id = '') { 648 if (requestRunning) { 649 xhr.abort(); 650 } 651 $('.filter-loading').show(); 652 //Check layout search rental acency in library 653 if ($('.st_agency_list_service').length > 0) { 654 dataAjax['agency'] = 'agency'; 655 } 656 //End Check layout search rental acency in library 657 dataAjax['format'] = 'normal'; 658 dataAjax['version_layout'] = ''; 659 dataAjax['st_order'] = order; 660 dataAjax['st_orderby'] = orderby; 661 dataAjax['st_item_row'] = item_row; 662 dataAjax['st_item_row_tablet'] = item_row_tablet; 663 dataAjax['location_id'] = location_id; 664 dataAjax['st_item_row_tablet_extra'] = st_item_row_tablet_extra; 665 dataAjax['page'] = pageNum; 666 dataAjax['action'] = action_service; 667 dataAjax['is_search_page'] = 1; 668 if (posts_per_page != '') { 669 dataAjax['posts_per_page'] = posts_per_page; 670 } 671 672 dataAjax['_s'] = st_params._s; 673 if (typeof dataAjax['page'] == 'undefined') { 674 dataAjax['page'] = 1; 675 } 676 677 var divResult = t.closest('.stt-tab-list-ofservice').find('.modern-search-result'); 678 var divResultString = $('.modern-result-string'); 679 var divPagination = t.closest('#nav-list-of_service' + stt_service).find('.moderm-pagination'); 680 dataAjax['layout'] = 'grid'; 681 if (t.closest('.st_list_service_room').find('.panigation-list-new-style').length > 0) { 682 var divResult = t.closest('.st_list_service_room'); 683 var divPagination = t.closest('.st_list_service_room').find('.panigation-list-new-style'); 684 dataAjax['layout'] = 'list'; 685 686 if (t.closest('.st_list_service_room').find('.panigation-list-new-style').data('post_id')) { 687 dataAjax['post__in'] = t.closest('.st_list_service_room').find('.panigation-list-new-style').data('post_id'); 688 } 689 690 } 691 if (t.closest('.st_list_service_room').find('.panigation-list-new-style').data('layout') == 'grid') { 692 dataAjax['layout'] = 'grid'; 693 } 694 divResult.addClass('loading'); 695 $('.map-content-loading').fadeIn(); 696 // console.log(divResult); 697 let wrapper = $('.search-result-page'); 698 dataAjax['version'] = 'elementorv2'; 699 xhr = $.ajax({
700 url: st_params.ajax_url, 701 dataType: 'json', 702 type: 'get', 703 data: dataAjax, 704 success: function (doc) { 705 if (typeof doc.pag === 'undefined') { 706 divResult.html(doc.content); 707 } else { 708 divResult.html(doc.content); 709 710 divResultString.each(function () { 711 $(this).html(doc.count); 712 }); 713 //console.log(doc.content); 714 divPagination.each(function () { 715 $(this).html(doc.pag); 716 }); 717 } 718 719 }, 720 complete: function () { 721 divResult.removeClass('loading'); 722 $('.map-content-loading').fadeOut(); 723 724 var time = 0; 725 divResult.find('img').one("load", function () { 726 $(this).addClass('loaded'); 727 if (divResult.find('img.loaded').length === divResult.find('img').length) { 728 if ($('.has-matchHeight').length) { 729 $('.has-matchHeight').matchHeight({ 730 remove: true 731 }); 732 $('.has-matchHeight').matchHeight(); 733 } 734 } 735 }); 736 requestRunning = false; 737 }, 738 }); 739 requestRunning = true; 740 } 741 $(".login").on('click', function () { 742 $("#st-main-menu").removeClass("open"); 743 }); 744 745}) 746 (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.