UNPKG

bootstrap-vue-next

Version:

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

166 lines (165 loc) 5.71 kB
require("./chunk-CoQrYLCe.js"); const require_src_composables_useBreadcrumb_index = require("./src/composables/useBreadcrumb/index.umd.js"); const require_useDefaults = require("./useDefaults-DsLf4iRY.js"); const require_object = require("./object-BN7QwMcz.js"); const require_BLink = require("./BLink-uemyYKst.js"); let vue = require("vue"); //#endregion //#region src/components/BBreadcrumb/BBreadcrumbItem.vue var BBreadcrumbItem_default = /* @__PURE__ */ (0, vue.defineComponent)({ __name: "BBreadcrumbItem", props: { ariaCurrent: { default: "location" }, text: { default: void 0 }, active: { type: Boolean, default: false }, 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: void 0 } }, emits: ["click"], setup(__props, { emit: __emit }) { const props = require_useDefaults.useDefaults(__props, "BBreadcrumbItem"); const emit = __emit; const computedClasses = (0, vue.computed)(() => ({ active: props.active })); const computedTag = (0, vue.computed)(() => props.active ? "span" : require_BLink.BLink_default); const computedAriaCurrent = (0, vue.computed)(() => props.active ? props.ariaCurrent : void 0); const computedLinkProps = (0, vue.computed)(() => computedTag.value !== "span" ? require_object.pick(props, [ "active", "activeClass", "disabled", "exactActiveClass", "href", "icon", "noRel", "opacity", "opacityHover", "noPrefetch", "prefetch", "prefetchOn", "prefetchedClass", "rel", "replace", "routerComponentName", "stretched", "target", "to", "underlineOffset", "underlineOffsetHover", "underlineOpacity", "underlineOpacityHover", "underlineVariant", "variant" ]) : {}); const clicked = (e) => { if (props.disabled || props.active) { e.preventDefault(); e.stopImmediatePropagation(); return; } if (!props.disabled) emit("click", e); }; return (_ctx, _cache) => { return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { class: (0, vue.normalizeClass)(["breadcrumb-item", computedClasses.value]) }, [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(computedTag.value), (0, vue.mergeProps)({ "aria-current": computedAriaCurrent.value }, computedLinkProps.value, { onClick: clicked }), { default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(props).text), 1)])]), _: 3 }, 16, ["aria-current"]))], 2); }; } }); //#endregion //#region src/components/BBreadcrumb/BBreadcrumb.vue?vue&type=script&setup=true&lang.ts var _hoisted_1 = ["id"]; //#endregion //#region src/components/BBreadcrumb/BBreadcrumb.vue var BBreadcrumb_default = /* @__PURE__ */ (0, vue.defineComponent)({ __name: "BBreadcrumb", props: { items: { default: void 0 }, id: { default: void 0 }, olAttrs: { default: void 0 }, olClass: { default: void 0 } }, setup(__props) { const props = require_useDefaults.useDefaults(__props, "BBreadcrumb"); const breadcrumb = require_src_composables_useBreadcrumb_index.useBreadcrumb(() => props.id || null); const breadcrumbItemObjects = (0, vue.computed)(() => { const localItems = props.items || breadcrumb.items?.value || []; let activeDefined = false; return localItems.map((item, idx) => { if (typeof item === "string") { item = { text: item }; if (idx < localItems.length - 1) item.href = "#"; } if (item.active) activeDefined = true; if (!item.active && !activeDefined) item.active = idx + 1 === localItems.length; return item; }); }); return (_ctx, _cache) => { return (0, vue.openBlock)(), (0, vue.createElementBlock)("nav", { id: (0, vue.unref)(props).id, "aria-label": "breadcrumb" }, [(0, vue.createElementVNode)("ol", (0, vue.mergeProps)({ class: ["breadcrumb", (0, vue.unref)(props).olClass] }, (0, vue.unref)(props).olAttrs), [ (0, vue.renderSlot)(_ctx.$slots, "prepend"), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(breadcrumbItemObjects.value, (item, i) => { return (0, vue.openBlock)(), (0, vue.createBlock)(BBreadcrumbItem_default, (0, vue.mergeProps)({ key: i }, { ref_for: true }, item), { default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item.text), 1)]), _: 2 }, 1040); }), 128)), (0, vue.renderSlot)(_ctx.$slots, "default"), (0, vue.renderSlot)(_ctx.$slots, "append") ], 16)], 8, _hoisted_1); }; } }); //#endregion Object.defineProperty(exports, "BBreadcrumbItem_default", { enumerable: true, get: function() { return BBreadcrumbItem_default; } }); Object.defineProperty(exports, "BBreadcrumb_default", { enumerable: true, get: function() { return BBreadcrumb_default; } }); //# sourceMappingURL=BBreadcrumb-BkRDTYv1.js.map