1jQuery(window).on("elementor/frontend/init", function () { 2 elementorFrontend.hooks.addAction( 3 "frontend/element_ready/rtm-navmenu.default", 4 function ($scope, $) { 5 $.fn.isOutOfViewport = function () { 6 var element = $(this)[0]; 7 var rect = element.getBoundingClientRect(); 8 9 return ( 10 rect.top < 0 || 11 rect.left < 0 || 12 rect.bottom > $(window).height() || 13 rect.right > $(window).width() 14 ); 15 }; 16 17 function setPos() { 18 $scope 19 .find(".rkit-submenu-item .rkit-navmenu-dropdown") 20 .each(function () { 21 const $this = $(this); 22 if ($this.isOutOfViewport()) { 23 $this.css({ 24 left: "auto", 25 right: "100%", 26 }); 27 } else { 28 $this.css({ 29 right: "auto", 30 left: "100%", 31 }); 32 } 33 }); 34 } 35 36 setPos(); 37 38 const $container = $scope.find(".rkit-navmenu-container"); 39 let responsive = $container.data("responsive"); 40 let widthResponsive = responsive == "tablet" ? 1024 : 768; 41 42 $screenWidth = jQuery(window).width(); 43 44 function setElHeight() { 45 let d = 3; 46 47 $scope.find(".rkit-navmenu-dropdown").each(function () { 48 var scrollHeight = $(this).prop("scrollHeight"); // Dapatkan scrollHeight dari elemen ini 49 $(this).css("--height", scrollHeight * d + "px"); // Set CSS custom property dengan nilai scrollHeight 50 }); 51 52 $scope.find(".rkit-responsive-menu").each(function () { 53 var scrollHeight = $(this).prop("scrollHeight"); // Dapatkan scrollHeight dari elemen ini 54 $(this).css("--height", scrollHeight * d + "px"); // Set CSS custom property dengan nilai scrollHeight 55 }); 56 } 57 58 setElHeight(); 59 60 function fullwidth() { 61 var nav_container = $scope.find(".rkit-navmenu-container"); 62 var elementorsection = $scope.closest(".elementor"); 63 var responsive_navmenu = nav_container.find(".rkit-responsive-menu"); 64 if (responsive_navmenu.hasClass("rkit-navmenu-fullwidth")) { 65 var section_width = elementorsection.width(); 66 $(".rkit-navmenu-fullwidth").css("width", section_width + "px"); 67 var left = -1 * Math.round(nav_container.offset().left); 68 $(".rkit-navmenu-fullwidth").css("left", left + "px"); 69 } 70 } 71 72 if ($screenWidth <= widthResponsive) { 73 fullwidth(); 74 $scope 75 .find(".rkit-dropdown-hover > a > .rkit-submenu-icon") 76 .click(function (e) { 77 e.preventDefault(); 78 }); 79 } 80 81 jQuery(window).on("resize", function () { 82 setElHeight(); 83 setPos(); 84 $screenWidth = jQuery(window).width(); 85 if ($screenWidth <= widthResponsive) { 86 fullwidth(); 87 $scope 88 .find(".rkit-dropdown-hover > a > .rkit-submenu-icon") 89 .click(function (e) { 90 e.preventDefault(); 91 }); 92 } else { 93 var nav_container = $scope.find(".rkit-navmenu-container"); 94 var responsive_navmenu = nav_container.find(".rkit-responsive-menu"); 95 if (responsive_navmenu.hasClass("rkit-navmenu-fullwidth")) { 96 $scope.find(".rkit-navmenu-fullwidth").removeAttr("style"); 97 } 98 } 99 }); 100 101 $scope.find(".rkit-btn-hamburger").click(function (e) { 102 e.preventDefault(); 103 $siblings = $(this).parent().siblings(); 104 $siblings.toggleClass("rkit-menu-show"); 105 106 $(this).toggleClass("rkit-hamburger-show"); 107 }); 108 109 $scope 110 .find(".rkit-menu-item.rkit-dropdown-click > a") 111 .click(function (e) { 112 e.preventDefault(); 113 114 // Toggle dropdown hanya untuk item yang diklik 115 const parentMenuItem = $(this).parent(); 116 117 // Tutup dropdown lain yang sedang terbuka 118 $scope 119 .find(".rkit-menu-item.rkit-dropdown-show") 120 .not(parentMenuItem) 121 .removeClass("rkit-dropdown-show"); 122 123 if ( 124 parentMenuItem 125 .find(".rkit-dropdown-click") 126 .hasClass("rkit-dropdown-show") 127 ) { 128 parentMenuItem 129 .find(".rkit-dropdown-click") 130 .removeClass("rkit-dropdown-show"); 131 } 132 133 // Toggle dropdown untuk menu yang diklik 134 parentMenuItem.toggleClass("rkit-dropdown-show"); 135 }); 136 137 $scope 138 .find(".rkit-submenu-item.rkit-dropdown-click > a") 139 .click(function (e) { 140 e.preventDefault(); 141 142 // Toggle dropdown hanya untuk item yang diklik 143 const parentMenuItem = $(this).parent(); 144 parentMenuItem.toggleClass("rkit-dropdown-show"); 145 146 if ( 147 parentMenuItem 148 .find(".rkit-dropdown-click") 149 .hasClass("rkit-dropdown-show") 150 ) { 151 parentMenuItem 152 .find(".rkit-dropdown-click") 153 .removeClass("rkit-dropdown-show"); 154 } 155 156 parentMenuItem.siblings().removeClass("rkit-dropdown-show"); 157 }); 158 159 jQuery(document).on("click", function (e) { 160 if (!$scope.is(e.target) && $scope.has(e.target).length === 0) { 161 if ( 162 $scope.find(".rkit-dropdown-click").hasClass("rkit-dropdown-show") 163 ) { 164 $scope 165 .find(".rkit-dropdown-click") 166 .removeClass("rkit-dropdown-show"); 167 } 168 169 if ($scope.find(".rkit-responsive-menu").hasClass("rkit-menu-show")) { 170 $scope.find(".rkit-responsive-menu").removeClass("rkit-menu-show"); 171 $scope 172 .find(".rkit-btn-hamburger") 173 .removeClass("rkit-hamburger-show"); 174 } 175 } 176 }); 177 } 178 ); 179});
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.