bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
142 lines (141 loc) • 4.44 kB
JavaScript
require("./chunk-CoQrYLCe.js");
const require_keys = require("./keys-durSVUrO.js");
const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
const require_useFormInput = require("./useFormInput-CsR38QR6.js");
let vue = require("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__ */ (0, vue.defineComponent)({
__name: "BFormInput",
props: /* @__PURE__ */ (0, vue.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 = require_useDefaults.useDefaults(__props, "BFormInput");
const [modelValue, modelModifiers] = (0, vue.useModel)(__props, "modelValue", { set: (v) => require_useFormInput.normalizeInput(v, modelModifiers) });
const input = (0, vue.useTemplateRef)("_input");
const inInputGroup = (0, vue.inject)(require_keys.inputGroupKey, false);
const { computedId, computedAriaInvalid, onInput, onChange, onBlur, stateClass, focus, blur, isDisabled } = require_useFormInput.useFormInput(props, input, modelValue, modelModifiers);
const computedClasses = (0, vue.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 (0, vue.openBlock)(), (0, vue.createElementBlock)("input", {
id: (0, vue.unref)(computedId),
ref: "_input",
value: (0, vue.unref)(modelValue),
class: (0, vue.normalizeClass)(computedClasses.value),
name: (0, vue.unref)(props).name || void 0,
form: (0, vue.unref)(props).form || void 0,
type: (0, vue.unref)(props).type,
disabled: (0, vue.unref)(isDisabled),
placeholder: (0, vue.unref)(props).placeholder,
required: (0, vue.unref)(props).required || void 0,
autocomplete: (0, vue.unref)(props).autocomplete || void 0,
readonly: (0, vue.unref)(props).readonly || (0, vue.unref)(props).plaintext,
min: (0, vue.unref)(props).min,
max: (0, vue.unref)(props).max,
step: (0, vue.unref)(props).step,
list: (0, vue.unref)(props).type !== "password" ? (0, vue.unref)(props).list : void 0,
"aria-required": (0, vue.unref)(props).required || void 0,
"aria-invalid": (0, vue.unref)(computedAriaInvalid),
onInput: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(onInput) && (0, vue.unref)(onInput)(...args)),
onChange: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(onChange) && (0, vue.unref)(onChange)(...args)),
onBlur: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(onBlur) && (0, vue.unref)(onBlur)(...args))
}, null, 42, _hoisted_1);
};
}
});
//#endregion
Object.defineProperty(exports, "BFormInput_default", {
enumerable: true,
get: function() {
return BFormInput_default;
}
});
//# sourceMappingURL=BFormInput-BuRSGYdY.js.map