tdesign-mobile-vue
Version:
tdesign-mobile-vue
64 lines (60 loc) • 2.15 kB
JavaScript
/**
* tdesign v1.7.0
* (c) 2024 TDesign Group
* @license MIT
*/
import { computed } from 'vue';
import isNumber from 'lodash/isNumber';
import isObject from 'lodash/isObject';
import log from '../_common/js/log/log.js';
import { getUnicodeLength, getCharacterLength, limitUnicodeMaxLength } from '../_common/js/utils/helper.js';
import '@babel/runtime/helpers/toConsumableArray';
import '@babel/runtime/helpers/objectWithoutProperties';
import '@babel/runtime/helpers/slicedToArray';
import '@babel/runtime/helpers/defineProperty';
import 'lodash/isString';
import 'lodash/isNull';
import 'lodash/isUndefined';
import 'lodash/isArray';
function useLengthLimit(params) {
var getValueByLimitNumber = function getValueByLimitNumber(inputValue) {
var _params$value = params.value,
allowInputOverMax = _params$value.allowInputOverMax,
maxlength = _params$value.maxlength,
maxcharacter = _params$value.maxcharacter;
if (!(maxlength || maxcharacter) || allowInputOverMax || !inputValue) return inputValue;
if (maxlength) {
return limitUnicodeMaxLength(inputValue, maxlength);
}
if (maxcharacter) {
var r = getCharacterLength(inputValue, maxcharacter);
if (isObject(r)) {
return r.characters;
}
}
};
var limitNumber = computed(function () {
var _params$value2 = params.value,
maxlength = _params$value2.maxlength,
maxcharacter = _params$value2.maxcharacter,
value = _params$value2.value;
if (isNumber(value)) return String(value);
if (maxlength && maxcharacter) {
log.warn("Input", "Pick one of maxlength and maxcharacter please.");
}
if (maxlength) {
var length = value !== null && value !== void 0 && value.length ? getUnicodeLength(value) : 0;
return "".concat(length, "/").concat(maxlength);
}
if (maxcharacter) {
return "".concat(getCharacterLength(value || ""), "/").concat(maxcharacter);
}
return "";
});
return {
limitNumber: limitNumber,
getValueByLimitNumber: getValueByLimitNumber
};
}
export { useLengthLimit as default };
//# sourceMappingURL=useLengthLimit.js.map