tdesign-mobile-vue
Version:
tdesign-mobile-vue
95 lines (87 loc) • 3.65 kB
JavaScript
/**
* tdesign v1.9.3
* (c) 2025 TDesign Group
* @license MIT
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
var vue = require('vue');
var _common_js_log_log = require('../_common/js/log/log.js');
var _common_js_utils_helper = require('../_common/js/utils/helper.js');
var isNumber = require('../_chunks/dep-ff4786c0.js');
var isObject = require('../_chunks/dep-ef223206.js');
require('@babel/runtime/helpers/toConsumableArray');
require('@babel/runtime/helpers/objectWithoutProperties');
require('@babel/runtime/helpers/defineProperty');
require('../_chunks/dep-6b5052db.js');
require('../_chunks/dep-f11711eb.js');
require('../_chunks/dep-c3cb976c.js');
require('../_chunks/dep-2f809ed9.js');
require('@babel/runtime/helpers/typeof');
require('../_chunks/dep-757b152c.js');
require('../_chunks/dep-5be9198d.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
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 _common_js_utils_helper.limitUnicodeMaxLength(inputValue, maxlength);
}
if (maxcharacter) {
var r = _common_js_utils_helper.getCharacterLength(inputValue, maxcharacter);
if (isObject.isObject(r)) {
return r.characters;
}
}
};
var limitNumber = vue.computed(function () {
var _params$value2 = params.value,
maxlength = _params$value2.maxlength,
maxcharacter = _params$value2.maxcharacter,
value = _params$value2.value;
if (isNumber.isNumber(value)) return String(value);
if (maxlength && maxcharacter) {
_common_js_log_log["default"].warn("Input", "Pick one of maxlength and maxcharacter please.");
}
if (maxlength) {
var length = value !== null && value !== void 0 && value.length ? _common_js_utils_helper.getUnicodeLength(value) : 0;
return "".concat(length, "/").concat(maxlength);
}
if (maxcharacter) {
return "".concat(_common_js_utils_helper.getCharacterLength(value || ""), "/").concat(maxcharacter);
}
return "";
});
var innerStatus = vue.computed(function () {
if (limitNumber.value) {
var _limitNumber$value$sp = limitNumber.value.split("/"),
_limitNumber$value$sp2 = _slicedToArray__default["default"](_limitNumber$value$sp, 2),
current = _limitNumber$value$sp2[0],
total = _limitNumber$value$sp2[1];
return Number(current) > Number(total) ? "error" : "";
}
return "";
});
var onValidateChange = function onValidateChange() {
var _params$value$onValid, _params$value3;
(_params$value$onValid = (_params$value3 = params.value).onValidate) === null || _params$value$onValid === void 0 || _params$value$onValid.call(_params$value3, {
error: innerStatus.value ? "exceed-maximum" : void 0
});
};
vue.watch(innerStatus, onValidateChange);
vue.onMounted(function () {
innerStatus.value && onValidateChange();
});
return {
limitNumber: limitNumber,
getValueByLimitNumber: getValueByLimitNumber
};
}
exports["default"] = useLengthLimit;
//# sourceMappingURL=useLengthLimit.js.map