vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 2.73 kB
Source Map (JSON)
{"version":3,"file":"carousel-item.vue2.cjs","sources":["../../../components/carousel/carousel-item.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject, onBeforeUnmount, reactive } from 'vue'\n\nimport { useNameHelper } from '@vexip-ui/config'\nimport { CAROUSEL_STATE } from './symbol'\n\nimport type { ItemState } from './symbol'\n\ndefineOptions({ name: 'CarouselItem' })\n\ndefineSlots<{\n default: (params: { active: boolean }) => any\n}>()\n\nconst carouselState = inject(CAROUSEL_STATE, null)\n\nconst nh = useNameHelper('carousel')\nconst state: ItemState = reactive({\n label: -1,\n width: 0,\n height: 0,\n offset: 0,\n})\n\nconst active = computed(() => {\n return carouselState?.isItemActive(state.label) ?? false\n})\nconst className = computed(() => {\n return {\n [nh.be('item')]: true,\n [nh.bem('item', 'active')]: active.value,\n }\n})\nconst style = computed(() => {\n const { width, height, offset } = state\n\n return {\n width: width ? `${width}px` : undefined,\n height: height ? `${height}px` : undefined,\n transform: offset ? `translate${carouselState?.vertical ? 'Y' : 'X'}(${offset}px)` : undefined,\n }\n})\n\nif (carouselState) {\n carouselState.increaseItem(state)\n\n onBeforeUnmount(() => {\n carouselState.decreaseItem(state)\n })\n}\n\nfunction handleClick() {\n carouselState?.handleSelect(state.label)\n}\n</script>\n\n<template>\n <div\n :class=\"className\"\n role=\"listitem\"\n :style=\"style\"\n @click=\"handleClick\"\n >\n <slot :active=\"active\"></slot>\n </div>\n</template>\n"],"names":["carouselState","inject","CAROUSEL_STATE","nh","useNameHelper","state","reactive","active","computed","className","style","width","height","offset","onBeforeUnmount","handleClick","_createElementBlock","_renderSlot","_ctx"],"mappings":"qKAcM,MAAAA,EAAgBC,EAAAA,OAAOC,EAAA,eAAgB,IAAI,EAE3CC,EAAKC,gBAAc,UAAU,EAC7BC,EAAmBC,EAAAA,SAAS,CAChC,MAAO,GACP,MAAO,EACP,OAAQ,EACR,OAAQ,CAAA,CACT,EAEKC,EAASC,EAAAA,SAAS,KACfR,GAAA,YAAAA,EAAe,aAAaK,EAAM,SAAU,EACpD,EACKI,EAAYD,EAAAA,SAAS,KAClB,CACL,CAACL,EAAG,GAAG,MAAM,CAAC,EAAG,GACjB,CAACA,EAAG,IAAI,OAAQ,QAAQ,CAAC,EAAGI,EAAO,KACrC,EACD,EACKG,EAAQF,EAAAA,SAAS,IAAM,CAC3B,KAAM,CAAE,MAAAG,EAAO,OAAAC,EAAQ,OAAAC,CAAW,EAAAR,EAE3B,MAAA,CACL,MAAOM,EAAQ,GAAGA,CAAK,KAAO,OAC9B,OAAQC,EAAS,GAAGA,CAAM,KAAO,OACjC,UAAWC,EAAS,YAAYb,GAAA,MAAAA,EAAe,SAAW,IAAM,GAAG,IAAIa,CAAM,MAAQ,MACvF,CAAA,CACD,EAEGb,IACFA,EAAc,aAAaK,CAAK,EAEhCS,EAAAA,gBAAgB,IAAM,CACpBd,EAAc,aAAaK,CAAK,CAAA,CACjC,GAGH,SAASU,GAAc,CACNf,GAAA,MAAAA,EAAA,aAAaK,EAAM,MAAK,6BAKvCW,EAAA,mBAOM,MAAA,CANH,uBAAOP,EAAS,KAAA,EACjB,KAAK,WACJ,uBAAOC,EAAK,KAAA,EACZ,QAAOK,CAAA,GAERE,EAAA,WAA8BC,EAAA,OAAA,UAAA,CAAvB,OAAQX,EAAM,KAAA,CAAA"}