UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

3 lines (2 loc) 2.93 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("vue"),y=require("@vexip-ui/utils"),c=require("./symbol.cjs"),D=Array.from({length:10},(l,r)=>r);function A(l,r){return l===`Digit${r}`||l===`Numpad${r}`||l===`${r}`}function E(l){const r=l.code||l.key;let e=null,s=!1;switch(r){case"Tab":{s=!0,e=l.shiftKey?"prev":"next";break}case"ArrowRight":{s=!0,e="next";break}case"Delete":case"ArrowLeft":{s=!0,e="prev";break}case"ArrowUp":{s=!0,e="up";break}case"ArrowDown":{s=!0,e="down";break}case"Space":case" ":case"Enter":case"NumpadEnter":{s=!0,e="ok";break}case"Escape":{s=!0,e="esc";break}}if(s)l.preventDefault(),l.stopPropagation();else{const o=D.findIndex(f=>A(r,f));~o&&(e=o,l.preventDefault(),l.stopPropagation())}return e}function x(l,r=p.ref(l[0])){const e=Array.from(l),s=e.length,o=p.reactive(e.reduce((i,n)=>(i[n]=!1,i),{}));function f(i){r.value=i.find(n=>o[n])??r.value}function b(i,n=!1){i||(r.value=null);const t=n?Array.from(e).reverse():e,a=t.findIndex(u=>u===i);~a?f(t.slice(a,s).concat(t.slice(0,a))):f(t)}function T(i,n=!0){r.value||(r.value=(i==="next"?y.getLast(e):e[0])??null);for(let t=0;t<s;++t)if(r.value===e[t]){const a=i==="prev"?Array.from(e).reverse():e,u=(i==="prev"?s-t:t+1)%s,m=n?a.slice(u,s).concat(a.slice(0,u)):u?a.slice(u,s):[];f(m);break}}return{currentColumn:r,enabled:o,resetColumn:b,enterColumn:T}}const v=[0,0,0],d=[23,59,59];function S(l,r){const e=p.computed(()=>l.value?l.value.split(":").map(y.toNumber):v),s=p.computed(()=>r.value?r.value.split(":").map(y.toNumber):d),o=p.computed(()=>{const n=e.value,t=s.value;for(let a=0;a<3;++a){if(n[a]<t[a])return!1;if(n[a]>t[a])return!0}return!1}),f={hour:b,minute:(n,t)=>T(n,t)!==c.DisabledType.FALSE,second:(n,t,a)=>i(n,t,a)!==c.DisabledType.FALSE};function b(n){const t=e.value[0]||v[0],a=s.value[0]||d[0];return o.value?n>a&&n<t:n<t||n>a}function T(n,t){if(b(n))return c.DisabledType.UPSTREAM;if(e.value[0]===s.value[0]&&n===e.value[0]){const a=e.value[1]||v[1],u=s.value[1]||d[1];if(o.value?t>u&&t<a:t<a||t>u)return c.DisabledType.TRUE}if(n===e.value[0]){const a=e.value[1]||v[1];if(t<a)return c.DisabledType.AT_MIN_TRUE}if(n===s.value[0]){const a=s.value[1]||d[1];if(t>a)return c.DisabledType.AT_MAX_TRUE}return c.DisabledType.FALSE}function i(n,t,a){if(T(n,t)!==c.DisabledType.FALSE)return c.DisabledType.UPSTREAM;if(e.value[0]===s.value[0]&&n===e.value[0]&&e.value[1]===s.value[1]&&t===e.value[1]){const u=e.value[2]||v[2],m=s.value[2]||d[2];if(o.value?a>m&&a<u:a<u||a>m)return c.DisabledType.TRUE}if(n===e.value[0]&&t===e.value[1]){const u=e.value[2]||v[2];if(a<u)return c.DisabledType.AT_MIN_TRUE}if(n===s.value[0]&&t===s.value[1]){const u=s.value[2]||d[2];if(a>u)return c.DisabledType.AT_MAX_TRUE}return c.DisabledType.FALSE}return{minUnits:e,maxUnits:s,reversed:o,isTimeDisabled:f}}exports.handleKeyEnter=E;exports.useColumn=x;exports.useTimeBound=S; //# sourceMappingURL=helper.cjs.map