UNPKG

bootstrap-vue-next

Version:

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

136 lines (135 loc) 4.09 kB
import { p as inputGroupKey } from "./keys-CQKrwmvN.mjs"; import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs"; import { n as normalizeInput, t as useFormInput } from "./useFormInput-BgJCT9k_.mjs"; import { computed, createElementBlock, defineComponent, inject, mergeModels, normalizeClass, openBlock, unref, useModel, useTemplateRef } from "vue"; //#region src/components/BFormInput/BFormInput.vue?vue&type=script&setup=true&lang.ts var _hoisted_1 = [ "id", "value", "name", "form", "type", "disabled", "placeholder", "required", "autocomplete", "readonly", "min", "max", "step", "list", "aria-required", "aria-invalid" ]; //#endregion //#region src/components/BFormInput/BFormInput.vue var BFormInput_default = /* @__PURE__ */ defineComponent({ __name: "BFormInput", props: /* @__PURE__ */ mergeModels({ max: { default: void 0 }, min: { default: void 0 }, step: { default: void 0 }, type: { default: "text" }, ariaInvalid: { type: [Boolean, String], default: void 0 }, autocomplete: { default: void 0 }, autofocus: { type: Boolean, default: false }, disabled: { type: Boolean, default: false }, form: { default: void 0 }, formatter: { type: Function, default: void 0 }, id: { default: void 0 }, lazyFormatter: { type: Boolean, default: false }, list: { default: void 0 }, name: { default: void 0 }, placeholder: { default: void 0 }, plaintext: { type: Boolean, default: false }, readonly: { type: Boolean, default: false }, required: { type: Boolean, default: false }, size: { default: void 0 }, state: { type: [Boolean, null], default: void 0 }, debounce: { default: 0 }, debounceMaxWait: { default: NaN } }, { "modelValue": { default: "" }, "modelModifiers": {} }), emits: ["update:modelValue"], setup(__props, { expose: __expose }) { const props = useDefaults(__props, "BFormInput"); const [modelValue, modelModifiers] = useModel(__props, "modelValue", { set: (v) => normalizeInput(v, modelModifiers) }); const input = useTemplateRef("_input"); const inInputGroup = inject(inputGroupKey, false); const { computedId, computedAriaInvalid, onInput, onChange, onBlur, stateClass, focus, blur, isDisabled } = useFormInput(props, input, modelValue, modelModifiers); const computedClasses = computed(() => { const isRange = props.type === "range"; const isColor = props.type === "color"; return [stateClass.value, { "form-range": isRange, "form-control": isColor || !props.plaintext && !isRange || isRange && inInputGroup, "form-control-color": isColor, "form-control-plaintext": props.plaintext && !isRange && !isColor, [`form-control-${props.size}`]: !!props.size }]; }); __expose({ blur, element: input, flushDebounce: onBlur, focus }); return (_ctx, _cache) => { return openBlock(), createElementBlock("input", { id: unref(computedId), ref: "_input", value: unref(modelValue), class: normalizeClass(computedClasses.value), name: unref(props).name || void 0, form: unref(props).form || void 0, type: unref(props).type, disabled: unref(isDisabled), placeholder: unref(props).placeholder, required: unref(props).required || void 0, autocomplete: unref(props).autocomplete || void 0, readonly: unref(props).readonly || unref(props).plaintext, min: unref(props).min, max: unref(props).max, step: unref(props).step, list: unref(props).type !== "password" ? unref(props).list : void 0, "aria-required": unref(props).required || void 0, "aria-invalid": unref(computedAriaInvalid), onInput: _cache[0] || (_cache[0] = (...args) => unref(onInput) && unref(onInput)(...args)), onChange: _cache[1] || (_cache[1] = (...args) => unref(onChange) && unref(onChange)(...args)), onBlur: _cache[2] || (_cache[2] = (...args) => unref(onBlur) && unref(onBlur)(...args)) }, null, 42, _hoisted_1); }; } }); //#endregion export { BFormInput_default as t }; //# sourceMappingURL=BFormInput-Dg9dbwHp.mjs.map