| 
						 | 
						import { VantComponent } from '../common/component';import { commonProps, inputProps, textareaProps } from './props';VantComponent({  field: true,  classes: ['input-class', 'right-icon-class', 'label-class'],  props: Object.assign(    Object.assign(      Object.assign(Object.assign({}, commonProps), inputProps),      textareaProps    ),    {      size: String,      icon: String,      label: String,      error: Boolean,      center: Boolean,      isLink: Boolean,      leftIcon: String,      rightIcon: String,      autosize: [Boolean, Object],      required: Boolean,      iconClass: String,      clickable: Boolean,      inputAlign: String,      customStyle: String,      errorMessage: String,      arrowDirection: String,      showWordLimit: Boolean,      errorMessageAlign: String,      readonly: {        type: Boolean,        observer: 'setShowClear',      },      clearable: {        type: Boolean,        observer: 'setShowClear',      },      border: {        type: Boolean,        value: true,      },      titleWidth: {        type: String,        value: '6.2em',      },    }  ),  data: {    focused: false,    innerValue: '',    showClear: false,  },  created() {    this.value = this.data.value;    this.setData({ innerValue: this.value });  },  methods: {    onInput(event) {      const { value = '' } = event.detail || {};      this.value = value;      this.setShowClear();      this.emitChange();    },    onFocus(event) {      this.focused = true;      this.setShowClear();      this.$emit('focus', event.detail);    },    onBlur(event) {      this.focused = false;      this.setShowClear();      this.$emit('blur', event.detail);    },    onClickIcon() {      this.$emit('click-icon');    },    onClear() {      this.setData({ innerValue: '' });      this.value = '';      this.setShowClear();      wx.nextTick(() => {        this.emitChange();        this.$emit('clear', '');      });    },    onConfirm(event) {      const { value = '' } = event.detail || {};      this.value = value;      this.setShowClear();      this.$emit('confirm', value);    },    setValue(value) {      this.value = value;      this.setShowClear();      if (value === '') {        this.setData({ innerValue: '' });      }      this.emitChange();    },    onLineChange(event) {      this.$emit('linechange', event.detail);    },    onKeyboardHeightChange(event) {      this.$emit('keyboardheightchange', event.detail);    },    emitChange() {      this.setData({ value: this.value });      wx.nextTick(() => {        this.$emit('input', this.value);        this.$emit('change', this.value);      });    },    setShowClear() {      const { clearable, readonly } = this.data;      const { focused, value } = this;      this.setData({        showClear: !!clearable && !!focused && !!value && !readonly,      });    },    noop() {},  },});
  |