1/** 2 * CreateX | Multipurpose Bootstrap Theme 3 * Theme core scripts 4 * 5 * @author Createx Studio 6 * @version 1.1 7 */ 8 9 10 11 $(document).ready(function(){ 12 13 14var coll = document.getElementsByClassName("collapsible"); 15var i; 16 17for (i = 0; i < coll.length; i++) { 18 coll[i].addEventListener("click", function() { 19 this.classList.toggle("active"); 20 var content = this.nextElementSibling; 21 if (content.style.display === "block") { 22 content.style.display = "none"; 23 } else { 24 content.style.display = "block"; 25 } 26 }); 27} 28 29 30 31 $('.navbar-nav').addClass('nav-ready'); 32 33 34 $('.work').slick({ 35 dots: true, 36 arrows: true, 37 infinite: false, 38 speed: 300, 39 slidesToShow: 1, 40 slidesToScroll: 1, 41 adaptiveHeight: true, 42 responsive: [ 43 { 44 breakpoint: 1024, 45 settings: { 46 slidesToShow: 1, 47 slidesToScroll: 1, 48 infinite: true, 49 dots: true 50 } 51 }, 52 { 53 breakpoint: 600, 54 settings: { 55 slidesToShow: 2, 56 slidesToScroll: 2 57 } 58 }, 59 { 60 breakpoint: 480, 61 settings: { 62 slidesToShow: 1, 63 slidesToScroll: 1 64 } 65 } 66 // You can unslick at a given breakpoint now by adding: 67 // settings: "unslick" 68 // instead of a settings object 69 ] 70}); 71 72 }); 73 74 75;(function ($) { 76 'use strict'; 77 78 79$('#carS').carousel({ 80 interval: 2000 81}) 82 83 $('ul li:has(a.mega-menu)').addClass('mega-dropdown-toggle'); 84 $('ul .mega-dropdown-toggle>ul').addClass('d-flex'); 85 $('ul .mega-dropdown-toggle>ul').wrap('<div class="dropdown-menu mega-dropdown">'); 86 87 88 $('ul li:has(a.reg-menu)').addClass('dropdown-toggle'); 89 $('ul .dropdown-toggle>ul').addClass('dropdown-menu dropdown'); 90 91 /** 92 * Global variables 93 * @const 94 */ 95 var BODY = 'body'; 96 var WINDOW = window; 97 var DOCUMENT = document; 98 99 var theme = { 100 101 /** 102 * Theme's components/functions list 103 * Comment out or delete the unnecessary component. 104 * Some component have dependencies (plugins). 105 * Do not forget to remove component plugin script from src/vendor/js 106 */ 107 init: function () { 108 // theme.disableEmptyLink(); 109 theme.stickyNavbar(); 110 theme.isotopeGrid(); 111 theme.isotopeFilter(); 112 theme.searchToggle(); 113 theme.searchAutocomplete(); 114 theme.offcanvas(); 115 theme.fsOverlay(); 116 theme.scrollTo(); 117 theme.scrollBackTop(); 118 theme.formValidation(); 119 theme.tooltips(); 120 theme.popovers(); 121 theme.creditCard(); 122 theme.filterList('[data-filter="#components-list"]', '.list-group-item'); 123 theme.filterList('[data-filter="#components-grid"]', '.card-title'); 124 theme.productGallery(); 125 theme.linkedCarousels(); 126 theme.toasts(); 127 theme.teamHover(); 128 theme.countDown(); 129 theme.animateProgress(); 130 theme.animateDigits(); 131 theme.rangeSlider(); 132 theme.parallax(); 133 theme.pricingSwitch(); 134 theme.googleMap(); 135 }, 136 137 138 /** 139 * Disabling browser from jumping up top when clicking empty (#) links 140 * @param {string} selector 141 */ 142 disableEmptyLink: function (selector) { 143 144 // selector = 'a[href="#"]'; 145 selector = 'a[href="#"]:not[style="unicode-bidi:bidi-override;direction:rtl;"]'; 146 147 $(selector).on('click', function(e) { 148 e.preventDefault(); 149 }); 150 }, 151 152 153 /** 154 * Sticky navbar 155 * @param {string} selector 156 * @param {number} offset [offset=500] 157 */ 158 stickyNavbar: function (selector, offset) { 159 160 selector = '.navbar-sticky'; 161 offset = 500; 162 163 if($(selector).length) { 164 var navbarH = $(selector).outerHeight(); 165 $(WINDOW).on('scroll', function () { 166 if($(this).scrollTop() > offset) { 167 $(selector).addClass('navbar-stuck'); 168 if(! $(selector).hasClass('navbar-floating')) { 169 $(BODY).css('padding-top', navbarH); 170 } 171 } else { 172 $(selector).removeClass('navbar-stuck'); 173 $(BODY).css('padding-top', 0); 174 } 175 }); 176 } 177 }, 178 179 180 /** 181 * Isotope grid 182 * @param {string} selector 183 * @param {string} transitionDuration [transitionDuration='0.7s'] 184 */ 185 isotopeGrid: function (selector, transitionDuration) { 186 187 selector = '.isotope-grid'; 188 transitionDuration = '0.7s'; 189 190 if($(selector).length) { 191 var $grid = $(selector).imagesLoaded(function() { 192 $grid.isotope({ 193 itemSelector: '.grid-item', 194 transitionDuration: transitionDuration, 195 masonry: { 196 columnWidth: '.grid-sizer', 197 gutter: '.gutter-sizer' 198 } 199 }); 200 }); 201 } 202 }, 203 204 205 /** 206 * Isotope filter 207 * @param {string} target 208 * @param {string} toggler 209 */ 210 isotopeFilter: function (target, toggler) { 211 212 target = '.filter-grid'; 213 toggler = '.nav-tabs'; 214 215 if($(target).length) { 216 $(toggler).on( 'click', 'a', function(e) { 217 e.preventDefault(); 218 $(toggler + ' a').removeClass('active'); 219 $(this).addClass('active'); 220 var $filterValue = $(this).attr('data-filter'); 221 $(target).isotope({ filter: $filterValue }); 222 }); 223 } 224 }, 225 226 227 /** 228 * Search toggle 229 * @param {string} openTrigger 230 * @param {string} closeTrigger 231 * @param {string} target 232 */
233 searchToggle: function (openTrigger, closeTrigger, target) { 234 235 openTrigger = '[data-toggle="search"]'; 236 closeTrigger = '.search-close'; 237 target = '.search-box'; 238 239 $(openTrigger).on('click', function() { 240 $(target).addClass('is-open'); 241 setTimeout( function() { 242 $(target + ' input').focus(); 243 }, 200); 244 }); 245 $(closeTrigger).on('click', function() { 246 $(target).removeClass('is-open'); 247 }); 248 }, 249 250 251 /** 252 * Search autocomplete 253 * dependency: easy-autocomplete jQuery plugin 254 * @param {string} selector 255 */ 256 searchAutocomplete: function (selector) { 257 258 selector = '#site-search'; 259 260 var options = { 261 url: 'search-autocomplete.json', 262 getValue: 'name', 263 list: { 264 match: { 265 enabled: true 266 } 267 }, 268 template: { 269 type: 'custom', 270 method: function(value, item) { 271 return "<a href='" + item.link + "'><span class='ac-title'>" + value + "</span><span class='badge badge-" + item.badge + "'>" + item.type + "</span></a>"; 272 } 273 } 274 }; 275 276 if ($.fn.easyAutocomplete) { 277 $(selector).easyAutocomplete(options); 278 } 279 }, 280 281 282 /** 283 * Off-canvas 284 * @param {string} openTrigger 285 * @param {string} closeTrigger 286 * @param {string} target 287 */ 288 offcanvas: function (openTrigger, closeTrigger, target) { 289 290 openTrigger = '[data-toggle="offcanvas"]'; 291 closeTrigger = '.offcanvas-close'; 292 target = '.offcanvas-container'; 293 294 $(openTrigger).on('click', function (e) { 295 var $target = $(this).attr('href'); 296 $($target).addClass('in-view'); 297 e.preventDefault(); 298 }); 299 300 $(closeTrigger).on('click', function() { 301 $(target).removeClass('in-view'); 302 }); 303 }, 304 305 306 /** 307 * Full screen overlay 308 * @param {string} openTrigger 309 * @param {string} closeTrigger 310 * @param {string} target 311 */ 312 fsOverlay: function (openTrigger, closeTrigger, target) { 313 314 openTrigger = '[data-toggle="fullscreen-overlay"]'; 315 closeTrigger = '.fs-overlay-close'; 316 target = '.fs-overlay-wrapper'; 317 318 $(openTrigger).on('click', function(e) { 319 var $target = $(this).attr('href'); 320 $($target).addClass('in-view'); 321 e.preventDefault(); 322 }); 323 324 $(closeTrigger).on('click', function() { 325 $(target).removeClass('in-view'); 326 }); 327 }, 328 329 330 /** 331 * Smooth scroll to an element 332 * @param {string} selector 333 * @param {number} duration [duration=1200] 334 */ 335 scrollTo: function (selector, duration) { 336 337 selector = '.scroll-to'; 338 duration = 1200; 339 340 $(DOCUMENT).on('click', selector, function (e) { 341 var target = $(this).attr('href'); 342 console.log(target); 343 if ('#' === target) { 344 return false; 345 } 346 347 var $target = $( target ); 348 var animationDuration = parseInt(duration, 10); 349 if($target.length) { 350 var $elemOffsetTop = $target.data( 'offset-top' ) || 75; 351 $('html, body').stop().animate({scrollTop: $( this.hash ).offset().top - $elemOffsetTop}, animationDuration, 'easeOutExpo'); 352 } 353 e.preventDefault(); 354 }); 355 }, 356 357 358 /** 359 * Animated scroll to top button 360 * @param {string} selector 361 * @param {number} scrollOffset [scrollOffset=600] 362 * @param {number} duration [duration=1200] 363 */ 364 scrollBackTop: function (selector, scrollOffset, duration) { 365 366 selector = '.scroll-to-top-btn'; 367 scrollOffset = 600; 368 duration = 1200; 369 370 if ($(selector).length) { 371 372 var offsetFromTop = parseInt(scrollOffset, 10); 373 var animationDuration = parseInt(duration, 10); 374 375 $(WINDOW).on('scroll', function () { 376 if ($(this).scrollTop() > offsetFromTop) { 377 $(selector).addClass('visible'); 378 } else { 379 $(selector).removeClass('visible'); 380 } 381 }); 382 383 $(selector).on('click', function () { 384 $('html, body').stop().animate({scrollTop: 0}, animationDuration, 'easeOutExpo'); 385 }); 386 } 387 }, 388 389 390 /** 391 * From validation 392 * @param {string} selector 393 */ 394 formValidation: function (selector) { 395 396 selector = 'needs-validation'; 397 398 window.addEventListener('load', function () { 399 // Fetch all the forms we want to apply custom Bootstrap validation styles to 400 var forms = document.getElementsByClassName(selector); 401 // Loop over them and prevent submission
402 var validation = Array.prototype.filter.call(forms, function(form) { 403 form.addEventListener('submit', function(event) { 404 if (form.checkValidity() === false) { 405 event.preventDefault(); 406 event.stopPropagation(); 407 } 408 form.classList.add('was-validated'); 409 }, false); 410 }); 411 }, false); 412 }, 413 414 415 /** 416 * Tooltips 417 * @param {string} selector 418 */ 419 tooltips: function (selector) { 420 421 selector = '[data-toggle="tooltip"]'; 422 423 $(selector).tooltip(); 424 }, 425 426 427 /** 428 * Popovers 429 * @param {string} selector 430 */ 431 popovers: function (selector) { 432 433 selector = '[data-toggle="popover"]'; 434 435 $(selector).popover(); 436 }, 437 438 439 /** 440 * Interactive credit card 441 * @param {string} selector 442 */ 443 creditCard: function (selector) { 444 445 selector = '.interactive-credit-card'; 446 447 if($(selector).length) { 448 $(selector).card({ 449 form: selector, 450 container: '.card-wrapper' 451 }); 452 } 453 }, 454 455 456 /** 457 * Filter list group 458 * @param {string} trigger 459 * @param {string} searchBase 460 */ 461 filterList: function (trigger, searchBase) { 462 463 $(trigger).each(function () { 464 var self = $(this), 465 target = self.data('filter'), 466 search = self.find('input[type=text]'), 467 filters = self.find('input[type=radio]'); 468 469 // Search 470 search.keyup(function() { 471 var searchQuery = search.val(); 472 if(searchBase === '.list-group-item') { 473 $(searchBase).each(function() { 474 var text = $(this).text().toLowerCase(); 475 (text.indexOf(searchQuery.toLowerCase()) == 0) ? $(this).show() : $(this).hide(); 476 }); 477 } else { 478 $(searchBase).each(function() { 479 var text = $(this).text().toLowerCase(); 480 (text.indexOf(searchQuery.toLowerCase()) == 0) ? $(this).parents('[data-filter-item]').show() : $(this).parents('[data-filter-item]').hide(); 481 }); 482 } 483 }); 484 485 // Filters 486 filters.on('click', function(e) { 487 var targetItem = $(this).val(); 488 if(searchBase === '.list-group-item') { 489 if(targetItem !== 'all') { 490 $(searchBase).hide(); 491 $('[data-filter-item=' + targetItem + ']').show(); 492 } else { 493 $(searchBase).show(); 494 } 495 } else { 496 if(targetItem !== 'all') { 497 $(searchBase).parents('[data-filter-item]').hide(); 498 $('[data-filter-item=' + targetItem + ']').show(); 499 } else { 500 $(searchBase).parents('[data-filter-item]').show(); 501 } 502 } 503 504 }); 505 }); 506 }, 507 508 509 /** 510 * Product gallery 511 * @param {string} selector 512 */ 513 productGallery: function (selector) { 514 515 selector = '.product-carousel'; 516 517 function activeHash(e) { 518 var i = e.item.index; 519 var $activeHash = $('.owl-item').eq(i).find('[data-hash]').attr('data-hash'); 520 $('.product-thumbnails li').removeClass('active'); 521 $('[href="#' + $activeHash + '"]').parent().addClass('active'); 522 $('[data-hash="' + $activeHash + '"]').parent().addClass('active'); 523 } 524 525 if($(selector).length) { 526 // Carousel init 527 $(selector).owlCarousel({ 528 items: 1, 529 loop: false, 530 dots: false, 531 URLhashListener: true, 532 startPosition: 'URLHash', 533 onTranslate: activeHash 534 }); 535 } 536 }, 537 538 539 /** 540 * Linked carousels (Featured posts slider) 541 * @param {string} triggerCarousel 542 * @param {string} targetCarousel 543 */ 544 linkedCarousels: function (triggerCarousel, targetCarousel) { 545 546 triggerCarousel = '.post-cards-carousel'; 547 targetCarousel = '.post-preview-img-carousel'; 548 549 if($(triggerCarousel).length) { 550 $(triggerCarousel).on('change.owl.carousel', function (event) { 551 if (event.namespace && event.property.name === 'position') { 552 var target = event.relatedTarget.relative(event.property.value, true); 553 $(targetCarousel).owlCarousel('to', target, 350, true); 554 } 555 }); 556 } 557 }, 558 559 560 /** 561 * Toast notifications 562 * @param {string} selector 563 */ 564 toasts: function (selector) { 565 566 selector = '[data-toast]'; 567 568 $(selector).on('click', function () { 569 570 var self = $(this), 571 $type = self.data('toast-type'), 572 $icon = self.data('toast-icon'), 573 $position = self.data('toast-position'), 574 $title = self.data('toast-title'), 575 $message = self.data('toast-message'), 576 toastOptions = ''; 577 578 switch ($position) { 579 case 'topRight': 580 toastOptions = { 581 class: 'iziToast-' + $type || '', 582 title: $title || 'Title', 583 message: $message || 'toast message', 584 animateInside: false, 585 position: 'topRight', 586 progressBar: false, 587 icon: $icon, 588 timeout: 3200, 589 transitionIn: 'fadeInLeft', 590 transitionOut: 'fadeOut', 591 transitionInMobile: 'fadeIn', 592 transitionOutMobile: 'fadeOut' 593 }; 594 break; 595 case 'bottomRight': 596 toastOptions = { 597 class: 'iziToast-' + $type || '', 598 title: $title || 'Title', 599 message: $message || 'toast message', 600 animateInside: false, 601 position: 'bottomRight', 602 progressBar: false, 603 icon: $icon, 604 timeout: 3200, 605 transitionIn: 'fadeInLeft', 606 transitionOut: 'fadeOut', 607 transitionInMobile: 'fadeIn', 608 transitionOutMobile: 'fadeOut' 609 }; 610 break; 611 case 'topLeft': 612 toastOptions = { 613 class: 'iziToast-' + $type || '', 614 title: $title || 'Title', 615 message: $message || 'toast message', 616 animateInside: false, 617 position: 'topLeft', 618 progressBar: false, 619 icon: $icon, 620 timeout: 3200, 621 transitionIn: 'fadeInRight', 622 transitionOut: 'fadeOut', 623 transitionInMobile: 'fadeIn', 624 transitionOutMobile: 'fadeOut' 625 }; 626 break; 627 case 'bottomLeft': 628 toastOptions = { 629 class: 'iziToast-' + $type || '', 630 title: $title || 'Title', 631 message: $message || 'toast message', 632 animateInside: false, 633 position: 'bottomLeft', 634 progressBar: false, 635 icon: $icon, 636 timeout: 3200, 637 transitionIn: 'fadeInRight', 638 transitionOut: 'fadeOut', 639 transitionInMobile: 'fadeIn', 640 transitionOutMobile: 'fadeOut' 641 }; 642 break; 643 case 'topCenter': 644 toastOptions = { 645 class: 'iziToast-' + $type || '', 646 title: $title || 'Title', 647 message: $message || 'toast message', 648 animateInside: false, 649 position: 'topCenter', 650 progressBar: false, 651 icon: $icon, 652 timeout: 3200, 653 transitionIn: 'fadeInDown', 654 transitionOut: 'fadeOut', 655 transitionInMobile: 'fadeIn', 656 transitionOutMobile: 'fadeOut' 657 }; 658 break; 659 case 'bottomCenter': 660 toastOptions = { 661 class: 'iziToast-' + $type || '', 662 title: $title || 'Title', 663 message: $message || 'toast message', 664 animateInside: false, 665 position: 'bottomCenter', 666 progressBar: false, 667 icon: $icon, 668 timeout: 3200, 669 transitionIn: 'fadeInUp', 670 transitionOut: 'fadeOut', 671 transitionInMobile: 'fadeIn', 672 transitionOutMobile: 'fadeOut' 673 }; 674 break; 675 default: 676 toastOptions = { 677 class: 'iziToast-' + $type || '', 678 title: $title || 'Title', 679 message: $message || 'toast message', 680 animateInside: false, 681 position: 'topRight', 682 progressBar: false, 683 icon: $icon, 684 timeout: 3200, 685 transitionIn: 'fadeInLeft', 686 transitionOut: 'fadeOut', 687 transitionInMobile: 'fadeIn', 688 transitionOutMobile: 'fadeOut' 689 }; 690 } 691 692 iziToast.show(toastOptions); 693 }); 694 }, 695 696 697 /** 698 * Team style 1 (Hover effect: social buttons) 699 * @param {string} selector 700 */ 701 teamHover: function (selector) { 702 703 selector = '.no-touchevents .team-card-style-1'; 704 705 $(selector).on('mouseover', function() { 706 var $socialBtn = $(this).find('.social-btn'); 707 function btnAddHover() { 708 $socialBtn.addClass('hover') 709 } 710 setTimeout(btnAddHover, 120); 711 }); 712 $(selector).on('mouseout', function() { 713 var $socialBtn = $(this).find('.social-btn');
714 function btnRemoveHover() { 715 $socialBtn.removeClass('hover') 716 } 717 setTimeout(btnRemoveHover, 120); 718 }); 719 }, 720 721 722 /** 723 * Countdown 724 * @param {string} selector 725 */ 726 countDown: function (selector, trigger) { 727 728 selector = '.countdown'; 729 730 $(selector).each( function() { 731 var countDown = $(this), 732 dateTime = $(this).data('date-time'), 733 labels = $(this).data('labels'); 734 735 var countDownTrigger = ( trigger ) ? trigger : countDown; 736 countDownTrigger.countdown(dateTime, function(event) { 737 $(this).html(event.strftime( 738 '<div class="countdown-item"><div class="countdown-value">%D</div><div class="countdown-label">' + labels['label-day'] + '</div></div><div class="countdown-item"><div class="countdown-value">%H</div><div class="countdown-label">' + labels['label-hour'] + '</div></div><div class="countdown-item"><div class="countdown-value">%M</div><div class="countdown-label">' + labels['label-minute'] + '</div></div><div class="countdown-item"><div class="countdown-value">%S</div><div class="countdown-label">' + labels['label-second'] + '</div></div>' 739 )); 740 }); 741 }); 742 }, 743 744 745 /** 746 * Animate progress bars on scroll 747 * @param {string} selector 748 */ 749 animateProgress: function (selector) { 750 751 selector = '.progress-animate-fill'; 752 753 $(selector).on('inview', function(event, isInView) { 754 var progressBar = $(this).find('.progress-bar'), 755 valueNow = progressBar.attr('aria-valuenow'); 756 if (isInView) { 757 $(this).addClass('progress-in-view'); 758 progressBar.css('width', valueNow + '%'); 759 } 760 }); 761 }, 762 763 764 /** 765 * Animate digits 766 * @param {string} selector 767 */ 768 animateDigits: function (selector) { 769 770 selector = '.animated-digits'; 771 772 $(selector).one('inview', function(event, isInView) { 773 var digits = $(this).find('.animated-digits-digit > span'), 774 number = $(this).data('number'); 775 if (isInView) { 776 digits.animateNumber({ 777 number: number 778 }, 1200); 779 } 780 }); 781 }, 782 783 784 /** 785 * Range slider 786 * @param {string} selector 787 */ 788 rangeSlider: function (selector) { 789 790 selector = '.range-slider'; 791 792 $(selector).each(function() { 793 var self = $(this); 794 var rangeSlider = self.find('.ui-range-slider'); 795 var options = { 796 dataStartMin: parseInt(rangeSlider.parent().data( 'start-min' ), 10), 797 dataStartMax: parseInt(rangeSlider.parent().data( 'start-max' ), 10), 798 dataMin: parseInt(rangeSlider.parent().data( 'min' ), 10), 799 dataMax: parseInt(rangeSlider.parent().data( 'max' ), 10), 800 dataStep: parseInt(rangeSlider.parent().data( 'step' ), 10), 801 valueMin: self.find('.ui-range-value-min span'), 802 valueMax: self.find('.ui-range-value-max span'), 803 valueMinInput: self.find('.ui-range-value-min input'), 804 valueMaxInput: self.find('.ui-range-value-max input') 805 } 806 807 noUiSlider.create(rangeSlider[0], { 808 start: [ options.dataStartMin, options.dataStartMax ], 809 connect: true, 810 step: options.dataStep, 811 range: { 812 'min': options.dataMin, 813 'max': options.dataMax 814 } 815 }); 816 817 rangeSlider[0].noUiSlider.on('update', function(values, handle) { 818 var value = values[handle]; 819 if ( handle ) { 820 options.valueMax.text(Math.round(value)); 821 options.valueMaxInput.val(Math.round(value)); 822 } else { 823 options.valueMin.text(Math.round(value)); 824 options.valueMinInput.val(Math.round(value)); 825 } 826 }); 827 }); 828 }, 829 830 831 /** 832 * Parallax scrolling 833 */ 834 parallax: function () { 835 ParallaxScroll.init(); 836 }, 837 838 839 /** 840 * Pricing plans switch 841 * @param {string} selector 842 */ 843 pricingSwitch: function (selector) { 844 845 selector = '.pricing-tabs'; 846 847 $(selector + '> li > a').on('click', function(e) { 848 var self = $(this), 849 period = self.data('period'), 850 mainParent = self.parents('.pricing-plans'); 851 mainParent.find(selector + '> li > a').removeClass('active'); 852 self.addClass('active'); 853 854 mainParent.find('.pricing-card-price').removeClass('active'); 855 mainParent.find('.' + period).addClass('active'); 856 e.preventDefault; 857 }); 858 }, 859 860 861 /** 862 * Google maps API 863 * @param {string} selector 864 */ 865 googleMap: function (selector) { 866 867 selector = '.google-map'; 868 869 if($(selector).length) { 870 $(selector).each(function() { 871 var mapHeight = $(this).data('height'), 872 address = $(this).data('address'), 873 zoom = $(this).data('zoom'),
874 controls = $(this).data('disable-controls'), 875 scrollwheel = $(this).data('scrollwheel'), 876 marker = $(this).data('marker'), 877 markerTitle = $(this).data('marker-title'), 878 styles = $(this).data('styles'); 879 $(this).height(mapHeight); 880 $(this).gmap3({ 881 address: address, 882 zoom: zoom, 883 disableDefaultUI: controls, 884 scrollwheel: scrollwheel, 885 styles: styles 886 }).marker({ 887 address: address, 888 icon: marker 889 }).infowindow({ 890 content: markerTitle 891 }).then(function (infowindow) { 892 var map = this.get(0); 893 var marker = this.get(1); 894 marker.addListener('mouseover', function() { 895 infowindow.open(map, marker); 896 }); 897 marker.addListener('mouseout', function() { 898 infowindow.close(map, marker); 899 }); 900 }); 901 }); 902 } 903 } 904 } 905 906 907 /** 908 * Init theme core on document.ready 909 */ 910 $(function() { 911 theme.init(); 912 }); 913 914})(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.