Alloy UI

aui-editable  1.0.1

 
Filters
AUI.add("aui-editable",function(D){var H=D.Lang,B=H.isFunction,E=D.ClassNameManager.getClassName,F="hover",K="editable",C=E(K,"editing"),G=E(K,F),I="contentBox";var J=D.Component.create({NAME:K,ATTRS:{cancelButton:{valueFn:function(){var A=this;return{id:"cancel",icon:"circle-close",handler:{context:A,fn:A.cancel}};}},contentText:{value:"",setter:function(L){var A=this;L=H.trim(L);A._toText(L);return L;}},formatInput:{value:null,validator:B},formatOutput:{value:null,validator:B},node:{setter:function(L){var A=D.one(L);if(!A){D.error("AUI.Editable: Invalid Node Given: "+L);}else{A=A.item(0);}return A;}},eventType:{value:"click"},renderTo:{value:document.body,setter:function(M){var A=this;var L;if(M=="node"){L=A.get(M);}else{L=D.one(M);}if(!L){D.error("AUI.Editable: Invalid renderTo Given: "+M);}else{L=L.item(0);}return L;}},saveButton:{valueFn:function(){var A=this;return{id:"save",icon:"circle-check",handler:{context:A,fn:A.save}};}},icons:{value:[]},inputType:{value:"text",setter:function(L){var A=this;if(L!="text"&&L!="textarea"){L=D.Attribute.INVALID_VALUE;}return L;}},visible:{value:false}},prototype:{initializer:function(){var A=this;A._scopedSave=D.bind(A.save,A);var M=A.get("node");var L=A.get("eventType");M.on("mouseenter",A._onMouseEnterEditable,A);M.on("mouseleave",A._onMouseLeaveEditable,A);M.on(L,A._startEditing,A);A._createEvents();},renderUI:function(){var A=this;var L=A.get(I);var N=A.get("inputType");var P={};var M=A.get("icons");if(M!==false){var R=A.get("cancelButton");var O=A.get("saveButton");if(R!==false){M.push(R);}if(O!==false){M.push(O);}P.icons=M;}if(N!="text"){D.mix(P,{field:{autoSize:true},fieldWidget:D.Textarea});}var Q=new D.Combobox(P).render(L);A._comboBox=Q;A.inputNode=Q.get("node");},bindUI:function(){var A=this;var L=A.get(I);var N=A.get("node");var M=A.inputNode;M.on("keypress",A._onKeypressEditable,A);A.after("contentTextChange",A._syncContentText);L.swallowEvent("click");D.getDoc().after("click",A._afterFocusedChangeEditable,A);},syncUI:function(){var A=this;var L=A.get("node").get("innerHTML");L=L.replace(/\n|\r/gim,"");L=H.trim(L);L=A._toText(L);A._setInput(L);A.set("contentText",L,{initial:true});},cancel:function(){var A=this;A.fire("cancel");},save:function(L){var A=this;A.fire("save");},_afterFocusedChangeEditable:function(L){var A=this;A.fire("stopEditing",A.get("visible"));},_createEvents:function(){var A=this;A.publish("startEditing",{bubbles:true,defaultFn:A._defStartEditingFn,emitFacade:true,queable:false});A.publish("stopEditing",{bubbles:true,defaultFn:A._defStopEditingFn,emitFacade:true,queable:false});A.publish("save",{bubbles:true,defaultFn:A._defSaveFn,emitFacade:true,queable:false});A.publish("cancel",{bubbles:true,defaultFn:A._defCancelFn,emitFacade:true,queable:false});},_defCancelFn:function(L){var A=this;A.fire("stopEditing",false);},_defStartEditingFn:function(A){var R=this;var O=R.get("boundingBox");var N=R.get("node");var P=R.inputNode;var L=N.get("offsetHeight");var Q=N.get("offsetWidth");R.show();N.addClass(C);var S=N.getXY();O.setStyles({height:L+"px",left:S[0]+"px",top:S[1]+"px",width:Q+"px"});var M=R._comboBox._field;M.set("width",Q);M.fire("adjustSize");P.focus();P.select();},_defStopEditingFn:function(M,L){var A=this;A.hide();A.get("node").removeClass(C);if(L){A.set("contentText",A.inputNode.get("value"));}else{A._setInput(A.get("contentText"));}},_defSaveFn:function(L){var A=this;A.fire("stopEditing",true);},_onKeypressEditable:function(L){var A=this;var M=L.keyCode;if(M==27){L.preventDefault();A.cancel();}else{if(M==13&&(A.get("inputType")=="text")){A.save();}}},_onMouseEnterEditable:function(L){var A=this;A.get("node").addClass(G);},_onMouseLeaveEditable:function(L){var A=this;A.get("node").removeClass(G);},_setInput:function(M){var A=this;var L=A.get("formatInput");if(L){M=L.call(A,M);}else{M=A._toText(M);}A.inputNode.set("value",M);},_setOutput:function(M){var L=this;var A=L.get("formatOutput");if(A){M=A.call(L,M);}else{M=L._toHTML(M);}L.get("node").set("innerHTML",M);},_startEditing:function(L){var A=this;if(!A.get("rendered")){A.render(A.get("renderTo"));}A.fire("startEditing");L.halt();},_syncContentText:function(M){var A=this;if(!M.initial){var L=M.newVal;A._setInput(L);A._setOutput(L);}},_toHTML:function(L){var A=this;return String(L).replace(/\n/gim,"<br/>");},_toText:function(L){var A=this;L=String(L);L=L.replace(/<br\s*\/?>/gim,"\n");L=L.replace(/(<\/?[^>]+>|\t)/gim,"");return L;}}});D.Editable=J;},"@VERSION@",{skinnable:true,requires:["aui-base","aui-form-combobox"]});