UNPKG

bootstrap-vue-next

Version:

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

147 lines (146 loc) 4.69 kB
require("./chunk-CoQrYLCe.js"); const require_VisuallyHidden = require("./VisuallyHidden-DaN947I0.js"); let vue = require("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__ */ (0, vue.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 } = require_VisuallyHidden.usePrimitiveElement(); (0, vue.watch)((0, vue.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 (0, vue.openBlock)(), (0, vue.createBlock)(require_VisuallyHidden.VisuallyHidden_default, (0, vue.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__ */ (0, vue.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 = (0, vue.computed)(() => typeof props.value === "object" && Array.isArray(props.value) && props.value.length === 0 && props.required); const parsedValue = (0, vue.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 (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [(0, vue.createCommentVNode)(" We render single input if it's required "), isFormArrayEmptyAndRequired.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(VisuallyHiddenInputBubble_default, (0, vue.mergeProps)({ key: _ctx.name }, { ...props, ..._ctx.$attrs }, { name: _ctx.name, value: _ctx.value }), null, 16, ["name", "value"])) : ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, (0, vue.renderList)(parsedValue.value, (parsed) => { return (0, vue.openBlock)(), (0, vue.createBlock)(VisuallyHiddenInputBubble_default, (0, vue.mergeProps)({ key: parsed.name }, { ref_for: true }, { ...props, ..._ctx.$attrs }, { name: parsed.name, value: parsed.value }), null, 16, ["name", "value"]); }), 128))], 2112); }; } }); //#endregion Object.defineProperty(exports, "VisuallyHiddenInput_default", { enumerable: true, get: function() { return VisuallyHiddenInput_default; } }); //# sourceMappingURL=VisuallyHiddenInput-Biq4Qv5j.js.map