UNPKG

bootstrap-vue-next

Version:

BootstrapVueNext is an early and lovely component library for Vue 3 & Nuxt 3 based on Bootstrap 5 and Typescript.

3 lines (2 loc) 1.85 kB
"use strict";const e=require("vue"),u=require("./useAriaInvalid-DUOcHX79.js"),t=require("./useId-CVpYZavN.js"),a=require("./index-DiURjA3G.js"),r=require("./keys-W3DrYQSP.js"),l=require("./useStateClass-BePLKIel.js"),n=require("./index-BjjsoN-a.js");exports.normalizeInput=(e,u)=>{if(null===e)return;let t=e;if(u.number&&"string"==typeof t&&""!==t){const e=Number.parseFloat(t);t=Number.isNaN(e)?t:e}return t},exports.useFormInput=(i,o,s,v)=>{var d;const c=e.ref(0),m=t.useId((()=>i.id),"input"),f=n.useToNumber((()=>i.debounce??0)),p=n.useToNumber((()=>i.debounceMaxWait??NaN)),b=null==(d=e.inject(r.formGroupPluginKey,null))?void 0:d(m),y=e.computed((()=>void 0!==i.state?i.state:(null==b?void 0:b.state.value)??null)),I=u.useAriaInvalid((()=>i.ariaInvalid),y),N=l.useStateClass(y),g=n.useDebounceFn((e=>{s.value=e}),(()=>!0===v.lazy?0:f.value),{maxWait:()=>!0===v.lazy?NaN:p.value}),j=(e,u=!1)=>{!0===v.lazy&&!1===u||g(e)},{focused:q}=a.useFocus(o,{initialValue:i.autofocus}),x=(e,u,t=!1)=>void 0===i.formatter||i.lazyFormatter&&!t?e:i.formatter(e,u);e.onMounted((()=>{var e;o.value&&(o.value.value=(null==(e=s.value)?void 0:e.toString())??"")})),e.onActivated((()=>{e.nextTick((()=>{i.autofocus&&(q.value=!0)}))}));return{input:o,computedId:m,computedAriaInvalid:I,onInput:e=>{const{value:u}=e.target,t=x(u,e);if(e.defaultPrevented)return void e.preventDefault();j(t)},onChange:e=>{const{value:u}=e.target,t=x(u,e);if(e.defaultPrevented)return void e.preventDefault();const a=t;s.value!==a&&j(t,!0)},onBlur:e=>{if(!v.lazy&&!i.lazyFormatter&&!v.trim)return;const{value:u}=e.target,t=x(u,e,!0),a=v.trim?t.trim():t,r=a.length!==t.length;s.value!==a&&j(t,!0),v.trim&&r&&(c.value=c.value+1)},focus:()=>{i.disabled||(q.value=!0)},blur:()=>{i.disabled||(q.value=!1)},forceUpdateKey:c,stateClass:N}}; //# sourceMappingURL=useFormInput-DtG80Vyc.js.map