UNPKG

ant-design-x-vue

Version:

Craft AI-driven interfaces effortlessly

2 lines (1 loc) 1.31 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("vue"),_=require("../_util/hooks/use-event-callback.js"),D=require("../_util/hooks/use-state.js");function V(f,v,h,b,m){const[t,o]=D.default([]),c=(e,l=t.value)=>{let a=u.toValue(f);for(let r=0;r<e-1;r+=1){const n=l[r],s=a.find(i=>i.value===n);if(!s)break;a=s.children||[]}return a},w=e=>e.map((l,a)=>{const n=c(a+1,e).find(s=>s.value===l);return n==null?void 0:n.value}),g=e=>{const l=t.value.length||1,a=c(l),r=a.findIndex(i=>i.value===t.value[l-1]),n=a.length,s=a[(r+e+n)%n];o([...t.value.slice(0,l-1),s.value])},d=()=>{t.value.length>1&&o(t.value.slice(0,t.value.length-1))},k=()=>{const e=c(t.value.length+1);e.length&&o([...t.value,e[0].value])},I=_.useEventCallback(e=>{if(u.toValue(v))switch(console.log("e.key",e),e.key){case"ArrowDown":g(1),e.preventDefault();break;case"ArrowUp":g(-1),e.preventDefault();break;case"ArrowRight":u.toValue(h)?d():k(),e.preventDefault();break;case"ArrowLeft":u.toValue(h)?k():d(),e.preventDefault();break;case"Enter":c(t.value.length+1).length||b(w(t.value)),e.preventDefault();break;case"Escape":m(),e.preventDefault();break}});return u.watch(()=>u.toValue(v),()=>{u.toValue(v)&&o([u.toValue(f)[0].value])},{immediate:!0}),[t,I]}exports.default=V;