element-plus
Version:
A Component Library for Vue 3
1 lines • 3.56 kB
Source Map (JSON)
{"version":3,"file":"anchor-link.vue2.mjs","sources":["../../../../../../packages/components/anchor/src/anchor-link.vue"],"sourcesContent":["<template>\n <div :class=\"ns.e('item')\">\n <a ref=\"linkRef\" :class=\"cls\" :href=\"href\" @click=\"handleClick\">\n <slot>{{ title }}</slot>\n </a>\n <div\n v-if=\"$slots['sub-link'] && direction === 'vertical'\"\n :class=\"ns.e('list')\"\n >\n <slot name=\"sub-link\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { anchorKey } from './constants'\n\nimport type { AnchorLinkProps } from './anchor-link'\n\ndefineOptions({\n name: 'ElAnchorLink',\n})\n\nconst props = withDefaults(defineProps<AnchorLinkProps>(), {\n href: undefined,\n})\n\nconst linkRef = ref<HTMLElement | null>(null)\n\nconst {\n ns,\n direction,\n currentAnchor,\n addLink,\n removeLink,\n handleClick: contextHandleClick,\n} = inject(anchorKey)!\n\nconst cls = computed(() => [\n ns.e('link'),\n ns.is('active', currentAnchor.value === props.href),\n])\n\nconst handleClick = (e: MouseEvent) => {\n contextHandleClick(e, props.href)\n}\n\nwatch(\n () => props.href,\n (val, oldVal) => {\n nextTick(() => {\n if (oldVal) removeLink(oldVal)\n if (val) {\n addLink({\n href: val,\n el: linkRef.value!,\n })\n }\n })\n }\n)\n\nonMounted(() => {\n const { href } = props\n if (href) {\n addLink({\n href,\n el: linkRef.value!,\n })\n }\n})\n\nonBeforeUnmount(() => {\n const { href } = props\n if (href) {\n removeLink(href)\n }\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","_createElementVNode","_renderSlot","$slots"],"mappings":";;;;;;;;;;;;AAgCA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAId,IAAA,MAAM,OAAA,GAAU,IAAwB,IAAI,CAAA;AAE5C,IAAA,MAAM;AAAA,MACJ,EAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA,EAAa;AAAA,KACf,GAAI,OAAO,SAAS,CAAA;AAEpB,IAAA,MAAM,GAAA,GAAM,SAAS,MAAM;AAAA,MACzB,EAAA,CAAG,EAAE,MAAM,CAAA;AAAA,MACX,GAAG,EAAA,CAAG,QAAA,EAAU,aAAA,CAAc,KAAA,KAAU,MAAM,IAAI;AAAA,KACnD,CAAA;AAED,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAkB;AACrC,MAAA,kBAAA,CAAmB,CAAA,EAAG,MAAM,IAAI,CAAA;AAAA,IAClC,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,CAAC,KAAK,MAAA,KAAW;AACf,QAAA,QAAA,CAAS,MAAM;AACb,UAAA,IAAI,MAAA,aAAmB,MAAM,CAAA;AAC7B,UAAA,IAAI,GAAA,EAAK;AACP,YAAA,OAAA,CAAQ;AAAA,cACN,IAAA,EAAM,GAAA;AAAA,cACN,IAAI,OAAA,CAAQ;AAAA,aACb,CAAA;AAAA,UACH;AAAA,QACF,CAAC,CAAA;AAAA,MACH;AAAA,KACF;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,MAAM,EAAE,MAAK,GAAI,KAAA;AACjB,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,OAAA,CAAQ;AAAA,UACN,IAAA;AAAA,UACA,IAAI,OAAA,CAAQ;AAAA,SACb,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,MAAM,EAAE,MAAK,GAAI,KAAA;AACjB,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,UAAA,CAAW,IAAI,CAAA;AAAA,MACjB;AAAA,IACF,CAAC,CAAA;;0BArFCA,kBAAA;AAAA,QAUM,KAAA;AAAA,QAAA;AAAA,UAVA,OAAKC,cAAA,CAAEC,KAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,MAAA,CAAA;AAAA;;UACfC,mBAEI,GAAA,EAAA;AAAA,qBAFG,SAAA;AAAA,YAAJ,GAAA,EAAI,OAAA;AAAA,YAAW,KAAA,iBAAO,GAAA,CAAA,KAAG,CAAA;AAAA,YAAG,MAAM,OAAA,CAAA,IAAA;AAAA,YAAO,OAAA,EAAO;AAAA;YACjDC,WAAwB,IAAA,wBAAxB,MAAwB;AAAA;gCAAf,QAAA,KAAK,CAAA;AAAA,gBAAA;AAAA;AAAA;AAAA;;UAGRC,IAAAA,CAAAA,sBAAsBH,MAAA,SAAA,CAAA,KAAS,UAAA,iBADvCF,kBAAA;AAAA,YAKM,KAAA;AAAA,YAAA;AAAA;cAHH,OAAKC,cAAA,CAAEC,KAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,MAAA,CAAA;AAAA;;cAEZE,UAAA,CAAwB,IAAA,CAAA,MAAA,EAAA,UAAA;AAAA;;;;;;;;;;;;;;"}