UNPKG

hongluan-ui

Version:
1 lines 2.36 kB
{"version":3,"file":"anchor-link.mjs","sources":["../../../../../../packages/components/anchor/src/anchor-link.vue"],"sourcesContent":["<template>\n <div ref=\"linkRef\" :class=\"cls\">\n <a :href=\"href\" @click=\"handleClick\">\n <slot>{{ title }}</slot>\n </a>\n <div v-if=\"$slots.sublist\" :class=\"`anchor-sublist`\">\n <slot name=\"sublist\"></slot>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, onMounted, ref } from 'vue'\nimport { useNamespace } from '@hongluan-ui/hooks'\nimport { anchorInjectionKey } from './types'\n\nexport default defineComponent({\n name: 'AnchorLink',\n props: {\n /**\n * @zh 锚点链接的文本内容\n * @en The text content of the anchor link\n */\n title: String,\n /**\n * @zh 锚点链接的地址\n * @en The address of the anchor link\n */\n href: String,\n },\n setup(props) {\n const { namespace } = useNamespace('anchor-link')\n const linkRef = ref<HTMLElement>()\n const context = inject(anchorInjectionKey, undefined)\n\n const cls = computed(() => [\n namespace.value,\n {\n [`is-active`]: context?.currentLink === props.href,\n },\n ])\n const handleClick = (e: MouseEvent) => context?.handleClick(e, props.href)\n\n onMounted(() => {\n if (props.href && linkRef.value) {\n context?.addLink(props.href, linkRef.value)\n }\n })\n\n return {\n cls,\n linkRef,\n handleClick,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_renderSlot"],"mappings":";;;;;;AAgBA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IAKL,OAAO;AAAA,IAKP,MAAM;AAAA;AACR,EACA,MAAM,OAAO;AACX,UAAM,EAAE,cAAc,aAAa,aAAa;AAChD,UAAM,UAAU;AAChB,UAAM,UAAU,OAAO,oBAAoB,MAAS;AAEpD,UAAM,MAAM,SAAS,MAAM;AAAA,MACzB,UAAU;AAAA,MACV;AAAA,SACG,cAAc,yBAAyB;AAAM;AAChD,KACD;AACD,UAAM,cAAc,CAAC,MAAkB,wBAAwB,UAAU;AAEzE,cAAU,MAAM;AACd,UAAI,MAAM,QAAQ,QAAQ,OAAO;AAC/B,+BAAuB,mBAAmB;AAAA;AAC5C,KACD;AAED,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;sBAtDCA,mBAOM;AAAA,IAPD,KAAI;AAAA,IAAW,OAAKC,eAAE,QAAG;AAAA;IAC5BC,mBAEI;AAAA,MAFA,MAAM;AAAA,MAAO,SAAO;AAAA;MACtBC,WAAwB,4BAAxB,MAAwB;AAAA,wCAAf,UAAK;AAAA;;IAEL,YAAO,wBAAlBH,mBAEM;AAAA;MAFsB,OAAKC,eAAE,gBAAgB;AAAA;MACjDE,WAA4B;AAAA;;;;;;;"}