UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.8 kB
{"version":3,"file":"anchor-link2.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 { anchorLinkProps } from './anchor-link'\nimport { anchorKey } from './constants'\n\ndefineOptions({\n name: 'ElAnchorLink',\n})\n\nconst props = defineProps(anchorLinkProps)\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":["_openBlock","_createElementBlock","_normalizeClass","_unref","_createElementVNode","href","_renderSlot","_createTextVNode","title","$slots"],"mappings":";;;;;;;;;;;;;AA+BA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAER,IAAA,MAAA,OAAA,GAAU,IAAwB,IAAI,CAAA,CAAA;AAEtC,IAAA,MAAA;AAAA,MACJ,EAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAa,EAAA,kBAAA;AAAA,KACf,GAAI,OAAO,SAAS,CAAA,CAAA;AAEd,IAAA,MAAA,GAAA,GAAM,SAAS,MAAM;AAAA,MACzB,EAAA,CAAG,EAAE,MAAM,CAAA;AAAA,MACX,GAAG,EAAG,CAAA,QAAA,EAAU,aAAc,CAAA,KAAA,KAAU,MAAM,IAAI,CAAA;AAAA,KACnD,CAAA,CAAA;AAEK,IAAA,MAAA,WAAA,GAAc,CAAC,CAAkB,KAAA;AAClB,MAAA,kBAAA,CAAA,CAAA,EAAG,MAAM,IAAI,CAAA,CAAA;AAAA,KAClC,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,IAAA;AAAA,MACZ,CAAC,KAAK,MAAW,KAAA;AACf,QAAA,QAAA,CAAS,MAAM;AACT,UAAA,IAAA,MAAA;uBAAmB,MAAM,CAAA,CAAA;AAC7B,UAAA,IAAI,GAAK,EAAA;AACC,YAAA,OAAA,CAAA;AAAA,cACN,IAAM,EAAA,GAAA;AAAA,cACN,IAAI,OAAQ,CAAA,KAAA;AAAA,aACb,CAAA,CAAA;AAAA,WACH;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,KACF,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACR,MAAA,MAAA,EAAE,MAAS,GAAA,KAAA,CAAA;AACjB,MAAA,IAAI,IAAM,EAAA;AACA,QAAA,OAAA,CAAA;AAAA,UACN,IAAA;AAAA,UACA,IAAI,OAAQ,CAAA,KAAA;AAAA,SACb,CAAA,CAAA;AAAA,OACH;AAAA,KACD,CAAA,CAAA;AAED,IAAA,eAAA,CAAgB,MAAM;AACd,MAAA,MAAA,EAAE,MAAS,GAAA,KAAA,CAAA;AACjB,MAAA,IAAI,IAAM,EAAA;AACR,QAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AAAA,OACjB;AAAA,KACD,CAAA,CAAA;;AAlFC,MAAA,OAAAA,WAAA,EAAAC,kBAAA;AAAA,QAUM,KAAA;AAAA,QAAA;AAAA,UAVA,OAAKC,cAAE,CAAAC,KAAA,CAAA,EAAA,CAAG,CAAA,CAAA,CAAC,MAAA,CAAA,CAAA;AAAA,SAAA;AAAA;UACfC,mBAEI,GAAA,EAAA;AAAA,YAFG,OAAA,EAAA,SAAA;AAAA,YAAJ,GAAI,EAAA,OAAA;AAAA,YAAW,KAAA,EAAKF,cAAE,CAAA,GAAA,CAAG,KAAA,CAAA;AAAA,YAAG,MAAMG,IAAAA,CAAAA,IAAAA;AAAAA,YAAO,OAAO,EAAA,WAAA;AAAA,WAAA,EAAA;AAAA,YACjDC,WAAwB,4BAAxB,MAAwB;AAAA,cAAAC,eAAA;AAAA,gCAAfC,KAAK,KAAA,CAAA;AAAA,gBAAA,CAAA;AAAA,eAAA;AAAA,aAAA,CAAA;AAAA;UAGRC,IAAAA,CAAM,OAAA,UAAgB,CAAA,IAAAN,KAAA,WAAS,KAAA,UAAA,IADvCH,WAAA,EAAAC,kBAAA;AAAA,YAKM,KAAA;AAAA,YAAA;AAAA,cAAA,GAAA,EAAA,CAAA;AAAA,cAHH,OAAKC,cAAE,CAAAC,KAAA,IAAG,CAAA,CAAA,CAAC,MAAA,CAAA,CAAA;AAAA,aAAA;AAAA;cAEZG,UAAA,CAAwB,IAAA,CAAA,MAAA,EAAA,UAAA,CAAA;AAAA,aAAA;AAAA;;;;;;;;;;;;"}