UNPKG

ant-design-x-vue-next

Version:

Ant Design X for Vue — community continuation aligned with @ant-design/x

2 lines (1 loc) 1.2 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const m=require("../../_util/hooks/use-state.js"),u=require("vue");function i(e){return typeof e=="string"}function h(e,a){let r=0;const f=Math.min(e.length,a.length);for(;r<f&&e[r]===a[r];)r++;return r}function c(e){if(Array.isArray(e)){const a=Math.min(e[0],e[1]),r=Math.max(e[0],e[1]);return a+Math.floor(Math.random()*(r-a+1))}return e}const p=(e,a,r,f,s=u.computed(()=>!0))=>{const[d,g]=m.default(""),[n,t]=m.default(1),v=u.computed(()=>a.value&&i(e.value));return u.watch(e,()=>{const l=u.unref(d);if(g(e.value),!v.value&&i(e.value)){t(e.value.length);return}if(!(!i(e.value)||!i(l))){if(!s.value){e.value!==l&&t(1);return}if(e.value.indexOf(l)!==0){if(!e.value||!l){t(1);return}const o=h(e.value,l);t(o===0?1:o+1)}}},{immediate:!0}),u.watch([n,a,e],()=>{if(v.value&&i(e.value)&&u.unref(n)<e.value.length){const l=setTimeout(()=>{t(u.unref(n)+c(r.value))},f.value);u.onWatcherCleanup(()=>{clearTimeout(l)})}},{immediate:!0}),[u.computed(()=>v.value&&i(e.value)?e.value.slice(0,u.unref(n)):e.value),u.computed(()=>v.value&&i(e.value)&&u.unref(n)<e.value.length)]};exports.default=p;