NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/ant-design-vue/lib/input/TextArea.js
2023-09-14 14:47:11 +08:00

172 lines
5.1 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _babelHelperVueJsxMergeProps = require('babel-helper-vue-jsx-merge-props');
var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _ClearableLabeledInput = require('./ClearableLabeledInput');
var _ClearableLabeledInput2 = _interopRequireDefault(_ClearableLabeledInput);
var _ResizableTextArea = require('./ResizableTextArea');
var _ResizableTextArea2 = _interopRequireDefault(_ResizableTextArea);
var _inputProps = require('./inputProps');
var _inputProps2 = _interopRequireDefault(_inputProps);
var _propsUtil = require('../_util/props-util');
var _propsUtil2 = _interopRequireDefault(_propsUtil);
var _configConsumerProps = require('../config-provider/configConsumerProps');
var _Input = require('./Input');
var _vueTypes = require('../_util/vue-types');
var _vueTypes2 = _interopRequireDefault(_vueTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var TextAreaProps = (0, _extends3['default'])({}, _inputProps2['default'], {
autosize: _vueTypes2['default'].oneOfType([Object, Boolean]),
autoSize: _vueTypes2['default'].oneOfType([Object, Boolean])
});
exports['default'] = {
name: 'ATextarea',
inheritAttrs: false,
model: {
prop: 'value',
event: 'change.value'
},
props: (0, _extends3['default'])({}, TextAreaProps),
inject: {
configProvider: { 'default': function _default() {
return _configConsumerProps.ConfigConsumerProps;
} }
},
data: function data() {
var value = typeof this.value === 'undefined' ? this.defaultValue : this.value;
return {
stateValue: typeof value === 'undefined' ? '' : value
};
},
computed: {},
watch: {
value: function value(val) {
this.stateValue = val;
}
},
mounted: function mounted() {
var _this = this;
this.$nextTick(function () {
if (_this.autoFocus) {
_this.focus();
}
});
},
methods: {
setValue: function setValue(value, callback) {
if (!(0, _propsUtil2['default'])(this, 'value')) {
this.stateValue = value;
this.$nextTick(function () {
callback && callback();
});
} else {
// 不在严格受控
// https://github.com/vueComponent/ant-design-vue/issues/2207modal 是 新 new 实例,更新队列和当前不在同一个更新队列中
// this.$forceUpdate();
}
},
handleKeyDown: function handleKeyDown(e) {
if (e.keyCode === 13) {
this.$emit('pressEnter', e);
}
this.$emit('keydown', e);
},
onChange: function onChange(e) {
this.$emit('change.value', e.target.value);
this.$emit('change', e);
this.$emit('input', e);
},
handleChange: function handleChange(e) {
var _this2 = this;
var _e$target = e.target,
value = _e$target.value,
composing = _e$target.composing;
if ((e.isComposing || composing) && this.lazy || this.stateValue === value) return;
this.setValue(e.target.value, function () {
_this2.$refs.resizableTextArea.resizeTextarea();
});
(0, _Input.resolveOnChange)(this.$refs.resizableTextArea.$refs.textArea, e, this.onChange);
},
focus: function focus() {
this.$refs.resizableTextArea.$refs.textArea.focus();
},
blur: function blur() {
this.$refs.resizableTextArea.$refs.textArea.blur();
},
handleReset: function handleReset(e) {
var _this3 = this;
this.setValue('', function () {
_this3.$refs.resizableTextArea.renderTextArea();
_this3.focus();
});
(0, _Input.resolveOnChange)(this.$refs.resizableTextArea.$refs.textArea, e, this.onChange);
},
renderTextArea: function renderTextArea(prefixCls) {
var h = this.$createElement;
var props = (0, _propsUtil.getOptionProps)(this);
var resizeProps = {
props: (0, _extends3['default'])({}, props, {
prefixCls: prefixCls
}),
on: (0, _extends3['default'])({}, (0, _propsUtil.getListeners)(this), {
input: this.handleChange,
keydown: this.handleKeyDown
}),
attrs: this.$attrs
};
return h(_ResizableTextArea2['default'], (0, _babelHelperVueJsxMergeProps2['default'])([resizeProps, { ref: 'resizableTextArea' }]));
}
},
render: function render() {
var h = arguments[0];
var stateValue = this.stateValue,
customizePrefixCls = this.prefixCls;
var getPrefixCls = this.configProvider.getPrefixCls;
var prefixCls = getPrefixCls('input', customizePrefixCls);
var props = {
props: (0, _extends3['default'])({}, (0, _propsUtil.getOptionProps)(this), {
prefixCls: prefixCls,
inputType: 'text',
value: (0, _Input.fixControlledValue)(stateValue),
element: this.renderTextArea(prefixCls),
handleReset: this.handleReset
}),
on: (0, _propsUtil.getListeners)(this)
};
return h(_ClearableLabeledInput2['default'], props);
}
};