UNPKG

tdesign-mobile-vue

Version:
1 lines 3.69 kB
{"version":3,"file":"useLengthLimit.mjs","sources":["../../src/hooks/useLengthLimit.tsx"],"sourcesContent":["import { computed, ComputedRef } from 'vue';\nimport isNumber from 'lodash/isNumber';\nimport isObject from 'lodash/isObject';\nimport log from '../_common/js/log';\nimport { getCharacterLength, getUnicodeLength, limitUnicodeMaxLength } from '../_common/js/utils/helper';\n\nexport interface UseLengthLimitParams {\n value: string;\n maxlength: number;\n maxcharacter: number;\n allowInputOverMax: boolean;\n}\n\nexport default function useLengthLimit(params: ComputedRef<UseLengthLimitParams>) {\n // 文本超出数量限制时,是否允许继续输入\n const getValueByLimitNumber = (inputValue: string) => {\n const { allowInputOverMax, maxlength, maxcharacter } = params.value;\n if (!(maxlength || maxcharacter) || allowInputOverMax || !inputValue) return inputValue;\n if (maxlength) {\n // input value could be unicode 😊\n return limitUnicodeMaxLength(inputValue, maxlength);\n }\n if (maxcharacter) {\n const r = getCharacterLength(inputValue, maxcharacter);\n if (isObject(r)) {\n return r.characters;\n }\n }\n };\n\n const limitNumber = computed(() => {\n const { maxlength, maxcharacter, value } = params.value;\n if (isNumber(value)) return String(value);\n if (maxlength && maxcharacter) {\n log.warn('Input', 'Pick one of maxlength and maxcharacter please.');\n }\n if (maxlength) {\n const length = value?.length ? getUnicodeLength(value) : 0;\n return `${length}/${maxlength}`;\n }\n if (maxcharacter) {\n return `${getCharacterLength(value || '')}/${maxcharacter}`;\n }\n return '';\n });\n\n return {\n limitNumber,\n getValueByLimitNumber,\n };\n}\n"],"names":["useLengthLimit","params","getValueByLimitNumber","inputValue","_params$value","value","allowInputOverMax","maxlength","maxcharacter","limitUnicodeMaxLength","r","getCharacterLength","isObject","characters","limitNumber","computed","_params$value2","isNumber","String","log","warn","length","getUnicodeLength","concat"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,SAAwBA,eAAeC,MAA2C,EAAA;AAE1E,EAAA,IAAAC,qBAAA,GAAwB,SAAxBA,qBAAAA,CAAyBC,UAAuB,EAAA;AACpD,IAAA,IAAAC,aAAA,GAAuDH,MAAO,CAAAI,KAAA;MAAtDC,iBAAA,GAAAF,aAAA,CAAAE,iBAAA;MAAmBC,SAAW,GAAAH,aAAA,CAAXG,SAAW;MAAAC,YAAA,GAAAJ,aAAA,CAAAI,YAAA,CAAA;AACtC,IAAA,IAAI,EAAED,SAAA,IAAaC,YAAiB,CAAA,IAAAF,iBAAA,IAAqB,CAACH,UAAA,EAAmB,OAAAA,UAAA,CAAA;AAC7E,IAAA,IAAII,SAAW,EAAA;AAEN,MAAA,OAAAE,qBAAA,CAAsBN,YAAYI,SAAS,CAAA,CAAA;AACpD,KAAA;AACA,IAAA,IAAIC,YAAc,EAAA;AACV,MAAA,IAAAE,CAAA,GAAIC,kBAAmB,CAAAR,UAAA,EAAYK,YAAY,CAAA,CAAA;AACjD,MAAA,IAAAI,UAAA,CAASF,CAAC,CAAG,EAAA;QACf,OAAOA,CAAE,CAAAG,UAAA,CAAA;AACX,OAAA;AACF,KAAA;GACF,CAAA;AAEM,EAAA,IAAAC,WAAA,GAAcC,SAAS,YAAM;AACjC,IAAA,IAAAC,cAAA,GAA2Cf,MAAO,CAAAI,KAAA;MAA1CE,SAAA,GAAAS,cAAA,CAAAT,SAAA;MAAWC,YAAc,GAAAQ,cAAA,CAAdR,YAAc;MAAAH,KAAA,GAAAW,cAAA,CAAAX,KAAA,CAAA;IACjC,IAAIY,WAASZ,KAAK,CAAA,EAAG,OAAOa,OAAOb,KAAK,CAAA,CAAA;IACxC,IAAIE,aAAaC,YAAc,EAAA;AACzBW,MAAAA,GAAA,CAAAC,IAAA,CAAK,SAAS,gDAAgD,CAAA,CAAA;AACpE,KAAA;AACA,IAAA,IAAIb,SAAW,EAAA;AACb,MAAA,IAAMc,MAAS,GAAAhB,KAAA,KAAA,IAAA,IAAAA,KAAA,KAAAA,KAAAA,CAAAA,IAAAA,KAAA,CAAOgB,MAAS,GAAAC,gBAAA,CAAiBjB,KAAK,CAAI,GAAA,CAAA,CAAA;AACzD,MAAA,OAAA,EAAA,CAAAkB,MAAA,CAAUF,MAAU,EAAAE,GAAAA,CAAAA,CAAAA,MAAA,CAAAhB,SAAA,CAAA,CAAA;AACtB,KAAA;AACA,IAAA,IAAIC,YAAc,EAAA;MAChB,OAAAe,EAAAA,CAAAA,MAAA,CAAUZ,kBAAA,CAAmBN,KAAS,IAAA,EAAE,CAAK,EAAA,GAAA,CAAA,CAAAkB,MAAA,CAAAf,YAAA,CAAA,CAAA;AAC/C,KAAA;AACO,IAAA,OAAA,EAAA,CAAA;AACT,GAAC,CAAA,CAAA;EAEM,OAAA;AACLM,IAAAA,WAAA,EAAAA,WAAA;AACAZ,IAAAA,qBAAA,EAAAA,qBAAAA;GACF,CAAA;AACF;;;;"}