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.