HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/smilepac/public_html/wp-content/plugins/codevz-plus/wpbakery/assets/js/animated_text.js
!function($){
    "use strict";

    Codevz_Plus.animated_text = function() {

        $( ".cz_headline" ).codevzPlus( 'animated_text', function( x ) {

            var duration = x.data("time") || 3000,
                letterDelay = 50,
                letterAnimDelay = 150,
                typeDelay = 500,
                nextDelay = 800,
                clipDuration = 600;

            var $words = x.find(".cz_words-wrapper b");
            if(!$words.length) return;

            // Prepare letters for 'letters' and 'type' models
            if (x.hasClass("letters") || x.hasClass("type")) {
                $words.each(function(){
                    var $word = $(this),
                        letters = $word.text().split(""),
                        visible = $word.hasClass("is-visible");
                    var html = letters.map(l => `<i class="${visible ? 'in' : ''}">${l}</i>`).join("");
                    $word.html(html).css("opacity", 1);
                });
            }

            // Start the animation
            setTimeout(() => switchWord(x.find(".is-visible").eq(0)), duration);

            /** Core function: Switch between words **/
            function switchWord($word){
                var $next = getNext($word);

                // ---- TYPE MODEL ----
                if(x.hasClass("type")){
                    var $wrapper = x.find(".cz_words-wrapper");

                    // Start deleting current word
                    $wrapper.addClass("selected").removeClass("waiting");
                    setTimeout(() => {
                        $wrapper.removeClass("selected");
                        deleteLetters($word.find("i").last(), () => {
                            $word.removeClass("is-visible").addClass("is-hidden");
                            $next.removeClass("is-hidden").addClass("is-visible");

                            // Start typing the next word
                            typeLetters($next.find("i").eq(0), () => {
                                // Pause before next cycle
                                setTimeout(() => switchWord($next), duration);
                            });
                        });
                    }, typeDelay);

                // ---- LETTERS MODEL ----
                } else if(x.hasClass("letters")){
                    var longer = $word.children("i").length >= $next.children("i").length;
                    hideLetters($word.find("i").eq(0), $word, longer, letterDelay, () => {
                        showLetters($next.find("i").eq(0), $next, longer, letterDelay, () => {
                            setTimeout(() => switchWord($next), duration);
                        });
                    });

                // ---- CLIP MODEL ----
                } else if(x.hasClass("clip")){
                    x.find(".cz_words-wrapper").animate({ width: "2px" }, clipDuration, function(){
                        changeWord($word, $next);
                        showWord($next);
                    });

                // ---- LOADING BAR MODEL ----
                } else if(x.hasClass("loading-bar")){
                    var $wrapper = x.find(".cz_words-wrapper");
                    $wrapper.removeClass("is-loading");
                    changeWord($word, $next);
                    setTimeout(() => switchWord($next), duration);
                    setTimeout(() => $wrapper.addClass("is-loading"), duration - 2000);

                // ---- SIMPLE ROTATION ----
                } else {
                    changeWord($word, $next);
                    setTimeout(() => switchWord($next), duration);
                }
            }

            /** Typewriter: delete letters one by one **/
            function deleteLetters($letter, done){
                if(!$letter.length) return done();
                $letter.removeClass("in").addClass("out");
                setTimeout(() => {
                    deleteLetters($letter.prev(), done);
                }, letterDelay);
            }

            /** Typewriter: add letters one by one **/
            function typeLetters($letter, done){
                if(!$letter.length) return done();
                $letter.addClass("in").removeClass("out");
                setTimeout(() => {
                    typeLetters($letter.next(), done);
                }, letterDelay);
            }

            /** Letters animation **/
            function hideLetters($letter, $word, longer, delay, callback){
                $letter.removeClass("in").addClass("out");
                if($letter.is(":last-child")) return callback && callback();
                setTimeout(() => hideLetters($letter.next(), $word, longer, delay, callback), delay);
            }

            function showLetters($letter, $word, longer, delay, callback){
                $letter.addClass("in").removeClass("out");
                if($letter.is(":last-child")) return callback && callback();
                setTimeout(() => showLetters($letter.next(), $word, longer, delay, callback), delay);
            }

            /** Simple switch helpers **/
            function changeWord($old, $new){
                $old.removeClass("is-visible").addClass("is-hidden");
                $new.removeClass("is-hidden").addClass("is-visible");
            }

            function showWord($word){
                if(x.hasClass("clip")){
                    x.find(".cz_words-wrapper").animate({ width: $word.width() }, clipDuration, () => {
                        setTimeout(() => switchWord($word), duration);
                    });
                }
            }

            function getNext($word){
                return $word.is(":last-child") ? $word.parent().children().eq(0) : $word.next();
            }
        });
    };

    Codevz_Plus.animated_text();

}(jQuery);