Alloy UI

aui-textboxlist  1.0.1

 
Filters
AUI.add("aui-textboxlist",function(Q){var E=Q.Lang,K=Q.ClassNameManager.getClassName,C="textboxlistentry",I="textboxlist",Y="boundingBox",N="contentBox",b={from:{opacity:1},to:{opacity:0.3},duration:0.1,on:{end:function(d){var A=this;var c=A.get("reverse");if(!c){A.run();}A.set("reverse",!c);}}},L=K("helper","clearfix"),M=K("icon"),X=K("icon","close"),R=K(C,"close","hover"),O=K(C,"close"),S=K(C,"holder"),V=K(C,"text"),B=K(C,"item"),U=K(I,"input","container"),W=8,H=13,Z=37,J=39,G='<span class="'+[M,X,O].join(" ")+'"></span>',P='<span class="'+V+'"></span>',F='<ul class="'+[L,S].join(" ")+'"></ul>',a='<li class="'+U+'"></li>';var T=Q.Component.create({NAME:I,ATTRS:{allowAnyEntry:{value:false},delimChar:{value:""},tabIndex:{value:0}},EXTENDS:Q.AutoComplete,prototype:{initializer:function(c){var A=this;var d=A.get("matchKey");A.entries=new Q.DataSet({getKey:function(f){var e=this;return f[d];}});A._lastSelectedEntry=-1;},renderUI:function(){var A=this;A._renderEntryHolder();T.superclass.renderUI.apply(A,arguments);A._overlayAlign.node=A.get(Y);},bindUI:function(){var d=this;T.superclass.bindUI.apply(d,arguments);d.after("itemSelect",d._afterItemSelect);d.after("focusedChange",d._afterTBLFocusedChange);d.on("click",d._onBoundingBoxClick);var c=d.entries;var e=d.entryHolder;var A="."+X;c.after("add",d._updateEntryHolder,d);c.after("replace",d._updateEntryHolder,d);c.after("remove",d._updateEntryHolder,d);e.delegate("click",Q.bind(d._removeItem,d),A);e.delegate("mouseenter",Q.bind(d._onCloseIconMouseOver,d),A);e.delegate("mouseleave",Q.bind(d._onCloseIconMouseOut,d),A);Q.on("key",d._onTBLKeypress,d.get(Y),"down:39,40,37,38,8,13",d);d.inputNode.on("focus",d._onInputNodeFocus,d);},add:function(c){var A=this;var d=A._prepareEntry(c);A.entries.add(d);},insert:function(d,c){var A=this;var e=A._prepareEntry(c);return A.entries.insert(d,e);},remove:function(c){var A=this;return A.entries.removeKey(c);},_afterItemSelect:function(c){var A=this;A.entries.add(c._resultData);},_afterTBLFocusedChange:function(d){var A=this;if(d.type.indexOf("textboxlistentry")>-1){if(d.newVal){var c=d.target.get(Y);A._lastSelectedEntry=A.entryHolder.all("li").indexOf(c);}}},_onBoundingBoxClick:function(c){var A=this;A.inputNode.focus();},_onCloseIconMouseOut:function(c){var A=this;c.currentTarget.removeClass(R);},_onCloseIconMouseOver:function(c){var A=this;c.currentTarget.addClass(R);},_onInputNodeFocus:function(c){var A=this;A._lastSelectedEntry=-1;},_onTBLKeypress:function(c){var n=this;var o=c.keyCode;var k=n.inputNode;if(!k.val()){var m=n._lastSelectedEntry;var d=-1;var e=(m==-1);var f=(o==W);var h=(f&&e);var i=o==Z||h;var A=(o==J);var g=n.entries;var l=g.size();var j=l-1;if(i){if(e){d=j;}else{if(m==0){d=m;}else{d=m-1;}}}else{if(A){if(e||(m==j)){d=-1;}else{d=m+1;}}else{if(f){g.removeAt(m);l=g.size();if(m==l){d=-1;}else{d=m;}}}}if(h||f){c.halt();}if(d!=-1){g.item(d).entry.focus();}else{k.focus();}n._lastSelectedEntry=d;}else{if(o==H&&n.get("allowAnyEntry")){n.entries.add(k.val(),{});}}},_onTextboxKeyPress:function(c){var A=this;T.superclass._onTextboxKeyPress.apply(A,arguments);if(c.keyCode==H){c.halt();}},_prepareEntry:function(c){var A=this;var e={};var d=A.get("matchKey");e[d]=c;return e;},_realignContainer:function(c){var A=this;A.overlay.set("width",A.get(Y).get("offsetWidth"));T.superclass._realignContainer.apply(A,arguments);},_removeItem:function(e){var A=this;var d=Q.Widget.getByNode(e.currentTarget);d=d.get(Y);var c=A.entryHolder.all("li").indexOf(d);A.entries.removeAt(c);},_renderEntryHolder:function(){var A=this;var c=A.get(N);var d=Q.Node.create(F);c.prepend(d);A.entryHolder=d;},_renderInput:function(){var c=this;var e=c.get(N);var f=c.get("input");var g={labelText:false};var A=null;if(f){f=Q.one(f);g.node=f;A=f.get("parentNode");}var i=Q.Node.create(a);c.entryHolder.append(i);var d=new Q.Textfield(g).render(i);var h=d.get(Y);if(h.get("parentNode")!=i){i.appendChild(h);}c.inputContainer=i;c.inputField=d;c.inputNode=d.get("node");c.button=new Q.ButtonItem();c.set("uniqueName",Q.stamp(c.inputNode));},_updateEntryHolder:function(c){var k=this;var d=c.type;var g=k.inputNode;var A=k.entryHolder;var m=c.item;var f=c.index;var l=k.get("matchKey");var j=m[l]||c.attrName;if(j){if(d=="dataset:add"){var h=new D({labelText:j});h.addTarget(k);var i=h.get(Y);h.render(A);A.all("li").item(f).placeBefore(i);i.plug(Q.Plugin.NodeFX,b);m.entry=h;g.val("");}else{if(d=="dataset:replace"){g.val("");var h=c.prevVal.entry;m.entry=h;h.get(Y).fx.run();}else{if(d=="dataset:remove"){var e=A.all("li");if(e){e.item(f).remove();}}}}}else{k.entries.removeAt(f);}}}});var D=Q.Component.create({NAME:C,ATTRS:{labelText:{value:""},tabIndex:{value:0}},prototype:{BOUNDING_TEMPLATE:"<li></li>",CONTENT_TEMPLATE:"<span></span>",renderUI:function(){var A=this;var c=A.get(N);var f=Q.Node.create(P);var e=Q.Node.create(G);var d=A.get("labelText");f.set("innerHTML",d);c.appendChild(f);c.appendChild(e);}}});Q.TextboxList=T;Q.TextboxListEntry=D;},"@VERSION@",{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]});