PageSourceSearch

https://www.soussmassa.ma/sites/all/modules/custom/vactory_menus/js/vactory_menus.js?r1csmv

js soussmassa.ma collected 2026-10-02 16:50:21 UTC 6,618 bytes, 167 lines download raw bytes

1/**
2 * @file
3 * Js file for menus.
4 */
5/**
6 * @file
7 * Js file for actualité.
8 */
9(function ($) {
10    $(document).ready(function () {
11
12            //Openu menu on active items Mobile
13        if($.CRSM.isMobile() || $.CRSM.isTablet()) {
14            $('#navbar-holder > li').each(function() {
15                var $this = $(this);
16                $this.find('.dropdown-menu > .megamenu .megamenu-lists  > ul > li ').each(function() {
17                    var $that = $(this);
18                    if(!$that.hasClass('children')) {
19                        if($that.find('.lvl-2 a').hasClass('active')) {
20                            $this.addClass('open');
21                        }
22                    }
23                    else {
24                        $that.each(function(){
25                            var there = $(this);
26                            there.find('.lvl-2-sub-menu >  ul > li').each(function() {
27                                if(there.find('a').hasClass('active')) {
28                                    $this.addClass('open');
29                                    $that.addClass('open');
30                                }
31                            })
32                        });
33                    }
34                });
35            });
36        }
37
38
39        //Reordering HTML on mobile
40
41        var trigger = $('.navbar-collapse .region-menu .block__content .navbar-toggle').clone(true, true);
42        $('.navbar-collapse .region-menu .block__content .navbar-toggle').remove();
43        $('.navbar-default .navbar-header').prepend(trigger);
44        if ($('.navbar-toggle').hasClass('pull-left') ) {
45            $('.navbar-header').addClass('leftIconMobile');
46            $('#navbar-collapse').attr('data-direction', 'right');
47        }
48        if ($('.navbar-toggle').hasClass('pull-right')) {
49            $('.navbar-header').addClass('rightIconMobile');
50            $('#navbar-collapse').attr('data-direction', 'left');
51        }
52        if (( $('.navbar-toggle').hasClass('pull-right') ||  $('.navbar-toggle').hasClass('pull-left')  ) && $('.navbar-toggle').hasClass('top')) {
53            $('#navbar-collapse').attr('data-direction', 'top');
54        }
55
56        // Offcanvas support
57        $(".dropdown").unbind("mouseenter");
58        $(".dropdown").unbind("mouseleave");
59        $(".dropdown").unbind("focusin");
60        $(".dropdown").unbind("click.radix.dropdown");
61
62        $("[data-toggle='offcanvas']").on("click touchstart", function (e) {
63            var offcanvas = $(this).data("target");
64           $("body, html").toggleClass("overlay");
65
66            $(offcanvas).toggleClass("offcanvas-open");
67            $(".navbar-default").toggleClass("open");
68            $(".navbar-header .navbar-toggle").toggleClass("icon-cross");
69            return false;
70        });
71
72        // Hide offcanvas when clicking outside of it
73        $(document).on("click touchstart", function (e) {
74            if ($(e.target).hasClass("navbar")) {
75                $("body").toggleClass("overlay");
76                $($(e.target).find(".navbar-offcanvas")).toggleClass("offcanvas-open");
77                return false;
78            }
79        });
80
81        // ADD SLIDEDOWN ANIMATION TO DROPDOWN //
82        $('.dropdown').on('show.bs.dropdown', function (e) {
83
84            $(this).find('.dropdown-menu').first().stop(true, true).slideDown();
85        });
86
87        $('.dropdown').on('hide.bs.dropdown', function (e) {
88            e.preventDefault();
89            $(this).find('.dropdown-menu').first().stop(true, true).slideUp();
90            $('.dropdown').removeClass('open');
91            $('.dropdown').find('.dropdown-toggle').attr('aria-expanded', 'false');
92        });
93        // Multi-level submenu support
94        $(".dropdown-menu > li > a , .dropdown-menu > li > span").on("click", function (e) {
95            if ($(this).siblings(".sub-menu").length > 0) {
96                $(this).closest(".dropdown").addClass("open");
97                $(this).parent("li").addClass("has-submenu").toggleClass("open");
98            } else {
99                $(this).parent("li").siblings("li").removeClass("open");
100            }
101            return false;
102        });
103
104        // level 2
105        $(".dropdown-menu .megamenu-lists .megamenu-list.children .lvl-2 > a, .dropdown-menu .megamenu-lists .megamenu-list.children .lvl-2 > span").on("click", function (e) {
106            e.preventDefault();
107            var $that = $(this);
108
109            if ($that.closest(".megamenu-list").hasClass("open")) {
110                $that.closest(".megamenu-list").find(".lvl-2-sub-menu").slideUp(500, function () {
111                    $(this).closest(".megamenu-list").removeClass("open");
112                });
113            } else {
114                $that.closest(".megamenu-list").find(".lvl-2-sub-menu").slideDown(500, function () {
115                    $that.closest(".megamenu-list").addClass("open");
116                });
117            }
118            e.stopPropagation()
119        });
120
121        // Fix for megamenus
122        $(document).on("click", ".dropdown-megamenu .dropdown-menu", function (e) {
123            e.stopPropagation();
124        });
125
126        // Multi-level submenu support
127        $(".dropdown-megamenu > .dropdown-toggle").on("click", function (e) {
128            if ($(".dropdown.open").length > 0 && !$(this).closest(".dropdown").hasClass("open")) {
129                $(".dropdown.open").removeClass("open");
130            }
131        });
132    });
133
134})(jQuery);
135
136
137
138(function($) {
139    Drupal.behaviors.vactory_menus = {
140        attach: function (context, settings) {
141
142            if(!jQuery('.adminimal-theme').length)  {
143                var contentHeight = $('.region-content').height();
144                if(contentHeight > 600) {
145                    var is_sticky = false,
146                        stickPosition = 0;
147                    if(Drupal.settings.vactory_menus !== "undefined") {
148                        is_sticky =  Drupal.settings.vactory_menus.is_sticky;
149                        stickPosition =  Drupal.settings.vactory_menus.fix_position;
150                        if(is_sticky) {
151                            $('#header').wrap('<div class="wrapperHeader"></div>');
152                            $("#header ").affix({
153                                offset: {
154                                    top:stickPosition
155                                }
156                            });
157                            $("#header").on('affixed.bs.affix', function(){});
158                            $("#header").on('affix.bs.affix', function(){});
159                        }
160                    }
161                }
162            }
163
164        }
165    };
166
167})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.