]>
git.wh0rd.org - tt-rss.git/blob - lib/dijit/form/_TextBoxMixin.js
2 define("dijit/form/_TextBoxMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/sniff","dojo/keys","dojo/_base/lang","dojo/on","../main"],function(_1
,_2
,_3
,_4
,_5
,_6
,on
,_7
){var _8
=_2("dijit.form._TextBoxMixin"+(_4("dojo-bidi")?"_NoBidi":""),null,{trim
:false,uppercase
:false,lowercase
:false,propercase
:false,maxLength
:"",selectOnClick
:false,placeHolder
:"",_getValueAttr:function(){return this.parse(this.get("displayedValue"),this.constraints
);},_setValueAttr:function(_9
,_a
,_b
){var _c
;if(_9
!==undefined){_c
=this.filter(_9
);if(typeof _b
!="string"){if(_c
!==null&&((typeof _c
!="number")||!isNaN(_c
))){_b
=this.filter(this.format(_c
,this.constraints
));}else{_b
="";}if(this.compare(_c
,this.filter(this.parse(_b
,this.constraints
)))!=0){_b
=null;}}}if(_b
!=null&&((typeof _b
)!="number"||!isNaN(_b
))&&this.textbox
.value
!=_b
){this.textbox
.value
=_b
;this._set("displayedValue",this.get("displayedValue"));}this.inherited(arguments
,[_c
,_a
]);},displayedValue
:"",_getDisplayedValueAttr:function(){return this.filter(this.textbox
.value
);},_setDisplayedValueAttr:function(_d
){if(_d
==null){_d
="";}else{if(typeof _d
!="string"){_d
=String(_d
);}}this.textbox
.value
=_d
;this._setValueAttr(this.get("value"),undefined);this._set("displayedValue",this.get("displayedValue"));},format:function(_e
){return _e
==null?"":(_e
.toString
?_e
.toString():_e
);},parse:function(_f
){return _f
;},_refreshState:function(){},onInput:function(){},_onInput:function(evt
){this._lastInputEventValue
=this.textbox
.value
;this._processInput(this._lastInputProducingEvent
||evt
);delete this._lastInputProducingEvent
;if(this.intermediateChanges
){this._handleOnChange(this.get("value"),false);}},_processInput:function(){this._refreshState();this._set("displayedValue",this.get("displayedValue"));},postCreate:function(){this.textbox
.setAttribute("value",this.textbox
.value
);this.inherited(arguments
);function _10(e
){var _11
;if(e
.type
=="keydown"&&e
.keyCode
!=229){_11
=e
.keyCode
;switch(_11
){case _5
.SHIFT
:case _5
.ALT
:case _5
.CTRL
:case _5
.META
:case _5
.CAPS_LOCK
:case _5
.NUM_LOCK
:case _5
.SCROLL_LOCK
:return;}if(!e
.ctrlKey
&&!e
.metaKey
&&!e
.altKey
){switch(_11
){case _5
.NUMPAD_0
:case _5
.NUMPAD_1
:case _5
.NUMPAD_2
:case _5
.NUMPAD_3
:case _5
.NUMPAD_4
:case _5
.NUMPAD_5
:case _5
.NUMPAD_6
:case _5
.NUMPAD_7
:case _5
.NUMPAD_8
:case _5
.NUMPAD_9
:case _5
.NUMPAD_MULTIPLY
:case _5
.NUMPAD_PLUS
:case _5
.NUMPAD_ENTER
:case _5
.NUMPAD_MINUS
:case _5
.NUMPAD_PERIOD
:case _5
.NUMPAD_DIVIDE
:return;}if((_11
>=65&&_11
<=90)||(_11
>=48&&_11
<=57)||_11
==_5
.SPACE
){return;}var _12
=false;for(var i
in _5
){if(_5
[i
]===e
.keyCode
){_12
=true;break;}}if(!_12
){return;}}}_11
=e
.charCode
>=32?String
.fromCharCode(e
.charCode
):e
.charCode
;if(!_11
){_11
=(e
.keyCode
>=65&&e
.keyCode
<=90)||(e
.keyCode
>=48&&e
.keyCode
<=57)||e
.keyCode
==_5
.SPACE
?String
.fromCharCode(e
.keyCode
):e
.keyCode
;}if(!_11
){_11
=229;}if(e
.type
=="keypress"){if(typeof _11
!="string"){return;}if((_11
>="a"&&_11
<="z")||(_11
>="A"&&_11
<="Z")||(_11
>="0"&&_11
<="9")||(_11
===" ")){if(e
.ctrlKey
||e
.metaKey
||e
.altKey
){return;}}}var _13
={faux
:true},_14
;for(_14
in e
){if(!/^(layer
[XY
]|returnValue
|keyLocation
)$/.test(_14)){var v=e[_14];if(typeof v!="function"&&typeof v!="undefined"){_13[_14]=v;}}}_6.mixin(_13,{charOrCode:_11,_wasConsumed:false,preventDefault:function(){_13._wasConsumed=true;e.preventDefault();},stopPropagation:function(){e.stopPropagation();}});this._lastInputProducingEvent=_13;if(this.onInput(_13)===false){_13.preventDefault();_13.stopPropagation();}if(_13._wasConsumed){return;}if(_4("ie")<=9){switch(e.keyCode){case _5.TAB:case _5.ESCAPE:case _5.DOWN_ARROW:case _5.UP_ARROW:case _5.LEFT_ARROW:case _5.RIGHT_ARROW:break;default:if(e.keyCode==_5.ENTER&&this.textbox.tagName.toLowerCase()!="textarea"){break;}this.defer(function(){if(this.textbox.value!==this._lastInputEventValue){on.emit(this.textbox,"input",{bubbles:true});}});}}};this.own(on(this.textbox,"keydown, keypress, paste, cut, compositionend",_6.hitch(this,_10)),on(this.textbox,"input",_6.hitch(this,"_onInput")),on(this.domNode,"keypress",function(e){e.stopPropagation();}));},_blankValue:"",filter:function(val){if(val===null){return this._blankValue;}if(typeof val!="string"){return val;}if(this.trim){val=_6.trim(val);}if(this.uppercase){val=val.toUpperCase();}if(this.lowercase){val=val.toLowerCase();}if(this.propercase){val=val.replace(/[^\s
]+/g
,function(_15
){return _15
.substring(0,1).toUpperCase()+_15
.substring(1);});}return val
;},_setBlurValue:function(){this._setValueAttr(this.get("value"),true);},_onBlur:function(e
){if(this.disabled
){return;}this._setBlurValue();this.inherited(arguments
);},_isTextSelected:function(){return this.textbox
.selectionStart
!=this.textbox
.selectionEnd
;},_onFocus:function(by
){if(this.disabled
||this.readOnly
){return;}if(this.selectOnClick
&&by
=="mouse"){this._selectOnClickHandle
=on
.once(this.domNode
,"mouseup, touchend",_6
.hitch(this,function(evt
){if(!this._isTextSelected()){_8
.selectInputText(this.textbox
);}}));this.own(this._selectOnClickHandle
);this.defer(function(){if(this._selectOnClickHandle
){this._selectOnClickHandle
.remove();this._selectOnClickHandle
=null;}},500);}this.inherited(arguments
);this._refreshState();},reset:function(){this.textbox
.value
="";this.inherited(arguments
);}});if(_4("dojo-bidi")){_8
=_2("dijit.form._TextBoxMixin",_8
,{_setValueAttr:function(){this.inherited(arguments
);this.applyTextDir(this.focusNode
);},_setDisplayedValueAttr:function(){this.inherited(arguments
);this.applyTextDir(this.focusNode
);},_onInput:function(){this.applyTextDir(this.focusNode
);this.inherited(arguments
);}});}_8
._setSelectionRange
=_7
._setSelectionRange=function(_16
,_17
,_18
){if(_16
.setSelectionRange
){_16
.setSelectionRange(_17
,_18
);}};_8
.selectInputText
=_7
.selectInputText=function(_19
,_1a
,_1b
){_19
=_3
.byId(_19
);if(isNaN(_1a
)){_1a
=0;}if(isNaN(_1b
)){_1b
=_19
.value
?_19
.value
.length
:0;}try{_19
.focus();_8
._setSelectionRange(_19
,_1a
,_1b
);}catch(e
){}};return _8
;});