{"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"}