@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 3.23 kB
Source Map (JSON)
{"version":3,"file":"wheel-item.vue2.mjs","sources":["../../../components/wheel/wheel-item.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, inject, onBeforeUnmount, onMounted, reactive, ref, toRef } from 'vue'\r\n\r\nimport { useNameHelper } from '@vexip-ui/config'\r\nimport { WHEEL_STATE } from './symbol'\r\n\r\ndefineOptions({ name: 'WheelItem' })\r\n\r\nconst props = defineProps({\r\n value: {\r\n type: [Number, String],\r\n default: null,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n active: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n meta: {\r\n type: [String, Number, Object],\r\n default: null,\r\n },\r\n})\r\n\r\nconst nh = useNameHelper('wheel')\r\n\r\nconst wheelState = inject(WHEEL_STATE, null)\r\n\r\nconst width = ref(0)\r\nconst height = ref(0)\r\n\r\nconst wrapper = ref<HTMLElement>()\r\n\r\nconst state = reactive({\r\n width,\r\n height,\r\n el: wrapper,\r\n value: toRef(props, 'value'),\r\n disabled: toRef(props, 'disabled'),\r\n meta: toRef(props, 'meta'),\r\n})\r\n\r\nconst style = computed(() => {\r\n return {\r\n width: width.value ? `${width.value}px` : undefined,\r\n height: height.value ? `${height.value}px` : undefined,\r\n }\r\n})\r\n\r\nif (wheelState) {\r\n onMounted(() => {\r\n wheelState.increaseItem(state)\r\n })\r\n\r\n onBeforeUnmount(() => {\r\n wheelState.decreaseItem(state)\r\n })\r\n}\r\n\r\ndefineExpose({ wrapper })\r\n</script>\r\n\r\n<template>\r\n <li\r\n ref=\"wrapper\"\r\n :class=\"[\r\n nh.be('item'),\r\n disabled && nh.bem('item', 'disabled'),\r\n active && nh.bem('item', 'active')\r\n ]\"\r\n role=\"option\"\r\n :aria-disabled=\"disabled ? 'true' : undefined\"\r\n :aria-selected=\"active\"\r\n :style=\"style\"\r\n >\r\n <slot>\r\n {{ value }}\r\n </slot>\r\n </li>\r\n</template>\r\n"],"names":["props","__props","nh","useNameHelper","wheelState","inject","WHEEL_STATE","width","ref","height","wrapper","state","reactive","toRef","style","computed","onMounted","onBeforeUnmount","__expose","_createElementBlock","_normalizeClass","_unref","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAMA,IAAQC,GAmBRC,IAAKC,EAAc,OAAO,GAE1BC,IAAaC,EAAOC,GAAa,IAAI,GAErCC,IAAQC,EAAI,CAAC,GACbC,IAASD,EAAI,CAAC,GAEdE,IAAUF,EAAiB,GAE3BG,IAAQC,EAAS;AAAA,MACrB,OAAAL;AAAA,MACA,QAAAE;AAAA,MACA,IAAIC;AAAA,MACJ,OAAOG,EAAMb,GAAO,OAAO;AAAA,MAC3B,UAAUa,EAAMb,GAAO,UAAU;AAAA,MACjC,MAAMa,EAAMb,GAAO,MAAM;AAAA,IAAA,CAC1B,GAEKc,IAAQC,EAAS,OACd;AAAA,MACL,OAAOR,EAAM,QAAQ,GAAGA,EAAM,KAAK,OAAO;AAAA,MAC1C,QAAQE,EAAO,QAAQ,GAAGA,EAAO,KAAK,OAAO;AAAA,IAC/C,EACD;AAED,WAAIL,MACFY,EAAU,MAAM;AACd,MAAAZ,EAAW,aAAaO,CAAK;AAAA,IAAA,CAC9B,GAEDM,EAAgB,MAAM;AACpB,MAAAb,EAAW,aAAaO,CAAK;AAAA,IAAA,CAC9B,IAGUO,EAAA,EAAE,SAAAR,GAAS,mBAItBS,EAeK,MAAA;AAAA,eAdC;AAAA,MAAJ,KAAIT;AAAA,MACH,OAAKU,EAAA;AAAA,QAAWC,EAAAnB,CAAA,EAAG,GAAE,MAAA;AAAA,QAAiBD,EAAQ,YAAIoB,EAAEnB,CAAA,EAAC,IAAG,QAAA,UAAA;AAAA,QAA6BD,EAAM,UAAIoB,EAAEnB,CAAA,EAAC,IAAG,QAAA,QAAA;AAAA,MAAA;MAKtG,MAAK;AAAA,MACJ,iBAAeD,EAAQ,WAAA,SAAY;AAAA,MACnC,iBAAeA,EAAM;AAAA,MACrB,SAAOa,EAAK,KAAA;AAAA,IAAA;MAEbQ,EAEOC,yBAFP,MAEO;AAAA,YADFtB,EAAK,KAAA,GAAA,CAAA;AAAA;;;;"}