You are on page 1of 2

/*! jQuery UI - v1.10.

2 - 2013-03-14
* http://jqueryui.com
* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
(function(t){t.widget("ui.menu",{version:"1.10.2",defaultElement:"<ul>",delay:30
0,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top
",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function
(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().add
Class("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menuicons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabI
ndex:0}).bind("click"+this.eventNamespace,t.proxy(function(t){this.options.disab
led&&t.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui
-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-ite
m > a":function(t){t.preventDefault()},"click .ui-state-disabled > a":function(t
){t.preventDefault()},"click .ui-menu-item:has(a)":function(e){var i=t(e.target)
.closest(".ui-menu-item");!this.mouseHandled&&i.not(".ui-state-disabled").length
&&(this.mouseHandled=!0,this.select(e),i.has(".ui-menu").length?this.expand(e):t
his.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&1===t
his.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .
ui-menu-item":function(e){var i=t(e.currentTarget);i.siblings().children(".ui-st
ate-active").removeClass("ui-state-active"),this.focus(e,i)},mouseleave:"collaps
eAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active|
|this.element.children(".ui-menu-item").eq(0);e||this.focus(t,i)},blur:function(
e){this._delay(function(){t.contains(this.element[0],this.document[0].activeElem
ent)||this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.d
ocument,{click:function(e){t(e.target).closest(".ui-menu").length||this.collapse
All(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("ari
a-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget u
i-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("ta
bIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("a
ria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.fi
nd(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("a
ria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-stat
e-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").
children().each(function(){var e=t(this);e.data("ui-menu-submenu-carat")&&e.remo
ve()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-wid
get-content")},_keydown:function(e){function i(t){return t.replace(/[\-\[\]{}()*
+?.,\\\^$|#\s]/g,"\\$&")}var s,n,a,o,r,h=!0;switch(e.keyCode){case t.ui.keyCode.
PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);
break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCo
de.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);b
reak;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.colla
pse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-dis
abled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:th
is._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:h=
!1,n=this.previousFilter||"",a=String.fromCharCode(e.keyCode),o=!1,clearTimeout(
this.filterTimer),a===n?o=!0:a=n+a,r=RegExp("^"+i(a),"i"),s=this.activeMenu.chil
dren(".ui-menu-item").filter(function(){return r.test(t(this).children("a").text
())}),s=o&&-1!==s.index(this.active.next())?this.active.nextAll(".ui-menu-item")
:s,s.length||(a=String.fromCharCode(e.keyCode),r=RegExp("^"+i(a),"i"),s=this.act
iveMenu.children(".ui-menu-item").filter(function(){return r.test(t(this).childr
en("a").text())})),s.length?(this.focus(e,s),s.length>1?(this.previousFilter=a,t
his.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete
this.previousFilter):delete this.previousFilter}h&&e.preventDefault()},_activate
:function(t){this.active.is(".ui-state-disabled")||(this.active.children("a[aria
-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){va
r e,i=this.options.icons.submenu,s=this.element.find(this.options.menus);s.filte
r(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all"
).hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"fals
e"}).each(function(){var e=t(this),s=e.prev("a"),n=t("<span>").addClass("ui-menu
-icon ui-icon "+i).data("ui-menu-submenu-carat",!0);s.attr("aria-haspopup","true

").prepend(n),e.attr("aria-labelledby",s.attr("id"))}),e=s.add(this.element),e.c
hildren(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","pres
entation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,
role:this._itemRole()}),e.children(":not(.ui-menu-item)").each(function(){var e=
t(this);/[^\-\u2014\u2013\s]/.test(e.text())||e.addClass("ui-widget-content ui-m
enu-divider")}),e.children(".ui-state-disabled").attr("aria-disabled","true"),th
is.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:f
unction(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOptio
n:function(t,e){"icons"===t&&this.element.find(".ui-menu-icon").removeClass(this
.options.icons.submenu).addClass(e.submenu),this._super(t,e)},focus:function(t,e
){var i,s;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e
.first(),s=this.active.children("a").addClass("ui-state-focus"),this.options.rol
e&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().
closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),t&&"key
down"===t.type?this._close():this.timer=this._delay(function(){this._close()},th
is.delay),i=e.children(".ui-menu"),i.length&&/^mouse/.test(t.type)&&this._startO
pening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollI
ntoView:function(e){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(t.css(this.
activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddi
ngTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.
scrollTop(),o=this.activeMenu.height(),r=e.height(),0>n?this.activeMenu.scrollTo
p(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(t,e){e||clearTi
meout(this.timer),this.active&&(this.active.children("a").removeClass("ui-statefocus"),this.active=null,this._trigger("blur",t,{item:this.active}))},_startOpen
ing:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.t
imer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:fun
ction(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(thi
s.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("a
ria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","tru
e").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=t
his._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.f
ind(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this.act
iveMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent(
):this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("ariaexpanded","false").end().find("a.ui-state-active").removeClass("ui-state-active"
)},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-men
u-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:funct
ion(t){var e=this.active&&this.active.children(".ui-menu ").children(".ui-menu-i
tem").first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.f
ocus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t
){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.
active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active
&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this
.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"]
(".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.lengt
h&&this.active||(s=this.activeMenu.children(".ui-menu-item")[e]()),this.focus(i,
s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this.
_hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nex
tAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),th
is.focus(e,i)):this.focus(e,this.activeMenu.children(".ui-menu-item")[this.activ
e?"last":"first"]())),undefined):(this.next(e),undefined)},previousPage:function
(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this
.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item"
).each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.
focus(e,this.activeMenu.children(".ui-menu-item").first())),undefined):(this.nex
t(e),undefined)},_hasScroll:function(){return this.element.outerHeight()<this.el
ement.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.targ
et).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu"
).length||this.collapseAll(e,!0),this._trigger("select",e,i)}})})(jQuery);

You might also like