UNPKG

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