PageSourceSearch

https://www.autickar.cz/assets/js/functions.js?v=1790018800

js autickar.cz collected 2026-09-24 09:17:16 UTC 28,247 bytes, 768 lines download raw bytes

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