ant/web/addons/ant.bmenu/client.min.js

1 line
3.2 KiB
JavaScript

(function(e){(function(e){e("head").append('<link href="/addons/ant.bmenu/client.css" rel="stylesheet">');var n=n||function(){var n={fadeSpeed:100,filter:function(e){},above:"auto",preventDoubleContext:false,compress:true};function t(t){n=e.extend({},n,t);e(document).on("click","html",function(){e("._dropdown-context").fadeOut(n.fadeSpeed,function(){e("._dropdown-context").css({display:""}).find(".drop-left").removeClass("drop-left")})});if(n.preventDoubleContext){e(document).on("contextmenu","._dropdown-context",function(e){e.preventDefault()})}e(document).on("mouseenter","._dropdown-submenu",function(){var n=e(this).find("._dropdown-context-sub:first"),t=n.width(),o=n.offset().left,d=t+o>window.innerWidth;if(d){n.addClass("drop-left")}})}function o(t){n=e.extend({},n,t)}function d(t,o,i){var a=i?" _dropdown-context-sub":"",f=n.compress?" compressed-context":"",s=e('<ul class="_dropdown-menu _dropdown-context'+a+f+'" id="dropdown-'+o+'"></ul>');var r=0,p="";for(r;r<t.length;r++){if(typeof t[r].divider!=="undefined"){s.append('<li class="_divider"></li>')}else if(typeof t[r].header!=="undefined"){s.append('<li class="_nav-header">'+t[r].header+"</li>")}else{if(typeof t[r].href=="undefined"){t[r].href="javascript:;"}if(typeof t[r].target!=="undefined"){p=' target="'+t[r].target+'"'}if(typeof t[r].subMenu!=="undefined"){var l='<li class="'+(t[r].disabled?" disabled":"_dropdown-submenu")+'"><a tabindex="-1" href="'+t[r].href+'">';l+=t[r].icon?'<i class="_left '+t[r].icon+'"></i> ':"";l+=t[r].text;l+="</a></li>";$sub=l}else{var l="<li"+(t[r].disabled?' class="disabled"':"")+">";l+='<a tabindex="-1" href="'+t[r].href+'"'+p+">";l+=t[r].icon?'<i class="pull-left _left '+t[r].icon+'"></i> ':"";l+=t[r].count?' <span class="_right pull-right badge">'+t[r].count+"</span>":"";l+=t[r].text;l+="</a></li>";$sub=e(l)}if(typeof t[r].action!=="undefined"&&!t[r].disabled){var u=new Date,c=(t[r].id||"event")+"-"+u.getTime()*Math.floor(Math.random()*1e5),b=t[r].action;$sub.find("a").attr("id",c);e("#"+c).addClass("context-event");e(document).on("click","#"+c,b)}s.append($sub);if(typeof t[r].subMenu!="undefined"){var h=d(t[r].subMenu,o,true);s.find("li:last").append(h)}}if(typeof n.filter=="function"){n.filter(s.find("li:last"))}}return s}function i(t,o,i){var a=new Date,f=t?a.getTime():"none",s=d(o,f);e("#dropdown-none").remove();e("body").append(s);function r(t){e("._dropdown-context:not(._dropdown-context-sub)").hide();$dd=e("#dropdown-"+f);if(typeof n.above=="boolean"&&n.above){$dd.addClass("_dropdown-context-up").css({top:t.pageY-20-e("#dropdown-"+f).height(),left:t.pageX-13}).fadeIn(n.fadeSpeed)}else if(typeof n.above=="string"&&n.above=="auto"){$dd.removeClass("_dropdown-context-up");var o=$dd.height()+12;if(t.pageY+o>e("html").height()){$dd.addClass("_dropdown-context-up").css({top:t.pageY-20-o,left:t.pageX-13}).fadeIn(n.fadeSpeed)}else{$dd.css({top:t.pageY+10,left:t.pageX-13}).fadeIn(n.fadeSpeed)}}}if(t){e(document).on("contextmenu",t,function(e){e.preventDefault();e.stopPropagation();r(e)})}else{r(i)}}function a(n){e(document).off("contextmenu",n).off("click",".context-event")}return{init:t,settings:o,attach:i,destroy:a}}();n.init({preventDoubleContext:false,compress:true});e.fn.bmenu=function(t,o){n.attach(e(this).selector,t,o)}})(jQuery)})();