{"version":3,"file":"top-nav-item-template.js","sources":["../../../../src/site/js/directives/toggle-dropdown.js"],"sourcesContent":["import { isObject } from \"@helpers/utils.js\";\r\nimport model from \"@js/model.js\";\r\nimport gsap from \"gsap\";\r\n\r\nexport default {\r\n\tbeforeMount(element, binding){\r\n\t\tvar $elem = $(element);\r\n\t\t\r\n\t\t$elem.css('position', 'relative');\r\n\t\t\r\n\t\tvar props = binding.value;\r\n\r\n\t\tif(!isObject(props)){\r\n\t\t\tprops = {\r\n\t\t\t\tanimType: props,\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar openedObs = props.openedObs;\r\n\t\tvar animType = props.animType;\r\n\r\n\t\tif(!animType)\r\n\t\t\tanimType = 'pull';\r\n\r\n\t\tvar fadeOut;\r\n\t\tvar fadeIn;\r\n\r\n\t\tswitch(animType){\r\n\t\t\tcase 'fade' : \r\n\t\t\t\tfadeOut = 'fadeOut';\r\n\t\t\t\tfadeIn = 'fadeIn';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'pull' : \r\n\t\t\t\tfadeOut = 'pullUp';\r\n\t\t\t\tfadeIn = 'pullDown';\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tvar $toggleBtn = $elem.find('.' + (props.classNameToggle || 'dropdown-toggle'));\r\n\t\tvar $dropdown = $elem.find('.' + (props.classNameMenu || 'dropdown-menu'));\r\n\t\t$dropdown.hide();\r\n\r\n\t\tvar dropdownDisplayed = false;\r\n\r\n\t\tlet onToggleBtn = function(){\r\n\t\t\t$dropdown[dropdownDisplayed ? fadeOut : fadeIn](200);\r\n\t\t\tdropdownDisplayed = !dropdownDisplayed;\r\n\t\t\t$elem[dropdownDisplayed ? 'addClass' : 'removeClass']('opened');\r\n\t\t\tif(isObject(openedObs)) openedObs.value = dropdownDisplayed;\r\n\r\n\t\t\tif(dropdownDisplayed && model.isMobile){\r\n\t\t\t\tlet $parent = $elem.parents('#mobile-nav-bottom-side-menu');\r\n\r\n\t\t\t\tlet obj = {\r\n\t\t\t\t\tscrollTop: $parent.scrollTop(),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tgsap.to(obj, {\r\n\t\t\t\t\t\tduration: 1,\r\n\t\t\t\t\t\tscrollTop: $parent.get(0).scrollHeight,\r\n\t\t\t\t\t\tonUpdate: () => $parent.scrollTop(obj.scrollTop),\r\n\t\t\t\t\t});\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tlet onDocClick = function(e){\r\n\t\t\tvar $target = $(e.target);\r\n\t\t\tif((!$target.is($elem) && $target.closest($elem).length === 0) || $.contains($dropdown.get(0), $target.get(0))){\r\n\t\t\t\tdropdownDisplayed && $dropdown[fadeOut](200);\r\n\t\t\t\tdropdownDisplayed = false;\r\n\t\t\t\t$elem.removeClass('opened');\r\n\t\t\t\tif(isObject(openedObs)) openedObs.value = dropdownDisplayed;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$toggleBtn.on('click', onToggleBtn);\r\n\t\t$(document).on('click', onDocClick);\r\n\r\n\t\telement.onDispose = () => {\r\n\t\t\t$toggleBtn.off('click', onToggleBtn);\r\n\t\t\t$(document).off('click', onDocClick);\r\n\t\t}\r\n\t},\r\n\tunmounted(element){\r\n\t\telement.onDispose?.()\r\n\t},\r\n}"],"names":["toggleDropdown","element","binding","$elem","props","isObject","openedObs","animType","fadeOut","fadeIn","$toggleBtn","$dropdown","dropdownDisplayed","onToggleBtn","model","$parent","obj","gsap","onDocClick","e","$target","_a"],"mappings":"kLAIA,MAAeA,EAAA,CACd,YAAYC,EAASC,EAAQ,CAC5B,IAAIC,EAAQ,EAAEF,CAAO,EAErBE,EAAM,IAAI,WAAY,UAAU,EAEhC,IAAIC,EAAQF,EAAQ,MAEhBG,EAASD,CAAK,IACjBA,EAAQ,CACP,SAAUA,CACV,GAGF,IAAIE,EAAYF,EAAM,UAClBG,EAAWH,EAAM,SAEjBG,IACHA,EAAW,QAEZ,IAAIC,EACAC,EAEJ,OAAOF,EAAQ,CACd,IAAK,OACJC,EAAU,UACVC,EAAS,SACT,MACD,IAAK,OACJD,EAAU,SACVC,EAAS,WACT,KACD,CAED,IAAIC,EAAaP,EAAM,KAAK,KAAOC,EAAM,iBAAmB,kBAAkB,EAC1EO,EAAYR,EAAM,KAAK,KAAOC,EAAM,eAAiB,gBAAgB,EACzEO,EAAU,KAAI,EAEd,IAAIC,EAAoB,GAExB,IAAIC,EAAc,UAAU,CAM3B,GALAF,EAAUC,EAAoBJ,EAAUC,CAAM,EAAE,GAAG,EACnDG,EAAoB,CAACA,EACrBT,EAAMS,EAAoB,WAAa,aAAa,EAAE,QAAQ,EAC3DP,EAASC,CAAS,IAAGA,EAAU,MAAQM,GAEvCA,GAAqBE,EAAM,SAAS,CACtC,IAAIC,EAAUZ,EAAM,QAAQ,8BAA8B,EAEtDa,EAAM,CACT,UAAWD,EAAQ,UAAW,CACnC,EAEI,WAAW,IAAM,CAChBE,EAAK,GAAGD,EAAK,CACZ,SAAU,EACV,UAAWD,EAAQ,IAAI,CAAC,EAAE,aAC1B,SAAU,IAAMA,EAAQ,UAAUC,EAAI,SAAS,CACrD,CAAM,CACD,EAAE,GAAG,CACN,CACJ,EAEME,EAAa,SAASC,EAAE,CAC3B,IAAIC,EAAU,EAAED,EAAE,MAAM,GACpB,CAACC,EAAQ,GAAGjB,CAAK,GAAKiB,EAAQ,QAAQjB,CAAK,EAAE,SAAW,GAAM,EAAE,SAASQ,EAAU,IAAI,CAAC,EAAGS,EAAQ,IAAI,CAAC,CAAC,KAC5GR,GAAqBD,EAAUH,CAAO,EAAE,GAAG,EAC3CI,EAAoB,GACpBT,EAAM,YAAY,QAAQ,EACvBE,EAASC,CAAS,IAAGA,EAAU,MAAQM,GAE3C,EAEDF,EAAW,GAAG,QAASG,CAAW,EAClC,EAAE,QAAQ,EAAE,GAAG,QAASK,CAAU,EAElCjB,EAAQ,UAAY,IAAM,CACzBS,EAAW,IAAI,QAASG,CAAW,EACnC,EAAE,QAAQ,EAAE,IAAI,QAASK,CAAU,CACnC,CACD,EACD,UAAUjB,EAAQ,QACjBoB,EAAApB,EAAQ,YAAR,MAAAoB,EAAA,KAAApB,EACA,CACF"}