UNPKG

element-plus

Version:
114 lines (105 loc) 3.15 kB
import { defineComponent, ref, provide, onMounted, openBlock, createElementBlock, renderSlot, inject, getCurrentInstance, createElementVNode, normalizeClass, toDisplayString } from 'vue'; var script = defineComponent({ name: "ElBreadcrumb", props: { separator: { type: String, default: "/" }, separatorClass: { type: String, default: "" } }, setup(props) { const breadcrumb = ref(null); provide("breadcrumb", props); onMounted(() => { const items = breadcrumb.value.querySelectorAll(".el-breadcrumb__item"); if (items.length) { items[items.length - 1].setAttribute("aria-current", "page"); } }); return { breadcrumb }; } }); const _hoisted_1 = { ref: "breadcrumb", class: "el-breadcrumb", "aria-label": "Breadcrumb", role: "navigation" }; function render(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", _hoisted_1, [ renderSlot(_ctx.$slots, "default") ], 512); } script.render = render; script.__file = "packages/components/breadcrumb/src/index.vue"; var script$1 = defineComponent({ name: "ElBreadcrumbItem", props: { to: { type: [String, Object], default: "" }, replace: { type: Boolean, default: false } }, setup(props) { const link = ref(null); const parent = inject("breadcrumb"); const instance = getCurrentInstance(); const router = instance.appContext.config.globalProperties.$router; onMounted(() => { link.value.setAttribute("role", "link"); link.value.addEventListener("click", () => { if (!props.to || !router) return; props.replace ? router.replace(props.to) : router.push(props.to); }); }); return { link, separator: parent == null ? void 0 : parent.separator, separatorClass: parent == null ? void 0 : parent.separatorClass }; } }); const _hoisted_1$1 = { class: "el-breadcrumb__item" }; const _hoisted_2 = { key: 1, class: "el-breadcrumb__separator", role: "presentation" }; function render$1(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("span", _hoisted_1$1, [ createElementVNode("span", { ref: "link", class: normalizeClass(["el-breadcrumb__inner", _ctx.to ? "is-link" : ""]), role: "link" }, [ renderSlot(_ctx.$slots, "default") ], 2), _ctx.separatorClass ? (openBlock(), createElementBlock("i", { key: 0, class: normalizeClass(["el-breadcrumb__separator", _ctx.separatorClass]) }, null, 2)) : (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(_ctx.separator), 1)) ]); } script$1.render = render$1; script$1.__file = "packages/components/breadcrumb/src/item.vue"; script.install = (app) => { app.component(script.name, script); app.component(script$1.name, script$1); }; script.BreadcrumbItem = script$1; const _Breadcrumb = script; const ElBreadcrumb = _Breadcrumb; const ElBreadcrumbItem = script$1; export default _Breadcrumb; export { ElBreadcrumb, ElBreadcrumbItem };