angular-aside-menu
Version:
# angular-aside-menu Side menu for website
2 lines • 3.18 kB
JavaScript
/*! angular-aside-menu - v1.5.1 - (c) Mahmut Duva <mahmutduva@gmail.com>, https://github.com/mahmutduva/angular-aside-menu - 2016-12-18 */
;angular.module("asideModule",[]).directive("asideMenuToggle",["$compile",function(a){return{restrict:"EA",link:function(b,c,d){b.isOpen=!1,b.menus=document.getElementsByTagName("aside-menu"),b.menuContent=document.getElementsByClassName("aside-menu-content"),b.targetMenu={item:null,width:275,side:"left",pushContentContent:!1,isBackdrop:!1},c.bind("click",function(){if(angular.element(b.menuContent).css("transform","translate3d(0, 0, 0)"),angular.forEach(b.menus,function(a){angular.element(a).attr("fixed")||angular.element(a).css("transform","translate3d(0, 0, 0)"),angular.element(a).attr("id")==d.asideMenuToggle&&(b.targetMenu.item=angular.element(a),b.targetMenu.width=angular.element(a).attr("width"),b.targetMenu.side=angular.element(a).attr("side"),b.targetMenu.pushContent=angular.element(a).attr("push-content"),b.targetMenu.isBackdrop=angular.element(a).attr("is-backdrop"),angular.element(a).attr("open")?(angular.element(a).attr("open",!1),b.$emit("getMenuState",!1)):(angular.element(a).attr("open",!0),b.$emit("getMenuState",!0)),b.targetMenu.open=angular.element(a).attr("open"))}),b.targetMenu.open){if("left"==b.targetMenu.side?"true"==b.targetMenu.pushContent?angular.element(b.menuContent).css("transform","translate3d("+b.targetMenu.width+", 0, 0)"):b.targetMenu.item.css("transform","translate3d( 100%, 0, 0)"):"right"==b.targetMenu.side&&("true"==b.targetMenu.pushContent?angular.element(b.menuContent).css("transform","translate3d(-"+b.targetMenu.width+", 0, 0)"):b.targetMenu.item.css("transform","translate3d(-"+b.targetMenu.width+", 0, 0)")),"true"==b.targetMenu.isBackdrop){var c=a('<div close-aside-menu class="aside-back-drop in"></div>')(b);angular.element(b.menuContent).append(c)}}else if("true"==b.targetMenu.pushContent?angular.element(b.menuContent).css("transform","translate3d(0, 0, 0)"):b.targetMenu.item.css("transform","translate3d(0, 0, 0)"),"true"==b.targetMenu.isBackdrop){var c=document.getElementsByClassName("aside-back-drop");angular.element(c).remove()}})}}}]).directive("asideMenu",function(){return{restrict:"EA",link:function(a,b,c){angular.element(b).addClass("aside-menu aside-menu-animate"),angular.element(b).css({width:c.width}),"left"==c.side?(angular.element(b).css("left",0),"false"==c.pushContent&&(angular.element(b).css("z-index","99"),angular.element(b).css("left","-"+c.width))):"right"==c.side&&(angular.element(b).css("right",0),"false"==c.pushContent&&(angular.element(b).css("z-index","99"),angular.element(b).css("right","-"+c.width)))}}}).directive("asideMenuContent",function(){return{restrict:"AE",scope:!0,link:function(a,b,c){angular.element(b).addClass("aside-menu-content aside-menu-animate close-aside-menu")}}}).directive("closeAsideMenu",function(){return{restrict:"AC",link:function(a,b,c){b.bind("click",function(){angular.element(a.menuContent).css("transform","translate3d(0, 0, 0)"),a.targetMenu.item.css("transform","translate3d( 0, 0, 0)"),angular.element(a.targetMenu.item).attr("open",!1),a.$emit("getMenuState",!1),b.remove()})}}});