u-input.js
3.7 KB
"use strict";const e=require("./props.js"),t=require("../../libs/mixin/mpMixin.js"),i=require("../../libs/mixin/mixin.js"),n=require("../../libs/function/index.js"),r=require("../../../../common/vendor.js"),o={name:"u-input",mixins:[t.mpMixin,i.mixin,e.props],data:()=>({clearInput:!1,innerValue:"",focused:!1,firstChange:!0,changeFromInner:!1,innerFormatter:e=>e}),created(){this.formatter&&(this.innerFormatter=this.formatter)},watch:{modelValue:{immediate:!0,handler(e,t){this.changeFromInner||this.innerValue===e||(this.innerValue=e,!1===this.firstChange&&!1===this.changeFromInner?this.valueChange(this.innerValue,!0):this.firstChange||n.formValidate(this,"change"),this.firstChange=!1),this.changeFromInner=!1}}},computed:{isShowClear(){const{clearable:e,readonly:t,focused:i,innerValue:n}=this;return!!e&&!t&&!!i&&""!==n},inputClass(){let e=[],{border:t,disabled:i,shape:n}=this;return"surround"===t&&(e=e.concat(["u-border","u-input--radius"])),e.push(`u-input--${n}`),"bottom"===t&&(e=e.concat(["u-border-bottom","u-input--no-radius"])),e.join(" ")},wrapperStyle(){const e={};return this.disabled&&(e.backgroundColor=this.disabledColor),"none"===this.border?e.padding="0":(e.paddingTop="6px",e.paddingBottom="6px",e.paddingLeft="9px",e.paddingRight="9px"),n.deepMerge(e,n.addStyle(this.customStyle))},inputStyle(){return{color:this.color,fontSize:n.addUnit(this.fontSize),textAlign:this.inputAlign}}},emits:["update:modelValue","focus","blur","change","confirm","clear","keyboardheightchange"],methods:{setFormatter(e){this.innerFormatter=e},onInput(e){let{value:t=""}=e.detail||{};this.innerValue=t,this.$nextTick((()=>{let e=this.innerFormatter(t);this.innerValue=e,this.valueChange(e)}))},onBlur(e){this.$emit("blur",e.detail.value),n.sleep(150).then((()=>{this.focused=!1})),n.formValidate(this,"blur")},onFocus(e){this.focused=!0,this.$emit("focus")},doFocus(){this.$refs["input-native"].focus()},doBlur(){this.$refs["input-native"].blur()},onConfirm(e){this.$emit("confirm",this.innerValue)},onkeyboardheightchange(e){this.$emit("keyboardheightchange",e)},valueChange(e,t=!1){this.clearInput&&(this.innerValue="",this.clearInput=!1),this.$nextTick((()=>{t&&!this.clearInput||(this.changeFromInner=!0,this.$emit("change",e),this.$emit("update:modelValue",e)),n.formValidate(this,"change")}))},onClear(){this.clearInput=!0,this.innerValue="",this.$nextTick((()=>{this.valueChange(""),this.$emit("clear")}))},clickHandler(){}}};if(!Array){r.resolveComponent("u-icon")()}Math;const s=r._export_sfc(o,[["render",function(e,t,i,n,o,s){return r.e({a:e.prefixIcon||e.$slots.prefix},e.prefixIcon||e.$slots.prefix?{b:r.p({name:e.prefixIcon,size:"18",customStyle:e.prefixIconStyle})}:{},{c:r.s(s.inputStyle),d:e.type,e:e.focus,f:e.cursor,g:o.innerValue,h:e.autoBlur,i:e.disabled||e.readonly,j:e.maxlength,k:e.placeholder,l:e.placeholderStyle,m:e.placeholderClass,n:e.confirmType,o:e.confirmHold,p:e.holdKeyboard,q:e.cursorSpacing,r:e.adjustPosition,s:e.selectionEnd,t:e.selectionStart,v:e.password||"password"===e.type||!1,w:e.ignoreCompositionEvent,x:r.o(((...e)=>s.onInput&&s.onInput(...e))),y:r.o(((...e)=>s.onBlur&&s.onBlur(...e))),z:r.o(((...e)=>s.onFocus&&s.onFocus(...e))),A:r.o(((...e)=>s.onConfirm&&s.onConfirm(...e))),B:r.o(((...e)=>s.onkeyboardheightchange&&s.onkeyboardheightchange(...e))),C:r.o(((...e)=>s.clickHandler&&s.clickHandler(...e))),D:s.isShowClear},s.isShowClear?{E:r.p({name:"close",size:"11",color:"#ffffff",customStyle:"line-height: 12px"}),F:r.o(((...e)=>s.onClear&&s.onClear(...e)))}:{},{G:e.suffixIcon||e.$slots.suffix},e.suffixIcon||e.$slots.suffix?{H:r.p({name:e.suffixIcon,size:"18",customStyle:e.suffixIconStyle})}:{},{I:r.n(s.inputClass),J:r.s(s.wrapperStyle)})}],["__scopeId","data-v-04652187"]]);wx.createComponent(s);