element-plus
Version:
A Component Library for Vue 3
1 lines • 3.92 kB
Source Map (JSON)
{"version":3,"file":"badge.vue2.mjs","sources":["../../../../../../packages/components/badge/src/badge.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <slot />\n <transition :name=\"`${ns.namespace.value}-zoom-in-center`\">\n <sup\n v-show=\"!hidden && (content || isDot || $slots.content)\"\n :class=\"[\n ns.e('content'),\n ns.em('content', type),\n ns.is('fixed', !!$slots.default),\n ns.is('dot', isDot),\n ns.is('hide-zero', !showZero && value === 0),\n badgeClass,\n ]\"\n :style=\"style\"\n >\n <slot name=\"content\" :value=\"content\">\n {{ content }}\n </slot>\n </sup>\n </transition>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { addUnit, isNumber } from '@element-plus/utils'\n\nimport type { StyleValue } from 'vue'\nimport type { BadgeProps } from './badge'\n\ndefineOptions({\n name: 'ElBadge',\n})\n\nconst props = withDefaults(defineProps<BadgeProps>(), {\n badgeStyle: undefined,\n value: '',\n max: 99,\n type: 'danger',\n showZero: true,\n offset: () => [0, 0],\n})\n\nconst ns = useNamespace('badge')\n\nconst content = computed<string>(() => {\n if (props.isDot) return ''\n if (isNumber(props.value) && isNumber(props.max)) {\n return props.max < props.value ? `${props.max}+` : `${props.value}`\n }\n return `${props.value}`\n})\n\nconst style = computed<StyleValue>(() => {\n return [\n {\n backgroundColor: props.color,\n marginRight: addUnit(-props.offset[0]),\n marginTop: addUnit(props.offset[1]),\n },\n props.badgeStyle ?? {},\n ]\n})\n\ndefineExpose({\n /** @description badge content */\n content,\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","_renderSlot","_createVNode","_Transition","_createElementVNode","$slots","_vShow"],"mappings":";;;;;;;;;;;;;AAoCA,IAAA,MAAM,KAAA,GAAQ,OAAA;AASd,IAAA,MAAM,EAAA,GAAK,aAAa,OAAO,CAAA;AAE/B,IAAA,MAAM,OAAA,GAAU,SAAiB,MAAM;AACrC,MAAA,IAAI,KAAA,CAAM,OAAO,OAAO,EAAA;AACxB,MAAA,IAAI,SAAS,KAAA,CAAM,KAAK,KAAK,QAAA,CAAS,KAAA,CAAM,GAAG,CAAA,EAAG;AAChD,QAAA,OAAO,KAAA,CAAM,GAAA,GAAM,KAAA,CAAM,KAAA,GAAQ,CAAA,EAAG,MAAM,GAAG,CAAA,CAAA,CAAA,GAAM,CAAA,EAAG,KAAA,CAAM,KAAK,CAAA,CAAA;AAAA,MACnE;AACA,MAAA,OAAO,CAAA,EAAG,MAAM,KAAK,CAAA,CAAA;AAAA,IACvB,CAAC,CAAA;AAED,IAAA,MAAM,KAAA,GAAQ,SAAqB,MAAM;;AACvC,MAAA,OAAO;AAAA,QACL;AAAA,UACE,iBAAiB,KAAA,CAAM,KAAA;AAAA,UACvB,aAAa,OAAA,CAAQ,CAAC,KAAA,CAAM,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,UACrC,SAAA,EAAW,OAAA,CAAQ,KAAA,CAAM,MAAA,CAAO,CAAC,CAAC;AAAA,SACpC;AAAA,QAAA,CACA,EAAA,GAAA,KAAA,CAAM,UAAA,KAAN,IAAA,GAAA,EAAA,GAAoB;AAAC,OACvB;AAAA,IACF,CAAC,CAAA;AAED,IAAA,QAAA,CAAa;AAAA;AAAA,MAEX;AAAA,KACD,CAAA;;0BApECA,kBAAA;AAAA,QAoBM,KAAA;AAAA,QAAA;AAAA,UApBA,OAAKC,cAAA,CAAEC,KAAA,CAAA,EAAA,CAAA,CAAG,GAAC;AAAA;;UACfC,UAAA,CAAQ,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,UACRC,YAiBaC,UAAA,EAAA;AAAA,YAjBA,MAAI,CAAA,EAAKH,KAAA,CAAA,EAAA,CAAA,CAAG,UAAU,KAAK,CAAA,eAAA,CAAA;AAAA,YAAxC,SAAA,EAAA;AAAA;6BACE,MAeM;AAAA,6BAfNI,kBAAA;AAAA,gBAeM,KAAA;AAAA,gBAAA;AAAA,kBAbH,OAAKL,cAAA,CAAA;AAAA,oBAAcC,KAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,SAAA,CAAA;AAAA,oBAAuBA,MAAA,EAAA,CAAA,CAAG,EAAA,CAAE,SAAA,EAAY,QAAA,IAAI,CAAA;AAAA,oBAAaA,KAAA,CAAA,EAAA,CAAA,CAAG,EAAA,CAAE,SAAA,CAAA,CAAYK,IAAAA,CAAAA,MAAAA,CAAO,OAAO,CAAA;AAAA,oBAAaL,MAAA,EAAA,CAAA,CAAG,EAAA,CAAE,KAAA,EAAQ,QAAA,KAAK,CAAA;AAAA,oBAAaA,KAAA,CAAA,EAAA,CAAA,CAAG,EAAA,CAAE,WAAA,EAAA,CAAe,OAAA,CAAA,QAAA,IAAY,OAAA,CAAA,KAAA,KAAK,CAAA,CAAA;AAAA,oBAAmB,OAAA,CAAA;AAAA;kBAQnN,KAAA,iBAAO,KAAA,CAAA,KAAK;AAAA;;kBAEbC,UAAA,CAEO,KAAA,MAAA,EAAA,SAAA,EAAA,EAFe,KAAA,EAAO,OAAA,CAAA,KAAA,IAA7B,MAEO;AAAA;sCADF,QAAA,KAAO,CAAA;AAAA,sBAAA;AAAA;AAAA;AAAA;;;;;gBAZH,CAAAK,KAAA,EAAA,CAAA,OAAA,CAAA,MAAA,KAAW,OAAA,CAAA,KAAA,IAAW,OAAA,UAASD,IAAAA,CAAAA,MAAAA,CAAO,OAAA,CAAO;AAAA;;;;;;;;;;;;;;;"}