/var/www/flurhymez/resources/js
Edit: /var/www/flurhymez/resources/js/web.js (13172B)
import anime from 'animejs/lib/anime.es.js';
import barba from "@barba/core";
const btn = $(".theme-toggle");
const prefersDarkScheme = window.matchMedia("(prefers-color-scheme: dark)");
var lightSrc = $("#style").data('light');
var darkSrc = $("#style").data('dark');
const currentTheme = localStorage.getItem("theme") ? localStorage.getItem("theme") : prefersDarkScheme.matches ? 'dark' : 'light';
//console.log({ currentTheme })
if (currentTheme == "dark") {
btn.html('
');
document.body.classList.toggle("dark-theme");
$("#style").attr('href', darkSrc)
} else if (currentTheme == "light") {
btn.html('
');
document.body.classList.toggle("light-theme");
$("#style").attr('href', lightSrc)
}
// Direction
const dir = $("html").attr("dir");
function webInit() {
// System Theme
const btn = $(".theme-toggle");
const prefersDarkScheme = window.matchMedia("(prefers-color-scheme: dark)");
var lightSrc = $("#style").data('light');
var darkSrc = $("#style").data('dark');
const currentTheme = localStorage.getItem("theme") ? localStorage.getItem("theme") : prefersDarkScheme.matches ? 'dark' : 'light';
if (currentTheme == "dark") {
btn.html('
');
} else if (currentTheme == "light") {
btn.html('
');
}
btn.on("click", function () {
if (prefersDarkScheme.matches) {
//console.log(prefersDarkScheme);
const currentTheme = $('body').hasClass('dark-theme') ? 'dark' : 'light';
if (currentTheme === 'dark') {
toggleLight();
} else {
toggleDark();
}
} else {
const currentTheme = $('body').hasClass('dark-theme') ? 'dark' : 'light';
//console.log({ currentTheme })
if (currentTheme === 'dark') {
toggleLight();
} else {
toggleDark();
}
}
});
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', e => {
const newColorScheme = e.matches ? "dark" : "light";
if (newColorScheme === 'dark') {
toggleDark();
} else {
toggleLight();
}
});
const toggleDark = () => {
$('body').removeClass('light-theme');
$('body').addClass('dark-theme');
$("#style").attr('href', darkSrc)
btn.html('
');
localStorage.setItem("theme", 'dark');
}
const toggleLight = () => {
$('body').removeClass('dark-theme');
$('body').addClass('light-theme');
$("#style").attr('href', lightSrc)
btn.html('
');
localStorage.setItem("theme", 'light');
}
//Container Offsets
const containreLeftOffest = $('.container').offset().left;
//console.log(containreLeftOffest);
if (dir === 'rtl') {
$('.containre-left').css('margin-right', containreLeftOffest + 'px');
$('.containre-right').css('margin-left', containreLeftOffest + 'px');
} else {
$('.containre-left').css('margin-left', containreLeftOffest + 'px');
$('.containre-right').css('margin-right', containreLeftOffest + 'px');
}
//Fixed Header
var instance = OverlayScrollbars(document.querySelectorAll(".scro"), {
overflowBehavior: {
x: "hidden",
y: "scroll",
},
callbacks: {
onScroll: function (eventArgs) {
if (eventArgs.target.scrollTop >= 100) {
$("header").addClass("fixed-header");
} else {
$("header").removeClass("fixed-header");
}
},
},
});
$("a").on("click", function (event) {
if (this.hash !== "" && $(this.hash).length && $("body.home").length) {
event.preventDefault();
var hash = this.hash;
instance.scroll(
{
el: $(hash),
margin: 70,
},
500,
"easeInOutSine"
);
}
});
$(".navbar-toggler").on("click", function () {
$(".sidenav-back").addClass("show");
});
$(".sidenav-back").on("click", function () {
$(".sidenav-back").removeClass("show");
$(".navbar-collapse").removeClass("show");
});
$(".navbar-collapse .nav-link").on("click", function () {
$(".sidenav-back").removeClass("show");
$(".navbar-collapse").removeClass("show");
});
// Fixing Modal & Scroll Issue
$(document).on("show.bs.modal", ".modal", function () {
$(this).appendTo("body");
});
const m = [700, 650, 600, 750, 350, 500, 400];
const a = [...m, ...m, ...m, ...m, ...m];
$('#worksSlider').find('.works-item').each((index, item) => {
$(item).css('height', a[index]);
//console.log(a[index]);
});
// const heights = [700, 650, 600, 750, 350, 500, 400];
// let i = 0;
// while (heights[i]) {
// $('#worksSlider').find('.works-item').each((index, item) => {
// $(item).css('height', heights[index]);
// console.log(heights[index]);
// });
// i++;
// }
// Works Slider
var worksSlider = new Swiper('#worksSlider', {
spaceBetween: 30,
centeredSlides: true,
//loop: true,
pagination: {
el: '.swiper-pagination',
clickable: true,
},
breakpoints: {
992: {
slidesPerView: 4.1,
},
1200: {
slidesPerView: 6.1,
},
}
});
// Team Slider
var teamSlider = new Swiper('#teamSlider', {
slidesPerView: 1.3,
spaceBetween: 30,
//centeredSlides: true,
slidesOffsetBefore: containreLeftOffest == 0 ? 40 : containreLeftOffest,
slidesOffsetAfter: containreLeftOffest == 0 ? 40 : containreLeftOffest,
//loop: true,
pagination: {
el: '.swiper-pagination',
clickable: true,
},
breakpoints: {
576: {
slidesPerView: 2.5,
},
992: {
slidesPerView: 3.9,
},
1200: {
slidesPerView: 5.9,
},
}
});
// Testimonials Slider
var testimonialsSlider = new Swiper('#testimonialsSlider', {
slidesPerView: 1,
spaceBetween: 30,
centeredSlides: true,
//loop: true,
pagination: {
el: '.swiper-pagination',
clickable: true,
},
breakpoints: {
576: {
slidesPerView: 1,
},
992: {
slidesPerView: 2,
},
1200: {
slidesPerView: 2.1,
},
}
});
// Partners Slider
var partnersSlider = new Swiper('#partnersSlider', {
slidesPerView: 1,
spaceBetween: 30,
centeredSlides: true,
//loop: true,
pagination: {
el: '.swiper-pagination',
clickable: true,
},
breakpoints: {
576: {
slidesPerView: 2,
},
992: {
slidesPerView: 4,
},
1200: {
slidesPerView: 7,
},
}
});
}
// Cursor
/*magicMouse({
"cursorOuter": "circle-basic",
"hoverEffect": "circle-move",
"hoverItemMove": false,
"defaultCursor": false,
"outerWidth": 30,
"outerHeight": 30
});*/
// Popover
function webPopover() {
const button = document.querySelectorAll('.popover-item');
const tooltip = document.querySelectorAll('.popover-content');
const offset = {
name: 'offset',
options: {
offset: [10, 40],
},
};
function generateGetBoundingClientRect(x = 0, y = 0) {
return () => ({
width: 0,
height: 0,
top: y,
right: x,
bottom: y,
left: x,
});
}
button.forEach((btn) => {
const showEvents = ['mouseenter', 'focus'];
const mousemoveEvents = ['mousemove'];
const hideEvents = ['mouseleave', 'blur'];
const tooltip = $(btn).closest('.popover-container').find('.popover-content')[0];
const popperInstance = Popper.createPopper(btn, tooltip, {
placement: dir === 'rtl' ? 'left' : 'right',
//strategy: 'fixed',
modifiers: [
offset,
],
});
showEvents.forEach((event) => {
btn.addEventListener(event, () => show(popperInstance, tooltip));
});
mousemoveEvents.forEach((event) => {
btn.addEventListener(event, (event) => mousemove(event, popperInstance, tooltip));
});
hideEvents.forEach((event) => {
btn.addEventListener(event, () => hide(popperInstance, tooltip));
});
})
function show(ins, tooltip) {
// Make the tooltip visible
tooltip.setAttribute('data-show', '');
// Enable the event listeners
ins.setOptions((options) => ({
...options,
modifiers: [
...options.modifiers,
{ name: 'eventListeners', enabled: true },
],
}));
// Update its position
ins.update();
}
function mousemove({ clientX: x, clientY: y }, ins, tooltip) {
const button = $(tooltip).closest('.popover-container').find('.popover-item')[0];
button.getBoundingClientRect = generateGetBoundingClientRect(x, y);
// Enable the event listeners
ins.setOptions((options) => ({
...options,
modifiers: [
...options.modifiers,
{ name: 'eventListeners', enabled: true },
],
}));
// Update its position
ins.update();
}
function hide(ins, tooltip) {
// Hide the tooltip
tooltip.removeAttribute('data-show');
// Disable the event listeners
ins.setOptions((options) => ({
...options,
modifiers: [
...options.modifiers,
{ name: 'eventListeners', enabled: false },
],
}));
}
}
barba.hooks.once((data) => {
webInit();
if ($('body').width() > 992) {
webPopover();
}
});
barba.hooks.beforeEnter((data) => {
webInit();
if ($('body').width() > 992) {
webPopover();
}
});
barba.init({
preventRunning: true,
prevent: ({ el }) => el.classList && el.classList.contains('reload'),
transitions: [
{
name: "fade",
sync: true,
leave(data) {
return new Promise((resolve) => {
anime({
targets: ".change-page",
duration: 500,
top: "0",
easing: "easeInExpo",
endDelay: 1000,
begin: (anim) => {
$(".change-page").empty();
$(".change-page").append(`
${data.next.namespace}
`);
//console.log(data.next.namespace);
anime({
targets: ".change-page h1",
duration: 400,
opacity: "1",
top: 0,
delay: 500,
easing: "easeOutCubic",
});
},
complete: (anim) => {
anime({
targets: ".change-page h1",
duration: 500,
opacity: "0",
top: "50px",
easing: "easeInCubic",
complete: (anim) => {
resolve();
},
});
},
});
});
},
after() {
return new Promise((resolve) => {
anime({
targets: ".change-page",
duration: 500,
top: "100%",
easing: "easeOutExpo",
complete: (anim) => {
resolve();
},
});
});
},
},
]
});
anime({
targets: ".loader",
duration: 2000,
left: "0",
endDelay: 1000,
easing: "easeOutExpo",
});
$(window).on("load", function () {
$(".loader").fadeOut();
});
// Google Analytics
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-216068938-1', 'auto');
barba.hooks.after(() => {
ga('set', 'page', window.location.pathname);
ga('send', 'pageview');
});