You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							137 lines
						
					
					
						
							5.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							137 lines
						
					
					
						
							5.1 KiB
						
					
					
				
								"use strict";
							 | 
						|
								var __assign = (this && this.__assign) || function () {
							 | 
						|
								    __assign = Object.assign || function(t) {
							 | 
						|
								        for (var s, i = 1, n = arguments.length; i < n; i++) {
							 | 
						|
								            s = arguments[i];
							 | 
						|
								            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
							 | 
						|
								                t[p] = s[p];
							 | 
						|
								        }
							 | 
						|
								        return t;
							 | 
						|
								    };
							 | 
						|
								    return __assign.apply(this, arguments);
							 | 
						|
								};
							 | 
						|
								Object.defineProperty(exports, "__esModule", { value: true });
							 | 
						|
								var utils_1 = require("../common/utils");
							 | 
						|
								var component_1 = require("../common/component");
							 | 
						|
								var props_1 = require("./props");
							 | 
						|
								(0, component_1.VantComponent)({
							 | 
						|
								    field: true,
							 | 
						|
								    classes: ['input-class', 'right-icon-class', 'label-class'],
							 | 
						|
								    props: __assign(__assign(__assign(__assign({}, props_1.commonProps), props_1.inputProps), props_1.textareaProps), { size: String, icon: String, label: String, error: Boolean, center: Boolean, isLink: Boolean, leftIcon: String, rightIcon: String, autosize: null, 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',
							 | 
						|
								        }, clearTrigger: {
							 | 
						|
								            type: String,
							 | 
						|
								            value: 'focus',
							 | 
						|
								        }, border: {
							 | 
						|
								            type: Boolean,
							 | 
						|
								            value: true,
							 | 
						|
								        }, titleWidth: {
							 | 
						|
								            type: String,
							 | 
						|
								            value: '6.2em',
							 | 
						|
								        }, clearIcon: {
							 | 
						|
								            type: String,
							 | 
						|
								            value: 'clear',
							 | 
						|
								        }, extraEventParams: {
							 | 
						|
								            type: Boolean,
							 | 
						|
								            value: false,
							 | 
						|
								        } }),
							 | 
						|
								    data: {
							 | 
						|
								        focused: false,
							 | 
						|
								        innerValue: '',
							 | 
						|
								        showClear: false,
							 | 
						|
								    },
							 | 
						|
								    created: function () {
							 | 
						|
								        this.value = this.data.value;
							 | 
						|
								        this.setData({ innerValue: this.value });
							 | 
						|
								    },
							 | 
						|
								    methods: {
							 | 
						|
								        formatValue: function (value) {
							 | 
						|
								            var maxlength = this.data.maxlength;
							 | 
						|
								            if (maxlength !== -1 && value.length > maxlength) {
							 | 
						|
								                return value.slice(0, maxlength);
							 | 
						|
								            }
							 | 
						|
								            return value;
							 | 
						|
								        },
							 | 
						|
								        onInput: function (event) {
							 | 
						|
								            var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a;
							 | 
						|
								            var formatValue = this.formatValue(value);
							 | 
						|
								            this.value = formatValue;
							 | 
						|
								            this.setShowClear();
							 | 
						|
								            return this.emitChange(__assign(__assign({}, event.detail), { value: formatValue }));
							 | 
						|
								        },
							 | 
						|
								        onFocus: function (event) {
							 | 
						|
								            this.focused = true;
							 | 
						|
								            this.setShowClear();
							 | 
						|
								            this.$emit('focus', event.detail);
							 | 
						|
								        },
							 | 
						|
								        onBlur: function (event) {
							 | 
						|
								            this.focused = false;
							 | 
						|
								            this.setShowClear();
							 | 
						|
								            this.$emit('blur', event.detail);
							 | 
						|
								        },
							 | 
						|
								        onClickIcon: function () {
							 | 
						|
								            this.$emit('click-icon');
							 | 
						|
								        },
							 | 
						|
								        onClickInput: function (event) {
							 | 
						|
								            this.$emit('click-input', event.detail);
							 | 
						|
								        },
							 | 
						|
								        onClear: function () {
							 | 
						|
								            var _this = this;
							 | 
						|
								            this.setData({ innerValue: '' });
							 | 
						|
								            this.value = '';
							 | 
						|
								            this.setShowClear();
							 | 
						|
								            (0, utils_1.nextTick)(function () {
							 | 
						|
								                _this.emitChange({ value: '' });
							 | 
						|
								                _this.$emit('clear', '');
							 | 
						|
								            });
							 | 
						|
								        },
							 | 
						|
								        onConfirm: function (event) {
							 | 
						|
								            var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a;
							 | 
						|
								            this.value = value;
							 | 
						|
								            this.setShowClear();
							 | 
						|
								            this.$emit('confirm', value);
							 | 
						|
								        },
							 | 
						|
								        setValue: function (value) {
							 | 
						|
								            this.value = value;
							 | 
						|
								            this.setShowClear();
							 | 
						|
								            if (value === '') {
							 | 
						|
								                this.setData({ innerValue: '' });
							 | 
						|
								            }
							 | 
						|
								            this.emitChange({ value: value });
							 | 
						|
								        },
							 | 
						|
								        onLineChange: function (event) {
							 | 
						|
								            this.$emit('linechange', event.detail);
							 | 
						|
								        },
							 | 
						|
								        onKeyboardHeightChange: function (event) {
							 | 
						|
								            this.$emit('keyboardheightchange', event.detail);
							 | 
						|
								        },
							 | 
						|
								        emitChange: function (detail) {
							 | 
						|
								            var extraEventParams = this.data.extraEventParams;
							 | 
						|
								            this.setData({ value: detail.value });
							 | 
						|
								            var result;
							 | 
						|
								            var data = extraEventParams
							 | 
						|
								                ? __assign(__assign({}, detail), { callback: function (data) {
							 | 
						|
								                        result = data;
							 | 
						|
								                    } }) : detail.value;
							 | 
						|
								            this.$emit('input', data);
							 | 
						|
								            this.$emit('change', data);
							 | 
						|
								            return result;
							 | 
						|
								        },
							 | 
						|
								        setShowClear: function () {
							 | 
						|
								            var _a = this.data, clearable = _a.clearable, readonly = _a.readonly, clearTrigger = _a.clearTrigger;
							 | 
						|
								            var _b = this, focused = _b.focused, value = _b.value;
							 | 
						|
								            var showClear = false;
							 | 
						|
								            if (clearable && !readonly) {
							 | 
						|
								                var hasValue = !!value;
							 | 
						|
								                var trigger = clearTrigger === 'always' || (clearTrigger === 'focus' && focused);
							 | 
						|
								                showClear = hasValue && trigger;
							 | 
						|
								            }
							 | 
						|
								            this.setData({ showClear: showClear });
							 | 
						|
								        },
							 | 
						|
								        noop: function () { },
							 | 
						|
								    },
							 | 
						|
								});
							 | 
						|
								
							 |