UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

1 lines 4.87 kB
{"version":3,"file":"badge.vue2.cjs","sources":["../../../components/badge/badge.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Renderer } from '@/components/renderer'\n\nimport { computed } from 'vue'\n\nimport { emitEvent, useNameHelper, useProps } from '@vexip-ui/config'\nimport { badgeProps } from './props'\nimport { badgeTypes } from './symbol'\n\nimport type { BadgeSlots } from './symbol'\n\ndefineOptions({ name: 'Badge' })\n\nconst _props = defineProps(badgeProps)\nconst props = useProps('badge', _props, {\n content: {\n default: null,\n static: true,\n },\n max: 0,\n disabled: false,\n isDot: false,\n type: {\n default: 'error',\n validator: value => badgeTypes.includes(value),\n },\n color: null,\n slots: () => ({}),\n})\n\nconst slots = defineSlots<BadgeSlots>()\n\nconst nh = useNameHelper('badge')\n\nconst hasSlot = computed(() => {\n return !!slots.default\n})\nconst className = computed(() => {\n return {\n [nh.b()]: true,\n [nh.bs('vars')]: true,\n [nh.bm('inherit')]: props.inherit,\n [nh.bm('not-wrapper')]: !hasSlot.value,\n [nh.bm('is-dot')]: props.isDot,\n }\n})\nconst renderContent = computed(() => {\n if (props.isDot) return ''\n\n if (typeof props.content === 'number' && props.max > 0) {\n return props.content > props.max ? `${props.max}+` : props.content\n }\n\n return props.content\n})\nconst transitionName = computed(() => {\n return hasSlot.value ? nh.bs('badge-zoom') : nh.bs('zoom')\n})\nconst title = computed(() => {\n return props.content || props.content === 0 ? props.content.toString() : undefined\n})\nconst showSub = computed(() => {\n return !props.disabled && (props.content || props.content === 0 || props.isDot)\n})\n\nfunction handleBadgeClick(event: MouseEvent) {\n emitEvent(props.onBadgeClick, event)\n}\n</script>\n\n<template>\n <div :class=\"className\">\n <slot>\n <Renderer :renderer=\"props.slots.default\"></Renderer>\n </slot>\n <Transition :name=\"transitionName\">\n <sup\n v-show=\"showSub\"\n :class=\"{\n [nh.be('content')]: true,\n [nh.bem('content', 'fixed')]: hasSlot,\n [nh.bem('content', props.type)]: props.type !== 'error'\n }\"\n :style=\"{ backgroundColor: props.color }\"\n :title=\"title\"\n @click=\"handleBadgeClick\"\n >\n <slot name=\"content\" :content=\"renderContent\">\n <Renderer :renderer=\"props.slots.content\" :data=\"{ content: renderContent }\">\n {{ renderContent }}\n </Renderer>\n </slot>\n </sup>\n </Transition>\n </div>\n</template>\n"],"names":["_props","__props","props","useProps","value","badgeTypes","slots","_useSlots","nh","useNameHelper","hasSlot","computed","className","renderContent","transitionName","title","showSub","handleBadgeClick","event","emitEvent","_createElementBlock","_renderSlot","_ctx","_createVNode","_unref","Renderer","_Transition","_createElementVNode","_normalizeClass","_normalizeStyle"],"mappings":"2RAaA,MAAMA,EAASC,EACTC,EAAQC,EAAAA,SAAS,QAASH,EAAQ,CACtC,QAAS,CACP,QAAS,KACT,OAAQ,EACV,EACA,IAAK,EACL,SAAU,GACV,MAAO,GACP,KAAM,CACJ,QAAS,QACT,UAAWI,GAASC,EAAW,WAAA,SAASD,CAAK,CAC/C,EACA,MAAO,KACP,MAAO,KAAO,CAAC,EAAA,CAChB,EAEKE,EAAQC,EAAAA,SAAA,EAERC,EAAKC,gBAAc,OAAO,EAE1BC,EAAUC,EAAAA,SAAS,IAChB,CAAC,CAACL,EAAM,OAChB,EACKM,EAAYD,EAAAA,SAAS,KAClB,CACL,CAACH,EAAG,EAAE,CAAC,EAAG,GACV,CAACA,EAAG,GAAG,MAAM,CAAC,EAAG,GACjB,CAACA,EAAG,GAAG,SAAS,CAAC,EAAGN,EAAM,QAC1B,CAACM,EAAG,GAAG,aAAa,CAAC,EAAG,CAACE,EAAQ,MACjC,CAACF,EAAG,GAAG,QAAQ,CAAC,EAAGN,EAAM,KAC3B,EACD,EACKW,EAAgBF,EAAAA,SAAS,IACzBT,EAAM,MAAc,GAEpB,OAAOA,EAAM,SAAY,UAAYA,EAAM,IAAM,GAC5CA,EAAM,QAAUA,EAAM,IAAM,GAAGA,EAAM,GAAG,IAG1CA,EAAM,OACd,EACKY,EAAiBH,EAAAA,SAAS,IACvBD,EAAQ,MAAQF,EAAG,GAAG,YAAY,EAAIA,EAAG,GAAG,MAAM,CAC1D,EACKO,EAAQJ,EAAAA,SAAS,IACdT,EAAM,SAAWA,EAAM,UAAY,EAAIA,EAAM,QAAQ,SAAa,EAAA,MAC1E,EACKc,EAAUL,EAAAA,SAAS,IAChB,CAACT,EAAM,WAAaA,EAAM,SAAWA,EAAM,UAAY,GAAKA,EAAM,MAC1E,EAED,SAASe,EAAiBC,EAAmB,CACjCC,YAAAjB,EAAM,aAAcgB,CAAK,CAAA,6BAKnCE,EAAA,mBAuBM,MAAA,CAvBA,uBAAOR,EAAS,KAAA,CAAA,GACpBS,EAAAA,WAEOC,sBAFP,IAEO,CADLC,cAAqDC,EAAAA,MAAAC,CAAA,EAAA,CAA1C,SAAUD,EAAA,MAAAtB,CAAA,EAAM,MAAM,OAAA,yBAEnCqB,EAAAA,YAkBaG,EAAAA,WAAA,CAlBA,KAAMZ,EAAc,OAAA,mBAC/B,IAgBM,kBAhBNa,qBAgBM,MAAA,CAdH,MAAKC,EAAAA,eAAA,CAAe,CAAAJ,EAAA,MAAAhB,CAAA,EAAG,GAAE,SAAA,CAAA,EAAA,IAA+BgB,EAAAA,MAAEhB,CAAA,EAAC,IAAG,UAAA,OAAA,CAAA,EAAuBE,EAAO,OAAac,EAAA,MAAEhB,CAAA,EAAC,IAAe,UAAAgB,EAAA,MAAAtB,CAAA,EAAM,IAAI,CAAA,EAAIsB,EAAAA,MAAKtB,CAAA,EAAC,OAAI,OAAA,GAKnJ,MAAK2B,iBAAA,CAAA,gBAAqBL,QAAKtB,CAAA,EAAC,MAAK,EACrC,MAAOa,EAAK,MACZ,QAAOE,CAAA,GAERI,aAIOC,EAJe,OAAA,UAAA,CAAA,QAAST,EAAA,OAA/B,IAIO,CAHLU,cAEWC,EAAAA,MAAAC,CAAA,EAAA,CAFA,SAAUD,EAAA,MAAAtB,CAAA,EAAM,MAAM,QAAU,cAAiBW,EAAa,KAAA,CAAA,qBACvE,IAAmB,qCAAhBA,EAAa,KAAA,EAAA,CAAA,CAAA,kDAZZG,EAAO,KAAA"}