vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
3 lines (2 loc) • 1.72 kB
JavaScript
;const e=require("vue");require("../renderer/index.cjs");const c=require("@vexip-ui/config"),d=require("@vexip-ui/utils"),f=require("./props.cjs"),v=require("./symbol.cjs"),k=require("../renderer/renderer.cjs"),h=e.defineComponent({name:"BreadcrumbItem",__name:"breadcrumb-item",props:f.breadcrumbItemProps,setup(p){const t=p,o=c.useNameHelper("breadcrumb"),r=e.inject(v.BREADCRUMB_STATE,null),a=e.ref(t.label),i=e.ref("/"),s=e.ref(null);if(e.watch(()=>t.label,n=>{a.value=n,r==null||r.refreshLabels()}),r){const n=e.reactive({label:a});e.watch(()=>r.separator,l=>{i.value=l},{immediate:!0}),e.watch(()=>r.separatorRenderer,l=>{s.value=l},{immediate:!0}),r.increaseItem(n),e.onBeforeUnmount(()=>{r.decreaseItem(n)})}function u(){c.emitEvent(t.onSelect,a.value),r==null||r.handleSelect(a.value)}function m(){c.emitEvent(t.onSeparatorClick,a.value),r==null||r.handleSeparatorClick(a.value)}return(n,l)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(e.unref(o).be("item"))},[e.createElementVNode("a",{class:e.normalizeClass(e.unref(o).be("label")),tabindex:"0",onClick:u,onKeydown:e.withKeys(u,["enter"])},[e.renderSlot(n.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.label),1)])],34),e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).be("separator")),role:"separator",onClick:m},[e.renderSlot(n.$slots,"separator",{},()=>[e.unref(d.isFunction)(s.value)?(e.openBlock(),e.createBlock(e.unref(k),{key:0,renderer:s.value,data:{label:a.value}},null,8,["renderer","data"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i.value),1)],64))])],2)],2))}});module.exports=h;
//# sourceMappingURL=breadcrumb-item.vue2.cjs.map