bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
122 lines (121 loc) • 4.92 kB
JavaScript
require("./chunk-CoQrYLCe.js");
const require_useId = require("./useId-DTrBK9CE.js");
const require_useDefaults = require("./useDefaults-DK6Y9lar.js");
require("./BForm-B0YEolfQ.js");
const require_useFormSelect = require("./useFormSelect-DCThI8EA.js");
require("./BFormValidFeedback-Ot8gdDST.js");
let vue = require("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__ */ (0, vue.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 = require_useDefaults.useDefaults(__props, "BFormDatalist");
const computedId = require_useId.useId(() => props.id, "datalist");
const { normalizedOptions, isComplex } = require_useFormSelect.useFormSelect(() => props.options, (0, vue.computed)(() => ({
...props,
optionsField: "options",
labelField: "label"
})));
const normalizedOptsWrapper = (0, vue.computed)(() => normalizedOptions.value.filter((opt) => !isComplex(opt)));
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("datalist", { id: (0, vue.unref)(computedId) }, [
(0, vue.renderSlot)(_ctx.$slots, "first"),
((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(normalizedOptsWrapper.value, (option, index) => {
return (0, vue.openBlock)(), (0, vue.createBlock)(require_useFormSelect.BFormSelectOption_default, (0, vue.mergeProps)({ key: index }, { ref_for: true }, option), {
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "option", (0, vue.mergeProps)({ ref_for: true }, option), () => [(0, vue.createTextVNode)((0, vue.toDisplayString)("text" in option ? option.text : ""), 1)])]),
_: 2
}, 1040);
}), 128)),
(0, vue.renderSlot)(_ctx.$slots, "default")
], 8, _hoisted_1$1);
};
}
});
//#endregion
//#region src/components/BForm/BFormDatalist.vue
var BFormDatalist_default = /* @__PURE__ */ (0, vue.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 = (0, vue.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 = (0, vue.computed)(() => ({
disabled: props.disabled,
id: props.id
}));
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createBlock)(BFormDatalistBase_default, (0, vue.mergeProps)(forwardedProps.value, { options: normalizedOptions.value }), {
first: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "first")]),
option: (0, vue.withCtx)((slotProps) => [(0, vue.renderSlot)(_ctx.$slots, "option", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(slotProps)))]),
default: (0, vue.withCtx)(() => [(0, vue.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__ */ (0, vue.defineComponent)({
__name: "BFormFloatingLabel",
props: {
label: { default: void 0 },
labelFor: { default: void 0 }
},
setup(__props) {
const props = require_useDefaults.useDefaults(__props, "BFormFloatingLabel");
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1, [(0, vue.renderSlot)(_ctx.$slots, "default"), (0, vue.createElementVNode)("label", { for: (0, vue.unref)(props).labelFor }, [(0, vue.renderSlot)(_ctx.$slots, "label", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(props).label), 1)])], 8, _hoisted_2)]);
};
}
});
//#endregion
Object.defineProperty(exports, "BFormDatalist_default", {
enumerable: true,
get: function() {
return BFormDatalist_default;
}
});
Object.defineProperty(exports, "BFormFloatingLabel_default", {
enumerable: true,
get: function() {
return BFormFloatingLabel_default;
}
});
//# sourceMappingURL=BForm-ppPvhIuu.js.map