UNPKG

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
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