{"version":3,"file":"MegaMenuExpandable.min.js","sources":["MegaMenuExpandable.js"],"sourcesContent":["(function (w, $) {\n\n const assetId = '~/Parts/Views/Menu/MegaMenuExpandable.min.js';\n\n if (!w.umwAssets || !w.umwAssets[assetId]) {\n console.error('No context found for ' + assetId);\n return;\n }\n\n for (let ctx of w.umwAssets[assetId]) {\n\n const prefixClass = ctx.controlId.toLowerCase();\n\n const classes = {\n control: \"js-\" + prefixClass,\n lvl1Item: \"js-\" + prefixClass + \"-lvl1-item\",\n lvl1ItemHovered: prefixClass + \"-lvl1__item_hovered\",\n lvl2Item: \"js-\" + prefixClass + \"-lvl2-item\",\n lvl2ItemOpened: prefixClass + \"-lvl2__item_opened\",\n lvl2ItemClosed: prefixClass + \"-lvl2__item_closed\",\n lvl2ToggleSublevel: \"js-\" + prefixClass + \"-toggle-sublevel\",\n lvl3: \"js-\" + prefixClass + \"-lvl3\",\n lvl3Opened: prefixClass + \"-lvl3_opened\",\n lvl3Closed: prefixClass + \"-lvl3_closed\",\n };\n\n const beforeMegaMenuLvl1Mouseenter = new $.Event(\"megamenu:lvl1:beforemouseenter\");\n const beforeMegaMenuLvl1Mouseleave = new $.Event(\"megamenu:lvl1:beforemouseleave\");\n\n const $control = $(\".\" + classes.control);\n const $lvl1Item = $(\".\" + classes.lvl1Item, $control);\n const hoverDelay = 250;\n let hoverTimerId;\n\n $control.on(\"mouseenter\", \".\" + classes.lvl1Item, function (e) {\n\n $control.trigger(beforeMegaMenuLvl1Mouseenter, [hoverTimerId, hoverDelay]);\n\n if (beforeMegaMenuLvl1Mouseenter.isDefaultPrevented()) {\n return;\n }\n\n clearInterval(hoverTimerId);\n\n hoverTimerId = setTimeout(function () {\n $lvl1Item.removeClass(classes.lvl1ItemHovered);\n $(e.currentTarget).addClass(classes.lvl1ItemHovered);\n },\n hoverDelay);\n });\n\n $control.on(\"mouseleave\", \".\" + classes.lvl1Item, function (e) {\n\n $control.trigger(beforeMegaMenuLvl1Mouseleave, [hoverTimerId, hoverDelay]);\n\n if (beforeMegaMenuLvl1Mouseleave.isDefaultPrevented()) {\n return;\n }\n\n clearInterval(hoverTimerId);\n\n hoverTimerId = setTimeout(function () {\n $lvl1Item.removeClass(classes.lvl1ItemHovered);\n },\n hoverDelay);\n });\n\n const beforeMegaMenuLvl2ToggleClick = new $.Event(\"megamenu:lvl2:beforetoggleclick\");\n\n const $lvl3 = $(\".\" + classes.lvl3, $control);\n const $lvl2Item = $(\".\" + classes.lvl2Item, $control);\n let $targetLvl3, $targetLvl2Item;\n\n $control.on(\"click\", \".\" + classes.lvl2ToggleSublevel, function (e) {\n\n $control.trigger(beforeMegaMenuLvl2ToggleClick);\n\n if (beforeMegaMenuLvl2ToggleClick.isDefaultPrevented()) {\n return;\n }\n\n $targetLvl3 = $lvl3.filter(\"[data-pageid=\" + $(e.currentTarget).data(\"pageid\") + \"]\");\n $targetLvl2Item = $(e.currentTarget).closest(\".\" + classes.lvl2Item);\n\n if ($targetLvl2Item.hasClass(classes.lvl2ItemOpened)) {\n // if lvl2 item already opened, then just close lvl3\n $lvl3.removeClass(classes.lvl3Opened).addClass(classes.lvl3Closed);\n $lvl2Item.removeClass(classes.lvl2ItemOpened).addClass(classes.lvl2ItemClosed);\n } else {\n // hide all lvl3 levels\n $lvl3.removeClass(classes.lvl3Opened).addClass(classes.lvl3Closed);\n $lvl2Item.removeClass(classes.lvl2ItemOpened).addClass(classes.lvl2ItemClosed);\n // show only target lvl3 level\n $targetLvl3.removeClass(classes.lvl3Closed).addClass(classes.lvl3Opened);\n // mark opened lvl2 item\n $targetLvl2Item.removeClass(classes.lvl2ItemClosed).addClass(classes.lvl2ItemOpened);\n }\n });\n }\n})(window, jQuery);"],"names":["w","$","assetId","umwAssets","let","ctx","prefixClass","controlId","toLowerCase","classes","control","lvl1Item","lvl1ItemHovered","lvl2Item","lvl2ItemOpened","lvl2ItemClosed","lvl2ToggleSublevel","lvl3","lvl3Opened","lvl3Closed","beforeMegaMenuLvl1Mouseenter","Event","beforeMegaMenuLvl1Mouseleave","$control","$lvl1Item","hoverDelay","hoverTimerId","on","e","trigger","isDefaultPrevented","clearInterval","setTimeout","removeClass","currentTarget","addClass","beforeMegaMenuLvl2ToggleClick","$lvl3","$lvl2Item","$targetLvl3","$targetLvl2Item","filter","data","closest","hasClass","console","error","window","jQuery"],"mappings":"CAAA,SAAWA,EAAGC,GAEV,IAAMC,EAAU,+CAEhB,GAAKF,EAAEG,WAAcH,EAAEG,UAAUD,GAKjC,IAAKE,IAAIC,KAAOL,EAAEG,UAAUD,GAAU,CAE5BI,EAAcD,EAAIE,UAAUC,cAElC,MAAMC,EAAU,CACZC,QAAS,MAAQJ,EACjBK,SAAU,MAAQL,EAAc,aAChCM,gBAAiBN,EAAc,sBAC/BO,SAAU,MAAQP,EAAc,aAChCQ,eAAgBR,EAAc,qBAC9BS,eAAgBT,EAAc,qBAC9BU,mBAAoB,MAAQV,EAAc,mBAC1CW,KAAM,MAAQX,EAAc,QAC5BY,WAAYZ,EAAc,eAC1Ba,WAAYb,EAAc,gBAGxBc,EAA+B,IAAInB,EAAEoB,MAAM,kCAC3CC,EAA+B,IAAIrB,EAAEoB,MAAM,kCAE3CE,EAAWtB,EAAE,IAAMQ,EAAQC,SAC3Bc,EAAYvB,EAAE,IAAMQ,EAAQE,SAAUY,GACtCE,EAAa,IACnBrB,IAAIsB,EAEJH,EAASI,GAAG,aAAc,IAAMlB,EAAQE,SAAU,SAAUiB,GAExDL,EAASM,QAAQT,EAA8B,CAACM,EAAcD,IAE1DL,EAA6BU,uBAIjCC,cAAcL,GAEdA,EAAeM,WAAW,WAClBR,EAAUS,YAAYxB,EAAQG,iBAC9BX,EAAE2B,EAAEM,eAAeC,SAAS1B,EAAQG,kBAExCa,MAGRF,EAASI,GAAG,aAAc,IAAMlB,EAAQE,SAAU,SAAUiB,GAExDL,EAASM,QAAQP,EAA8B,CAACI,EAAcD,IAE1DH,EAA6BQ,uBAIjCC,cAAcL,GAEdA,EAAeM,WAAW,WAClBR,EAAUS,YAAYxB,EAAQG,kBAElCa,MAGR,MAAMW,EAAgC,IAAInC,EAAEoB,MAAM,mCAE5CgB,EAAQpC,EAAE,IAAMQ,EAAQQ,KAAMM,GAC9Be,EAAYrC,EAAE,IAAMQ,EAAQI,SAAUU,GAC5CnB,IAAImC,EAAaC,EAEjBjB,EAASI,GAAG,QAAS,IAAMlB,EAAQO,mBAAoB,SAAUY,GAE7DL,EAASM,QAAQO,GAEbA,EAA8BN,uBAIlCS,EAAcF,EAAMI,OAAO,gBAAkBxC,EAAE2B,EAAEM,eAAeQ,KAAK,UAAY,MACjFF,EAAkBvC,EAAE2B,EAAEM,eAAeS,QAAQ,IAAMlC,EAAQI,WAEvC+B,SAASnC,EAAQK,iBAEjCuB,EAAMJ,YAAYxB,EAAQS,YAAYiB,SAAS1B,EAAQU,YACvDmB,EAAUL,YAAYxB,EAAQK,gBAAgBqB,SAAS1B,EAAQM,kBAG/DsB,EAAMJ,YAAYxB,EAAQS,YAAYiB,SAAS1B,EAAQU,YACvDmB,EAAUL,YAAYxB,EAAQK,gBAAgBqB,SAAS1B,EAAQM,gBAE/DwB,EAAYN,YAAYxB,EAAQU,YAAYgB,SAAS1B,EAAQS,YAE7DsB,EAAgBP,YAAYxB,EAAQM,gBAAgBoB,SAAS1B,EAAQK,yBA1F7E+B,QAAQC,MAAM,wBAA0B5C,GALhD,CAmGG6C,OAAQC"}