{"version":3,"sources":["js/menu_general_v2.1.js"],"names":["$","document","ready","$root","activateMenuElt","elt","resetSelectedSubMenu","removeClass","addClass","activateMenuSubElt","displaySubMenu","next","get","hideSubMenu","find","isSubMenuElt","parent","length","each","i","css","menuEltToAvtivateIDs","sessionJSONContent","window","sessionStorage","getItem","JSON","parse","foundSubElt","foundElt","updateActiveElt","on","e","idx","preventDefault","keyArray","this","inArray","push","setItem","stringify","attr","location","targetedElt","isDisplayed","hasClass"],"mappings":"AAAAA,EAAEC,UAAUC,MAAM,WAGd,IAAIC,MAAQH,EAAE,4BAuDd,SAASI,gBAAgBC,KACrBC,uBACAN,EAAE,uBAAuBO,YAAY,UACrCP,EAAEK,KAAKG,SAAS,UAGpB,SAASC,mBAAmBJ,KACxBC,uBACAN,EAAEK,KAAKG,SAAS,UAGpB,SAASE,eAAeL,KAChBL,EAAEK,KAAKM,OAAOC,IAAI,KAAOZ,EAAEK,KAAKM,KAAK,qBAAqBC,IAAI,IAC9DZ,EAAEK,KAAKM,KAAK,qBAAqBH,SAAS,QAIlD,SAASK,cACLV,MAAMW,KAAK,SAASP,YAAY,QAGpC,SAASD,uBACLN,EAAE,6BAA6BO,YAAY,UAS/C,SAASQ,aAAaV,KAClB,IAAIW,OAAShB,EAAEA,EAAEK,KAAKW,OAAO,0BAA0BJ,IAAI,IAC3D,YAAqB,IAAVI,QAAyBA,OAAOC,OAAS,EAvFxDjB,EAAE,WA8FJA,EAAE,oBAAqBG,MAAMW,KAAK,UAAUI,KAAK,SAAUC,EAAGd,KAE7DL,EAAE,oBAAqBG,MAAMW,KAAK,cAAcM,IAAI,cAAe,YA6ElE,WAEI,IACIC,qBADAC,mBAAqBC,OAAOC,eAAeC,QAAQ,yBAGtB,IAAtBH,qBACPD,qBAAuBK,KAAKC,MAAML,qBAEtC,GAA4B,MAAxBD,sBAAgCA,qBAAqBJ,OAAS,EAAG,CACjE,IAAIW,YACAC,SACAR,qBAAqBJ,OAAS,GAC9BW,YAAc5B,EAAE,uBAAuBY,IAAIS,qBAAqB,IAChEQ,SAAW7B,EAAE,YAAYY,IAAIS,qBAAqB,KAGlDQ,SAAW7B,EAAE,YAAYY,IAAIS,qBAAqB,SAG/B,IAAZQ,UACPzB,gBAAgByB,eACM,IAAfD,cACPlB,eAAemB,UACfpB,mBAAmBmB,eAhM3BE,GAKA3B,MAAMW,KAAK,eAAeiB,GAAG,QAAS,SAAUC,GAG5C,IAAIC,IADJD,EAAEE,iBAEF,IAAIC,YACApB,aAAaqB,QAED,IADZH,IAAMjC,EAAEqC,QAAQrC,EAAEoC,MAAMxB,IAAI,GAAIZ,EAAE,iCAE9BmC,SAASG,KAAKL,MAGN,IADZA,IAAMjC,EAAEqC,QAAQrC,EAAE,sBAAsBY,IAAI,GAAIZ,EAAE,oBAE9CmC,SAASG,KAAKL,OAIN,IADZA,IAAMjC,EAAEqC,QAAQrC,EAAEoC,MAAMxB,IAAI,GAAIZ,EAAE,oBAE9BmC,SAASG,KAAKL,KAGlBlB,aAAaqB,MACb3B,mBAAmB2B,MAEnBhC,gBAAgBgC,MAEpBb,OAAOC,eAAee,QAAQ,mBAAoBb,KAAKc,UAAUL,gBAE9B,IAAxBnC,EAAEoC,MAAMK,KAAK,UACpBlB,OAAOmB,SAAW1C,EAAEoC,MAAMK,KAAK,WAIvCzC,EAAE,YAAY+B,GAAG,QAAS,SAAUC,GAChC,IAAIW,YAAc3C,EAAEoC,MAEhBQ,YADW5C,EAAE2C,aAAahC,KAAK,qBACRkC,SAAS,QAEpChC,cAEK+B,aACDlC,eAAeiC","file":"menu_general_v2.1.js","sourcesContent":["$(document).ready(function () {\r\n \r\n /*_____________________________[ menu v1.2.1 ]*/\r\n var $root = $(\"#position-menu-quantalys\");\r\n $(function () { \r\n\r\n //setSubMenuPosition();\r\n setBetterSubMenuPosition();\r\n updateActiveElt();\r\n\r\n \r\n\r\n // save the menu state\r\n $root.find(\".dropdown a\").on(\"click\", function (e) { // $root.find(\".dropdown .dropdown-sous-menu\").on(\"click\", function (e) { // \r\n\r\n e.preventDefault();\r\n var idx;\r\n var keyArray = [];\r\n if (isSubMenuElt(this)) {\r\n idx = $.inArray($(this).get(0), $('div[class^=\"submenu-\"] > a'));\r\n if (idx != -1)\r\n keyArray.push(idx);\r\n\r\n idx = $.inArray($('a[class$=\"active\"]').get(0), $(\".dropdown > a\"));\r\n if (idx != -1)\r\n keyArray.push(idx);\r\n }\r\n else {\r\n idx = $.inArray($(this).get(0), $(\".dropdown > a\"));\r\n if (idx != -1)\r\n keyArray.push(idx);\r\n }\r\n\r\n if (isSubMenuElt(this))\r\n activateMenuSubElt(this);\r\n else\r\n activateMenuElt(this);\r\n\r\n window.sessionStorage.setItem('data-active-menu', JSON.stringify(keyArray));\r\n\r\n if (typeof $(this).attr(\"href\") != \"undefined\")\r\n window.location = $(this).attr(\"href\");\r\n });\r\n\r\n // upper menu event listener\r\n $(\".dropbtn\").on(\"click\", function (e) { \r\n var targetedElt = $(this);\r\n var $submenu = $(targetedElt).next(\".submenu-position\")\r\n var isDisplayed = $submenu.hasClass(\"show\");\r\n\r\n hideSubMenu();\r\n\r\n if (!isDisplayed) {\r\n displaySubMenu(targetedElt);\r\n }\r\n });\r\n });\r\n\r\n function activateMenuElt(elt) {\r\n resetSelectedSubMenu();\r\n $(\".dropdown > .active\").removeClass(\"active\");\r\n $(elt).addClass(\"active\");\r\n }\r\n\r\n function activateMenuSubElt(elt) {\r\n resetSelectedSubMenu();\r\n $(elt).addClass(\"active\");\r\n }\r\n\r\n function displaySubMenu(elt) { \r\n if ($(elt).next().get(0) === $(elt).next(\".submenu-position\").get(0)) {\r\n $(elt).next(\".submenu-position\").addClass(\"show\"); \r\n } \r\n }\r\n\r\n function hideSubMenu() {\r\n $root.find(\".show\").removeClass(\"show\");\r\n }\r\n\r\n function resetSelectedSubMenu() {\r\n $(\".submenu-position .active\").removeClass(\"active\");\r\n }\r\n\r\n function resetAll() {\r\n hideSubMenu();\r\n $(\".active\").removeClass(\"active\");\r\n window.sessionStorage.setItem('data-active-menu', \"[]\");\r\n }\r\n\r\n function isSubMenuElt(elt) {\r\n var parent = $($(elt).parent('div[class^=\"submenu-\"]').get(0));\r\n if (typeof parent != \"undefined\" && parent.length > 0)\r\n return true;\r\n else\r\n return false;\r\n\t}\r\n\r\n\tfunction setBetterSubMenuPosition() {\r\n\t\t$(\".submenu-position\", $root.find(\"table\")).each(function (i, elt) {\r\n\t\t\tvar headerLogoWidth = 169;\r\n\t\t\t$(\".submenu-position\", $root.find(\".dropdown\")).css(\"margin-left\", \"-\" + headerLogoWidth + \"px\");\r\n\t\t});\r\n\t}\r\n\r\n function setSubMenuPosition() { \r\n var marge = 25;\r\n \r\n // set up the sub menu parent width regardi its children\r\n $(\".submenu-offset\", \".dropdown\").each(function (i, elt0) {\r\n var widthSum = marge;\r\n $(\"a\", $(elt0)).each(function (i, elt) {\r\n widthSum += $(elt).outerWidth() + 1;\r\n }); \r\n $(elt0).css({ \"width\": widthSum +\"px\"});\r\n });\r\n\r\n // text align left\r\n var subMenuEltWidth = WidthDisplay($(\".dropbtn\").next(\".submenu-position\"), $(\".dropbtn\").parent(\".dropdown\").get(0));\r\n\r\n $(\".submenu-position\", $root.find(\"table\")).each(function (i, elt) {\r\n var headerLogoWidth = 169;\r\n $(\".submenu-position\", $root.find(\".dropdown\")).css(\"margin-left\", \"-\" + headerLogoWidth + \"px\");\r\n });\r\n\r\n // set up the sub menu position regarding its parent\r\n $(\".dropbtn\").each(function (i, elt0) {\r\n var targetedElt = $(elt0);\r\n var $submenu = $($(targetedElt).next());\r\n\r\n if (isSubMenuElt($(\".submenu-offset > a\", $submenu).get(0))) {\r\n var posXParent = $(targetedElt).offset().left;\r\n var widthParent = $(targetedElt).outerWidth();\r\n var widthSubParent = $(\".submenu-offset\", $submenu).outerWidth();\r\n var positionSubMenu = $submenu.offset().left;\r\n var menuQuantalysWidth = $(targetedElt.parent(\".dropdown\").get(0)).width();\r\n\r\n // update the sub menu position\r\n var offsetMenu = GetOffsetSubmenu(posXParent, widthParent, widthSubParent, positionSubMenu, menuQuantalysWidth);\r\n $(\".submenu-offset\", $submenu).css({ \"margin-left\": offsetMenu });\r\n }\r\n });\r\n }\r\n\r\n function GetOffsetSubmenu(posXParent, widthParent, widthSubParent, posXSubParent, containerWidth) {\r\n var offsetLeft = -(posXSubParent + widthSubParent / 2 - posXParent - widthParent);\r\n var marginDiv = 10;\r\n\r\n //Cas extrême coté gauche \r\n if (offsetLeft < 0) {\r\n return marginDiv;\r\n }\r\n \r\n //Cas extrême coté droit \r\n var leftX = $($(\".submenu-position\", $root.find(\".dropdown\")).get(0)).offset().left;\r\n if ((posXParent - leftX + widthSubParent / 2) > containerWidth) {\r\n return offsetLeft - widthSubParent / 2;\r\n } \r\n\r\n return offsetLeft;\r\n }\r\n\r\n // set the sub menu position\r\n function WidthDisplay(enfant, parent) {\r\n var position = $(parent).css(\"position\");\r\n var visibility = $(parent).css(\"visibility\");\r\n var display = $(parent).css(\"display\");\r\n\r\n var style = $(parent).attr(\"style\");\r\n\r\n $(parent).css({ \"position\": \"absolute\", \"visibility\": \"hidden\", \"display\": \"block\" });\r\n var width = $(enfant).width();\r\n $(parent).removeAttr(\"style\");\r\n $(parent).attr(\"style\", style);\r\n return width;\r\n }\r\n\r\n // active back the previously selected menu and sub menu\r\n function updateActiveElt() {\r\n\r\n var sessionJSONContent = window.sessionStorage.getItem('data-active-menu');\r\n var menuEltToAvtivateIDs;\r\n\r\n if (typeof sessionJSONContent != \"undefined\")\r\n menuEltToAvtivateIDs = JSON.parse(sessionJSONContent);\r\n\r\n if (menuEltToAvtivateIDs != null && menuEltToAvtivateIDs.length > 0) {\r\n var foundSubElt;\r\n var foundElt;\r\n if (menuEltToAvtivateIDs.length > 1) {\r\n foundSubElt = $(\".submenu-position a\").get(menuEltToAvtivateIDs[0]);\r\n foundElt = $(\".dropbtn\").get(menuEltToAvtivateIDs[1]); \r\n }\r\n else{\r\n foundElt = $(\".dropbtn\").get(menuEltToAvtivateIDs[0]);\r\n }\r\n \r\n if (typeof foundElt != \"undefined\")\r\n activateMenuElt(foundElt);\r\n if (typeof foundSubElt != \"undefined\") {\r\n displaySubMenu(foundElt);\r\n activateMenuSubElt(foundSubElt);\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n});\r\n"]}