1/*! 2 * SideMenu.js v0.1 (beta) ~ Copyright (c) 2013 3 * Oscar Sobrevilla [email protected] 4 * Released under MIT license 5 */ 6(function(b){function a(j){if(!Object.create){Object.create=(function(){function t(){}return function(u){t.prototype=u;return new t()}})()}var g="ontouchstart" in document.documentElement,f=document.createElement("div").style,r=(function(){var x="t,webkitT,MozT,msT,OT".split(","),w,v=0,u=x.length;for(;v<u;v++){w=x[v]+"ransform";if(w in f){return x[v].substr(0,x[v].length-1)}}return false})(),q=(function(){if(r===false){return false}var t={"":"transitionend",webkit:"webkitTransitionEnd",Moz:"transitionend",O:"otransitionend",ms:"MSTransitionEnd"};return t[r]})(),h=(function(w){if(!g){return}var v=0,u=function(x){var y=x.originalEvent;v=this.scrollTop+y.touches[0].pageY},t=function(x){var y=x.originalEvent;this.scrollTop=v-y.touches[0].pageY;y.preventDefault()};return j(w).on("touchstart",u).on("touchmove",t)});var m=(function(t,u){var v=this;this.options={};j.extend(this.options,u);this.$el=j("<div/>").addClass("sm sm-added");this.el=this.$el.get(0);this.tscroll=h(this.el);if(this.options.title){this.$el.append(j("<div/>").addClass("sm-title").html(this.title=this.options.title))}this.$list=j("<div/>").appendTo(this.$el).get(0);this.items=[];this.addItems(t);this.isOpen=false;this.parentItem=null});j.extend(m.prototype,{_add:function(u,t){u._setParent(this);this.items.splice(t,0,u);if(this.$list.hasChildNodes()){if(this.$list.childNodes[t]){this.$list.insertBefore(u.el,this.$list.childNodes.item(t))}else{this.$list.appendChild(u.el)}}else{this.$list.appendChild(u.el)}},_refresh:function(){if(this.sideMenu){this.sideMenu._refresh()}},_setParent:function(t){this.parentItem=t},_setCurrentMenu:function(t){this.sideMenu.currentMenu=t},_getCurrentMenu:function(){return this.sideMenu.currentMenu},_show:function(t){this.isOpen=true;this.$el.css("z-index",2);if(typeof t=="function"){this._onTransitionEnd(t)}this.$el.addClass("sm-show");return this},_hide:function(t){if(this.isOpen){this.$el.css("z-index",1)}this.isOpen=false;this._onTransitionEnd(function(){this.$el.css("z-index","");t&&t.apply(this,arguments)});this.$el.removeClass("sm-show");return this},_onTransitionEnd:function(u){var t=this;this.$el.one(q,function(v){u&&u.call(t,this,v)})},_hideSubMenus:function(){if(this.items&&this.items.length){for(var t in this.items){if(this.items[t] instanceof k){this.items[t].subMenu._closeWithChilds()}}}},_closeWithChilds:function(){this._hide();this._hideSubMenus()},_closeWithParents:function(t){t!==this&&this._hide();if(this.parentItem&&this.parentItem.parent){this.parentItem.parent._closeWithParents(t)}},_openParents:function(){this.sideMenu.history.clear();var t=this.el.parentNode,v=[];(function(w){if(w&&w.parent){v.push(w.parent);arguments.callee(w.parent.parentItem)}}(this.parentItem));v.reverse();for(var u in v){this.sideMenu.history.add(v[u])}},addItem:function(u,t){this._add(u,t===undefined?this.items.length:t);this._refresh();return this},addItems:function(v,t){if(!v){return}t=t===undefined?this.items.length:t;for(var u=0;u<v.length;u+=1){this._add(v[u],t+u)}this._refresh();return this},open:function(){if(this.isOpen){return this}var t=this,u=this._getCurrentMenu();u&&u._hide();this._show(function(){if(u){u._closeWithParents(this)}});this._openParents();this._setCurrentMenu(this);this.sideMenu.history.add(this);if(this.options.onOpen){this.options.onOpen.call(this)}return this},close:function(){if(!this.isOpen){return this}this._getCurrentMenu()===this?this.sideMenu.goBack():this._hide();if(this.sideMenu.history.isEmpty()){this._setCurrentMenu(null)}if(this.options.onClose){this.options.onClose.call(this)}return this},clear:function(){this.$list.innerHTML="";this.items=[];return this},getItemByIndex:function(t){return this.items[t]},getItemByName:function(v){var t,u=new RegExp(v,"gi");for(t in this.items){if(this.items[t].title&&u.test(this.items[t].title)){return this.items[t]}}return null},getSubMenuByName:function(u){var t=this.getItemByName(u);return t?t.subMenu:t},destroy:function(){var t;this.clear();this.$el.remove();if(this.parentItem){this.parentItem.items.splice(this.parentItem.items.indexOf(this),1)}}});var p=(function(t,u){var v=this;u=u||{};u.back="";m.call(this,t,u);this.history={stacks:[],clear:function(){this.stacks=[]},add:function(w){if(w){this.stacks.push(w)}},pop:function(){return this.stacks.pop()},beforeLastStak:function(){return this.stacks[this.stacks.length-2]},isEmpty:function(){return this.stacks.length===0}};this._target=null;this.sideMenu=this;this.currentMenu=null});p.prototype=Object.create(m.prototype);j.extend(p.prototype,{constructor:p,_add:function(u,t){m.prototype._add.call(this,u,t);(function(v){if(v){v.sideMenu=this;for(var w in v.items){if(v.items[w] instanceof k){arguments.callee.call(this,v.items[w].subMenu)}}}}.call(this,u.subMenu))},_refresh:function(){this._target&&this._target.append(this._target.find(".sm-added").removeClass("sm-added"))},goBack:function(){var u=this.history.beforeLastStak(),t=this.history.pop();this._setCurrentMenu(u||this);t&&t._hide();u&&u._show()},close:function(){this.history.clear();this._closeWithChilds();this._setCurrentMenu(null);if(this.options.onClose){this.options.onClose.call(this)}},toggle:function(){this.history.isEmpty()?this.open():this.close()},appendTo:function(t){this._target=j(t).append(this.$el);this._refresh();return this}});var i=(function(t,u){var v=this;m.call(this,t,j.extend({},i.options,u));if(this.options.back){this._back=j("<div/>").addClass("sm-back").on(j.event.special.tapclick?"tapclick":"click",function(w){
6w.preventDefault();v.sideMenu.goBack()}).html(this.options.back)}this._back.insertBefore(this.el.lastChild);this.$el.addClass("sm-submenu");this.sideMenu=null});i.options=({back:"back"});i.prototype=Object.create(m.prototype);i.prototype.constructor=i;var e=(function(){this.$el=j("<div/>").addClass("sm-item");this.el=this.$el.get(0);this.parent=null});j.extend(e.prototype,{_setParent:function(t){this.parent=t},moveToMenu:function(w,t){var u,v;if(w instanceof m){for(u in this.parent.items){if(this.parent.items[u]===this){v=this.parent.items[u];this.parent.items.splice(u,1);break}}w.addItem(v,t)}},moveToPosition:function(t){if(this.parent){this.moveToMenu(this.parent,t)}},remove:function(){if(this.parent){var t;this.$el.remove();for(t in this.parent.items){if(this.parent.items[t]===this){this.parent.items.splice(t,1)}}}}});var l=(function(u,t){if(u===undefined){throw"Error in SMLabelItem: title param is undefined"}e.call(this);this.title=u;this.dom=this.dom||{};this.dom.title=j("<span/>").addClass("sm-label-text").html(this.title);this.$el.append(this._label=j("<div/>").addClass("sm-item-label").addClass(t).append(j("<span/>").addClass("sm-label-icon")).append(this.dom.title))});l.prototype=Object.create(e.prototype);l.prototype.constructor=l;l.prototype.setTitle=function(t){this.dom.title.html(t)};var k=(function(w,t,v){var u=this;l.call(this,w,v);this.$el.addClass("sm-item-more");this._label.on(j.event.special.tapclick?"tapclick":"click",function(x){x.stopPropagation();u.subMenu.open()});this.subMenu=new i(t,{title:w});this.subMenu._setParent(this);this.$el.append(this.subMenu.el)});k.prototype=Object.create(l.prototype);k.prototype.constructor=k;var o=(function(w,t,v,u){if(!w||!t){throw"Error in SMLinkItem: invalid title or url param"}l.call(this,w);this._label.replaceWith(j("<a/>",{href:t,target:v}).addClass("sm-item-label").addClass(u).append(this._label.contents()));this.$el.addClass("sm-item-link")});o.prototype=Object.create(l.prototype);o.prototype.constructor=o;var s=(function(v,x,u,w){var t=this;l.call(this,v,u);this.id=w||null;this.$el.addClass("sm-item-button");this.$el.on(j.event.special.tapclick?"tapclick":"click",function(y){x&&x.call(t,this)})});s.prototype=Object.create(l.prototype);s.prototype.constructor=s;var d=(function(t,u){e.call(this);this.$el.addClass("sm-item-useraccount");this.$el.append(this.photo=j("<img/>").addClass("sm-useraccount-photo").attr({src:u}));this.$el.append(this.name=j("<div/>").addClass("sm-useraccount-name").html(t))});d.prototype=Object.create(e.prototype);d.prototype.constructor=d;var c=(function(u,t){e.call(this);this.$el.addClass("sm-item-separator");this.$el.append(this.name=j("<div/>").addClass("sm-item-separator-name").html(u||""))});c.prototype=Object.create(e.prototype);c.prototype.constructor=c;var n={SideMenu:p,SideSubMenu:i,SMItem:e,SMLabelItem:l,SMSubMenuItem:k,SMButtonItem:s,SMLinkItem:o,SMUserAccountItem:d,SMSeparatorItem:c};return n}if(typeof define==="function"&&define.amd){define(["jquery"],function(c){return a(c)})}else{if(b){b.extend(window,a(b))}else{throw"Error: SideMenu require jQuery Library"}}}(window.jQuery));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.