UNPKG

hongluan-ui

Version:
1 lines 2.63 kB
{"version":3,"file":"breadcrumb-item.mjs","sources":["../../../../../../packages/components/breadcrumb/src/breadcrumb-item.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent, inject, ref, h, onMounted, getCurrentInstance, renderSlot } from 'vue'\nimport { useNamespace } from '@hongluan-ui/hooks'\nimport { BreadcrumbKey } from '@hongluan-ui/tokens'\nimport { breadcrumbItemProps } from './breadcrumb-item'\n\nimport type { IBreadcrumbProps } from './breadcrumb'\nimport type { Router } from 'vue-router'\n\nexport default defineComponent({\n name: 'BreadcrumbItem',\n props: breadcrumbItemProps,\n setup(props) {\n const { namespace } = useNamespace('breadcrumb-item')\n const link = ref<HTMLSpanElement>()\n const instance = getCurrentInstance()!\n const router = instance.appContext.config.globalProperties.$router as Router\n\n onMounted(() => {\n link.value?.setAttribute('role', 'link')\n link.value?.addEventListener('click', () => {\n if (!props.to || !router) return\n props.replace ? router.replace(props.to) : router.push(props.to)\n })\n })\n\n return {\n namespace,\n link,\n }\n },\n render() {\n const {\n $slots,\n namespace,\n to,\n } = this\n\n const parent = inject<IBreadcrumbProps>(BreadcrumbKey)\n const separator = parent?.separator\n\n return h('span', {\n class: [namespace],\n }, [\n parent?.slots?.icon || $slots.icon ?\n h('span', {\n class: 'breadcrumb-separator',\n }, [\n ($slots.icon ? renderSlot($slots, 'icon', {}) : renderSlot(parent?.slots, 'icon', {})),\n ]) :\n h('span' ,\n {\n class: 'breadcrumb-separator',\n role: 'presentation',\n innerHTML: separator,\n },\n [],\n ),\n h('span',\n {\n ref: 'link',\n class: ['breadcrumb-inner', to ? 'is-link' : ''],\n role: 'link',\n },\n [renderSlot($slots, 'default', {})],\n ),\n ])\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;MASK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM,OAAO;AACX,UAAM,EAAE,cAAc,aAAa,iBAAiB;AACpD,UAAM,OAAO;AACb,UAAM,WAAW;AACjB,UAAM,SAAS,SAAS,WAAW,OAAO,iBAAiB;AAE3D,cAAU,MAAM;AACd;AACA;AACE,YAAI;AAAsB;AAC1B;AAA+D;AAChE;AAGH;AAAO;AACL,MACA;AAAA;AACF;AACF;AAEE;AAAM;AACJ;AACA,MACA;AAAA;AAGF;AACA;AAEA;AAAiB;AACE,IACnB;AAAG,MACD,QAAQ;AACI;AACD,MACT;AAAG,QACA,OAAO;AAA4E,OACrF;AAEC,QACE,OAAO;AAAA,QACP;AAAM,QACN;AAAW;AAGf,QACA;AACA;AACO,QACL,QAAQ;AAAuC,QAC/C;AAAM,yCAEwB;AAClC;AACD;AAEL;;;;;;"}