UNPKG

bootstrap-vue-next

Version:

Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development

116 lines (115 loc) 4.38 kB
require("./chunk-CoQrYLCe.js"); const require_keys = require("./keys-durSVUrO.js"); const require_dist = require("./dist-BJ15ThEs.js"); const require_useId = require("./useId-DHrBgM7P.js"); const require_useStateClass = require("./useStateClass-CJ24hpkn.js"); const require_useAriaInvalid = require("./useAriaInvalid-CHHPHNLU.js"); const require_debounce = require("./debounce-C-5Oukxb.js"); let vue = require("vue"); //#region src/utils/normalizeInput.ts var normalizeInput = (v, modelModifiers) => { if (v === null) return; let update = v; if (modelModifiers.number && typeof update === "string" && update !== "") { const parsed = Number.parseFloat(update); update = Number.isNaN(parsed) ? update : parsed; } return update; }; //#endregion //#region src/composables/useFormInput.ts var useFormInput = (props, input, modelValue, modelModifiers) => { const computedId = require_useId.useId(() => props.id, "input"); const debounceNumber = require_dist.useToNumber(() => props.debounce ?? 0, { nanToZero: true }); const debounceMaxWaitNumber = require_dist.useToNumber(() => props.debounceMaxWait ?? NaN); const formGroupData = (0, vue.inject)(require_keys.formGroupKey, null)?.(computedId); const computedState = (0, vue.computed)(() => props.state !== void 0 ? props.state : formGroupData?.state.value ?? null); const isDisabled = (0, vue.computed)(() => props.disabled || (formGroupData?.disabled.value ?? false)); const computedAriaInvalid = require_useAriaInvalid.useAriaInvalid(() => props.ariaInvalid, computedState); const stateClass = require_useStateClass.useStateClass(computedState); const internalUpdateModelValue = require_debounce.useDebounceFn((value) => { modelValue.value = value; }, () => modelModifiers.lazy === true ? 0 : debounceNumber.value, { maxWait: () => modelModifiers.lazy === true ? NaN : debounceMaxWaitNumber.value }); const updateModelValue = (value, force = false, immediate = false) => { if (modelModifiers.lazy === true && force === false) return; if (immediate) modelValue.value = value; else internalUpdateModelValue(value); }; const { focused } = require_dist.useFocus(input, { initialValue: props.autofocus }); const _formatValue = (value, evt, force = false) => { if (props.formatter !== void 0 && (!props.lazyFormatter || force)) return props.formatter(value, evt); return value; }; (0, vue.onMounted)(() => { if (input.value) input.value.value = modelValue.value?.toString() ?? ""; }); (0, vue.onActivated)(() => { (0, vue.nextTick)(() => { if (props.autofocus) focused.value = true; }); }); const syncDisplayedValue = (nextValue) => { if (input.value && input.value.value !== nextValue) input.value.value = nextValue; }; const onInput = (evt) => { const { value } = evt.target; const formattedValue = _formatValue(value, evt); if (evt.defaultPrevented) { evt.preventDefault(); return; } updateModelValue(formattedValue); if (formattedValue !== value) syncDisplayedValue(formattedValue); }; const onChange = (evt) => { const { value } = evt.target; const formattedValue = _formatValue(value, evt); if (evt.defaultPrevented) { evt.preventDefault(); return; } const nextModel = formattedValue; if (modelValue.value !== nextModel) updateModelValue(formattedValue, true); }; const onBlur = (evt) => { if (!modelModifiers.lazy && !props.lazyFormatter && !modelModifiers.trim && debounceNumber.value <= 0) return; const { value } = evt.target; const formattedValue = _formatValue(value, evt, true); const nextModel = modelModifiers.trim ? formattedValue.trim() : formattedValue; internalUpdateModelValue.cancel(); if (modelValue.value !== nextModel) updateModelValue(nextModel, true, true); if (nextModel !== value) syncDisplayedValue(nextModel); }; const focus = () => { if (!isDisabled.value) focused.value = true; }; const blur = () => { if (!isDisabled.value) focused.value = false; }; return { input, computedId, computedAriaInvalid, onInput, onChange, onBlur, focus, blur, stateClass, isDisabled }; }; //#endregion Object.defineProperty(exports, "normalizeInput", { enumerable: true, get: function() { return normalizeInput; } }); Object.defineProperty(exports, "useFormInput", { enumerable: true, get: function() { return useFormInput; } }); //# sourceMappingURL=useFormInput-CsR38QR6.js.map