PageSourceSearch

https://promujer.org/wp-content/plugins/super-floating-flying-menu…/elements/assets/js/frontend.js?ver=2.2.0

js promujer.org collected 2026-10-01 11:25:26 UTC 4,875 bytes, 114 lines download raw bytes

1(function ($, elementor) {
2    "use strict";
3    var SFFMElements = {
4
5        init: function () {
6
7            var widgets = {
8                'sffm-multi-level-menu.default': SFFMElements.multiLevelMenu,
9                'sffm-multi-level-breadcrumb-menu.default': SFFMElements.multiLevelMenuOne,
10                'sffm-hover-menu.default': SFFMElements.hoverMenu,
11                'sffm-close-menu-button.default': SFFMElements.closeMenuPanel
12            };
13
14            $.each(widgets, function (widget, callback) {
15                elementor.hooks.addAction('frontend/element_ready/' + widget, callback);
16            });
17
18        },
19
20        hoverMenu: function ($scope) {
21            var $target = $scope.find('.sffm-el-menu');
22            if ($target.hasClass('sffm-el-menu--style2')) {
23                $target.find('.sffm-el-menu-item').each(function () {
24                    new SffmMenuHoverStyle2Item($(this));
25                });
26            } else if ($target.hasClass('sffm-el-menu--style3')) {
27                $target.find('.sffm-el-menu-item').each(function () {
28                    new SffmMenuHoverStyle3Item($(this));
29                });
30            } else if ($target.hasClass('sffm-el-menu--style4')) {
31                $target.find('.sffm-el-menu-item').each(function () {
32                    new SffmMenuHoverStyle4Item($(this));
33                });
34            } else if ($target.hasClass('sffm-el-menu--style5')) {
35                $target.find('.sffm-el-menu-item').each(function () {
36                    new SffmMenuHoverStyle5Item($(this));
37                });
38            } else if ($target.hasClass('sffm-el-menu--style7')) {
39                $target.find('.sffm-el-menu-item').each(function () {
40                    new SffmMenuHoverStyle7Item($(this));
41                });
42            } else if ($target.hasClass('sffm-el-menu--style8')) {
43                $target.find('.sffm-el-menu-item').each(function () {
44                    new SffmMenuHoverStyle8Item($(this));
45                });
46            }
47        },
48
49        multiLevelMenu: function ($scope) {
50            var $target = $scope.find('.sffm-menu-container'),
51                    bckBtnTxt = $target.data('back-button-text'),
52                    submenuIcon = $target.data('sub-menu-icon'),
53                    menuStyle = $target.data('menu-style');
54
55            if (!$target.length) {
56                return;
57            }
58
59            $.each($scope.find('.sffm-submenu-toggle'), function () {
60                var self = $(this);
61                self.html('<span class="' + submenuIcon + '"></span>');
62            });
63
64            $.each($scope.find('.sffm-back'), function () {
65                var self = $(this);
66                self.find('span').html(bckBtnTxt);
67            });
68
69            $target.sffmmenu({
70                animationClasses: {classin: 'sffm-animate-in-' + menuStyle, classout: 'sffm-animate-out-' + menuStyle},
71            });
72        },
73
74        multiLevelMenuOne: function ($scope) {
75            var menuEl = $scope.find('.sffm-mlm-menu');
76
77            if (menuEl.length > 0) {
78                var settings = JSON.parse(menuEl.attr('data-settings'));
79                $.each($scope.find('ul li'), function () {
80                    var self = $(this);
81                    if (self.children('ul').length > 0) {
82                        if (self.children('a').attr('id')) {
83                            self.children('a').attr('data-submenu', self.children('a').attr('id'));
84                            self.children('ul').attr('data-menu', self.children('a').attr('id'));
85                        }
86
87                        self.children('a').append('<span class="' + settings.sub_menu_indicator + '"></span>');
88                        $scope.find('.sffm-mlm-menu .sffm-mlm-wrap').append(self.children('ul'));
89                    }
90                });
91
92                new MLMenu(menuEl[0], {
93                    breadcrumbsCtrl: JSON.parse(settings.show_breadcrumb), // show breadcrumbs
94                    initialBreadcrumb: settings.breadcrumb_text, // initial breadcrumb text
95                    backCtrl: JSON.parse(settings.show_back_button), // show back button
96                    backCtrlClass: settings.back_button_icon,
97                    itemsDelayInterval: settings.item_delay_interval, // delay between each menu item sliding animation,
98                    direction: settings.direction,
99                });
100            }
101        },
102
103        closeMenuPanel: function($scope) {
104            $scope.find('.sffm-menu-close').on('click', function () {
105                var $wrap = $(this).closest('.sffm-flymenu-wrapper');
106                $wrap.find('.sffm-flymenu-trigger').trigger('click');
107                return false;
108            });
109        }
110
111    };
112
113    $(window).on('elementor/frontend/init', SFFMElements.init);
114}(jQuery, window.elementorFrontend));

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.