ant-design-x-vue-next
Version:
Ant Design X for Vue — community continuation aligned with @ant-design/x
2 lines (1 loc) • 1.68 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={N:78,UP:38,DOWN:40,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57},S={Alt:"altKey",Ctrl:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"},E={Alt:["⌥","Alt"],Ctrl:["⌃","Ctrl"],Meta:["⌘","Win"],Shift:["⇧","Shift"]},I=typeof navigator<"u"&&/(mac|iphone|ipod|ipad)/i.test(navigator.platform||""),l=[e.ONE,e.TWO,e.THREE,e.FOUR,e.FIVE,e.SIX,e.SEVEN,e.EIGHT,e.NINE],O={[e.N]:"N",[e.UP]:"↑",[e.DOWN]:"↓",...Object.fromEntries(l.map((t,n)=>[t,String(n+1)]))},p=t=>t==="number"?"number":typeof t=="string"&&t in E?E[t][I?0:1]:typeof t=="number"?O[t]||String(t):"",g=(t,n)=>{const a=[...t],c=a.pop();if(!a.every(d=>!!n[S[d]])||c!==n.keyCode)return!1;const s=l.indexOf(c);return{actionShortcutKey:t,actionKeyCodeNumber:s>-1?s:!1,actionKeyCode:n.keyCode,timeStamp:n.timeStamp}},C=(t,n)=>{const a={...n||{},...t||{}},c=[],y={};return Object.keys(a).forEach(r=>{const s=a[r];if(!Array.isArray(s))return;if(y[r]={shortcutKeys:s,shortcutKeysIcon:[]},s.every(u=>Array.isArray(u)))s.forEach((u,f)=>{const o=u;if(o[o.length-1]==="number"){const h=o.slice(0,-1);l.forEach((i,K)=>{c.push({name:r,shortcutKey:[...h,i],index:K})}),y[r].shortcutKeysIcon.push(o.map(i=>p(i)))}else c.push({name:r,shortcutKey:o,index:f}),y[r].shortcutKeysIcon.push(o.map(h=>p(h)))});else{const u=s,f=[...u],o=f.pop(),m=f;(o==="number"?l:[o]).forEach((i,K)=>{c.push({name:r,shortcutKey:[...m,i],index:o==="number"?K:void 0})}),y[r].shortcutKeysIcon=u.map(i=>p(i))}}),{flatten:c,info:y}};exports.ShortcutKeyCode=e;exports.flattenShortcutKeys=C;exports.getShortcutAction=g;exports.getShortcutKeysIcon=p;