UNPKG

bootstrap-vue-next

Version:

Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development

92 lines (91 loc) 2.94 kB
require("./chunk-CoQrYLCe.js"); const require_keys = require("./keys-durSVUrO.js"); const require_useDefaults = require("./useDefaults-DK6Y9lar.js"); const require_object = require("./object-CPeShLVx.js"); let vue = require("vue"); //#region src/components/BFormSelect/BFormSelectOption.vue?vue&type=script&setup=true&lang.ts var _hoisted_1 = [ "value", "disabled", "selected" ]; //#endregion //#region src/components/BFormSelect/BFormSelectOption.vue var BFormSelectOption_default = /* @__PURE__ */ (0, vue.defineComponent)({ __name: "BFormSelectOption", props: { disabled: { type: Boolean, default: false }, value: { default: void 0 } }, setup(__props) { const props = require_useDefaults.useDefaults(__props, "BFormSelectOption"); const formSelectContext = (0, vue.inject)(require_keys.formSelectKey, null); const isSelected = (0, vue.computed)(() => { if (!formSelectContext) return false; return formSelectContext.modelValue.value === props.value; }); return (_ctx, _cache) => { return (0, vue.openBlock)(), (0, vue.createElementBlock)("option", (0, vue.mergeProps)({ value: (0, vue.unref)(props).value, disabled: (0, vue.unref)(props).disabled, selected: isSelected.value }, _ctx.$attrs), [(0, vue.renderSlot)(_ctx.$slots, "default")], 16, _hoisted_1); }; } }); //#endregion //#region src/composables/useFormSelect.ts var useFormSelect = (options, props) => { const isComplex = (option) => typeof option === "object" && option !== null && "options" in option; const normalizeOption = (option) => { const propsValue = (0, vue.toValue)(props); if (typeof option === "string") return { value: option, text: option }; if (typeof option === "number") return { value: option, text: `${option}` }; if (option instanceof Date) return { value: option, text: option.toLocaleString() }; const value = require_object.get(option, propsValue.valueField); const text = require_object.get(option, propsValue.textField); const disabled = require_object.get(option, propsValue.disabledField); const opts = propsValue.optionsField ? require_object.get(option, propsValue.optionsField) : void 0; if (opts !== void 0) return { label: require_object.get(option, propsValue.labelField) || text, options: opts }; return { ...typeof option === "object" ? option : void 0, value, text, disabled }; }; const normalizeOptions = (opts) => opts.map((option) => normalizeOption(option)); return { normalizedOptions: (0, vue.computed)(() => normalizeOptions((0, vue.toValue)(options))), isComplex }; }; //#endregion Object.defineProperty(exports, "BFormSelectOption_default", { enumerable: true, get: function() { return BFormSelectOption_default; } }); Object.defineProperty(exports, "useFormSelect", { enumerable: true, get: function() { return useFormSelect; } }); //# sourceMappingURL=useFormSelect-DCThI8EA.js.map