1/* Template Name: Landrick - Saas & Software Landing Page Template 2 Author: Shreethemes 3 E-mail: [email protected] 4 Created: August 2019 5 Version: 4.2.0 6 Updated: March 2022 7 File Description: Common JS file of the template(plugins.init.js) 8*/ 9 10 11/*********************************/ 12/* INDEX */ 13/*================================ 14 * 01. Tiny Slider * 15 * 02. Swiper slider * 16 * 03. Countdown Js * (For Comingsoon pages) 17 * 04. Maintenance js * (For Maintenance page) 18 * 05. Data Counter * 19 * 06. Datepicker js * 20 * 07. Gallery filter js * (For Portfolio pages) 21 * 08. Tobii lightbox * (For Portfolio pages) 22 * 09. CK Editor * (For Compose mail) 23 * 10. WOW JS Animation * 24 * 11. Typed Text animation (animation) * 25 * 12. Validation Form * 26 * 13. Switcher Pricing Plan* 27 * 14. Cookies Policy * 28 * 15. Back Button * 29 * 16. Particles * 30 * 17. ApexCharts * (chart for cryptocurrency) 31 * 18. Switcher JS * 32 ================================*/ 33 34//=========================================// 35/* 01) Tiny slider */ 36//=========================================// 37 38if(document.getElementsByClassName('tiny-single-item').length > 0) { 39 var slider = tns({ 40 container: '.tiny-single-item', 41 items: 1, 42 controls: false, 43 mouseDrag: true, 44 loop: true, 45 rewind: true, 46 autoplay: true, 47 autoplayButtonOutput: false, 48 autoplayTimeout: 3000, 49 navPosition: "bottom", 50 speed: 400, 51 gutter: 16, 52 }); 53}; 54 55if(document.getElementsByClassName('tiny-two-item').length > 0) { 56 var slider = tns({ 57 container: '.tiny-two-item', 58 controls: false, 59 mouseDrag: true, 60 loop: true, 61 rewind: true, 62 autoplay: true, 63 autoplayButtonOutput: false, 64 autoplayTimeout: 3000, 65 navPosition: "bottom", 66 speed: 400, 67 gutter: 12, 68 responsive: { 69 992: { 70 items: 2 71 }, 72 73 767: { 74 items: 2 75 }, 76 77 320: { 78 items: 1 79 }, 80 }, 81 }); 82}; 83 84if(document.getElementsByClassName('tiny-three-item').length > 0) { 85 var slider = tns({ 86 container: '.tiny-three-item', 87 controls: false, 88 mouseDrag: true, 89 loop: true, 90 rewind: true, 91 autoplay: true, 92 autoplayButtonOutput: false, 93 autoplayTimeout: 3000, 94 navPosition: "bottom", 95 speed: 400, 96 gutter: 12, 97 responsive: { 98 992: { 99 items: 3 100 }, 101 102 767: { 103 items: 2 104 }, 105 106 320: { 107 items: 1 108 }, 109 }, 110 }); 111}; 112 113if(document.getElementsByClassName('tiny-four-item').length > 0) { 114 var slider = tns({ 115 container: '.tiny-four-item', 116 controls: false, 117 mouseDrag: true, 118 loop: true, 119 rewind: true, 120 autoplay: true, 121 autoplayButtonOutput: false, 122 autoplayTimeout: 3000, 123 navPosition: "bottom", 124 speed: 400, 125 gutter: 12, 126 responsive: { 127 992: { 128 items: 4 129 }, 130 131 767: { 132 items: 2 133 }, 134 135 320: { 136 items: 1 137 }, 138 }, 139 }); 140}; 141 142 143 144if(document.getElementsByClassName('roadmaps').length > 0) { 145 var slider = tns({ 146 container: '.roadmaps', 147 controls: false, 148 mouseDrag: true, 149 loop: true, 150 rewind: true, 151 autoplay: true, 152 autoplayButtonOutput: false, 153 autoplayTimeout: 3000, 154 nav: false, 155 speed: 400, 156 gutter: 12, 157 responsive: { 158 992: { 159 items: 4 160 }, 161 162 767: { 163 items: 2 164 }, 165 166 320: { 167 items: 1 168 }, 169 }, 170 });
171}; 172 173if(document.getElementsByClassName('tiny-six-item').length > 0) { 174 var slider = tns({ 175 container: '.tiny-six-item', 176 controls: false, 177 mouseDrag: true, 178 loop: true, 179 rewind: true, 180 autoplay: true, 181 autoplayButtonOutput: false, 182 autoplayTimeout: 3000, 183 navPosition: "bottom", 184 speed: 400, 185 gutter: 12, 186 responsive: { 187 992: { 188 items: 6 189 }, 190 191 767: { 192 items: 3 193 }, 194 195 320: { 196 items: 1 197 }, 198 }, 199 }); 200}; 201 202 203 204if(document.getElementsByClassName('tiny-twelve-item').length > 0) { 205 var slider = tns({ 206 container: '.tiny-twelve-item', 207 controls: true, 208 mouseDrag: true, 209 loop: true, 210 rewind: true, 211 autoplay: true, 212 autoplayButtonOutput: false, 213 autoplayTimeout: 3000, 214 navPosition: "bottom", 215 controlsText: ['<i class="mdi mdi-chevron-left "></i>', '<i class="mdi mdi-chevron-right"></i>'], 216 nav: false, 217 speed: 400, 218 gutter: 0, 219 responsive: { 220 1025: { 221 items: 10 222 }, 223 224 992: { 225 items: 8 226 }, 227 228 767: { 229 items: 6 230 }, 231 232 320: { 233 items: 2 234 }, 235 }, 236 }); 237}; 238 239 240 241if(document.getElementsByClassName('tiny-five-item').length > 0) { 242 var slider = tns({ 243 container: '.tiny-five-item', 244 controls: true, 245 mouseDrag: true, 246 loop: true, 247 rewind: true, 248 autoplay: true, 249 autoplayButtonOutput: false, 250 autoplayTimeout: 3000, 251 navPosition: "bottom", 252 controlsText: ['<i class="mdi mdi-chevron-left "></i>', '<i class="mdi mdi-chevron-right"></i>'], 253 nav: false, 254 speed: 400, 255 gutter: 0, 256 responsive: { 257 1025: { 258 items: 5 259 }, 260 261 992: { 262 items: 4 263 }, 264 265 767: { 266 items: 3 267 }, 268 269 320: { 270 items: 2 271 }, 272 }, 273 }); 274}; 275 276//=========================================// 277/* 02) Swiper slider */ 278//=========================================// 279 280try { 281 var menu = []; 282 var interleaveOffset = 0.5; 283 var swiperOptions = { 284 loop: true, 285 speed: 1000, 286 parallax: true, 287 autoplay: { 288 delay: 6500, 289 disableOnInteraction: false, 290 }, 291 watchSlidesProgress: true, 292 pagination: { 293 el: '.swiper-pagination', 294 clickable: true, 295 renderBullet: function (index, className) { 296 return '<span class="' + className + '">' + 0 + (index + 1) + '</span>'; 297 }, 298 }, 299 300 navigation: { 301 nextEl: '.swiper-button-next', 302 prevEl: '.swiper-button-prev', 303 }, 304 305 on: { 306 progress: function () { 307 var swiper = this; 308 for (var i = 0; i < swiper.slides.length; i++) { 309 var slideProgress = swiper.slides[i].progress; 310 var innerOffset = swiper.width * interleaveOffset; 311 var innerTranslate = slideProgress * innerOffset; 312 swiper.slides[i].querySelector(".slide-inner").style.transform = 313 "translate3d(" + innerTranslate + "px, 0, 0)"; 314 } 315 }, 316 317 touchStart: function () { 318 var swiper = this; 319 for (var i = 0; i < swiper.slides.length; i++) { 320 swiper.slides[i].style.transition = ""; 321 } 322 }, 323 324 setTransition: function (speed) { 325 var swiper = this; 326 for (var i = 0; i < swiper.slides.length; i++) { 327 swiper.slides[i].style.transition = speed + "ms"; 328 swiper.slides[i].querySelector(".slide-inner").style.transition = 329 speed + "ms"; 330 } 331 } 332 } 333 }; 334 335 // DATA BACKGROUND IMAGE 336 var swiper = new Swiper(".swiper-container", swiperOptions); 337 338 let data = document.querySelectorAll(".slide-bg-image") 339 data.forEach((e) => { 340 e.style.backgroundImage = 341 `url(${e.getAttribute('data-background')})`; 342 }) 343} catch (err) { 344 345} 346 347//=========================================// 348/*/* 03) Countdown js */ 349//=========================================// 350 351try { 352 if(document.getElementById("days")){ 353 // The data/time we want to countdown to 354 var eventCountDown = new Date("December 25, 2022 16:37:52").getTime(); 355 356 // Run myfunc every second 357 var myfunc = setInterval(function () { 358 359 var now = new Date().getTime(); 360 var timeleft = eventCountDown - now; 361 362 // Calculating the days, hours, minutes and seconds left 363 var days = Math.floor(timeleft / (1000 * 60 * 60 * 24)); 364 var hours = Math.floor((timeleft % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 365 var minutes = Math.floor((timeleft % (1000 * 60 * 60)) / (1000 * 60)); 366 var seconds = Math.floor((timeleft % (1000 * 60)) / 1000); 367 368 // Result is output to the specific element 369 document.getElementById("days").innerHTML = days + "<p class='count-head'>Days</p> " 370 document.getElementById("hours").innerHTML = hours + "<p class='count-head'>Hours</p> " 371 document.getElementById("mins").innerHTML = minutes + "<p class='count-head'>Mins</p> " 372 document.getElementById("secs").innerHTML = seconds + "<p class='count-head'>Secs</p> " 373 374 // Display the message when countdown is over 375 if (timeleft < 0) { 376 clearInterval(myfunc); 377 document.getElementById("days").innerHTML = "" 378 document.getElementById("hours").innerHTML = "" 379 document.getElementById("mins").innerHTML = "" 380 document.getElementById("secs").innerHTML = "" 381 document.getElementById("end").innerHTML = "00:00:00:00"; 382 } 383 }, 1000); 384 } 385} catch (err) { 386 387} 388 389 390//=========================================// 391/*/* 04) Maintenance js */ 392//=========================================// 393 394try { 395 if(document.getElementById("maintenance")){ 396 var seconds = 3599; 397 function secondPassed() { 398 var minutes = Math.round((seconds - 30) / 60); 399 var remainingSeconds = seconds % 60; 400 if (remainingSeconds < 10) { 401 remainingSeconds = "0" + remainingSeconds; 402 } 403 document.getElementById('maintenance').innerHTML = minutes + ":" + remainingSeconds; 404 if (seconds == 0) { 405 clearInterval(countdownTimer); 406 document.getElementById('maintenance').innerHTML = "Buzz Buzz"; 407 } else { 408 seconds--; 409 } 410 } 411 var countdownTimer = setInterval('secondPassed()', 1000); 412 } 413} catch (err) { 414 415} 416 417//=========================================// 418/*/* 05) Data Counter */ 419//=========================================// 420 421try { 422 const counter = document.querySelectorAll('.counter-value'); 423 const speed = 2500; // The lower the slower 424 425 counter.forEach(counter_value => { 426 const updateCount = () => { 427 const target = +counter_value.getAttribute('data-target'); 428 const count = +counter_value.innerText; 429 430 // Lower inc to slow and higher to slow 431 var inc = target / speed; 432 433 if (inc < 1) { 434 inc = 1; 435 } 436 437 // Check if target is reached 438 if (count < target) { 439 // Add inc to count and output in counter_value 440 counter_value.innerText = (count + inc).toFixed(0); 441 // Call function every ms 442 setTimeout(updateCount, 1); 443 } else { 444 counter_value.innerText = target; 445 } 446 }; 447 448 updateCount(); 449 });
450} catch (err) { 451 452} 453 454 455//=========================================// 456/*/* 06) Datepicker js*/ 457//=========================================// 458 459try { 460 const start = datepicker('.start', { id: 1 }) 461 const end = datepicker('.end', { id: 1 }) 462} catch (err) { 463 464} 465 466 467//=========================================// 468/*/* 07) Gallery filter js */ 469//=========================================// 470 471try { 472 var Shuffle = window.Shuffle; 473 474 class Demo { 475 constructor(element) { 476 if(element){ 477 this.element = element; 478 this.shuffle = new Shuffle(element, { 479 itemSelector: '.picture-item', 480 sizer: element.querySelector('.my-sizer-element'), 481 }); 482 483 // Log events. 484 this.addShuffleEventListeners(); 485 this._activeFilters = []; 486 this.addFilterButtons(); 487 } 488 } 489 490 /** 491 * Shuffle uses the CustomEvent constructor to dispatch events. You can listen 492 * for them like you normally would (with jQuery for example). 493 */ 494 addShuffleEventListeners() { 495 this.shuffle.on(Shuffle.EventType.LAYOUT, (data) => { 496 console.log('layout. data:', data); 497 }); 498 this.shuffle.on(Shuffle.EventType.REMOVED, (data) => { 499 console.log('removed. data:', data); 500 }); 501 } 502 503 addFilterButtons() { 504 const options = document.querySelector('.filter-options'); 505 if (!options) { 506 return; 507 } 508 509 const filterButtons = Array.from(options.children); 510 const onClick = this._handleFilterClick.bind(this); 511 filterButtons.forEach((button) => { 512 button.addEventListener('click', onClick, false); 513 }); 514 } 515 516 _handleFilterClick(evt) { 517 const btn = evt.currentTarget; 518 const isActive = btn.classList.contains('active'); 519 const btnGroup = btn.getAttribute('data-group'); 520 521 this._removeActiveClassFromChildren(btn.parentNode); 522 523 let filterGroup; 524 if (isActive) { 525 btn.classList.remove('active'); 526 filterGroup = Shuffle.ALL_ITEMS; 527 } else { 528 btn.classList.add('active'); 529 filterGroup = btnGroup; 530 } 531 532 this.shuffle.filter(filterGroup); 533 } 534 535 _removeActiveClassFromChildren(parent) { 536 const { children } = parent; 537 for (let i = children.length - 1; i >= 0; i--) { 538 children[i].classList.remove('active'); 539 } 540 } 541 } 542 543 document.addEventListener('DOMContentLoaded', () => { 544 window.demo = new Demo(document.getElementById('grid')); 545 }); 546} catch (err) { 547 548} 549 550 551//=========================================// 552/*/* 08) Tobii lightbox */ 553//=========================================// 554 555try { 556 const tobii = new Tobii() 557} catch (err) { 558 559} 560 561 562//=========================================// 563/*/* 09) CK Editor */ 564//=========================================// 565 566try { 567 ClassicEditor 568 .create(document.querySelector('#editor')) 569 .catch(error => { 570 console.error(error); 571 }); 572} catch(err) { 573 574} 575 576 577//=========================================// 578/*/* 10) Wow JS Animation */ 579//=========================================// 580try { 581 new WOW().init(); 582} catch (error) { 583 584} 585 586 587//=========================================// 588/*/* 11) Typed Text animation (animation) */ 589//=========================================// 590 591try { 592 var TxtType = function (el, toRotate, period) { 593 this.toRotate = toRotate; 594 this.el = el; 595 this.loopNum = 0; 596 this.period = parseInt(period, 10) || 2000; 597 this.txt = ''; 598 this.tick(); 599 this.isDeleting = false; 600 }; 601 602 TxtType.prototype.tick = function () { 603 var i = this.loopNum % this.toRotate.length; 604 var fullTxt = this.toRotate[i]; 605 if (this.isDeleting) { 606 this.txt = fullTxt.substring(0, this.txt.length - 1); 607 } else { 608 this.txt = fullTxt.substring(0, this.txt.length + 1); 609 } 610 this.el.innerHTML = '<span class="wrap">' + this.txt + '</span>'; 611 var that = this; 612 var delta = 200 - Math.random() * 100; 613 if (this.isDeleting) { delta /= 2; } 614 if (!this.isDeleting && this.txt === fullTxt) { 615 delta = this.period; 616 this.isDeleting = true; 617 } else if (this.isDeleting && this.txt === '') { 618 this.isDeleting = false; 619 this.loopNum++; 620 delta = 500; 621 } 622 setTimeout(function () { 623 that.tick(); 624 }, delta); 625 }; 626 627 function typewrite() { 628 if (toRotate === 'undefined') { 629 changeText() 630 } 631 else 632 var elements = document.getElementsByClassName('typewrite'); 633 for (var i = 0; i < elements.length; i++) { 634 var toRotate = elements[i].getAttribute('data-type'); 635 var period = elements[i].getAttribute('data-period'); 636 if (toRotate) { 637 new TxtType(elements[i], JSON.parse(toRotate), period); 638 } 639 } 640 // INJECT CSS 641 var css = document.createElement("style"); 642 css.type = "text/css"; 643 css.innerHTML = ".typewrite > .wrap { border-right: 0.08em solid transparent}"; 644 document.body.appendChild(css); 645 }; 646 window.onload(typewrite()); 647} catch(err) { 648 649} 650 651 652//=========================================// 653/*/* 12) Validation Shop Checkouts */ 654//=========================================// 655 656(function () { 657 'use strict' 658 659 if(document.getElementsByClassName('needs-validation').length > 0) { 660 // Fetch all the forms we want to apply custom Bootstrap validation styles to 661 var forms = document.querySelectorAll('.needs-validation') 662 663 // Loop over them and prevent submission 664 Array.prototype.slice.call(forms) 665 .forEach(function (form) { 666 form.addEventListener('submit', function (event) { 667 if (!form.checkValidity()) { 668 event.preventDefault() 669 event.stopPropagation() 670 } 671 672 form.classList.add('was-validated') 673 }, false) 674 }) 675 } 676})() 677 678 679//=========================================// 680/*/* 13) Switcher Pricing Plans */ 681//=========================================// 682try { 683 var e = document.getElementById("filt-monthly"), 684 d = document.getElementById("filt-yearly"), 685 t = document.getElementById("switcher"), 686 m = document.getElementById("monthly"), 687 y = document.getElementById("yearly"); 688 689 e.addEventListener("click", function(){ 690 t.checked = false; 691 e.classList.add("toggler--is-active"); 692 d.classList.remove("toggler--is-active"); 693 m.classList.remove("hide"); 694 y.classList.add("hide"); 695 });
696 697 d.addEventListener("click", function(){ 698 t.checked = true; 699 d.classList.add("toggler--is-active"); 700 e.classList.remove("toggler--is-active"); 701 m.classList.add("hide"); 702 y.classList.remove("hide"); 703 }); 704 705 t.addEventListener("click", function(){ 706 d.classList.toggle("toggler--is-active"); 707 e.classList.toggle("toggler--is-active"); 708 m.classList.toggle("hide"); 709 y.classList.toggle("hide"); 710 }) 711} catch(err) { 712 713} 714 715//=========================================// 716/*/* 14) Cookies Policy */ 717//=========================================// 718 719try { 720 /* common fuctions */ 721 function el(selector) { return document.querySelector(selector) } 722 function els(selector) { return document.querySelectorAll(selector) } 723 function on(selector, event, action) { els(selector).forEach(e => e.addEventListener(event, action)) } 724 function cookie(name) { 725 let c = document.cookie.split('; ').find(cookie => cookie && cookie.startsWith(name+'=')) 726 return c ? c.split('=')[1] : false; 727 } 728 729 /* popup button hanler */ 730 on('.cookie-popup button', 'click', () => { 731 el('.cookie-popup').classList.add('cookie-popup-accepted'); 732 document.cookie = `cookie-accepted=true` 733 }); 734 735 /* popup init hanler */ 736 if (cookie('cookie-accepted') !== "true") { 737 el('.cookie-popup').classList.add('cookie-popup-not-accepted'); 738 } 739} catch (error) { 740 741} 742 743//=========================================// 744/*/* 15) Back Button */ 745//=========================================// 746document.getElementsByClassName("back-button")[0]?.addEventListener("click", (e)=>{ 747 if (document.referrer !== "") { 748 e.preventDefault(); 749 window.location.href = document.referrer; 750 } 751}) 752 753 754//=========================================// 755/* 16) Particles */ 756//=========================================// 757 758try { 759 particlesJS("particles-snow", { 760 "particles": { 761 "number": { 762 "value": 250, 763 "density": { 764 "enable": false, 765 "value_area": 800 766 } 767 }, 768 "color": { 769 "value": "#ffffff" 770 }, 771 "shape": { 772 "type": "circle", 773 "stroke": { 774 "width": 0, 775 "color": "#000000" 776 }, 777 "polygon": { 778 "nb_sides": 36 779 }, 780 "image": { 781 "src": "", 782 "width": 1000, 783 "height": 1000 784 } 785 }, 786 "opacity": { 787 "value": 0.5, 788 "random": false, 789 "anim": { 790 "enable": false, 791 "speed": 0.5, 792 "opacity_min": 1, 793 "sync": false 794 } 795 }, 796 "size": { 797 "value": 3.2, 798 "random": true, 799 "anim": { 800 "enable": false, 801 "speed": 20, 802 "size_min": 0.1, 803 "sync": false 804 } 805 }, 806 "line_linked": { 807 "enable": false, 808 "distance": 100, 809 "color": "#ffffff", 810 "opacity": 0.4, 811 "width": 2 812 }, 813 "move": { 814 "enable": true, 815 "speed": 1, 816 "direction": "bottom", 817 "random": false, 818 "straight": false, 819 "out_mode": "out", 820 "bounce": false, 821 "attract": { 822 "enable": false, 823 "rotateX": 800, 824 "rotateY": 1200 825 } 826 } 827 }, 828 "interactivity": { 829 "detect_on": "canvas", 830 "events": { 831 "onhover": { 832 "enable": false, 833 "mode": "repulse" 834 }, 835 "onclick": { 836 "enable": false, 837 "mode": "push" 838 }, 839 "resize": true 840 }, 841 "modes": { 842 "grab": { 843 "distance": 200, 844 "line_linked": { 845 "opacity": 1 846 } 847 }, 848 "bubble": { 849 "distance": 400, 850 "size": 40, 851 "duration": 2, 852 "opacity": 8, 853 "speed": 3 854 }, 855 "repulse": { 856 "distance": 71, 857 "duration": 0.4 858 }, 859 "push": { 860 "particles_nb": 4 861 }, 862 "remove": { 863 "particles_nb": 2 864 } 865 } 866 }, 867 "retina_detect": true 868 });
869} catch (error) { 870 871} 872 873//=========================================// 874/* 17) ApexCharts */ 875//=========================================// 876//Chart 1 877try { 878 var options = { 879 series: [{ 880 data: [20, 45, 40, 64, 35, 25, 35] 881 }], 882 chart: { 883 type: 'area', 884 height: 90, 885 width: '100%', 886 sparkline: { 887 enabled: true 888 } 889 }, 890 stroke: { 891 curve: 'smooth', 892 width: 3, 893 }, 894 colors: ['#52cc99'], 895 fill: { 896 type: 'gradient', 897 gradient: { 898 shadeIntensity: 1, 899 inverseColors: false, 900 opacityFrom: 0.45, 901 opacityTo: 0.05, 902 stops: [20, 100, 100, 100] 903 }, 904 }, 905 tooltip: { 906 fixed: { 907 enabled: false 908 }, 909 x: { 910 show: false 911 }, 912 y: { 913 title: { 914 formatter: function (seriesName) { 915 return '' 916 } 917 } 918 }, 919 marker: { 920 show: false 921 } 922 } 923 }; 924 925 var chart = new ApexCharts(document.querySelector("#chart-1"), options); 926 chart.render(); 927 928 929} catch (error) { 930 931} 932 933 934 935//chart 2 936 try { 937 var options = { 938 series: [{ 939 data: [10, 25, 30, 54, 45, 39, 15] 940 }], 941 chart: { 942 type: 'area', 943 height: 90, 944 width: '100%', 945 sparkline: { 946 enabled: true 947 } 948 }, 949 stroke: { 950 curve: 'smooth', 951 width: 3, 952 }, 953 colors: ['#ff6647'], 954 fill: { 955 type: 'gradient', 956 gradient: { 957 shadeIntensity: 1, 958 inverseColors: false, 959 opacityFrom: 0.45, 960 opacityTo: 0.05, 961 stops: [20, 100, 100, 100] 962 }, 963 }, 964 tooltip: { 965 fixed: { 966 enabled: false 967 }, 968 x: { 969 show: false 970 }, 971 y: { 972 title: { 973 formatter: function (seriesName) { 974 return '' 975 } 976 } 977 }, 978 marker: { 979 show: false 980 } 981 } 982 }; 983 984 var chart = new ApexCharts(document.querySelector("#chart-2"), options); 985 chart.render(); 986 987} catch (error) { 988 989} 990 991 992//Chart 3 993try { 994 var options = { 995 series: [{ 996 data: [15, 20, 10, 45, 20, 10, 5] 997 }], 998 chart: { 999 type: 'area', 1000 height: 90, 1001 width: '100%', 1002 sparkline: { 1003 enabled: true 1004 } 1005 }, 1006 stroke: { 1007 curve: 'smooth', 1008 width: 3, 1009 }, 1010 colors: ['#52cc99'], 1011 fill: { 1012 type: 'gradient', 1013 gradient: { 1014 shadeIntensity: 1, 1015 inverseColors: false, 1016 opacityFrom: 0.45, 1017 opacityTo: 0.05, 1018 stops: [20, 100, 100, 100] 1019 }, 1020 }, 1021 tooltip: { 1022 fixed: { 1023 enabled: false 1024 }, 1025 x: { 1026 show: false 1027 }, 1028 y: { 1029 title: { 1030 formatter: function (seriesName) { 1031 return '' 1032 } 1033 } 1034 }, 1035 marker: { 1036 show: false 1037 } 1038 } 1039 }; 1040 1041 var chart = new ApexCharts(document.querySelector("#chart-3"), options); 1042 chart.render(); 1043 1044} catch (error) { 1045 1046} 1047 1048 1049//Chart 4 1050try { 1051 var options = { 1052 series: [{ 1053 data: [3, 5, 7, 11, 8, 5, 7] 1054 }], 1055 chart: { 1056 type: 'area', 1057 height: 90, 1058 width: '100%', 1059 sparkline: { 1060 enabled: true 1061 } 1062 }, 1063 stroke: { 1064 curve: 'smooth', 1065 width: 3, 1066 }, 1067 colors: ['#ff6647'], 1068 fill: { 1069 type: 'gradient', 1070 gradient: { 1071 shadeIntensity: 1, 1072 inverseColors: false, 1073 opacityFrom: 0.45, 1074 opacityTo: 0.05, 1075 stops: [20, 100, 100, 100] 1076 }, 1077 }, 1078 tooltip: { 1079 fixed: { 1080 enabled: false 1081 }, 1082 x: { 1083 show: false 1084 }, 1085 y: { 1086 title: { 1087 formatter: function (seriesName) { 1088 return '' 1089 } 1090 } 1091 }, 1092 marker: { 1093 show: false 1094 } 1095 } 1096 }; 1097
1098 var chart = new ApexCharts(document.querySelector("#chart-4"), options); 1099 chart.render(); 1100 1101} catch (error) { 1102 1103} 1104 1105//=========================================// 1106/* 18) Switcher JS */ 1107//=========================================// 1108 1109try { 1110 function setColor(theme) { 1111 document.getElementById('color-opt').href = './css/colors/' + theme + '.css'; 1112 toggleSwitcher(false); 1113 }; 1114 1115 function setTheme(theme) { 1116 let bootstarpHref; 1117 let styleHref; 1118 1119 switch (theme) { 1120 case "style-dark": 1121 bootstarpHref = `assets/css/bootstrap-dark.min.css` 1122 styleHref = "assets/css/style-dark.min.css" 1123 break; 1124 case "style-rtl": 1125 bootstarpHref = `assets/css/bootstrap-rtl.min.css` 1126 styleHref = "assets/css/style-rtl.min.css" 1127 break; 1128 case "style-dark-rtl": 1129 bootstarpHref = `assets/css/bootstrap-dark-rtl.min.css` 1130 styleHref = "assets/css/style-dark-rtl.min.css" 1131 break; 1132 1133 default: 1134 bootstarpHref = `assets/css/bootstrap.min.css` 1135 styleHref = "assets/css/style.min.css" 1136 break; 1137 } 1138 1139 if(theme === "style-rtl" || theme === "style-dark-rtl" ) document.getElementsByTagName("html")[0].dir = "rtl" 1140 else document.getElementsByTagName("html")[0].dir = "ltr" 1141 1142 document.getElementsByClassName('theme-opt')[0].href =bootstarpHref 1143 document.getElementsByClassName('theme-opt')[1].href =styleHref 1144 toggleSwitcher(false); 1145 }; 1146} catch (error) { 1147 1148}
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.