bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
452 lines (451 loc) • 12.5 kB
JavaScript
require("./chunk-CoQrYLCe.js");
const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
const require_object = require("./object-BN7QwMcz.js");
const require_BLink = require("./BLink-uemyYKst.js");
const require_useAlignment = require("./useAlignment-Dus_TOxG.js");
const require_BDropdown = require("./BDropdown-g6_09NKU.js");
const require_BForm = require("./BForm-D1hmPFIR.js");
let vue = require("vue");
//#endregion
//#region src/components/BNav/BNav.vue
var BNav_default = /* @__PURE__ */ (0, vue.defineComponent)({
__name: "BNav",
props: {
align: { default: void 0 },
cardHeader: {
type: Boolean,
default: false
},
fill: {
type: Boolean,
default: false
},
justified: {
type: Boolean,
default: false
},
pills: {
type: Boolean,
default: false
},
small: {
type: Boolean,
default: false
},
tabs: {
type: Boolean,
default: false
},
tag: { default: "ul" },
underline: {
type: Boolean,
default: false
},
vertical: {
type: Boolean,
default: false
}
},
setup(__props) {
const props = require_useDefaults.useDefaults(__props, "BNav");
const alignment = require_useAlignment.useAlignment(() => props.align);
const computedClasses = (0, vue.computed)(() => ({
"nav-tabs": props.tabs,
"nav-pills": props.pills && !props.tabs,
"card-header-tabs": !props.vertical && props.cardHeader && props.tabs,
"card-header-pills": !props.vertical && props.cardHeader && props.pills && !props.tabs,
"flex-column": props.vertical,
"nav-fill": !props.vertical && props.fill,
"nav-justified": !props.vertical && props.justified,
[alignment.value]: !props.vertical && props.align !== void 0,
"small": props.small,
"nav-underline": props.underline
}));
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.unref)(props).tag), { class: (0, vue.normalizeClass)(["nav", computedClasses.value]) }, {
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
_: 3
}, 8, ["class"]);
};
}
});
//#endregion
//#region src/components/BNav/BNavForm.vue
var BNavForm_default = /* @__PURE__ */ (0, vue.defineComponent)({
inheritAttrs: false,
__name: "BNavForm",
props: {
role: { default: void 0 },
wrapperAttrs: { default: void 0 },
formClass: { default: void 0 },
floating: {
type: Boolean,
default: void 0
},
id: { default: void 0 },
novalidate: {
type: Boolean,
default: void 0
},
validated: {
type: Boolean,
default: void 0
}
},
emits: ["submit"],
setup(__props, { emit: __emit }) {
const props = require_useDefaults.useDefaults(__props, "BNavForm");
const emit = __emit;
const attrs = (0, vue.useAttrs)();
const processedAttrs = (0, vue.computed)(() => {
const { class: wrapperClass, ...formAttrs } = attrs;
return {
wrapperClass,
formAttrs
};
});
const submitted = (e) => {
emit("submit", e);
};
const liClasses = (0, vue.computed)(() => [
"d-flex",
"flex-row",
"align-items-center",
"flex-wrap",
processedAttrs.value.wrapperClass
]);
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", (0, vue.mergeProps)({ class: liClasses.value }, __props.wrapperAttrs), [(0, vue.createVNode)(require_BForm.BForm_default, (0, vue.mergeProps)(processedAttrs.value.formAttrs, {
id: (0, vue.unref)(props).id,
floating: (0, vue.unref)(props).floating,
role: (0, vue.unref)(props).role,
novalidate: (0, vue.unref)(props).novalidate,
validated: (0, vue.unref)(props).validated,
class: ["d-flex", (0, vue.unref)(props).formClass],
onSubmit: (0, vue.withModifiers)(submitted, ["prevent"])
}), {
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
_: 3
}, 16, [
"id",
"floating",
"role",
"novalidate",
"validated",
"class"
])], 16);
};
}
});
//#endregion
//#region src/components/BNav/BNavItem.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1$2 = { class: "nav-item" };
//#endregion
//#region src/components/BNav/BNavItem.vue
var BNavItem_default = /* @__PURE__ */ (0, vue.defineComponent)({
__name: "BNavItem",
props: {
linkAttrs: { default: void 0 },
linkClass: { default: void 0 },
active: {
type: Boolean,
default: void 0
},
activeClass: { default: void 0 },
disabled: {
type: Boolean,
default: void 0
},
exactActiveClass: { default: "router-link-exact-active active" },
href: { default: void 0 },
icon: {
type: Boolean,
default: void 0
},
noRel: {
type: Boolean,
default: void 0
},
opacity: { default: void 0 },
opacityHover: { default: void 0 },
prefetch: {
type: Boolean,
default: void 0
},
prefetchOn: { default: void 0 },
noPrefetch: {
type: Boolean,
default: void 0
},
prefetchedClass: { default: void 0 },
rel: { default: void 0 },
replace: {
type: Boolean,
default: void 0
},
routerComponentName: { default: void 0 },
stretched: {
type: Boolean,
default: false
},
target: { default: void 0 },
to: { default: void 0 },
underlineOffset: { default: void 0 },
underlineOffsetHover: { default: void 0 },
underlineOpacity: { default: void 0 },
underlineOpacityHover: { default: void 0 },
underlineVariant: { default: void 0 },
variant: { default: void 0 }
},
emits: ["click"],
setup(__props, { emit: __emit }) {
const props = require_useDefaults.useDefaults(__props, "BNavItem");
const emit = __emit;
const computedLinkProps = (0, vue.computed)(() => require_object.pick(props, [
"active",
"activeClass",
"disabled",
"exactActiveClass",
"href",
"icon",
"noRel",
"noPrefetch",
"opacity",
"opacityHover",
"prefetch",
"prefetchedClass",
"prefetchOn",
"rel",
"replace",
"routerComponentName",
"stretched",
"target",
"to",
"underlineOffset",
"underlineOffsetHover",
"underlineOpacity",
"underlineOpacityHover",
"underlineVariant",
"variant"
]));
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", _hoisted_1$2, [(0, vue.createVNode)(require_BLink.BLink_default, (0, vue.mergeProps)({
class: ["nav-link", __props.linkClass],
tabindex: (0, vue.unref)(props).disabled ? -1 : void 0,
"aria-disabled": (0, vue.unref)(props).disabled ? true : void 0
}, {
...computedLinkProps.value,
...__props.linkAttrs
}, { onClick: _cache[0] || (_cache[0] = ($event) => emit("click", $event)) }), {
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
_: 3
}, 16, [
"class",
"tabindex",
"aria-disabled"
]), (0, vue.renderSlot)(_ctx.$slots, "after")]);
};
}
});
//#endregion
//#region src/components/BNav/BNavItemDropdown.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1$1 = { class: "nav-item dropdown" };
//#endregion
//#region src/components/BNav/BNavItemDropdown.vue
var BNavItemDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
__name: "BNavItemDropdown",
props: /* @__PURE__ */ (0, vue.mergeModels)({
ariaLabel: { default: void 0 },
autoClose: {
type: [Boolean, String],
default: true
},
boundary: { default: "clippingAncestors" },
boundaryPadding: { default: void 0 },
disabled: {
type: Boolean,
default: false
},
floatingMiddleware: { default: void 0 },
icon: {
type: Boolean,
default: false
},
id: { default: void 0 },
isNav: {
type: Boolean,
default: true
},
menuClass: { default: void 0 },
noCaret: {
type: Boolean,
default: false
},
noFlip: {
type: Boolean,
default: false
},
noShift: {
type: Boolean,
default: false
},
noSize: {
type: Boolean,
default: false
},
offset: { default: 0 },
role: { default: "menu" },
size: { default: "md" },
noWrapper: {
type: Boolean,
default: void 0
},
split: {
type: Boolean,
default: false
},
splitButtonType: { default: "button" },
splitClass: { default: void 0 },
splitDisabled: {
type: Boolean,
default: void 0
},
splitHref: { default: void 0 },
splitTo: { default: void 0 },
splitVariant: { default: void 0 },
strategy: { default: "absolute" },
text: { default: void 0 },
toggleClass: { default: void 0 },
toggleText: { default: "Toggle dropdown" },
variant: { default: "link" },
wrapperClass: { default: void 0 },
placement: { default: void 0 },
teleportDisabled: {
type: Boolean,
default: false
},
teleportTo: { default: void 0 },
initialAnimation: {
type: Boolean,
default: false
},
noAnimation: { type: Boolean },
noFade: { type: Boolean },
lazy: {
type: Boolean,
default: false
},
unmountLazy: { type: Boolean },
show: { type: Boolean },
transProps: {},
visible: { type: Boolean }
}, {
"modelValue": {
type: Boolean,
default: false
},
"modelModifiers": {}
}),
emits: /* @__PURE__ */ (0, vue.mergeModels)([
"split-click",
"hide",
"hide-prevented",
"hidden",
"show",
"show-prevented",
"shown",
"toggle",
"toggle-prevented"
], ["update:modelValue"]),
setup(__props, { expose: __expose, emit: __emit }) {
const props = require_useDefaults.useDefaults(__props, "BNavItemDropdown");
const emit = __emit;
const modelValue = (0, vue.useModel)(__props, "modelValue");
const dropdown = (0, vue.useTemplateRef)("_dropdown");
const hide = () => {
dropdown.value?.hide();
};
const show = () => {
dropdown.value?.show();
};
const toggle = () => {
dropdown.value?.toggle();
};
__expose({
hide,
show,
toggle
});
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", _hoisted_1$1, [(0, vue.createVNode)(require_BDropdown.BDropdown_default, (0, vue.mergeProps)({ ref: "_dropdown" }, (0, vue.unref)(props), {
modelValue: modelValue.value,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
"is-nav": "",
onShow: _cache[1] || (_cache[1] = ($event) => emit("show", $event)),
onShown: _cache[2] || (_cache[2] = ($event) => emit("shown", $event)),
onHide: _cache[3] || (_cache[3] = ($event) => emit("hide", $event)),
onHidden: _cache[4] || (_cache[4] = ($event) => emit("hidden", $event)),
onHidePrevented: _cache[5] || (_cache[5] = ($event) => emit("hide-prevented", $event)),
onShowPrevented: _cache[6] || (_cache[6] = ($event) => emit("show-prevented", $event)),
onTogglePrevented: _cache[7] || (_cache[7] = ($event) => emit("toggle-prevented", $event)),
onToggle: _cache[8] || (_cache[8] = ($event) => emit("toggle", $event)),
onSplitClick: _cache[9] || (_cache[9] = ($event) => emit("split-click", $event))
}), {
"button-content": (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "button-content")]),
"toggle-text": (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "toggle-text")]),
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {
hide,
show
})]),
_: 3
}, 16, ["modelValue"])]);
};
}
});
//#endregion
//#region src/components/BNav/BNavText.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1 = { class: "navbar-text" };
//#endregion
//#region src/components/BNav/BNavText.vue
var BNavText_default = /* @__PURE__ */ (0, vue.defineComponent)({
__name: "BNavText",
props: { text: { default: void 0 } },
setup(__props) {
const props = require_useDefaults.useDefaults(__props, "BNavText");
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", _hoisted_1, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(props).text), 1)])]);
};
}
});
//#endregion
Object.defineProperty(exports, "BNavForm_default", {
enumerable: true,
get: function() {
return BNavForm_default;
}
});
Object.defineProperty(exports, "BNavItemDropdown_default", {
enumerable: true,
get: function() {
return BNavItemDropdown_default;
}
});
Object.defineProperty(exports, "BNavItem_default", {
enumerable: true,
get: function() {
return BNavItem_default;
}
});
Object.defineProperty(exports, "BNavText_default", {
enumerable: true,
get: function() {
return BNavText_default;
}
});
Object.defineProperty(exports, "BNav_default", {
enumerable: true,
get: function() {
return BNav_default;
}
});
//# sourceMappingURL=BNav-dxOO1pJI.js.map