hongluan-ui
Version:
Hongluan Component Library for Vue 3
1 lines • 2.71 kB
Source Map (JSON)
{"version":3,"file":"carousel-indicator2.mjs","sources":["../../../../../../packages/components/carousel/src/carousel-indicator.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n {'is-active': data.indicatorIndex === data.active},\n namespace\n ]\"\n @click=\"handleItemClick\"\n @mouseenter=\"handlethrottledIndicatorHover\"\n >\n <slot></slot>\n </div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent,reactive,inject,watch } from 'vue'\nimport { useNamespace } from '@hongluan-ui/hooks'\nimport { carouselIndicatorProps } from './carousel-indicator'\nimport { carouselIndicatorContextKey } from '@hongluan-ui/tokens'\n\nexport default defineComponent({\n name: 'CarouselIndicator',\n props: carouselIndicatorProps,\n emits: ['click', 'hover'],\n setup(props, { emit }) {\n const { namespace } = useNamespace('carousel-indicator')\n\n // data\n const data = reactive<{\n active: number\n indicatorIndex: number\n }>({\n active: -1,\n indicatorIndex: props.index,\n })\n\n // inject\n const injectIndicatorScope = inject(carouselIndicatorContextKey)\n\n // watch\n watch(() => injectIndicatorScope.activeIndex.value,\n current => {\n data.active = current\n }, { immediate: true },\n )\n\n // methods\n function handleItemClick() {\n if (injectIndicatorScope.handleIndicatorClick) {\n injectIndicatorScope.handleIndicatorClick(props.index)\n }\n emit('click', props.index)\n }\n function handlethrottledIndicatorHover() {\n if (injectIndicatorScope.throttledIndicatorHover) {\n injectIndicatorScope.throttledIndicatorHover(props.index)\n }\n emit('hover', props.index)\n }\n\n return {\n namespace,\n data,\n handleItemClick,\n handlethrottledIndicatorHover,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_renderSlot"],"mappings":";;;;;;;;AAkBA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO,CAAC,SAAS,OAAO;AAAA,EACxB,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,EAAE,cAAc,aAAa,oBAAoB;AAGvD,UAAM,OAAO,SAGV;AAAA,MACD,QAAQ;AAAA,MACR,gBAAgB,MAAM;AAAA,KACvB;AAGD,UAAM,uBAAuB,OAAO,2BAA2B;AAG/D,UAAM,MAAM,qBAAqB,YAAY,OAC3C,aAAW;AACT,WAAK,SAAS;AAAA,OACb,EAAE,WAAW,MAClB;AAGA,+BAA2B;AACzB,UAAI,qBAAqB,sBAAsB;AAC7C,6BAAqB,qBAAqB,MAAM,KAAK;AAAA;AAEvD,WAAK,SAAS,MAAM,KAAK;AAAA;AAE3B,6CAAyC;AACvC,UAAI,qBAAqB,yBAAyB;AAChD,6BAAqB,wBAAwB,MAAM,KAAK;AAAA;AAE1D,WAAK,SAAS,MAAM,KAAK;AAAA;AAG3B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;sBAhECA,mBASM;AAAA,IARH,OAAKC;AAAA,qBAAwB,UAAK,mBAAmB,UAAK;AAAM,MAAS;AAAA;IAIzE,SAAO;AAAA,IACP,cAAY;AAAA;IAEbC,WAAa;AAAA;;;;;;"}