UNPKG

bootstrap-vue-next

Version:

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

141 lines (140 loc) 4.47 kB
import { n as usePrimitiveElement, t as VisuallyHidden_default } from "./VisuallyHidden-Bbwok8oL.mjs"; import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, defineComponent, mergeProps, openBlock, renderList, watch } from "vue"; //#region ../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/VisuallyHidden/VisuallyHiddenInputBubble.js var VisuallyHiddenInputBubble_default = /* @__PURE__ */ defineComponent({ inheritAttrs: false, __name: "VisuallyHiddenInputBubble", props: { name: { type: String, required: true }, value: { type: null, required: true }, checked: { type: Boolean, required: false, default: void 0 }, required: { type: Boolean, required: false }, disabled: { type: Boolean, required: false }, feature: { type: String, required: false, default: "fully-hidden" } }, setup(__props) { const props = __props; const { primitiveElement, currentElement } = usePrimitiveElement(); watch(computed(() => props.checked ?? props.value), (cur, prev) => { if (!currentElement.value) return; const input = currentElement.value; const inputProto = window.HTMLInputElement.prototype; const setValue = Object.getOwnPropertyDescriptor(inputProto, "value").set; if (setValue && cur !== prev) { const inputEvent = new Event("input", { bubbles: true }); const changeEvent = new Event("change", { bubbles: true }); setValue.call(input, cur); input.dispatchEvent(inputEvent); input.dispatchEvent(changeEvent); } }); return (_ctx, _cache) => { return openBlock(), createBlock(VisuallyHidden_default, mergeProps({ ref_key: "primitiveElement", ref: primitiveElement }, { ...props, ..._ctx.$attrs }, { as: "input" }), null, 16); }; } }); //#endregion //#region ../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/VisuallyHidden/VisuallyHiddenInput.js var VisuallyHiddenInput_default = /* @__PURE__ */ defineComponent({ inheritAttrs: false, __name: "VisuallyHiddenInput", props: { name: { type: String, required: true }, value: { type: null, required: true }, checked: { type: Boolean, required: false, default: void 0 }, required: { type: Boolean, required: false }, disabled: { type: Boolean, required: false }, feature: { type: String, required: false, default: "fully-hidden" } }, setup(__props) { const props = __props; const isFormArrayEmptyAndRequired = computed(() => typeof props.value === "object" && Array.isArray(props.value) && props.value.length === 0 && props.required); const parsedValue = computed(() => { if (typeof props.value === "string" || typeof props.value === "number" || typeof props.value === "boolean" || props.value === null || props.value === void 0) return [{ name: props.name, value: props.value }]; else if (typeof props.value === "object" && Array.isArray(props.value)) return props.value.flatMap((obj, index) => { if (typeof obj === "object") return Object.entries(obj).map(([key, value]) => ({ name: `${props.name}[${index}][${key}]`, value })); else return { name: `${props.name}[${index}]`, value: obj }; }); else if (props.value !== null && typeof props.value === "object" && !Array.isArray(props.value)) return Object.entries(props.value).map(([key, value]) => ({ name: `${props.name}[${key}]`, value })); return []; }); return (_ctx, _cache) => { return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" We render single input if it's required "), isFormArrayEmptyAndRequired.value ? (openBlock(), createBlock(VisuallyHiddenInputBubble_default, mergeProps({ key: _ctx.name }, { ...props, ..._ctx.$attrs }, { name: _ctx.name, value: _ctx.value }), null, 16, ["name", "value"])) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(parsedValue.value, (parsed) => { return openBlock(), createBlock(VisuallyHiddenInputBubble_default, mergeProps({ key: parsed.name }, { ref_for: true }, { ...props, ..._ctx.$attrs }, { name: parsed.name, value: parsed.value }), null, 16, ["name", "value"]); }), 128))], 2112); }; } }); //#endregion export { VisuallyHiddenInput_default as t }; //# sourceMappingURL=VisuallyHiddenInput-D1SjTCVH.mjs.map