bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
111 lines (110 loc) • 4.49 kB
JavaScript
import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
import { t as useId$1 } from "./useId-BKZFSYm8.mjs";
import { t as useFormSelect } from "./useFormSelect-CANw3ZJG.mjs";
import "./BForm-Oh6PpdcD.mjs";
import { t as BFormSelectOption_default } from "./BFormSelectOption-O8cyyv3i.mjs";
import "./BFormValidFeedback-_Dgzm0Ag.mjs";
import { Fragment, computed, createBlock, createElementBlock, createElementVNode, createTextVNode, defineComponent, guardReactiveProps, mergeProps, normalizeProps, openBlock, renderList, renderSlot, toDisplayString, unref, withCtx } from "vue";
//#region src/components/BForm/BFormDatalistBase.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1$1 = ["id"];
//#endregion
//#region src/components/BForm/BFormDatalistBase.vue
var BFormDatalistBase_default = /* @__PURE__ */ defineComponent({
__name: "BFormDatalistBase",
props: {
disabled: {
type: Boolean,
default: false
},
disabledField: { default: "disabled" },
id: { default: void 0 },
options: { default: () => [] },
textField: { default: "text" },
valueField: { default: "value" }
},
setup(__props) {
const props = useDefaults(__props, "BFormDatalist");
const computedId = useId$1(() => props.id, "datalist");
const { normalizedOptions, isComplex } = useFormSelect(() => props.options, computed(() => ({
...props,
optionsField: "options",
labelField: "label"
})));
const normalizedOptsWrapper = computed(() => normalizedOptions.value.filter((opt) => !isComplex(opt)));
return (_ctx, _cache) => {
return openBlock(), createElementBlock("datalist", { id: unref(computedId) }, [
renderSlot(_ctx.$slots, "first"),
(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedOptsWrapper.value, (option, index) => {
return openBlock(), createBlock(BFormSelectOption_default, mergeProps({ key: index }, { ref_for: true }, option), {
default: withCtx(() => [renderSlot(_ctx.$slots, "option", mergeProps({ ref_for: true }, option), () => [createTextVNode(toDisplayString("text" in option ? option.text : ""), 1)])]),
_: 2
}, 1040);
}), 128)),
renderSlot(_ctx.$slots, "default")
], 8, _hoisted_1$1);
};
}
});
//#endregion
//#region src/components/BForm/BFormDatalist.vue
var BFormDatalist_default = /* @__PURE__ */ defineComponent({
__name: "BFormDatalist",
props: {
disabled: {
type: Boolean,
default: false
},
disabledField: { default: "disabled" },
id: { default: void 0 },
options: { default: () => [] },
textField: { default: "text" },
valueField: { default: "value" }
},
setup(__props) {
const props = __props;
const normalizedOptions = computed(() => props.options.map((el) => {
if (typeof el === "string") return el;
if (typeof el === "number") return String(el);
if (typeof el === "boolean") return String(el);
return {
value: el[props.valueField],
text: el[props.textField] ?? "",
disabled: el[props.disabledField] ?? false
};
}));
const forwardedProps = computed(() => ({
disabled: props.disabled,
id: props.id
}));
return (_ctx, _cache) => {
return openBlock(), createBlock(BFormDatalistBase_default, mergeProps(forwardedProps.value, { options: normalizedOptions.value }), {
first: withCtx(() => [renderSlot(_ctx.$slots, "first")]),
option: withCtx((slotProps) => [renderSlot(_ctx.$slots, "option", normalizeProps(guardReactiveProps(slotProps)))]),
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
_: 3
}, 16, ["options"]);
};
}
});
//#endregion
//#region src/components/BForm/BFormFloatingLabel.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1 = { class: "form-floating" };
var _hoisted_2 = ["for"];
//#endregion
//#region src/components/BForm/BFormFloatingLabel.vue
var BFormFloatingLabel_default = /* @__PURE__ */ defineComponent({
__name: "BFormFloatingLabel",
props: {
label: { default: void 0 },
labelFor: { default: void 0 }
},
setup(__props) {
const props = useDefaults(__props, "BFormFloatingLabel");
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", _hoisted_1, [renderSlot(_ctx.$slots, "default"), createElementVNode("label", { for: unref(props).labelFor }, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(unref(props).label), 1)])], 8, _hoisted_2)]);
};
}
});
//#endregion
export { BFormDatalist_default as n, BFormFloatingLabel_default as t };
//# sourceMappingURL=BForm-IL7Rf_27.mjs.map