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) 2.42 kB
"use strict";const e=require("vue"),t=require("./useAriaInvalid-RW8qx3Wq.js"),u=require("./useId-owZCNodL.js"),r=require("./index-BwrAUj83.js"),a=require("./keys-D59bcWpQ.js"),n=require("./useStateClass-B3zxUwpk.js"),l=require("./index-CDlPJrTO.js"),o=()=>{};function i(t,u=200,r={}){return function(e,t){function u(...u){return new Promise((r,a)=>{Promise.resolve(e(()=>t.apply(this,u),{fn:t,thisArg:this,args:u})).then(r).catch(a)})}return u.cancel=e.cancel,u}(function(t,u={}){let r,a,n=o;const l=e=>{clearTimeout(e),n(),n=o};let i;const s=o=>{const s=e.toValue(t),c=e.toValue(u.maxWait);return r&&l(r),s<=0||void 0!==c&&c<=0?(a&&(l(a),a=null),Promise.resolve(o())):new Promise((e,t)=>{n=u.rejectOnCancel?t:e,i=o,c&&!a&&(a=setTimeout(()=>{r&&l(r),a=null,e(i())},c)),r=setTimeout(()=>{a&&l(a),a=null,e(o())},s)})};return s.cancel=()=>{r&&l(r),a&&l(a),a=null},s}(u,r),t)}exports.normalizeInput=(e,t)=>{if(null===e)return;let u=e;if(t.number&&"string"==typeof u&&""!==u){const e=Number.parseFloat(u);u=Number.isNaN(e)?u:e}return u},exports.useFormInput=(o,s,c,v)=>{const d=e.ref(0),m=u.useId(()=>o.id,"input"),f=l.useToNumber(()=>o.debounce??0,{nanToZero:!0}),p=l.useToNumber(()=>o.debounceMaxWait??NaN),y=e.inject(a.formGroupKey,null)?.(m),b=e.computed(()=>void 0!==o.state?o.state:y?.state.value??null),g=t.useAriaInvalid(()=>o.ariaInvalid,b),I=n.useStateClass(b),N=i(e=>{c.value=e},()=>!0===v.lazy?0:f.value,{maxWait:()=>!0===v.lazy?NaN:p.value}),h=(e,t=!1,u=!1)=>{!0===v.lazy&&!1===t||(u?c.value=e:N(e))},{focused:j}=r.useFocus(s,{initialValue:o.autofocus}),x=(e,t,u=!1)=>void 0===o.formatter||o.lazyFormatter&&!u?e:o.formatter(e,t);e.onMounted(()=>{s.value&&(s.value.value=c.value?.toString()??"")}),e.onActivated(()=>{e.nextTick(()=>{o.autofocus&&(j.value=!0)})});return{input:s,computedId:m,computedAriaInvalid:g,onInput:e=>{const{value:t}=e.target,u=x(t,e);if(e.defaultPrevented)return void e.preventDefault();h(u)},onChange:e=>{const{value:t}=e.target,u=x(t,e);if(e.defaultPrevented)return void e.preventDefault();const r=u;c.value!==r&&h(u,!0)},onBlur:e=>{if(!v.lazy&&!o.lazyFormatter&&!v.trim&&f.value<=0)return;const{value:t}=e.target,u=x(t,e,!0),r=v.trim?u.trim():u,a=r.length!==u.length;N.cancel(),c.value!==r&&h(u,!0,!0),v.trim&&a&&(d.value=d.value+1)},focus:()=>{o.disabled||(j.value=!0)},blur:()=>{o.disabled||(j.value=!1)},forceUpdateKey:d,stateClass:I}}; //# sourceMappingURL=useFormInput-DGxTB6KB.js.map