UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

96 lines (92 loc) 3.5 kB
/** * 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