1let map; 2async function initMap() { 3 if (document.getElementById("map") != undefined) { 4 //@ts-ignore 5 const { Map } = await google.maps.importLibrary("maps"); 6 7 const lat = Number(document.getElementById("map").dataset["lat"]); 8 const lng = Number(document.getElementById("map").dataset["lng"]); 9 map = new Map(document.getElementById("map"), { 10 center: { lat: lat, lng: lng }, 11 disableDefaultUI: true, 12 gestureHandling: "greedy", 13 zoom: 15, 14 styles: [ 15 { 16 elementType: "geometry", 17 stylers: [ 18 { 19 color: "#f5f5f5", 20 }, 21 ], 22 }, 23 { 24 elementType: "labels.icon", 25 stylers: [ 26 { 27 visibility: "off", 28 }, 29 ], 30 }, 31 { 32 elementType: "labels.text.fill", 33 stylers: [ 34 { 35 color: "#616161", 36 }, 37 ], 38 }, 39 { 40 elementType: "labels.text.stroke", 41 stylers: [ 42 { 43 color: "#f5f5f5", 44 }, 45 ], 46 }, 47 { 48 featureType: "administrative", 49 elementType: "geometry", 50 stylers: [ 51 { 52 visibility: "off", 53 }, 54 ], 55 }, 56 { 57 featureType: "poi", 58 stylers: [ 59 { 60 visibility: "off", 61 }, 62 ], 63 }, 64 { 65 featureType: "poi", 66 elementType: "geometry", 67 stylers: [ 68 { 69 color: "#eeeeee", 70 }, 71 ], 72 }, 73 { 74 featureType: "poi", 75 elementType: "labels.text.fill", 76 stylers: [ 77 { 78 color: "#757575", 79 }, 80 ], 81 }, 82 { 83 featureType: "poi.park", 84 elementType: "geometry", 85 stylers: [ 86 { 87 color: "#e5e5e5", 88 }, 89 ], 90 }, 91 { 92 featureType: "poi.park", 93 elementType: "labels.text.fill", 94 stylers: [ 95 { 96 color: "#9e9e9e", 97 }, 98 ], 99 }, 100 { 101 featureType: "road", 102 elementType: "geometry", 103 stylers: [ 104 { 105 color: "#ffffff", 106 }, 107 ], 108 }, 109 { 110 featureType: "road", 111 elementType: "labels.icon", 112 stylers: [ 113 { 114 visibility: "off", 115 }, 116 ], 117 }, 118 { 119 featureType: "road.arterial", 120 elementType: "geometry.fill", 121 stylers: [ 122 { 123 color: "#5d5d5d", 124 }, 125 ], 126 }, 127 { 128 featureType: "road.arterial", 129 elementType: "labels.text.fill", 130 stylers: [ 131 { 132 color: "#444444", 133 }, 134 ], 135 }, 136 { 137 featureType: "road.arterial", 138 elementType: "labels.text.stroke", 139 stylers: [ 140 { 141 color: "#ffffff", 142 }, 143 { 144 weight: 4.5, 145 }, 146 ], 147 }, 148 { 149 featureType: "road.highway", 150 elementType: "geometry", 151 stylers: [ 152 { 153 color: "#dadada", 154 }, 155 ], 156 }, 157 { 158 featureType: "road.highway", 159 elementType: "geometry.stroke", 160 stylers: [ 161 { 162 color: "#ffffff", 163 }, 164 ], 165 }, 166 { 167 featureType: "road.highway", 168 elementType: "labels.text.fill", 169 stylers: [ 170 { 171 color: "#616161", 172 }, 173 ], 174 }, 175 { 176 featureType: "road.local", 177 stylers: [ 178 { 179 color: "#cacaca", 180 }, 181 ], 182 }, 183 { 184 featureType: "road.local", 185 elementType: "geometry.stroke", 186 stylers: [ 187 { 188 color: "#999999", 189 }, 190 ], 191 }, 192 { 193 featureType: "road.local", 194 elementType: "labels.text.fill", 195 stylers: [ 196 { 197 color: "#444444", 198 }, 199 ], 200 }, 201 { 202 featureType: "road.local", 203 elementType: "labels.text.stroke", 204 stylers: [ 205 { 206 color: "#ffffff", 207 }, 208 ], 209 }, 210 { 211 featureType: "transit", 212 stylers: [ 213 { 214 visibility: "off", 215 }, 216 ], 217 }, 218 { 219 featureType: "transit.line", 220 elementType: "geometry", 221 stylers: [ 222 { 223 color: "#e5e5e5", 224 }, 225 ], 226 }, 227 { 228 featureType: "transit.station", 229 elementType: "geometry", 230 stylers: [ 231 { 232 color: "#eeeeee", 233 }, 234 ], 235 }, 236 { 237 featureType: "water", 238 elementType: "geometry", 239 stylers: [ 240 { 241 color: "#c9c9c9", 242 }, 243 ], 244 }, 245 { 246 featureType: "water", 247 elementType: "labels.text.fill", 248 stylers: [ 249 { 250 color: "#9e9e9e", 251 }, 252 ], 253 }, 254 ], 255 }); 256 const myLatLng = { lat: lat, lng: lng }; 257 258 const image = document.getElementById("map").dataset["image"]; 259 if (image) { 260 const icon = { 261 url: image, // url 262 scaledSize: new google.maps.Size(80, 80), // scaled size 263 origin: new google.maps.Point(0, 0), // origin 264 anchor: new google.maps.Point(40, 40), // anchor 265 }; 266 267 if ($(window).width() < 768) { 268 icon.scaledSize = new google.maps.Size(30, 30);
269 icon.anchor = new google.maps.Point(15, 15); 270 } 271 272 const marker = new google.maps.Marker({ 273 position: myLatLng, 274 map, 275 icon: icon, 276 title: "Marker", 277 }); 278 279 marker.addListener("click", ({ domEvent, latLng }) => { 280 const link = $("#map").attr("data-link"); 281 window.open(link, "_blank"); 282 }); 283 } 284 } 285} 286 287initMap(); 288 289$(document).ready(function () { 290 // Sample Contact Form 291 function validateEmail(email) { 292 var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 293 return re.test(email); 294 } 295 296 $(".form-contact").submit(function (event) { 297 const form = $(this); 298 event.preventDefault(); 299 300 const formData = { 301 name: form.find("[name='name']").val(), 302 vorname: form.find("[name='vorname']").val(), 303 email: form.find("[name='email']").val(), 304 phone: form.find("[name='phone']").val(), 305 project: form.find("[name='project']").val(), 306 request: form.find("[name='request']").val(), 307 currenturl: window.location.href, 308 }; 309 310 var error = false; 311 $(".errorinfo").html(""); 312 $(".error").removeClass("error"); 313 if (!validateEmail(formData.email)) { 314 error = true; 315 } 316 317 if (form.find(".errorinfo").length == 0) { 318 form.append("<div class='errorinfo'></div>"); 319 } 320 321 if (!error) { 322 $.post("/frontend/ajaxcontact", formData).done(function (data) { 323 const reponse = JSON.parse(data); 324 if (reponse.sendEmailStatus == true) { 325 form.find("input").not("[type='submit']").val(""); 326 form.find("textarea").val(""); 327 form.find("#checkbox").prop("checked", false); 328 329 form.find(".errorinfo").html('<p style="margin-top: 20px; color:green">' + reponse.sendEmailTitle + " " + reponse.sendEmailMessage + "</p>"); 330 } 331 }); 332 } else { 333 form.find(".errorinfo").html('<p style="margin-top: 20px; color:red">Bitte überprüfen Sie die Eingabefelder!</p>'); 334 } 335 }); 336 $(".form-application").submit(function (event) { 337 const form = $(this); 338 event.preventDefault(); 339 340 const formData = { 341 name: form.find("[name='name']").val(), 342 vorname: form.find("[name='vorname']").val(), 343 email: form.find("[name='email']").val(), 344 phone: form.find("[name='phone']").val(), 345 message: form.find("[name='message']").val(), 346 currenturl: window.location.href, 347 }; 348 349 var error = false; 350 $(".errorinfo").html(""); 351 $(".error").removeClass("error"); 352 if (!validateEmail(formData.email)) { 353 error = true; 354 } 355 356 if (form.find(".errorinfo").length == 0) { 357 form.append("<div class='errorinfo'></div>"); 358 } 359 360 if (!error) { 361 $.post("/frontend/ajaxapplication", formData).done(function (data) { 362 const reponse = JSON.parse(data); 363 if (reponse.sendEmailStatus == true) { 364 form.find("input").not("[type='submit']").val(""); 365 form.find("textarea").val(""); 366 form.find("#checkbox").prop("checked", false); 367 368 form.find(".errorinfo").html('<p style="margin-top: 20px; color:green">' + reponse.sendEmailTitle + " " + reponse.sendEmailMessage + "</p>"); 369 } 370 }); 371 } else { 372 form.find(".errorinfo").html('<p style="margin-top: 20px; color:red">Bitte überprüfen Sie die Eingabefelder!</p>'); 373 } 374 }); 375}); 376 377function playvideo(id) { 378 var vid = document.getElementById(id); 379 vid.play(); 380 381 $(".hidevideoplay-" + id).fadeOut(); 382 $(".showvideoplay-" + id).fadeIn(); 383} 384 385function resetvideo(id) { 386 $(".hidevideoplay-" + id).fadeIn(); 387 $(".showvideoplay-" + id).fadeOut(); 388} 389 390function stopvideo(id) { 391 var vid = document.getElementById(id); 392 vid.pause(); 393 $(".hidevideoplay-" + id).fadeIn(); 394 $(".showvideoplay-" + id).fadeOut(); 395} 396 397function scrollToView(targetElement, offset = 0) { 398 var target = $(targetElement); 399 if (target.length) { 400 var top = target.offset().top - $("#navigation").height(); 401 $("html,body").animate({ scrollTop: top }, 50); 402 return false;
403 } 404} 405 406$(document).ready(function () { 407 let navigationState = "light"; 408 409 let loadDoneCount = 0; 410 if ($("load").length > 0) { 411 $("load").each((ix, ele) => { 412 $(ele).load($(ele).attr("data-file"), () => { 413 loadDoneCount++; 414 if (loadDoneCount >= $("load").length) { 415 onLoadAllDone(); 416 } 417 }); 418 }); 419 } 420 421 function onLoadAllDone() { 422 var swiper = new Swiper(".hero-swiper", { 423 spaceBetween: 100, 424 navigation: { 425 nextEl: ".hero-button-next", 426 prevEl: ".hero-button-prev", 427 }, 428 }); 429 430 let optionMission = { 431 navigation: { 432 nextEl: ".mission-button-next", 433 prevEl: ".mission-button-prev", 434 }, 435 pagination: { 436 el: ".swiper-pagination", 437 type: "progressbar", 438 }, 439 breakpoints: { 440 0: { 441 slidesPerView: 1, 442 }, 443 676: { 444 slidesPerView: 2, 445 }, 446 1280: { 447 slidesPerView: 3, 448 }, 449 }, 450 }; 451 452 if ($(window).width() > 767) { 453 optionMission.freeMode = { 454 enabled: true, 455 sticky: true, 456 }; 457 optionMission.mousewheel = true; 458 } 459 var missionSwiper = new Swiper(".mission-swiper", optionMission); 460 461 let optionpartner = { 462 navigation: { 463 nextEl: ".partner-button-next", 464 prevEl: ".partner-button-prev", 465 }, 466 pagination: { 467 el: ".swiper-pagination", 468 type: "progressbar", 469 }, 470 breakpoints: { 471 0: { 472 slidesPerView: 3, 473 spaceBetween: "20%", 474 }, 475 676: { 476 slidesPerView: 5, 477 spaceBetween: "12.5%", 478 }, 479 }, 480 }; 481 482 if ($(window).width() > 767) { 483 optionpartner.freeMode = { 484 enabled: true, 485 sticky: true, 486 }; 487 optionpartner.mousewheel = true; 488 } 489 var partnerSwiper = new Swiper(".partner-swiper", optionpartner); 490 491 function clamp(input, min, max) { 492 return input < min ? min : input > max ? max : input; 493 } 494 function map(current, in_min, in_max, out_min, out_max) { 495 const mapped = ((current - in_min) * (out_max - out_min)) / (in_max - in_min) + out_min; 496 return clamp(mapped, out_min, out_max); 497 } 498 499 $(".progressBarContainer").each((ix, ele) => { 500 $(ele).scroll(() => { 501 let currY = $($(ele)).scrollTop(); 502 let postHeight = $(ele).height(); 503 let scrollHeight = $(ele).find(".content").height(); 504 let scrollPercent = (currY / (scrollHeight - postHeight)) * 100; 505 506 $(".progressBarContainer:eq(" + ix + ")") 507 .find(".progressFill") 508 .css("height", scrollPercent + "%"); 509 }); 510 }); 511 512 $(".popup-burger").on("click", () => { 513 if ($("body").hasClass("show-popup-navigation")) $("body").removeClass("show-popup-navigation"); 514 else { 515 $("body").addClass("show-popup-navigation"); 516 } 517 }); 518 519 $("[data-delay]").each((ix, ele) => { 520 $(ele).css("animation-delay", $(ele).attr("data-delay")); 521 }); 522 $("[data-duration]").each((ix, ele) => { 523 $(ele).css("animation-duration", $(ele).attr("data-duration")); 524 }); 525 526 $(".legal-button").each((ix, ele) => { 527 $(ele).on("click", () => { 528 showLegal(ix); 529 }); 530 }); 531 532 $(".footer-sub-menu-row").each((ix, ele) => { 533 $(ele).on("click", () => { 534 if ($(".footer-sub-menu:eq(" + ix + ")").hasClass("active")) $(".footer-sub-menu:eq(" + ix + ")").removeClass("active"); 535 else $(".footer-sub-menu:eq(" + ix + ")").addClass("active"); 536 }); 537 }); 538 539 $(".accordion-menu-row").each((ix, ele) => { 540 $(ele).on("click", () => { 541 let type = $(ele).attr("data-type"); 542 if (!type) type = "single"; 543 544 if (type == "single") { 545 let needToSetActive = false; 546 if (!$(".accordion-menu:eq(" + ix + ")").hasClass("active")) needToSetActive = true; 547 548 $(".accordion-menu").removeClass("active"); 549 $(".accordion-content-left").removeClass("active"); 550 551 if (needToSetActive) { 552 $(".accordion-menu:eq(" + ix + ")").addClass("active"); 553 $(".accordion-content-left:eq(" + ix + ")").addClass("active"); 554 } else { 555 $(".accordion-content-left:eq(" + ix + ")").addClass("active"); 556 } 557 } else { 558 if ($(".accordion-menu:eq(" + ix + ")").hasClass("active")) $(".accordion-menu:eq(" + ix + ")").removeClass("active"); 559 else $(".accordion-menu:eq(" + ix + ")").addClass("active"); 560 } 561 }); 562 }); 563 564 $(".accordion-menu-row-mobile").each((ix, ele) => { 565 $(ele).on("click", () => { 566 let needToSetActive = false;
567 if (!$(".accordion-menu-mobile:eq(" + ix + ")").hasClass("active")) needToSetActive = true; 568 569 $(".accordion-menu-mobile").removeClass("active"); 570 $(".accordion-content-left-mobile").removeClass("active"); 571 572 if (needToSetActive) { 573 $(".accordion-menu-mobile:eq(" + ix + ")").addClass("active"); 574 $(".accordion-content-left-mobile:eq(" + ix + ")").addClass("active"); 575 } else { 576 $(".accordion-content-left-mobile:eq(" + ix + ")").addClass("active"); 577 } 578 }); 579 }); 580 581 let startAutoChange = false; 582 var isManual = false; 583 function setStep(ix, ele) { 584 $(".step-menu").removeClass("active"); 585 $(ele).addClass("active"); 586 $(".step-content").removeClass("active"); 587 $(".step-content:eq(" + ix + ")").addClass("active"); 588 // $(".step-content:eq(" + ix + ")").addClass("animated"); 589 } 590 591 $(".step-menu").each((ix, ele) => { 592 $(ele).on("click", () => { 593 isManual = true; 594 setStep(ix, ele); 595 }); 596 }); 597 598 $.fn.isInViewport = function () { 599 var elementTop = $(this).offset().top; 600 var elementBottom = elementTop + $(this).outerHeight(); 601 602 var viewportTop = $(window).scrollTop(); 603 var viewportBottom = viewportTop + $(window).height(); 604 605 return elementBottom > viewportTop && elementTop < viewportBottom; 606 }; 607 608 let indexStep = 0; 609 function setAutoChangeStep() { 610 let autoChangeInterval = setInterval(() => { 611 if (isManual == true) { 612 clearInterval(autoChangeInterval); 613 return; 614 } 615 setStep(indexStep, ".step-menu:eq(" + indexStep + ")"); 616 indexStep++; 617 if (indexStep > $(".step-menu").length - 1) indexStep = 0; 618 }, 5000); 619 } 620 621 function fadeInLine(line) { 622 const element = $("<p /> ", { 623 html: line.trim(), 624 style: "opacity: 0", 625 }).appendTo($greeting); 626 627 element.animate({ opacity: 1 }, 500); 628 } 629 630 let i = 0; 631 632 // function rotateLines(interval) { 633 // setTimeout(() => { 634 // if (i >= lines.length - 1) { 635 // fadeInLine(lines[i]); 636 // // i = 0; 637 // // interval = 2000; 638 // // setTimeout(() => { 639 // // $greeting.empty(); 640 // // }, interval); 641 642 // return; 643 // } else { 644 // fadeInLine(lines[i]); 645 // i++; 646 // interval = 500; 647 // } 648 // rotateLines(interval); 649 // }, interval); 650 // } 651 652 // const $greeting = $(".greeting"); 653 654 // if ($greeting.length > 0) { 655 // $greeting.html($greeting.html().replace("<br>", "\n")); 656 // const text = $greeting.html(); 657 // const lines = text.split("<br>").filter((e) => e.replace(/\s+/, "")); 658 659 // setTimeout(() => { 660 // let intervalCheck = setInterval(() => { 661 // if ($(".greeting").css("visibility") == "visible") { 662 // $greeting.empty(); 663 // rotateLines(); 664 665 // clearInterval(intervalCheck); 666 // } 667 // }, 1000); 668 // }, 5000); 669 // } 670 671 if ($(".step-menu").length > 0) { 672 if ($(window).width() > 767) { 673 $(window).on("resize scroll", function () { 674 if (startAutoChange) return; 675 676 if ($(".step-menu").isInViewport()) { 677 startAutoChange = true; 678 setAutoChangeStep(); 679 } else { 680 } 681 }); 682 } 683 } 684 685 let saveState = []; 686 function setPopupState(targetclass, show, query_popup) { 687 if (saveState[query_popup] == show) return; 688 689 saveState[query_popup] = show; 690 691 if (show == true) { 692 $("body").addClass(targetclass); 693 $(query_popup).removeClass("fadeOut").removeClass("animated"); 694 $(query_popup).addClass("fadeIn").addClass("animated"); 695 } 696 if (show == false) { 697 $(query_popup).removeClass("fadeIn").removeClass("animated"); 698 $(query_popup).addClass("fadeOut").addClass("animated"); 699 setTimeout(() => { 700 $("body").removeClass(targetclass); 701 }, 500); 702 } 703 } 704 705 $('a[href="#show-legal-form"]').attr("data-mce-href", null); 706 $('a[href="#show-legal-form"]').on("click", () => { 707 setPopupState("show-datenschutz", true, "#legaldatenschutz"); 708 }); 709 710 $("#legalagb") 711 .find(".close-popup") 712 .on("click", () => { 713 setPopupState("show-agb", false, "#legalagb"); 714 }); 715 $("#legalagb") 716 .find(".blackout") 717 .on("click", () => { 718 setPopupState("show-agb", false, "#legalagb"); 719 }); 720 721 $(".show-agb").on("click", () => { 722 setPopupState("show-agb", true, "#legalagb"); 723 }); 724 725 $("#legalimpressum") 726 .find(".close-popup") 727 .on("click", () => { 728 setPopupState("show-impressum", false, "#legalimpressum"); 729 }); 730 $("#legalimpressum") 731 .find(".blackout") 732 .on("click", () => { 733 setPopupState("show-impressum", false, "#legalimpressum"); 734 }); 735 736 $(".show-impressum").on("click", () => { 737 setPopupState("show-impressum", true, "#legalimpressum"); 738 }); 739 740 $("#legaldatenschutz") 741 .find(".close-popup") 742 .on("click", () => { 743 setPopupState("show-datenschutz", false, "#legaldatenschutz"); 744 }); 745 $("#legaldatenschutz") 746 .find(".blackout") 747 .on("click", () => { 748 setPopupState("show-datenschutz", false, "#legaldatenschutz"); 749 }); 750 751 $(".show-datenschutz").on("click", () => { 752 setPopupState("show-datenschutz", true, "#legaldatenschutz"); 753 }); 754 755 $("#mission-popup") 756 .find(".close-popup") 757 .on("click", () => { 758 setPopupState("show-mission-popup", false, "#mission-popup"); 759 }); 760 $("#mission-popup") 761 .find(".blackout") 762 .on("click", () => { 763 setPopupState("show-mission-popup", false, "#mission-popup"); 764 }); 765 766 $("#team-popup") 767 .find(".close-popup") 768 .on("click", () => { 769 setPopupState("show-team-popup", false, "#team-popup"); 770 }); 771 $("#team-popup") 772 .find(".blackout") 773 .on("click", () => { 774 setPopupState("show-team-popup", false, "#team-popup"); 775 }); 776 777 $("#form-popup") 778 .find(".close-popup") 779 .on("click", () => { 780 setPopupState("show-form-popup", false, "#form-popup"); 781 }); 782 $("#form-popup") 783 .find(".blackout") 784 .on("click", () => { 785 setPopupState("show-form-popup", false, "#form-popup"); 786 }); 787 788 $("#form-application-popup") 789 .find(".close-popup") 790 .on("click", () => { 791 setPopupState("show-form-application-popup", false, "#form-application-popup"); 792 }); 793 $("#form-application-popup") 794 .find(".blackout") 795 .on("click", () => { 796 setPopupState("show-form-application-popup", false, "#form-application-popup"); 797 }); 798 799 $(".show-form").on("click", () => { 800 setPopupState("show-form-popup", true, "#form-popup"); 801 }); 802 803 $('a[href="#kontakt"]').on("click", (e) => { 804 e.preventDefault(); 805 806 setPopupState("show-form-popup", true, "#form-popup"); 807 }); 808 809 $('a[href="#bewerbung"]').on("click", (e) => { 810 e.preventDefault(); 811 812 setPopupState("show-form-application-popup", true, "#form-application-popup"); 813 }); 814 815 $(".loop-line-arrow-animation").each((ix, ele) => { 816 setTimeout(() => { 817 $(ele).find("#line").addClass("active"); 818 }, 1000); 819 }); 820 821 $(".show-team-popup").each((ix, ele) => { 822 $(ele).on("click", () => { 823 const contentData = $(ele).find(".content-html"); 824 $("#team-popup").find(".headline").html($(contentData).attr("data-headline")); 825 $("#team-popup").find("#arrow-link").attr("href", $(contentData).attr("data-link")); 826 $("#team-popup").find("#content").html($(contentData).html()); 827 $("#team-popup").find("#image").attr("src", $(contentData).attr("data-image")); 828 829 setTimeout(() => { 830 $("#team-popup").find("#line").addClass("active"); 831 }, 1500); 832 833 setPopupState("show-team-popup", true, "#team-popup"); 834 }); 835 }); 836 837 missionSwiper.on("click", (e) => { 838 const contentData = $(e.clickedSlide).find(".content-html"); 839 840 $("#mission-popup").find("#headline").html($(contentData).attr("data-headline")); 841 842 $("#mission-popup").find("#arrow-link").css("display", "block"); 843 844 if ($(contentData).attr("data-link")) $("#mission-popup").find("#arrow-link").attr("href", $(contentData).attr("data-link")); 845 else $("#mission-popup").find("#arrow-link").css("display", "none"); 846 847 $("#mission-popup").find("#content").html($(contentData).html()); 848 849 $("#mission-popup").find("#line").removeClass("active"); 850 setTimeout(() => { 851 $("#mission-popup").find("#line").addClass("active"); 852 }, 1000); 853 854 setPopupState("show-mission-popup", true, "#mission-popup"); 855 }); 856 857 $(".btn-load-more").on("click", () => { 858 $(".btn-load-more").parent().parent().parent("#loadmore-container").remove(); 859 $(".content-more").removeClass("content-more"); 860 $(".content-more-block").addClass("active"); 861 }); 862 863 $(".btn-goto").each((ix, ele) => {
864 $(ele).off("click"); 865 $(ele).on("click", () => { 866 const targetPage = $(ele).attr("data-page"); 867 let targetId = $(ele).attr("data-go-to"); 868 let scrollToId = ""; 869 870 if (targetId) scrollToId = "#" + targetId; 871 else scrollToId = "body"; 872 873 const fileName = location.pathname.split("/").slice(-1); 874 875 if (targetPage == fileName[0] || (fileName[0] == "" && targetPage == "index.html")) { 876 // if ($("header").hasClass("hidden") == false) $(".popup-menu").fadeOut(); 877 878 scrollToView(scrollToId); 879 } else { 880 if (targetPage == undefined && scrollToId != "") scrollToView(scrollToId); 881 else if (scrollToId == undefined) { 882 window.location = targetPage; 883 } else if (targetPage != undefined) { 884 window.location = targetPage + "#" + targetId; 885 } 886 } 887 }); 888 }); 889 890 handePadding(); 891 function handePadding() { 892 $("main").css("padding-top", $("#header-navigation").height()); 893 } 894 $(window).resize((data) => { 895 handePadding(); 896 }); 897 898 setTimeout(() => { 899 $(".step-content").css("visibility", "visible !important"); 900 $(".step-content").css("display", "block !important"); 901 let minHeight = 0; 902 903 $(".step-content").each((ix, ele) => { 904 if ($(ele).height() > minHeight) minHeight = $(ele).height(); 905 }); 906 $(".step-content").css("display", ""); 907 $(".step-content").css("visible", ""); 908 $(".step-content").css("min-height", minHeight + "px"); 909 }, 4000); 910 } 911 912 onLoadAllDone(); 913 914 // if ($("footer").length > 0) { 915 // $("footer").load("./footer.html", () => { 916 // $(".legal-button").each((ix, ele) => { 917 // $(ele).on("click", () => { 918 // showLegal(ix); 919 // }); 920 // }); 921 // }); 922 // } 923 if ($("legal").length > 0) { 924 $("legal").load("./legal.html"); 925 } 926 927 if ($("#startup-image").length > 0 && !$("body").hasClass("loaded")) { 928 setTimeout(() => { 929 $("body").addClass("loaded"); 930 new WOW().init(); 931 }, 2500); 932 } else { 933 new WOW().init(); 934 $("body").addClass("loaded"); 935 } 936 937 $(".review-box").each((ix, ele) => { 938 $(ele).on("mouseenter", () => { 939 $(".review-box").removeClass("active"); 940 $(ele).addClass("active"); 941 }); 942 }); 943 944 if ($(".zoom-gallery").length > 0) { 945 $(".zoom-gallery").magnificPopup({ 946 delegate: "a.zoom", 947 type: "image", 948 closeOnContentClick: false, 949 closeBtnInside: false, 950 mainClass: "mfp-with-zoom mfp-img-mobile", 951 image: { 952 markup: 953 '<div class="mfp-figure relative">' + 954 ` 955 <div class="bg-white shadow-theme px-[8vw] md:px-[5.83vw] pt-[10vw] pb-[5vw] md:pb[5.42vw] md:pt-[3.71vw]"> 956 <div class="font-medium text-20 flex justify-between uppercase " > 957 <a class=" close-popup cursor-pointer absolute right-[4vw] md:right-[4.38vw] top-[3.18vw]"> 958 <div class="mfp-close"> 959 <img class="w-[4vw] md:w-[0.53vw] aspect-square pointer-events-none" src="/public/frontend/img/x-icon.svg" /> 960 </div> 961 </a> 962 </div> 963 <div class="relative"> 964 <div class="mfp-bottom-bar"> 965 <div class="mfp-title pb-[1.26vw]"></div> 966 <div class="mfp-counters"></div> 967 </div> 968 <div class="relative"> 969 <div class="mfp-img"></div> 970 <div id="popup-content-container"></div> 971 </div> 972 <div class="absolute bottom-0 left-[-2.5vw] md:left-[-1vw]"> 973 <a id="sub-title" class="text-rotated text-12 font-medium pr-[0.18vw] uppercase"></a> 974 </div> 975 976 </div> 977 <div class="arrow-controller"></div> 978 <div class="flex justify-end mr-[-5.83vw]"> 979 <div class="w-[50%] gallery-progressbar"><div class="gallery-progressbar-fill"></div></div> 980 </div> 981 982 983 </div> 984 <div class="gradient-right absolute right-0 top-0 bottom-[0] z-[10] w-[5.83vw] pointer-events-none"></div> 985 986 987 ` + 988 "</div>", // Popup HTML markup. `.mfp-img` div will be replaced with img tag, `.mfp-close` by close button 989 990 cursor: "mfp-zoom-out-cur", // Class that adds zoom cursor, will be added to body. Set to null to disable zoom out cursor. 991 992 titleSrc: "title", // Attribute of the target element that contains caption for the slide. 993 // Or the function that should return the title. For example: 994 // titleSrc: function(item) { 995 // return item.el.attr('title') + '<small>by Marsel Van Oosten</small>'; 996 // } 997 998 verticalFit: true, // Fits image in area vertically 999 1000 tError: '<a href="%url%">The image</a> could not be loaded.', // Error message 1001 }, 1002 1003 gallery: { 1004 enabled: true, 1005 }, 1006 callbacks: { 1007 open: function (e) { 1008 // console.log(this.currItem.el) 1009 const popup_content = $(this.currItem.el).parent().find(".popup-content"); 1010 $("#popup-content-container").append(popup_content.clone()); 1011 1012 $(".mfp-content") 1013 .find("#sub-title") 1014 .on("click", () => { 1015 $(".mfp-content").find(".popup-content").addClass("active"); 1016 }); 1017 1018 $(".mfp-content") 1019 .find(".close-popup-content") 1020 .on("click", () => { 1021 $(".mfp-content").find(".popup-content").removeClass("active"); 1022 }); 1023 1024 $(".mfp-content") 1025 .find(".loop-line-arrow-animation") 1026 .each((ix, ele) => { 1027 setTimeout(() => { 1028 $(ele).find("#line").addClass("active"); 1029 }, 1000); 1030 }); 1031 1032 if (this.currItem.type === "image") { 1033 $(".mfp-arrow-left").appendTo(".arrow-controller"); 1034 $(".mfp-arrow-right").appendTo(".arrow-controller"); 1035 1036 $(".mfp-arrow-left").addClass("arrow-left"); 1037 $(".mfp-arrow-right").addClass("arrow-right"); 1038 } 1039 }, 1040 markupParse: function (template, values, item) { 1041 let ix1 = values.counter.split(" of ")[0]; 1042 let ix2 = values.counter.split(" of ")[1]; 1043 $(template) 1044 .find(".gallery-progressbar-fill") 1045 .css("width", (ix1 / ix2) * 100 + "%"); 1046 $(template).find("#sub-title").html($(item.el).attr("sub-title")); 1047 1048 // On Change 1049 const popup_content = $(item.el).parent().find(".popup-content"); 1050 $(template).find("#popup-content-container").html(""); 1051 $(template).find("#popup-content-container").append(popup_content.clone()); 1052 1053 $(template) 1054 .find("#sub-title") 1055 .on("click", () => { 1056 $(template).find(".popup-content").addClass("active"); 1057 }); 1058 1059 $(template) 1060 .find(".close-popup-content") 1061 .on("click", () => { 1062 $(template).find(".popup-content").removeClass("active"); 1063 }); 1064 1065 $(template) 1066 .find(".loop-line-arrow-animation") 1067 .each((ix, ele) => { 1068 setTimeout(() => { 1069 $(ele).find("#line").addClass("active"); 1070 }, 1000); 1071 }); 1072 }, 1073 }, 1074 }); 1075 } 1076 1077 if ($(".hero-gallery").length > 0) { 1078 $(".hero-gallery").magnificPopup({ 1079 delegate: "a", 1080 type: "image", 1081 closeOnContentClick: false, 1082 closeBtnInside: false, 1083 mainClass: "mfp-with-zoom mfp-img-mobile", 1084 image: { 1085 markup: 1086 '<div class="mfp-figure relative">' + 1087 ` 1088 <div class="bg-white shadow-theme px-[8vw] md:px-[5.83vw] pt-[10vw] pb-[5vw] md:pb[5.42vw] md:pt-[3.71vw]"> 1089 <div class="font-medium text-20 flex justify-between uppercase " > 1090 <a class=" close-popup cursor-pointer absolute right-[4vw] md:right-[4.38vw] top-[3.18vw]"> 1091 <div class="mfp-close"> 1092 <img class="w-[4vw] md:w-[0.53vw] aspect-square pointer-events-none" src="/public/frontend/img/x-icon.svg" /> 1093 </div> 1094 </a> 1095 </div> 1096 <div class="relative"> 1097 <div class="mfp-bottom-bar"> 1098 <div class="mfp-title pb-[1.26vw]"></div> 1099 <div class="mfp-counters"></div> 1100 </div> 1101 <div class="mfp-img"></div> 1102 <div class="absolute bottom-0 left-[-2.5vw] md:left-[-1vw]"> 1103 <a id="sub-title" class="text-rotated text-12 font-medium pr-[0.18vw] uppercase"></a> 1104 </div> 1105 1106 </div> 1107 <div class="arrow-controller"></div> 1108 <div class="flex justify-end mr-[-5.83vw]"> 1109 <div class="w-[50%] gallery-progressbar"><div class="gallery-progressbar-fill"></div></div> 1110 </div> 1111 1112 1113 </div> 1114 <div class="gradient-right absolute right-0 top-0 bottom-[0] z-[10] w-[5.83vw] pointer-events-none"></div> 1115 1116 1117 ` + 1118 "</div>", // Popup HTML markup. `.mfp-img` div will be replaced with img tag, `.mfp-close` by close button 1119 1120 cursor: "mfp-zoom-out-cur", // Class that adds zoom cursor, will be added to body. Set to null to disable zoom out cursor. 1121 1122 titleSrc: "title", // Attribute of the target element that contains caption for the slide. 1123 // Or the function that should return the title. For example: 1124 // titleSrc: function(item) { 1125 // return item.el.attr('title') + '<small>by Marsel Van Oosten</small>'; 1126 // } 1127 1128 verticalFit: true, // Fits image in area vertically 1129 1130 tError: '<a href="%url%">The image</a> could not be loaded.', // Error message 1131 }, 1132 1133 gallery: { 1134 enabled: true, 1135 }, 1136 callbacks: { 1137 open: function () { 1138 if (this.currItem.type === "image") { 1139 $(".mfp-arrow-left").appendTo(".arrow-controller"); 1140 $(".mfp-arrow-right").appendTo(".arrow-controller"); 1141 1142 $(".mfp-arrow-left").addClass("arrow-left"); 1143 $(".mfp-arrow-right").addClass("arrow-right"); 1144 } 1145 }, 1146 markupParse: function (template, values, item) { 1147 let ix1 = values.counter.split(" of ")[0]; 1148 let ix2 = values.counter.split(" of ")[1]; 1149 $(template) 1150 .find(".gallery-progressbar-fill") 1151 .css("width", (ix1 / ix2) * 100 + "%"); 1152 $(template).find("#sub-title").html($(item.el).attr("sub-title")); 1153 }, 1154 }, 1155 }); 1156 } 1157 1158 if (window.location.hash) { 1159 setTimeout(() => { 1160 scrollToView(window.location.hash); 1161 }, 1000); 1162 } 1163 1164 let multiple = 1; 1165 let scale = 1; 1166 1167 $(".btn-cat").each((ix, ele) => { 1168 $(ele).on("click", (e) => { 1169 $(".btn-cat").removeClass("active"); 1170 $(ele).addClass("active"); 1171 1172 $("#right-content").html($(ele).find(".html-content").html()); 1173 1174 $(".btn-sub-cat").removeClass("active"); 1175 $(".btn-material").removeClass("active"); 1176 $(".btn-variable").removeClass("active"); 1177 $("#price").html("0â¬"); 1178 }); 1179 }); 1180 1181 $(".btn-sub-cat").each((ix, ele) => { 1182 $(ele).on("click", (e) => { 1183 $(".btn-sub-cat").removeClass("active"); 1184 $(ele).addClass("active"); 1185 1186 $(".btn-material").removeClass("active"); 1187 $(".btn-variable").removeClass("active"); 1188 $("#price").html("0â¬"); 1189 }); 1190 }); 1191 1192 $(".btn-material").each((ix, ele) => { 1193 $(ele).on("click", (e) => { 1194 $(".btn-material").removeClass("active"); 1195 $(ele).addClass("active"); 1196 $("#options").addClass("active"); 1197 $(".btn-variable").removeClass("active"); 1198 $("#right-content").html($(ele).find(".html-content").html()); 1199 1200 scale = ix + 1; 1201 1202 $(".price").html("0â¬"); 1203 }); 1204 }); 1205 1206 $(".btn-variable").each((ix, ele) => { 1207 $(ele).on("click", (e) => { 1208 $(".btn-variable").removeClass("active"); 1209 $(ele).addClass("active"); 1210 multiple = ix + 1; 1211 1212 $(".variable-text").text($(ele).text()); 1213 1214 $(".price").html(multiple * 100 * scale + "â¬"); 1215 }); 1216 }); 1217 1218 $("#btn-calculate").on("click", () => { 1219 $("#calculator-element").removeClass("active"); 1220 $("#calculator-form").addClass("active"); 1221 $("#calculator-content").removeClass("active"); 1222 $("#form-content").addClass("active"); 1223 }); 1224 $(".toggle-left-btn").each((ix, ele) => { 1225 $(ele).on("click", () => { 1226 $(".toggle-left-content").removeClass("active"); 1227 $(".toggle-left-content:eq(" + ix + ")").addClass("active"); 1228 }); 1229 }); 1230 1231 $(".btn-show-popup-content").each((ix, ele) => { 1232 $(ele).on("click", () => { 1233 if ($(ele).parent().find(".popup-content").hasClass("active")) { 1234 $(ele).parent().find(".popup-content").removeClass("active"); 1235 } else { 1236 $(ele).parent().find(".popup-content").addClass("active"); 1237 1238 $(ele).parent().find(".close-popup-content").off("click"); 1239 $(ele) 1240 .parent() 1241 .find(".close-popup-content") 1242 .on("click", () => { 1243 $(ele).parent().find(".popup-content").removeClass("active"); 1244 }); 1245 } 1246 }); 1247 }); 1248}); 1249 1250// gsap.registerPlugin(TweenMax, DrawSVGPlugin); 1251 1252// setTimeout(() => { 1253// $("body").addClass('animate'); 1254// }, 8000); 1255 1256// TweenMax.fromTo('body.animate .squiggle-1', 2, {drawSVG:"0%"}, {drawSVG:"100%"}); 1257// TweenMax.fromTo('body.animate .squiggle-2', 2, {drawSVG:"0%"}, {drawSVG:"100%"}); 1258// TweenMax.fromTo('body.animate .squiggle', 2, {drawSVG:"0%"}, {drawSVG:"100%"}); 1259// TweenMax.staggerFrom(".squiggle", 2, {drawSVG:0}, 0.1); 1260 1261$(function () { 1262 animateLine = function (canvas, hoverDivName, colorNumber, pathString, pathString2, pathString3) { 1263 var line = canvas.path(pathString).attr({ 1264 stroke: colorNumber, 1265 }); 1266 var length = line.getTotalLength(); 1267 1268 var line2 = canvas.path(pathString2).attr({ 1269 stroke: colorNumber, 1270 }); 1271 var length2 = line2.getTotalLength(); 1272 1273 var line3 = canvas.path(pathString3).attr({ 1274 stroke: colorNumber, 1275 }); 1276 var length3 = line3.getTotalLength(); 1277 1278 $(canvas.canvas).attr("preserveAspectRatio", "xMidYMid slice"); 1279 $(canvas.canvas).attr("viewBox", "0 0 1080 603.93"); 1280 $(canvas.canvas).css("height", "100%"); 1281 $(canvas.canvas).css("width", "100%"); 1282 1283 if ($(window).width() < 768) $(canvas.canvas).css("opacity", "0"); 1284 1285 $('path[fill*="none"]').animate( 1286 { 1287 to: 1, 1288 }, 1289 { 1290 duration: 2000,
1291 step: function (pos, fx) { 1292 try { 1293 let offset = length * fx.pos; 1294 let subpath = line.getSubpath(0, offset); 1295 if (pos < 0.99) canvas.clear(); 1296 // canvas.path(subpath).attr({ 1297 // // preserveAspectRatio: "xMidYMid slice", 1298 // // viewBox: "0 0 1080 603.93", 1299 // // "stroke-width": 1, 1300 // // stroke: colorNumber, 1301 // }); 1302 1303 let offset2 = length2 * fx.pos; 1304 let subpath2 = line2.getSubpath(0, offset2); 1305 // canvas.path(subpath2).attr({ 1306 // // preserveAspectRatio: "xMidYMid slice", 1307 // // viewBox: "0 0 1080 603.93", 1308 // // "stroke-width": 1, 1309 // // stroke: colorNumber, 1310 // }); 1311 1312 let offset3 = length3 * fx.pos; 1313 let subpath3 = line3.getSubpath(0, offset3); 1314 canvas.path(subpath + subpath2 + subpath3).attr({ 1315 // preserveAspectRatio: "xMidYMid slice", 1316 // viewBox: "0 0 1080 603.93", 1317 // "stroke-width": 1, 1318 // stroke: colorNumber, 1319 }); 1320 } catch (e) {} 1321 }, 1322 } 1323 ); 1324 }; 1325 1326 if ($("#canvas").length > 0) { 1327 var canvas = Raphael("canvas", 500, 200); 1328 1329 var pathString1 = "M56.2 0.7c2.4 4.3 3.8 9.2 4.2 15c0 0.8 0.1 1.6 0.1 2.3c0 8.2-3.2 15.6-8.6 19.7C37.8 48.4 20.2 28.6 8.6 15.5L7 13.7c-1.7-1.9-3.2-3.6-4.6-4.9C1.6 7.9 0.7 6.9 0 6"; 1330 var pathString2 = "M0 50.7c6.7 5.6 13.6 11.2 21.3 15.6C35 74.1 52 75.7 64.5 70.2c9.6-4.1 16-11.8 18.5-22.3c2-8.4 3.1-17 3.1-25.7c0-3.4-0.2-6.9-0.5-10.3C85.3 8.1 84.7 4.3 84 0.6"; 1331 var pathString3 = "M0 90c15.8 12.2 29.8 19.2 44.5 22.4c12.9 2.7 44.6 7.2 60.8-10c7.4-7.9 11.1-18.6 11.1-32.8c0-13.9-3.6-28.9-6.5-40.9l-0.6-2.3c-0.3-1.1-0.5-2.2-0.8-3.3l-0.4-1.9c-1.6-6.7-3.2-13.6-5.1-20.6"; 1332 var pathString4 = "M0 130.6c6 3.8 11.8 7.5 17.6 11.4C33.5 152.4 44 158.3 57 158.3c8.2 0 17.3-2.4 29.4-7.4c5.4-2.3 11.4-4.3 17.2-6.2l0.9-0.3c23.7-7.8 48.2-15.9 48.2-43c0-1.8-0.1-3.7-0.3-5.7c-3.9-33.6-13.7-65.6-23.8-95.1"; 1333 var pathString5 = "M0 180c13.6 7.7 29.3 11.4 44.8 10.4c13-0.8 25.9-5 36.8-8.9c30.1-10.9 59-23.9 88.2-39.7c2.8-1.5 5.6-3.1 8-5.1c7.3-6.1 11-16.3 11-30.3c0-19.2-7-45.3-20.7-77.8c-4.3-10.1-9.1-20.1-13-28.1"; 1334 var pathString6 = "M0 229v-0.5c8.8 2 17.8 1 28.7-3.2c33.5-12.6 67.5-26.6 100.9-41.4c5.3-2.3 11.1-4.5 18.1-7.1l0.1-0.1c24-9 51.3-19.1 59.3-43.1c3.1-9.3 3.5-19.2 3.5-26.7c0-1.2 0-2.3 0-3.4c-0.8-38.8-11.9-67.4-31-102.8"; 1335 var pathString7 = "M0 267.5c10-2.6 19.6-7.1 29.1-11.5L160 195.1c19.5-9 36.3-16.7 48.7-28.5c13.5-12.8 20.3-29.5 21.5-52.3c0.2-3.3 0.2-6.6 0.2-10c0-32.3-7.7-65.8-21.2-91.9c-2-4-4.3-7.9-6.5-11.8"; 1336 var pathString8 = "M0 310.8c2.1-2.2 4.4-4.5 6.7-6.8c30-29.6 66.9-50.2 119.5-66.8l5.7-1.8c33.9-10.6 68.8-21.6 93.1-47.4c15.6-16.7 23.2-40.3 23.2-72.4c0-9.4-0.7-19.6-2-30.4c-1.9-16.1-5.5-33.4-11.2-54.5c-0.5-1.9-1-3.7-1.6-5.6c-0.6-1.8-1.2-3.6-1.9-5.3c-0.6-1.7-1.3-3.5-2-5.2c-0.3-0.8-0.7-1.7-1-2.5c-0.3-0.8-0.7-1.7-1-2.5c-0.1-0.2-0.2-0.5-0.3-0.7c-0.4-0.9-0.7-1.7-1.1-2.6c-0.4-0.9-0.7-1.8-1.1-2.7c-0.4-1-0.8-1.9-1.1-2.9"; 1337 var pathString9 = "M0 343.5c18.2-22.2 39.8-40.9 64.6-55.8c24-14.4 50.3-23.7 75.8-32.7l0.8-0.3c16.2-5.8 33-11.7 48.9-18.9c29.6-13.4 51.7-27.9 63.1-54.9c7.6-18.1 11.4-39.8 11.4-66.2c0-6.8-0.2-13.8-0.7-22.1c-0.6-9.9-1.6-20.1-2.6-30l-0.1-0.6c-1.5-15.5-3.2-31.6-3.2-47.5c0-4.8 0.1-9.3 0.4-13.6"; 1338 var pathString10 = "M0 395c7.9-13.1 17.3-25.6 27.9-37c20.4-21.9 61.7-60.6 108.6-73.8c41-11.4 82.8-26.8 110.4-61.1c32.3-40.2 32.9-89.1 33.5-136.5v-0.2c0.4-28.5 0.7-58 8.1-85.8l0.5 0.1"; 1339 var pathString11 = "M0 481.2c5.3-22.9 12.4-43.4 21.7-62c13.2-26.7 30.9-49.8 53.8-70.7c26.2-23.8 60.4-36.9 93.5-49.5l0.2-0.1C227 277 281.7 256.2 293.5 182.4c1.4-8.4 2-17.7 2-28.4c0-9.2-0.5-18.5-0.9-27.5v-1.1c-0.4-8.8-0.9-17.8-0.9-26.8c0-2.3 0-4.6 0.1-6.7c0.9-33.6 8.2-64.2 21.6-91.2"; 1340 var pathString12 = "M807.6 0c6.7 27 13.4 53.8 19.1 76.5c1.5 6 3 12.1 4.6 18.1l0.2 0.6c1.9 7.4 3.7 14.8 5.6 22.2c3 12.1 4.3 25.9 5.7 40.5v0.3c2.8 31.1 5.8 63.1 25.6 83.4c6.2 6.3 14.2 11.3 21.9 16.1l1 0.6c6.4 4 13 8.2 18.5 13.1c10.7 9.7 22.2 25.6 22.2 41.5c0 4.5-0.9 8.8-2.7 12.7c-6.7 14.9-23.6 21.8-41 26.9l-7.4 2.2c-22.9 6.8-46.6 13.8-67 26.6c-28.3 17.7-48.8 45.3-68.7 72.1l-0.2 0.2c-20.5 27.5-41.6 56-71.2 73.5c-32.1 19-70.3 23.3-107.2 27.4h-0.3c-46.2 5-94 10.3-129.4 44.9c-1.4 1.4-2.8 2.8-4.3 4.4"; 1341 var pathString13 = "M1080 376.5v0.7c-39-23-74.2-48.5-105.1-76.1c-23.1-20.7-47-42.1-66.8-67.6c-2.4-3.1-5-6.1-7.7-9.4l-1-1.3c-13.1-15.8-27.9-33.7-27.9-54.5c0-1.2 0-2.4
13410.2-3.6c0.4-5.1 1.2-10.1 2.2-15.8v-0.3c1.1-7.1 2.3-14.3 2.3-21.6c0-3.6-0.3-6.8-0.9-10c-1.8-9.2-6.5-18-10.6-25.7c-0.4-0.7-0.8-1.5-1.2-2.2l-0.2-0.4c-0.5-0.9-0.9-1.8-1.4-2.7c-12-23.3-16.7-52.5-21.6-83.5c-0.1-0.7-0.2-1.3-0.3-1.9l0 0l-0.1-0.7"; 1342 var pathString14 = "M1080 351.8c-24.2-15.9-47.4-33.5-69-53.1c-19.5-17.8-36-39.9-52-61.2c-5.9-7.9-12.3-16.4-18.7-24.6l-1-1.3c-8.4-10.6-17.1-21.6-17.1-35.6c0-0.4 0-0.8 0-1.3c0.3-7.4 3.4-14.5 6.2-20.7c2.5-5.7 5.3-12.2 6.1-18.9c0.1-1.3 0.2-2.6 0.2-4c0-13.9-7.1-27.1-14-39.9c-6.8-12.5-13.8-25.5-13.8-38.8c0-2.9 0.3-5.8 1-8.6c1.5-6.4 4.8-12.1 8-17.7c1.8-3.2 3.9-6.8 5.5-10.5c2-4.6 3.4-9.5 4.1-14.9c0-0.2 0.1-0.4 0.1-0.7"; 1343 var pathString15 = "M1080 323.5c-15.1-13-27.2-27.7-34.6-44.9c-4.5-10.6-12.2-20.7-19.7-30.4c-12.2-16-24.8-32.6-24.8-52.1c0-4.6 0.7-9.3 2.1-14c2.2-7.4 6.4-14.2 10.5-20.7l0.2-0.3c6-9.6 11.6-18.7 11.6-29.8c0-2.3-0.2-4.6-0.7-6.9c-4-19.1-15.7-41.7-31.3-60.5c-0.8-1-1.6-1.9-2.4-2.8l-0.8-0.9c-3.4-4.1-7-8.3-9.4-13.1c-2.2-4.4-3.3-9.1-3.3-14.4c0-8 2.5-16.1 4.9-24V8.5c0.7-2.4 1.5-5.1 2.3-7.7c0.1-0.2 0.1-0.4 0.2-0.7"; 1344 var pathString16 = "M1080,410.19999999999993L1080,410.19999999999993C1047,391.59999999999997 1014.6,375.09999999999997 976,368.99999999999994C950.3000000000001,364.99999999999994 934.7,372.69999999999993 912.1,385.99999999999994C897.7,394.49999999999994 881.6,400.49999999999994 859.8000000000001,405.49999999999994C845,408.9 835.1,417.29999999999995 823.6,427.09999999999997L821.5,428.9C795.5,450.9 774.1,477.4 749.9,510.5C714.3,559.3 670.1999999999999,585 611.4,591.5C599.9,592.7 587.9,593.4 576.4,594L575.1999999999999,594.1C550.6999999999999,595.3 525.5,596.6 501.9,603.9"; 1345 var pathString17 = "M1080,433.9999999999999L1080,433.9999999999999C1045.6,412.6999999999999 1006.5999999999999,388.6999999999999 965.8,393.7999999999999C951.9,395.5999999999999 941.9,401.3999999999999 931.1999999999999,407.5999999999999L930.9,407.69999999999993C923.9999999999999,411.5999999999999 916.9,415.69999999999993 908.6999999999999,418.69999999999993C904.3,420.19999999999993 899.5999999999999,421.79999999999995 893.6999999999999,423.69999999999993C878.6999999999999,428.69999999999993 863.1999999999999,433.69999999999993 849.4,442.99999999999994C821.5999999999999,461.5999999999999 801.9,490.5999999999999 784.1999999999999,518.6999999999999C759.6,557.5 734.6999999999999,585.4 707.9,603.9"; 1346 var pathString18 = "M1080.0000000000002,465.09999999999985L1080.0000000000002,465.09999999999985C1075.7,462.79999999999984 1071.4,460.49999999999983 1067.1000000000001,458.09999999999985C1035.1000000000001,441.49999999999983 986.6000000000001,416.39999999999986 951.1000000000001,440.09999999999985C939.0000000000001,448.29999999999984 928.3000000000001,458.79999999999984 918.0000000000001,468.89999999999986L917.8000000000001,469.09999999999985C902.6,483.9999999999999 886.9000000000001,499.39999999999986 866.8000000000001,507.1999999999999C841.2,517.0999999999999 827.5000000000001,530.0999999999999 809.8000000000001,551.8999999999999C805.8000000000001,556.7999999999998 801.8000000000001,562.1999999999998 797.8000000000001,567.3999999999999L797.7,567.5999999999999C788.2,580.3 778.3000000000001,593.3 766.7,603.8"; 1347 var pathString19 = "M1080,485.80000000000007L1080,485.80000000000007C1045,469.9000000000001 1008.9999999999999,465.30000000000007 973.6999999999999,493.30000000000007C958.8999999999999,505.00000000000006 942.3999999999999,514.8000000000001 926.4999999999999,524.2L926.4999999999999,524.2C920.4999999999999,527.8000000000001 913.7999999999998,531.8000000000001 907.2999999999998,535.8000000000001C889.7999999999998,546.6 874.9999999999999,561.0000000000001 860.7999999999998,574.8000000000001L860.6999999999998,574.9000000000001C859.4999999999998,576.0000000000001 858.3999999999999,577.2 857.1999999999998,578.3000000000001L856.8999999999999,578.6C855.8,579.6 854.6999999999999,580.7 853.5999999999999,581.8000000000001C845.5999999999999,589.5 837.5999999999999,597 829.8,604.1"; 1348 var pathString20 = "M1080,512.8000000000001C1058,502.6 1034.9,498.70000000000005 1016.1,516.6C1009.6,522.8 1005.6999999999999,528.7 1001.9,534.5L1001.8,534.6C996,543.4 990.9,551.1 977.8,557.4C954.5999999999999,568.6 931.8,583.4 906.3,604"; 1349 var pathString21 = "M981.9 603.9c6.9-3.6 12.1-7.3 16.6-11.7c2.3-2.3 4.6-4.8 6.4-6.8c19.7-21.8 40.2-32.3 64.4-32.3c3.5 0 7.1 0.2 10.7 0.6l0 0"; 1350 1351 animateLine(canvas, "canvas", "#231f20", "" + pathString1 + pathString2 + pathString3 + pathString4 + pathString5 + pathString6 + pathString7 + pathString8 + pathString9 + pathString10 + pathString11, "" + pathString15 + pathString14
1351+ pathString13, pathString21 + pathString20 + pathString19 + pathString18 + pathString17 + pathString16 + pathString12); 1352 } 1353});
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.