bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
415 lines (414 loc) • 14.8 kB
JavaScript
require("./chunk-CoQrYLCe.js");
const require_keys = require("./keys-durSVUrO.js");
const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
const require_useColorVariantClasses = require("./useColorVariantClasses-CEfOwjPv.js");
const require_BLink = require("./BLink-uemyYKst.js");
require("./BDropdown-C1AxRj81.js");
let vue = require("vue");
//#endregion
//#region src/components/BDropdown/BDropdownDivider.vue
var BDropdownDivider_default = /* @__PURE__ */ (0, vue.defineComponent)({
inheritAttrs: false,
__name: "BDropdownDivider",
props: {
dividerClass: { default: void 0 },
tag: { default: "hr" },
variant: {},
wrapperAttrs: { default: void 0 }
},
setup(__props) {
const props = require_useDefaults.useDefaults(__props, "BDropdownDivider");
const attrs = (0, vue.useAttrs)();
const processedAttrs = (0, vue.computed)(() => {
const { class: wrapperClass, ...dividerAttrs } = attrs;
return {
wrapperClass,
dividerAttrs
};
});
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", (0, vue.mergeProps)({
role: "presentation",
class: processedAttrs.value.wrapperClass
}, __props.wrapperAttrs), [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.unref)(props).tag), (0, vue.mergeProps)({
class: ["dropdown-divider", (0, vue.unref)(props).dividerClass],
role: "separator",
"aria-orientation": "horizontal"
}, processedAttrs.value.dividerAttrs), null, 16, ["class"]))], 16);
};
}
});
//#endregion
//#region src/components/BDropdown/BDropdownForm.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1$2 = ["novalidate"];
//#endregion
//#region src/components/BDropdown/BDropdownForm.vue
var BDropdownForm_default = /* @__PURE__ */ (0, vue.defineComponent)({
inheritAttrs: false,
__name: "BDropdownForm",
props: {
formClass: { default: void 0 },
novalidate: {
type: Boolean,
default: void 0
},
validated: {
type: Boolean,
default: void 0
},
wrapperAttrs: { default: void 0 }
},
setup(__props) {
const props = require_useDefaults.useDefaults(__props, "BDropdownForm");
const attrs = (0, vue.useAttrs)();
const processedAttrs = (0, vue.computed)(() => {
const { class: wrapperClass, ...formAttrs } = attrs;
return {
wrapperClass,
formAttrs
};
});
const computedClasses = (0, vue.computed)(() => [props.formClass, { "was-validated": props.validated }]);
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", (0, vue.mergeProps)({
role: "presentation",
class: processedAttrs.value.wrapperClass
}, (0, vue.unref)(props).wrapperAttrs), [(0, vue.createElementVNode)("form", (0, vue.mergeProps)({
class: ["dropdown-item-text", computedClasses.value],
novalidate: (0, vue.unref)(props).novalidate
}, processedAttrs.value.formAttrs), [(0, vue.renderSlot)(_ctx.$slots, "default")], 16, _hoisted_1$2)], 16);
};
}
});
//#endregion
//#region src/components/BDropdown/BDropdownGroup.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1$1 = { role: "presentation" };
var _hoisted_2 = ["id", "aria-describedby"];
//#endregion
//#region src/components/BDropdown/BDropdownGroup.vue
var BDropdownGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
inheritAttrs: false,
__name: "BDropdownGroup",
props: {
ariaDescribedby: { default: void 0 },
header: { default: void 0 },
headerClass: { default: void 0 },
headerTag: { default: "header" },
headerVariant: { default: null },
id: { default: void 0 }
},
setup(__props) {
const props = require_useDefaults.useDefaults(__props, "BDropdownGroup");
const headerId = (0, vue.computed)(() => props.id ? `${props.id}_group_dd_header` : void 0);
const headerRole = (0, vue.computed)(() => props.headerTag === "header" ? void 0 : "heading");
const colorClasses = require_useColorVariantClasses.useColorVariantClasses((0, vue.computed)(() => ({ textVariant: props.headerVariant })));
const computedClasses = (0, vue.computed)(() => [props.headerClass, colorClasses.value]);
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", _hoisted_1$1, [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.unref)(props).headerTag), {
id: headerId.value,
class: (0, vue.normalizeClass)(["dropdown-header", computedClasses.value]),
role: headerRole.value
}, {
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "header", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(props).header), 1)])]),
_: 3
}, 8, [
"id",
"class",
"role"
])), (0, vue.createElementVNode)("ul", (0, vue.mergeProps)({
id: (0, vue.unref)(props).id,
role: "group",
class: "list-unstyled"
}, _ctx.$attrs, { "aria-describedby": (0, vue.unref)(props).ariaDescribedby || headerId.value }), [(0, vue.renderSlot)(_ctx.$slots, "default")], 16, _hoisted_2)]);
};
}
});
//#endregion
//#region src/components/BDropdown/BDropdownHeader.vue
var BDropdownHeader_default = /* @__PURE__ */ (0, vue.defineComponent)({
inheritAttrs: false,
__name: "BDropdownHeader",
props: {
headerClass: { default: void 0 },
tag: { default: "h6" },
text: { default: void 0 },
variant: { default: null },
wrapperAttrs: { default: void 0 }
},
setup(__props) {
const props = require_useDefaults.useDefaults(__props, "BDropdownHeader");
const attrs = (0, vue.useAttrs)();
const processedAttrs = (0, vue.computed)(() => {
const { class: wrapperClass, ...headerAttrs } = attrs;
return {
wrapperClass,
headerAttrs
};
});
const colorClasses = require_useColorVariantClasses.useColorVariantClasses((0, vue.computed)(() => ({ textVariant: props.variant })));
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", (0, vue.mergeProps)({
role: "presentation",
class: processedAttrs.value.wrapperClass
}, __props.wrapperAttrs), [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.unref)(props).tag), (0, vue.mergeProps)({ class: ["dropdown-header", [(0, vue.unref)(colorClasses), (0, vue.unref)(props).headerClass]] }, processedAttrs.value.headerAttrs), {
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(props).text), 1)])]),
_: 3
}, 16, ["class"]))], 16);
};
}
});
//#endregion
//#region src/components/BDropdown/BDropdownItem.vue
var BDropdownItem_default = /* @__PURE__ */ (0, vue.defineComponent)({
inheritAttrs: false,
__name: "BDropdownItem",
props: {
linkClass: { default: void 0 },
wrapperAttrs: { default: void 0 },
active: {
type: Boolean,
default: void 0
},
activeClass: { default: void 0 },
disabled: {
type: Boolean,
default: void 0
},
exactActiveClass: { default: void 0 },
href: { default: void 0 },
icon: {
type: Boolean,
default: void 0
},
noRel: { type: Boolean },
opacity: { default: void 0 },
opacityHover: { default: void 0 },
prefetch: { type: Boolean },
prefetchOn: {},
noPrefetch: { type: Boolean },
prefetchedClass: {},
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: null }
},
emits: ["click"],
setup(__props, { emit: __emit }) {
const props = require_useDefaults.useDefaults(__props, "BDropdownItem");
const emit = __emit;
const attrs = (0, vue.useAttrs)();
const processedAttrs = (0, vue.computed)(() => {
const { class: wrapperClass, ...dropdownItemAttrs } = attrs;
return {
wrapperClass,
dropdownItemAttrs
};
});
const { computedLink, computedLinkProps } = require_BLink.useBLinkHelper(props);
const colorClasses = require_useColorVariantClasses.useColorVariantClasses((0, vue.computed)(() => ({ textVariant: props.variant })));
const computedClasses = (0, vue.computed)(() => [
props.linkClass,
colorClasses.value,
{
active: props.active,
disabled: props.disabled
}
]);
const computedTag = (0, vue.computed)(() => computedLink.value ? require_BLink.BLink_default : props.href ? "a" : "button");
const collapseData = (0, vue.inject)(require_keys.collapseInjectionKey, null);
const dropdownData = (0, vue.inject)(require_keys.dropdownInjectionKey, null);
const navbarData = (0, vue.inject)(require_keys.navbarInjectionKey, null);
const clicked = (e) => {
emit("click", e);
if (navbarData !== null && navbarData?.noAutoClose?.value !== true) collapseData?.hide?.();
dropdownData?.hide?.();
};
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", (0, vue.mergeProps)({
role: "presentation",
class: processedAttrs.value.wrapperClass
}, (0, vue.unref)(props).wrapperAttrs), [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(computedTag.value), (0, vue.mergeProps)({
class: ["dropdown-item", computedClasses.value],
disabled: (0, vue.unref)(props).disabled,
"aria-disabled": (0, vue.unref)(props).disabled ? true : null,
"aria-current": (0, vue.unref)(props).active ? true : null,
href: computedTag.value === "a" ? (0, vue.unref)(props).href : null,
rel: (0, vue.unref)(props).rel,
role: "menuitem",
type: computedTag.value === "button" ? "button" : null,
target: (0, vue.unref)(props).target
}, {
...(0, vue.unref)(computedLinkProps),
...processedAttrs.value.dropdownItemAttrs
}, { onClick: clicked }), {
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
_: 3
}, 16, [
"class",
"disabled",
"aria-disabled",
"aria-current",
"href",
"rel",
"type",
"target"
]))], 16);
};
}
});
//#endregion
//#region src/components/BDropdown/BDropdownItemButton.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1 = ["disabled"];
//#endregion
//#region src/components/BDropdown/BDropdownItemButton.vue
var BDropdownItemButton_default = /* @__PURE__ */ (0, vue.defineComponent)({
inheritAttrs: false,
__name: "BDropdownItemButton",
props: {
active: {
type: Boolean,
default: false
},
activeClass: { default: "active" },
buttonClass: { default: void 0 },
wrapperAttrs: { default: void 0 },
disabled: {
type: Boolean,
default: false
},
variant: { default: null }
},
emits: ["click"],
setup(__props, { emit: __emit }) {
const props = require_useDefaults.useDefaults(__props, "BDropdownItemButton");
const emit = __emit;
const attrs = (0, vue.useAttrs)();
const processedAttrs = (0, vue.computed)(() => {
const { class: wrapperClass, ...buttonAttrs } = attrs;
return {
wrapperClass,
buttonAttrs
};
});
const colorClasses = require_useColorVariantClasses.useColorVariantClasses((0, vue.computed)(() => ({ textVariant: props.variant })));
const computedClasses = (0, vue.computed)(() => [
props.buttonClass,
colorClasses.value,
{
[props.activeClass]: props.active,
disabled: props.disabled
}
]);
const clicked = (e) => {
if (props.disabled) {
e.preventDefault();
e.stopPropagation();
return;
}
emit("click", e);
};
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", (0, vue.mergeProps)({
role: "presentation",
class: processedAttrs.value.wrapperClass
}, (0, vue.unref)(props).wrapperAttrs), [(0, vue.createElementVNode)("button", (0, vue.mergeProps)({
role: "menu",
type: "button",
class: ["dropdown-item", computedClasses.value],
disabled: (0, vue.unref)(props).disabled
}, processedAttrs.value.buttonAttrs, { onClick: clicked }), [(0, vue.renderSlot)(_ctx.$slots, "default")], 16, _hoisted_1)], 16);
};
}
});
//#endregion
//#region src/components/BDropdown/BDropdownText.vue
var BDropdownText_default = /* @__PURE__ */ (0, vue.defineComponent)({
inheritAttrs: false,
__name: "BDropdownText",
props: {
textClass: { default: void 0 },
tag: { default: "span" },
text: { default: void 0 },
variant: { default: null },
wrapperAttrs: { default: void 0 }
},
setup(__props) {
const props = require_useDefaults.useDefaults(__props, "BDropdownText");
const attrs = (0, vue.useAttrs)();
const processedAttrs = (0, vue.computed)(() => {
const { class: wrapperClass, ...textAttrs } = attrs;
return {
wrapperClass,
textAttrs
};
});
const colorClasses = require_useColorVariantClasses.useColorVariantClasses((0, vue.computed)(() => ({ textVariant: props.variant })));
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", (0, vue.mergeProps)({
role: "presentation",
class: processedAttrs.value.wrapperClass
}, __props.wrapperAttrs), [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.unref)(props).tag), (0, vue.mergeProps)({ class: ["dropdown-item-text", [(0, vue.unref)(colorClasses), (0, vue.unref)(props).textClass]] }, processedAttrs.value.textAttrs), {
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(props).text), 1)])]),
_: 3
}, 16, ["class"]))], 16);
};
}
});
//#endregion
Object.defineProperty(exports, "BDropdownDivider_default", {
enumerable: true,
get: function() {
return BDropdownDivider_default;
}
});
Object.defineProperty(exports, "BDropdownForm_default", {
enumerable: true,
get: function() {
return BDropdownForm_default;
}
});
Object.defineProperty(exports, "BDropdownGroup_default", {
enumerable: true,
get: function() {
return BDropdownGroup_default;
}
});
Object.defineProperty(exports, "BDropdownHeader_default", {
enumerable: true,
get: function() {
return BDropdownHeader_default;
}
});
Object.defineProperty(exports, "BDropdownItemButton_default", {
enumerable: true,
get: function() {
return BDropdownItemButton_default;
}
});
Object.defineProperty(exports, "BDropdownItem_default", {
enumerable: true,
get: function() {
return BDropdownItem_default;
}
});
Object.defineProperty(exports, "BDropdownText_default", {
enumerable: true,
get: function() {
return BDropdownText_default;
}
});
//# sourceMappingURL=BDropdown-CuVOxCzu.js.map