1 2/* =================== 3Table Of Content 4====================== 501 PRELOADER 602 MEGA MENU 703 STICKY HEADER 804 TINY SLIDER 905 PARALLAX BACKGROUND 1006 STICKY BAR 1107 TOOLTIP 1208 POPOVER 1309 BACK TO TOP 1410 STICKY POST 1511 STICKY FOOTER 1612 GLIGHTBOX 1713 ISOTOPE 1814 FONT SIZE 1915 LAZY LOAD 2016 QUILL EDITOR 2117 VIDEO PLAYER 2218 OVERLAY SCROLLBAR 2319 DASHBOARD CHART 2420 TRAFFIC CHART 25====================== */ 26 27"use strict"; 28!function () { 29 30 window.Element.prototype.removeClass = function () { 31 let className = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", 32 selectors = this; 33 if (!(selectors instanceof HTMLElement) && selectors !== null) { 34 selectors = document.querySelector(selectors); 35 } 36 if (this.isVariableDefined(selectors) && className) { 37 selectors.classList.remove(className); 38 } 39 return this; 40 }, window.Element.prototype.addClass = function () { 41 let className = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", 42 selectors = this; 43 if (!(selectors instanceof HTMLElement) && selectors !== null) { 44 selectors = document.querySelector(selectors); 45 } 46 if (this.isVariableDefined(selectors) && className) { 47 selectors.classList.add(className); 48 } 49 return this; 50 }, window.Element.prototype.toggleClass = function () { 51 let className = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", 52 selectors = this; 53 if (!(selectors instanceof HTMLElement) && selectors !== null) { 54 selectors = document.querySelector(selectors); 55 } 56 if (this.isVariableDefined(selectors) && className) { 57 selectors.classList.toggle(className); 58 } 59 return this; 60 }, window.Element.prototype.isVariableDefined = function () { 61 return !!this && typeof (this) != 'undefined' && this != null; 62 } 63}(); 64 65// Get CSS var value 66var ThemeColor = function () { 67 return { 68 getCssVariableValue: function (e) { 69 var t = getComputedStyle(document.documentElement).getPropertyValue(e); 70 return t && t.length > 0 && (t = t.trim()), t; 71 } 72 }; 73}(); 74 75var e = { 76 init: function () { 77 e.preLoader(), 78 e.megaMenu(), 79 e.stickyHeader(), 80 e.tinySlider(), 81 e.parallaxBG(), 82 e.stickyBar(), 83 e.toolTipFunc(), 84 e.popOverFunc(), 85 e.backTotop(), 86 e.stickyPost(), 87 e.stickyFooter(), 88 e.lightBox(), 89 e.enableIsotope(), 90 e.zooming(), 91 e.lazyLoading(), 92 e.quill(), 93 e.videoPlyr() 94 e.overlayScrollbars(), 95 e.trafficsourcesChart(), 96 e.trafficstatsChart(); 97 }, 98 isVariableDefined: function (el) { 99 return typeof !!el && (el) != 'undefined' && el != null; 100 }, 101 getParents: function (el, selector, filter) { 102 const result = []; 103 const matchesSelector = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector; 104 105 // match start from parent 106 el = el.parentElement; 107 while (el && !matchesSelector.call(el, selector)) { 108 if (!filter) { 109 if (selector) { 110 if (matchesSelector.call(el, selector)) { 111 return result.push(el); 112 } 113 } else { 114 result.push(el); 115 } 116 } else { 117 if (matchesSelector.call(el, filter)) { 118 result.push(el); 119 } 120 } 121 el = el.parentElement; 122 if (e.isVariableDefined(el)) { 123 if (matchesSelector.call(el, selector)) { 124 return el; 125 } 126 } 127 128 } 129 return result; 130 }, 131 getNextSiblings: function (el, selector, filter) { 132 let sibs = []; 133 let nextElem = el.parentNode.firstChild; 134 const matchesSelector = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector; 135 do { 136 if (nextElem.nodeType === 3) continue; // ignore text nodes 137 if (nextElem === el) continue; // ignore elem of target 138 if (nextElem === el.nextElementSibling) { 139 if ((!filter || filter(el))) { 140 if (selector) { 141 if (matchesSelector.call(nextElem, selector)) { 142 return nextElem; 143 } 144 } else { 145 sibs.push(nextElem); 146 } 147 el = nextElem; 148 149 } 150 } 151 } while (nextElem = nextElem.nextSibling) 152 return sibs; 153 }, 154 on: function (selectors, type, listener) { 155 document.addEventListener("DOMContentLoaded", () => { 156 if (!(selectors instanceof HTMLElement) && selectors !== null) { 157 selectors = document.querySelector(selectors); 158 } 159 selectors.addEventListener(type, listener); 160 }); 161 }, 162 onAll: function (selectors, type, listener) { 163 document.addEventListener("DOMContentLoaded", () => {
164 document.querySelectorAll(selectors).forEach((element) => { 165 if (type.indexOf(',') > -1) { 166 let types = type.split(','); 167 types.forEach((type) => { 168 element.addEventListener(type, listener); 169 }); 170 } else { 171 element.addEventListener(type, listener); 172 } 173 174 175 }); 176 }); 177 }, 178 removeClass: function (selectors, className) { 179 if (!(selectors instanceof HTMLElement) && selectors !== null) { 180 selectors = document.querySelector(selectors); 181 } 182 if (e.isVariableDefined(selectors)) { 183 selectors.removeClass(className); 184 } 185 }, 186 removeAllClass: function (selectors, className) { 187 if (e.isVariableDefined(selectors) && (selectors instanceof HTMLElement)) { 188 document.querySelectorAll(selectors).forEach((element) => { 189 element.removeClass(className); 190 }); 191 } 192 193 }, 194 toggleClass: function (selectors, className) { 195 if (!(selectors instanceof HTMLElement) && selectors !== null) { 196 selectors = document.querySelector(selectors); 197 } 198 if (e.isVariableDefined(selectors)) { 199 selectors.toggleClass(className); 200 } 201 }, 202 toggleAllClass: function (selectors, className) { 203 if (e.isVariableDefined(selectors) && (selectors instanceof HTMLElement)) { 204 document.querySelectorAll(selectors).forEach((element) => { 205 element.toggleClass(className); 206 }); 207 } 208 }, 209 addClass: function (selectors, className) { 210 if (!(selectors instanceof HTMLElement) && selectors !== null) { 211 selectors = document.querySelector(selectors); 212 } 213 if (e.isVariableDefined(selectors)) { 214 selectors.addClass(className); 215 } 216 }, 217 select: function (selectors) { 218 return document.querySelector(selectors); 219 }, 220 selectAll: function (selectors) { 221 return document.querySelectorAll(selectors); 222 }, 223 224 // START: 01 Preloader 225 preLoader: function () { 226 window.onload = function () { 227 var preloader = e.select('.preloader'); 228 if (e.isVariableDefined(preloader)) { 229 preloader.className += ' animate__animated animate__fadeOut'; 230 setTimeout(function(){ 231 preloader.style.display = 'none'; 232 }, 200); 233 } 234 }; 235 }, 236 // END: Preloader 237 238 // START: 02 Mega Menu 239 megaMenu: function () { 240 e.onAll('.dropdown-menu a.dropdown-item.dropdown-toggle', 'click', function (event) { 241 var element = this; 242 event.preventDefault(); 243 event.stopImmediatePropagation(); 244 if (e.isVariableDefined(element.nextElementSibling) && !element.nextElementSibling.classList.contains("show")) { 245 const parents = e.getParents(element, '.dropdown-menu'); 246 e.removeClass(parents.querySelector('.show'), "show"); 247 if(e.isVariableDefined(parents.querySelector('.dropdown-opened'))){ 248 e.removeClass(parents.querySelector('.dropdown-opened'), "dropdown-opened"); 249 } 250 251 } 252 var $subMenu = e.getNextSiblings(element, ".dropdown-menu"); 253 e.toggleClass($subMenu, "show"); 254 $subMenu.previousElementSibling.toggleClass('dropdown-opened'); 255 var parents = e.getParents(element, 'li.nav-item.dropdown.show'); 256 if (e.isVariableDefined(parents) && parents.length > 0) { 257 e.on(parents, 'hidden.bs.dropdown', function (event) { 258 e.removeAllClass('.dropdown-submenu .show'); 259 }); 260 } 261 }); 262 }, 263 // END: Mega Menu 264 265 // START: 03 Sticky Header 266 stickyHeader: function () { 267 var stickyNav = e.select('.navbar-sticky'); 268 if (e.isVariableDefined(stickyNav)) { 269 var stickyHeight = stickyNav.offsetHeight; 270 stickyNav.insertAdjacentHTML('afterend', '<div id="sticky-space"></div>'); 271 var stickySpace = e.select('#sticky-space'); 272 if (e.isVariableDefined(stickySpace)) { 273 document.addEventListener('scroll', function (event) { 274 var scTop = window.pageYOffset || document.documentElement.scrollTop; 275 if (scTop >= 400) { 276 stickySpace.addClass('active'); 277 e.select("#sticky-space.active").style.height = stickyHeight + 'px'; 278 stickyNav.addClass('navbar-sticky-on'); 279 } else { 280 stickySpace.removeClass('active'); 281 stickySpace.style.height = '0px'; 282 stickyNav.removeClass("navbar-sticky-on"); 283 } 284 }); 285 } 286 } 287 }, 288 // END: Sticky Header 289 290 // START: 04 Tiny Slider 291 tinySlider: function () { 292 var $carousel = e.select('.tiny-slider-inner'); 293 if (e.isVariableDefined($carousel)) { 294 var tnsCarousel = e.selectAll('.tiny-slider-inner');
295 tnsCarousel.forEach(slider => { 296 var slider1 = slider; 297 var sliderMode = slider1.getAttribute('data-mode') ? slider1.getAttribute('data-mode') : 'carousel'; 298 var sliderAxis = slider1.getAttribute('data-axis') ? slider1.getAttribute('data-axis') : 'horizontal'; 299 var sliderSpace = slider1.getAttribute('data-gutter') ? slider1.getAttribute('data-gutter') : 30; 300 var sliderEdge = slider1.getAttribute('data-edge') ? slider1.getAttribute('data-edge') : 0; 301 302 var sliderItems = slider1.getAttribute('data-items') ? slider1.getAttribute('data-items') : 4; //option: number (items in all device) 303 var sliderItemsXl = slider1.getAttribute('data-items-xl') ? slider1.getAttribute('data-items-xl') : Number(sliderItems); //option: number (items in 1200 to end ) 304 var sliderItemsLg = slider1.getAttribute('data-items-lg') ? slider1.getAttribute('data-items-lg') : Number(sliderItemsXl); //option: number (items in 992 to 1199 ) 305 var sliderItemsMd = slider1.getAttribute('data-items-md') ? slider1.getAttribute('data-items-md') : Number(sliderItemsLg); //option: number (items in 768 to 991 ) 306 var sliderItemsSm = slider1.getAttribute('data-items-sm') ? slider1.getAttribute('data-items-sm') : Number(sliderItemsMd); //option: number (items in 576 to 767 ) 307 var sliderItemsXs = slider1.getAttribute('data-items-xs') ? slider1.getAttribute('data-items-xs') : Number(sliderItemsSm); //option: number (items in start to 575 ) 308 309 var sliderSpeed = slider1.getAttribute('data-speed') ? slider1.getAttribute('data-speed') : 500; 310 var sliderautoWidth = slider1.getAttribute('data-autowidth') === 'true'; //option: true or false 311 var sliderArrow = slider1.getAttribute('data-arrow') !== 'false'; //option: true or false 312 var sliderDots = slider1.getAttribute('data-dots') !== 'false'; //option: true or false 313 314 var sliderAutoPlay = slider1.getAttribute('data-autoplay') !== 'false'; //option: true or false 315 var sliderAutoPlayTime = slider1.getAttribute('data-autoplaytime') ? slider1.getAttribute('data-autoplaytime') : 4000; 316 var sliderHoverPause = slider1.getAttribute('data-hoverpause') === 'true'; //option: true or false 317 if (e.isVariableDefined(e.select('.custom-thumb'))) { 318 var sliderNavContainer = e.select('.custom-thumb'); 319 } 320 var sliderLoop = slider1.getAttribute('data-loop') !== 'false'; //option: true or false 321 var sliderRewind = slider1.getAttribute('data-rewind') === 'true'; //option: true or false 322 var sliderAutoHeight = slider1.getAttribute('data-autoheight') === 'true'; //option: true or false 323 var sliderfixedWidth = slider1.getAttribute('data-fixedwidth') === 'true'; //option: true or false 324 var sliderTouch = slider1.getAttribute('data-touch') !== 'false'; //option: true or false 325 var sliderDrag = slider1.getAttribute('data-drag') !== 'false'; //option: true or false 326 // Check if document DIR is RTL 327 var ifRtl = document.getElementsByTagName("html")[0].getAttribute("dir"); 328 var sliderDirection; 329 if (ifRtl === 'rtl') { 330 sliderDirection = 'rtl'; 331 } 332 333 var tnsSlider = tns({ 334 container: slider, 335 mode: sliderMode, 336 axis: sliderAxis, 337 gutter: sliderSpace, 338 edgePadding: sliderEdge, 339 speed: sliderSpeed, 340 autoWidth: sliderautoWidth, 341 controls: sliderArrow, 342 nav: sliderDots, 343 autoplay: sliderAutoPlay, 344 autoplayTimeout: sliderAutoPlayTime, 345 autoplayHoverPause: sliderHoverPause, 346 autoplayButton: false, 347 autoplayButtonOutput: false, 348 controlsPosition: top, 349 navContainer: sliderNavContainer, 350 navPosition: top, 351 autoplayPosition: top, 352 controlsText: [ 353 '<i class="fas fa-chevron-left"></i>', 354 '<i class="fas fa-chevron-right"></i>' 355 ], 356 loop: sliderLoop, 357 rewind: sliderRewind, 358 autoHeight: sliderAutoHeight, 359 fixedWidth: sliderfixedWidth, 360 touch: sliderTouch, 361 mouseDrag: sliderDrag, 362 arrowKeys: true, 363 items: sliderItems, 364 textDirection: sliderDirection, 365 lazyload: true, 366 lazyloadSelector: '.lazy', 367 responsive: { 368 0: { 369 items: Number(sliderItemsXs) 370 }, 371 576: { 372 items: Number(sliderItemsSm) 373 }, 374 768: { 375 items: Number(sliderItemsMd) 376 }, 377 992: { 378 items: Number(sliderItemsLg) 379 }, 380 1200: { 381 items: Number(sliderItemsXl) 382 } 383 } 384 }); 385 }); 386 } 387 }, 388 // END: Tiny Slider 389
390 // START: 05 Parallax Background 391 parallaxBG: function () { 392 var parBG = e.select('.bg-parallax'); 393 if (e.isVariableDefined(parBG)) { 394 jarallax(e.selectAll('.bg-parallax'), { 395 speed: 0.6 396 }); 397 } 398 }, 399 // END: Parallax Background 400 401 // START: 06 Sticky Bar 402 stickyBar: function () { 403 var sb = e.select('[data-sticky]'); 404 if (e.isVariableDefined(sb)) { 405 var sticky = new Sticky('[data-sticky]'); 406 } 407 }, 408 // END: Sticky Bar 409 410 // START: 07 Tooltip 411 // Enable tooltips everywhere via data-toggle attribute 412 toolTipFunc: function () { 413 var tooltipTriggerList = [].slice.call(e.selectAll('[data-bs-toggle="tooltip"]')) 414 var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { 415 return new bootstrap.Tooltip(tooltipTriggerEl) 416 }) 417 }, 418 // END: Tooltip 419 420 // START: 08 Popover 421 // Enable popover everywhere via data-toggle attribute 422 popOverFunc: function () { 423 var popoverTriggerList = [].slice.call(e.selectAll('[data-bs-toggle="popover"]')) 424 var popoverList = popoverTriggerList.map(function (popoverTriggerEl) { 425 return new bootstrap.Popover(popoverTriggerEl) 426 }) 427 }, 428 // END: Popover 429 430 // START: 09 Back to Top 431 backTotop: function () { 432 var scrollpos = window.scrollY; 433 var backBtn = e.select('.back-top'); 434 if (e.isVariableDefined(backBtn)) { 435 var add_class_on_scroll = () => backBtn.addClass("back-top-show"); 436 var remove_class_on_scroll = () => backBtn.removeClass("back-top-show"); 437 438 window.addEventListener('scroll', function () { 439 scrollpos = window.scrollY; 440 if (scrollpos >= 800) { 441 add_class_on_scroll() 442 } else { 443 remove_class_on_scroll() 444 } 445 }); 446 447 backBtn.addEventListener('click', () => window.scrollTo({ 448 top: 0, 449 behavior: 'smooth', 450 })); 451 } 452 }, 453 // END: Back to Top 454 455 // START: 10 Sticky post 456 stickyPost: function () { 457 var scrollpos = window.scrollY; 458 var sp = e.select('.sticky-post'); 459 if (e.isVariableDefined(sp)) { 460 var add_class_on_scroll = () => sp.addClass("sticky-post-sticked"); 461 var remove_class_on_scroll = () => sp.removeClass("sticky-post-sticked"); 462 463 window.addEventListener('scroll', function () { 464 scrollpos = window.scrollY; 465 if (scrollpos >= 1400) { 466 add_class_on_scroll() 467 } else { 468 remove_class_on_scroll() 469 } 470 }); 471 } 472 }, 473 // END: Sticky Post 474 475 // START: 11 Sticky Footer 476 stickyFooter: function () { 477 var fixedFooter = e.select('.footer-sticky'); 478 if (e.isVariableDefined(fixedFooter)) { 479 window.addEventListener("load", function () { 480 window.dispatchEvent(new Event('resize')); 481 }); 482 window.addEventListener('resize', function (event) { 483 var screenWidth = window.outerWidth; 484 var footerHeight = fixedFooter.offsetHeight - 1; 485 if (screenWidth >= 768) { 486 document.getElementsByTagName('main')[0].style.marginBottom = footerHeight + 'px'; 487 } 488 }); 489 } 490 }, 491 // END: Sticky Footer 492 493 // START: 12 GLightbox 494 lightBox: function () { 495 var lightbox = GLightbox(); 496 lightbox.on('open', (target) => { 497 console.log('lightbox opened'); 498 }); 499 var lightboxDescription = GLightbox({ 500 selector: '.glightbox2' 501 }); 502 }, 503 /* 504 lightBox: function () { 505 var light = e.select('[data-glightbox]'); 506 if (e.isVariableDefined(light)) { 507 var lb = GLightbox({ 508 selector: '*[data-glightbox]', 509 openEffect: 'fade', 510 closeEffect: 'fade' 511 }); 512 } 513 },*/ 514 // END: GLightbox 515 516 // START: 13 Isotope 517 enableIsotope: function () { 518 var isGridItem = e.select('.grid-item'); 519 if (e.isVariableDefined(isGridItem)) { 520 521 // Code only for normal Grid 522 var onlyGrid = e.select('[data-isotope]'); 523 if (e.isVariableDefined(onlyGrid)) { 524 var allGrid = e.selectAll("[data-isotope]");
525 allGrid.forEach(gridItem => { 526 var gridItemData = gridItem.getAttribute('data-isotope'); 527 var gridItemDataObj = JSON.parse(gridItemData); 528 var iso = new Isotope(gridItem, { 529 itemSelector: '.grid-item', 530 layoutMode: gridItemDataObj.layoutMode 531 }); 532 533 imagesLoaded(gridItem).on('progress', function () { 534 // layout Isotope after each image loads 535 iso.layout(); 536 }); 537 }); 538 } 539 540 // Code only for normal Grid 541 var onlyGridFilter = e.select('.grid-menu'); 542 if (e.isVariableDefined(onlyGridFilter)) { 543 var filterMenu = e.selectAll('.grid-menu'); 544 filterMenu.forEach(menu => { 545 var filterContainer = menu.getAttribute('data-target'); 546 var a = menu.dataset.target; 547 var b = e.select(a); 548 var filterContainerItemData = b.getAttribute('data-isotope'); 549 var filterContainerItemDataObj = JSON.parse(filterContainerItemData); 550 var filter = new Isotope(filterContainer, { 551 itemSelector: '.grid-item', 552 transitionDuration: '0.7s', 553 layoutMode: filterContainerItemDataObj.layoutMode 554 }); 555 556 var menuItems = menu.querySelectorAll('li a'); 557 menuItems.forEach(menuItem => { 558 menuItem.addEventListener('click', function (event) { 559 var filterValue = menuItem.getAttribute('data-filter'); 560 filter.arrange({filter: filterValue}); 561 menuItems.forEach((control) => control.removeClass('active')); 562 menuItem.addClass('active'); 563 }); 564 }); 565 566 imagesLoaded(filterContainer).on('progress', function () { 567 filter.layout(); 568 }); 569 }); 570 } 571 572 } 573 }, 574 // END: Isotope 575 576 // START: 14 Font size 577 zooming: function () { 578 const doc = document.documentElement; 579 var radios = document.querySelectorAll('input[type=radio][name="fntradio"]'); 580 radios.forEach(radio => { 581 radio.addEventListener("change", function() { 582 var idZ = radio.getAttribute('id'); 583 if(idZ == 'font-sm') { 584 doc.classList.remove('font-lg'); 585 doc.classList.add('font-sm'); 586 } else if(idZ == 'font-default') { 587 doc.classList.remove('font-sm','font-lg'); 588 } else if(idZ == 'font-lg') { 589 doc.classList.remove('font-sm'); 590 doc.classList.add('font-lg'); 591 } 592 }); 593 }); 594 }, 595 // END: Font size 596 597 // START: 15 Lazy Load 598 lazyLoading: function () { 599 var lazLoad = e.select('.lazy'); 600 if (e.isVariableDefined(lazLoad)) { 601 var lazyLoadInstance = new LazyLoad({ 602 }); 603 } 604 }, 605 // END: Lazy Load 606 607 // START: 16 Quill Editor 608 quill: function () { 609 var ql = e.select('#quilleditor'); 610 if (e.isVariableDefined(ql)) { 611 var editor = new Quill('#quilleditor', { 612 modules: { toolbar: '#quilltoolbar' }, 613 theme: 'snow' 614 }); 615 } 616 }, 617 // END: Quill Editor 618 619 // START: 17 Video player 620 videoPlyr: function () { 621 var vdp = e.select('.player-wrapper'); 622 if (e.isVariableDefined(vdp)) { 623 // youtube 624 const playerYoutube = Plyr.setup('.player-youtube', {}); 625 window.player = playerYoutube; 626 627 // Vimeo 628 const playerVimeo = Plyr.setup('.player-vimeo', {}); 629 window.player = playerVimeo; 630 631 // HTML video 632 const playerHtmlvideo = Plyr.setup('.player-html', { 633 captions: {active: true} 634 }); 635 window.player = playerHtmlvideo; 636 637 // HTML audio 638 const playerHtmlaudio = Plyr.setup('.player-audio', {}); 639 window.player = playerHtmlaudio; 640 } 641 }, 642 // END: Video player 643 644 // START: 18 Overlay scrollbar 645 overlayScrollbars: function () { 646 var os = e.select('.custom-scrollbar'); 647 if (os) { 648 document.addEventListener("DOMContentLoaded", function() { 649 var cs = document.querySelectorAll('.custom-scrollbar'); 650 cs.forEach(c => { 651 OverlayScrollbars(c, { 652 scrollbars: { 653 autoHide: 'leave', 654 autoHideDelay: 200 655 }, 656 overflowBehavior : { 657 x : "visible-hidden", 658 y : "scroll" 659 } 660 }); 661 }); 662 }); 663 } 664 }, 665 // END: Overlay scrollbar 666 667 // START: 19 Dashboard Chart 668 trafficsourcesChart: function () {
669 var ac = e.select('#apexChartTrafficSources'); 670 if (e.isVariableDefined(ac)) { 671 var options = { 672 colors: [ 673 '#2163e8', '#0cbc87', '#d6293e', '#f7c32e' 674 ], 675 labels: ['Search', 'Direct', 'Social', 'Display ads'], 676 series: [44, 55, 41, 17], 677 legend: { 678 show: false, 679 position: 'right' 680 }, 681 chart: { 682 height: 300, 683 type: 'donut', 684 }, 685 plotOptions: { 686 pie: { 687 donut: { 688 size: '75%', 689 }, 690 offsetY: 20, 691 }, 692 stroke: { 693 colors: undefined 694 } 695 }, 696 stroke:{ 697 show: false 698 }, 699 dataLabels: { 700 enabled: false 701 }, 702 responsive: [{ 703 breakpoint: 480, 704 options: { 705 chart: { 706 height: 200 707 }, 708 legend: { 709 show: false 710 } 711 } 712 }] 713 }; 714 var chart = new ApexCharts(document.querySelector("#apexChartTrafficSources"), options); 715 chart.render(); 716 } 717 }, 718 // END: Dashboard Chart 719 720 // START: 20 Traffic Chart 721 trafficstatsChart: function () { 722 var cpv = e.select('#apexChartTrafficStats'); 723 if (e.isVariableDefined(cpv)) { 724 var options = { 725 colors: [ 726 '#2163e8', 727 ], 728 series: [{ 729 name: 'Users', 730 data: [100, 401, 305, 501, 409, 602, 609, 901, 848, 602, 809, 901] 731 }], 732 chart: { 733 height: 320, 734 type: 'area', 735 toolbar: { 736 show: false 737 } 738 }, 739 grid: { 740 strokeDashArray: 4, 741 position: 'back' 742 }, 743 dataLabels: { 744 enabled: false 745 }, 746 stroke: { 747 curve: 'smooth' 748 }, 749 legend: { 750 show: true, 751 horizontalAlign: 'right', 752 position: 'top', 753 labels: { 754 }, 755 markers: { 756 width: 8, 757 height: 8 758 } 759 }, 760 xaxis: { 761 labels: { 762 show: true 763 }, 764 axisBorder: { 765 show: false 766 }, 767 categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 768 }, 769 tooltip: { 770 x: { 771 format: 'dd/MM/yy HH:mm' 772 }, 773 }, 774 }; 775 var chart = new ApexCharts(document.querySelector("#apexChartTrafficStats"), options); 776 chart.render(); 777 } 778 }, 779 // END: Traffic Chart 780 781}; 782e.init();
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.