1/*! elementor-pro - v3.21.0 - 30-04-2024 */ 2"use strict"; 3(self.webpackChunkelementor_pro = self.webpackChunkelementor_pro || []).push([[42], { 4 9891: (e,t)=>{ 5 Object.defineProperty(t, "__esModule", { 6 value: !0 7 }), 8 t.default = void 0; 9 t.default = class AnchorLinks { 10 followMenuAnchors(e, t) { 11 e.each(((e,n)=>{ 12 location.pathname === n.pathname && "" !== n.hash && this.followMenuAnchor(jQuery(n), t) 13 } 14 )) 15 } 16 followMenuAnchor(e, t) { 17 const n = e[0].hash 18 , o = t.activeAnchorItem 19 , s = t.anchorItem 20 , i = e.hasClass(s) ? e : e.closest(`.${s}`); 21 let r, l = -300; 22 try { 23 r = jQuery(decodeURIComponent(n)) 24 } catch (e) { 25 return 26 } 27 if (r.length) { 28 if (!r.hasClass("elementor-menu-anchor")) { 29 const e = jQuery(window).height() / 2; 30 l = -r.outerHeight() + e 31 } 32 elementorFrontend.waypoint(r, (t=>{ 33 "down" === t ? (i.addClass(o), 34 e.attr("aria-current", "location")) : (i.removeClass(o), 35 e.attr("aria-current", "")) 36 } 37 ), { 38 offset: "50%", 39 triggerOnce: !1 40 }), 41 elementorFrontend.waypoint(r, (t=>{ 42 "down" === t ? (i.removeClass(o), 43 e.attr("aria-current", "")) : (i.addClass(o), 44 e.attr("aria-current", "location")) 45 } 46 ), { 47 offset: l, 48 triggerOnce: !1 49 }) 50 } 51 } 52 } 53 } 54 , 55 7480: (e,t,n)=>{ 56 var o = n(3203); 57 Object.defineProperty(t, "__esModule", { 58 value: !0 59 }), 60 t.default = void 0; 61 var s = o(n(9891)); 62 t.default = elementorModules.frontend.handlers.Base.extend({ 63 stretchElement: null, 64 getDefaultSettings: ()=>({ 65 selectors: { 66 menu: ".elementor-nav-menu", 67 anchorLink: ".elementor-nav-menu--main .elementor-item-anchor", 68 dropdownMenu: ".elementor-nav-menu__container.elementor-nav-menu--dropdown", 69 menuToggle: ".elementor-menu-toggle" 70 }, 71 classes: { 72 anchorItem: "elementor-item-anchor", 73 activeAnchorItem: "elementor-item-active" 74 } 75 }), 76 getDefaultElements() { 77 var e = this.getSettings("selectors") 78 , t = {}; 79 return t.$menu = this.$element.find(e.menu), 80 t.$anchorLink = this.$element.find(e.anchorLink), 81 t.$dropdownMenu = this.$element.find(e.dropdownMenu), 82 t.$dropdownMenuFinalItems = t.$dropdownMenu.find(".menu-item:not(.menu-item-has-children) > a"), 83 t.$menuToggle = this.$element.find(e.menuToggle), 84 t.$links = t.$dropdownMenu.find("a.elementor-item"), 85 t 86 }, 87 dropdownMenuHeightControllerConfig() { 88 const e = this.getSettings("selectors"); 89 return { 90 elements: { 91 $element: this.$element, 92 $dropdownMenuContainer: this.$element.find(e.dropdownMenu), 93 $menuToggle: this.$element.find(e.menuToggle) 94 }, 95 attributes: { 96 menuToggleState: "aria-expanded" 97 }, 98 settings: { 99 dropdownMenuContainerMaxHeight: "1000vmax", 100 menuHeightCssVarName: "--menu-height" 101 } 102 } 103 }, 104 bindEvents() { 105 this.elements.$menu.length && (this.elements.$menuToggle.on("click", this.toggleMenu.bind(this)).on("keyup", this.triggerClickOnEnterSpace.bind(this)), 106 this.getElementSettings("full_width") && this.elements.$dropdownMenuFinalItems.on("click", this.toggleMenu.bind(this, !1)).on("keyup", this.triggerClickOnEnterSpace.bind(this)), 107 elementorFrontend.addListenerOnce(this.$element.data("model-cid"), "resize", this.stretch
107Menu), 108 elementorFrontend.addListenerOnce(this.$element.data("model-cid"), "scroll", elementorFrontend.debounce(this.menuHeightController.reassignMobileMenuHeight.bind(this.menuHeightController), 250))) 109 }, 110 initStretchElement() { 111 this.stretchElement = new elementorModules.frontend.tools.StretchElement({ 112 element: this.elements.$dropdownMenu 113 }) 114 }, 115 toggleNavLinksTabIndex() { 116 let e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; 117 this.elements.$links.attr("tabindex", e ? 0 : -1) 118 }, 119 120 //WCAG 121 toggleMenu(show) { 122 123 if (show.type && show.type == "keydown") { 124 if (show.keyCode != 13) 125 return; 126 } 127 128 var isDropdownVisible = this.elements.$menuToggle.hasClass('elementor-active'); 129 130 if (!this.toggleMenuHeight) { 131 this.toggleMenuHeight = this.elements.$menuToggle.closest('.elementor-widget-container').height(); 132 } 133 134 let menu_row = this.elements.$menuToggle.closest('.elementor-row');
135 let height_row = menu_row.first('.elementor-column').innerHeight(); 136 137 if (!(isDropdownVisible)){ 138 this.elements.$menuToggle.closest('.elementor-column') 139 .css('width', '100%') 140 .css('margin-top', '-' + this.toggleMenuHeight + 'px' ); 141 142 this.elements.$dropdownMenu 143 .css('max-height', 'none') 144 .show(); 145 146 } else { 147 148 this.elements.$menuToggle.closest('.elementor-column') 149 .css('width', '') 150 .css('margin-top', '' ); 151 152 this.elements.$dropdownMenu.hide(); 153 } 154 155 if ('boolean' !== typeof show) { 156 show = !isDropdownVisible; 157 } 158 159 this.elements.$menuToggle.attr('aria-expanded', show); 160 this.elements.$dropdownMenu.attr('aria-hidden', !show); 161 this.elements.$menuToggle.toggleClass('elementor-active', show); 162 163 if (show && this.getElementSettings('full_width')) { 164/* 165 this.stretchElement.stretch(); 166*/ 167 } 168 }, 169 170 171 // toggleMenu(e) { 172 // var t = this.elements.$menuToggle.hasClass("elementor-active"); 173 // "boolean" != typeof e && (e = !t), 174 // this.elements.$menuToggle.attr("aria-expanded", e), 175 // this.elements.$dropdownMenu.attr("aria-hidden", !e), 176 // this.elements.$menuToggle.toggleClass("elementor-active", e), 177 // this.toggleNavLinksTabIndex(e), 178 // this.menuHeightController.reassignMobileMenuHeight(this), 179 // e && this.getElementSettings("full_width") && this.stretchElement.stretch() 180 // }, 181 triggerClickOnEnterSpace(e) { 182 13 !== e.keyCode && 32 !== e.keyCode || (e.currentTarget.click(), 183 e.stopPropagation()) 184 }, 185 stretchMenu() { 186 this.getElementSettings("full_width") ? (this.stretchElement.stretch(), 187 this.elements.$dropdownMenu.css("top", this.elements.$menuToggle.outerHeight())) : this.stretchElement.reset() 188 }, 189 onInit() { 190 if (this.menuHeightController = new elementorProFrontend.utils.DropdownMenuHeightController(this.dropdownMenuHeightControllerConfig()), 191 elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments), 192 !this.elements.$menu.length) 193 return; 194 const e = this.getElementSettings().submenu_icon.value; 195 let t = ""; 196 if (e && (t = e.indexOf("<") > -1 ? e : `<i class="${e}"></i>`), 197 this.elements.$menu.smartmenus({ 198 subIndicators: "" !== t, 199 subIndicatorsText: t, 200 subIndicatorsPos: "append", 201 subMenusMaxWidth: "1000px" 202 }), 203 this.initStretchElement(), 204 this.stretchMenu(), 205 !elementorFrontend.isEditMode()) { 206 const e = this.getSettings("classes"); 207 this.anchorLinks = new s.default, 208 this.anchorLinks.followMenuAnchors(this.elements.$anchorLink, e) 209 } 210 }, 211 onElementChange(e) { 212 "full_width" === e && this.stretchMenu() 213 } 214 }) 215 } 216}]);
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.