HEX
Server: Apache/2.4.57 (Debian)
System: Linux web-server-k8s-e92jnr3j-6f99bff6b6-rp2wg 6.1.0-22-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.94-1 (2024-06-21) x86_64
User: apache (48)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/sites/1250.info/wp-content/plugins/nm-portfolio/assets/js/nm-portfolio.js
(function($) {
	
	'use strict';
	
	/* NM Portfolio */
	window.NM_Portfolio = {
		
		/**
		 *	Initialize Portfolio
		 */
		init: function() {
			var self = this;
			
			self.$pageIncludes = $('#nm-page-includes');
			
            if (self.$pageIncludes.hasClass('portfolio')) {
                var $portfolioGrids = $('.nm-portfolio-grid');

                for (var i = 0; i < $portfolioGrids.length; i++) {
                    var $thisGrid = $($portfolioGrids[i]),
                        $categoriesMenu = $thisGrid.siblings('.nm-portfolio-categories');

                    // Packery layout
                    self.packeryLayout($thisGrid);

                    // Categories
                    if ($categoriesMenu.length && $categoriesMenu.hasClass('js-sorting')) {
                        self.categoriesAnimatedSorting($categoriesMenu);
                    }
                }
            }
		},
        
        /**
         * Packery layout: Init
         */
        packeryLayout: function($portfolioGrid) {
            if ($portfolioGrid.parent('.nm-portfolio').hasClass('packery-enabled')) {
                // Packery settings
                var settings = {
                    itemSelector: 'li',
                    gutter: 0,
                    isInitLayout: false // Disable initial layout
                };

                // Initialize Packery
                $portfolioGrid.packery(settings);

                // Packery event: "layoutComplete"
                $portfolioGrid.packery('once', 'layoutComplete', function() {
                    $portfolioGrid.removeClass('nm-loader').addClass('show');
                });

                // Manually trigger initial layout
                $portfolioGrid.packery();
            }
        },
        
        /**
         * Categories: Enable animated sorting
         */
        categoriesAnimatedSorting: function($categoriesMenu) {
            $categoriesMenu.find('a').on('click', function(e) {
                e.preventDefault();

                var $this = $(this),
                    $thisWrap = $this.closest('.nm-portfolio');

                if ($this.hasClass('current')) {
                    return;
                } else {
                    // Set "current" link
                    $thisWrap.children('.nm-portfolio-categories').children('.current').removeClass('current');
                    $this.parent('li').addClass('current');
                }

                var $thisGrid = $thisWrap.children('.nm-portfolio-grid'),
                    $thisItems = $thisGrid.children('li'),
                    filterSlug = $this.data('filter'),
                    packeryEnabled = $thisWrap.hasClass('packery-enabled') ? true : false;

                // Show/hide elements
                if (filterSlug) {
                    var $item;
                    $thisItems.each(function() {
                        $item = $(this);
                        if ($item.hasClass(filterSlug)) {
                            if (packeryEnabled) {
                                $thisGrid.packery('unignore', $item[0]); // Packery - un-ignore element
                            }

                            $item.removeClass('hide fade-out');
                        } else {
                            if (packeryEnabled) {
                                $thisGrid.packery('ignore', $item[0]); // Packery - ignore element
                            }

                            $item.addClass('hide fade-out');
                        }
                    });
                } else {
                    if (packeryEnabled) {
                        $thisItems.each(function() {
                            $thisGrid.packery('unignore', $(this)[0]); // Packery - unignore element
                        });
                    }

                    $thisItems.removeClass('hide fade-out'); // Show all items
                }

                if (packeryEnabled) {
                    $thisGrid.packery(); // Re-position grid elements
                }
            });
        }
	};
    
    $(window).on('load', function() {
        // Initialize script
        window.NM_Portfolio.init();
    });
	
})(jQuery);