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.
138 lines
5.1 KiB
138 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 () { },
|
|
},
|
|
});
|