xdesign-vue-next
Version:
XDesign Component for vue-next
96 lines (92 loc) • 3.5 kB
JavaScript
/**
* xdesign v1.0.6
* (c) 2023 xdesign
* @license MIT
*/
import { _ as _slicedToArray } from '../_chunks/dep-32d4c595.mjs';
import { computed, watch, onMounted } from 'vue';
import '../_common/js/log/index.mjs';
import { limitUnicodeMaxLength, getCharacterLength, getUnicodeLength } from '../_common/js/utils/helper.mjs';
import { i as isNumber_1 } from '../_chunks/dep-23f91684.mjs';
import { i as isObject_1 } from '../_chunks/dep-6ad18815.mjs';
import log from '../_common/js/log/log.mjs';
import '../_chunks/dep-89b966f4.mjs';
import '../_chunks/dep-5bec687c.mjs';
import '../_chunks/dep-53e379cd.mjs';
import '../_chunks/dep-f9e836af.mjs';
import '../_chunks/dep-82805301.mjs';
import '../_chunks/dep-11fa9c2c.mjs';
import '../_chunks/dep-10a947a6.mjs';
import '../_chunks/dep-b75d8d74.mjs';
import '../_chunks/dep-a95026f2.mjs';
import '../_chunks/dep-068e912d.mjs';
import '../_chunks/dep-addc2a84.mjs';
import '../_chunks/dep-5a2ce53e.mjs';
import '../_chunks/dep-1bae6a97.mjs';
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_1(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_1(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 "";
});
var innerStatus = computed(function () {
if (limitNumber.value) {
var _limitNumber$value$sp = limitNumber.value.split("/"),
_limitNumber$value$sp2 = _slicedToArray(_limitNumber$value$sp, 2),
current = _limitNumber$value$sp2[0],
total = _limitNumber$value$sp2[1];
return Number(current) > Number(total) ? "error" : "";
}
return "";
});
var tStatus = computed(function () {
var status = params.value.status;
return status || innerStatus.value;
});
var onValidateChange = function onValidateChange() {
var _params$value$onValid, _params$value3;
(_params$value$onValid = (_params$value3 = params.value).onValidate) === null || _params$value$onValid === void 0 ? void 0 : _params$value$onValid.call(_params$value3, {
error: innerStatus.value ? "exceed-maximum" : void 0
});
};
watch(innerStatus, onValidateChange);
onMounted(function () {
innerStatus.value && onValidateChange();
});
return {
tStatus: tStatus,
limitNumber: limitNumber,
getValueByLimitNumber: getValueByLimitNumber
};
}
export { useLengthLimit as default };
//# sourceMappingURL=useLengthLimit.mjs.map