define("ep/ui/validate",["jquery","ep","ep/dict","ep/validate","ep/ui/input"],function(e,t){return e.widget("ui.uiValidate",e.ui.uiInput,{options:{valid:!0,type:"basic",showError:!0,showErrorMsgAlways:!1,validateOnSave:!1},_create:function(){var a=this,i=a.element,n=a.options,l="validate.uiValidate"+(n.validateOnSave?"":" blur.uiValidate");this._superApply(arguments),this.options=e.extend({accept:this.elem.attr("accept"),min:parseInt(this.elem.attr("min"),10),max:parseInt(this.elem.attr("max"),10),minlength:parseInt(this.elem.attr("minlength"),10),maxlength:parseInt(this.elem.attr("maxlength"),10),pattern:this.elem.attr("pattern"),required:this.elem.attr("required")},this.options),this.elem.addClass("ep-uiValidate").on(l,e.proxy(this,"_validate")),n.validateOnSave&&(i.off("focusin.uiInput"),i.on("focusin.uiInput",function(){a._setValidStatus(!0),i.trigger("change"),t(i[0].form).trigger("change")})),a.clicked=!1,/(^(select:)|(checkbox)$)/.test(a.type)&&i.on("click.uiValidateClick",function(){a.clicked=!0}),this.options.valid||(this._setInstantly(),this._setValidStatus(!1))},_init:function(){this._superApply(arguments)},_setInstantly:function(){this._instantly=!0,this.elem.on("changeValue.uiValidate",e.proxy(this,"_validate"))},_radioGroupCheck:function(){this.elem.formGroup(":radio").trigger("validate")},_changeAttr:function(t,a){var i=this;this._superApply(arguments),e.each(a,function(e,t){/^(accept|pattern|required)$/i.test(e)?i.options[e]=t:/^(min|max|minlength|maxlength)$/i.test(e)&&(i.options[e]=parseInt(t,10))})},_setOption:function(e,t){return"valid"==e&&void 0!==t&&this._setValidStatus(t),this._superApply(arguments)},_setValidStatus:function(e){var a=this,i=a.element;a.valid=e===!1?t.validate.basic(""):e,e=e!==!0,a.elem[0].formInvalid=e,a.placeholder&&(a.placeholder[0].formInvalid=e),a.options.showError&&(a.elem.toggleClass("ui-invalid",e),/(^(select:)|(checkbox)$)/.test(a.type)&&a.clicked&&i.trigger("focus"),a._tooltipShow()),a.clicked=!1},_validate:function(a){if(9!==a.keyCode){var i,n=this.elem.val();this.elem.is(":radio")?n=this.elem.formGroup(":radio").filter(":checked").val()||"":this.elem.is(":checkbox")&&(n=this.elem.filter(":checked").val()||""),i=t.validate[this.options.type](n,this.options),i===!0||this._instantly||this._setInstantly(),this._setValidStatus(i),"changeAttr"!==a.type&&e(this.elem[0].form).trigger("change")}},_createErrorMsgOptions:function(){var t={min:this.options.min,max:this.options.max,minlength:this.options.minlength,maxlength:this.options.maxlength},a=this.options.format,i={region:this.options.region};return"number"===this.options.type?(i.currency=this.options.currency,t.example=e.i18n.formatNumber(21.45923,a,i),(t.min||t.max)&&(t.min=e.i18n.formatNumber(t.min,a,i),t.max=e.i18n.formatNumber(t.max,a,i))):"date"===this.options.type&&(t.example=e.i18n.formatDate(new Date,a,i),(t.min||t.max)&&(t.min=e.i18n.formatDate(new Date(t.min),a,i),t.max=e.i18n.formatDate(new Date(t.max),a,i))),t},_tooltipShow:function(){if(this.valid!==!0){this.tooltip||(this._tooltipInit(!0),this.tooltip.on("show",e.proxy(this,"_tooltipHide"))),this.errormsg||(this.errormsg=e("