{"version":3,"file":"UBadge.mjs","names":["makeComponentProps","makeTagProps","computed","genericComponent","propsFactory","UIcon","UAvatar","Sizes","makeUBadgeProps","_objectSpread","size","type","String","required","color","avatarImagePath","avatarText","arrowUp","Boolean","arrowRight","plus","UBadge","name","props","emits","click","e","appendClick","prependClick","setup","_ref","emit","slots","bgColor","borderColor","concat","textColor","value","arrowColor","textSizes","text","avatarPaddingClasses","_ref2","_defineProperty","arrowUpPaddingClasses","_ref3","arrowRightPaddingClasses","_ref4","plusPaddingClasses","_ref5","labelPaddingClasses","_ref6","containerPaddingClasses","_ref7","classes","handleAppendClick","newValue","handlePrependClick","_slots$default","_createVNode","onClick","xs","_default","undefined","call"],"sources":["../../../src/components/UBadge/UBadge.tsx"],"sourcesContent":["import { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\nimport { ExtractPropTypes, computed } from 'vue'\nimport { genericComponent, propsFactory } from '@/utils'\nimport ColorName from '@/types/colors'\nimport { UIcon, UAvatar } from '../../components'\nimport Sizes from '@/types/sizes'\n\nexport const makeUBadgeProps = propsFactory(\n  {\n    size: {\n      type: String,\n      default: 'sm',\n      required: false,\n    },\n    type: {\n      type: String,\n      default: 'default',\n      required: false,\n    },\n    color: {\n      type: String,\n      default: 'primary',\n      required: false,\n    },\n    avatarImagePath: {\n      type: String,\n      required: false,\n    },\n    avatarText: {\n      type: String,\n      required: false,\n    },\n    arrowUp: {\n      type: Boolean,\n      required: false,\n    },\n    arrowRight: {\n      type: Boolean,\n      required: false,\n    },\n    plus: {\n      type: Boolean,\n      required: false,\n    },\n\n    ...makeComponentProps(),\n    ...makeTagProps(),\n  },\n  'UBadge'\n)\n\nexport type UBadgeProps = ExtractPropTypes<typeof makeUBadgeProps>\n\nexport type UBadgeSlots = {\n  default: never\n}\n\nexport const UBadge = genericComponent<UBadgeSlots>()({\n  name: 'UBadge',\n\n  props: makeUBadgeProps(),\n\n  emits: {\n    click: (e: MouseEvent) => true,\n    appendClick: (e: MouseEvent) => true,\n    prependClick: (e: MouseEvent) => true,\n  },\n\n  setup(props, { emit, slots }) {\n    const bgColor = computed(() => {\n      let color = ''\n      if (props.color === 'gray' && props.type === 'default') {\n        color = 'gray-100'\n      } else if (props.color !== 'gray' && props.type === 'default') {\n        color = props.color + '-50'\n      } else {\n        color = 'transparent'\n      }\n      return color as ColorName\n    })\n\n    const borderColor = computed(() => {\n      return props.type === 'outlined'\n        ? `border-1.5 border-${textColor.value}`\n        : ''\n    })\n\n    const arrowColor = computed(() => {\n      return `${props.color}-500` as ColorName\n    })\n\n    const textSizes = computed(() => {\n      let text = ''\n      if (props.size === 'sm') {\n        text = 'text-text-xs'\n      } else if (props.size === 'md' || props.size === 'lg') {\n        text = 'text-text-sm'\n      }\n      return text\n    })\n\n    const textColor = computed(() => {\n      return props.color + '-700'\n    })\n\n    const avatarPaddingClasses = computed(() => ({\n      ['pr-px']: props.size === 'sm',\n      ['pr-0']: props.size === 'md' || props.size === 'lg',\n    }))\n\n    const arrowUpPaddingClasses = computed(() => ({\n      ['pl-0.6']: props.size === 'sm',\n      ['pl-1']: props.size === 'md' || props.size === 'lg',\n    }))\n\n    const arrowRightPaddingClasses = computed(() => ({\n      ['pr-0.6']: props.size === 'sm',\n      ['pr-0.5']: props.size === 'md',\n      ['pr-1']: props.size === 'lg',\n    }))\n\n    const plusPaddingClasses = computed(() => ({\n      ['py-1 px-1']: props.size === 'sm',\n      ['py-1.5 px-1.5']: props.size === 'md',\n      ['py-2 px-2']: props.size === 'lg',\n    }))\n\n    const labelPaddingClasses = computed(() => ({\n      ['px-1.3']:\n        (props.size === 'sm' &&\n          (props.avatarText || props.avatarImagePath) &&\n          !props.arrowUp) ||\n        ((!props.avatarText || !props.avatarImagePath) && !props.arrowUp),\n      ['px-1.5']:\n        ((props.size === 'md' || props.size === 'lg') &&\n          (props.avatarText || props.avatarImagePath) &&\n          !props.arrowUp) ||\n        ((!props.avatarText || !props.avatarImagePath) && !props.arrowUp),\n      ['pr-1.3 pl-1']:\n        props.size === 'sm' &&\n        (!props.avatarText || !props.avatarImagePath) &&\n        props.arrowUp,\n      ['pr-1.5 pl-1']:\n        (props.size === 'md' || props.size === 'lg') &&\n        (!props.avatarText || !props.avatarImagePath) &&\n        props.arrowUp,\n      ['pl-1.3 pr-1']: props.size === 'sm' && props.arrowRight,\n      ['pl-1.5 pr-1']:\n        (props.size === 'md' || props.size === 'lg') && props.arrowRight,\n    }))\n\n    const containerPaddingClasses = computed(() => ({\n      ['py-0.5 px-0.6']: props.size === 'sm',\n      ['py-0.5 px-1']: props.size === 'md',\n      ['py-1 px-1.5']: props.size === 'lg',\n    }))\n\n    const classes = computed(() => {\n      return `bg-${bgColor.value} w-fit ${textSizes.value} text-${textColor.value}\n      rounded-16 flex justify-center items-center ${borderColor.value} font-medium`\n    })\n\n    const handleAppendClick = (newValue: any) => {\n      emit('appendClick', newValue)\n    }\n\n    const handlePrependClick = (newValue: any) => {\n      emit('prependClick', newValue)\n    }\n\n    return () => (\n      <div\n        class={[classes.value, containerPaddingClasses.value]}\n        onClick={(e) => emit('click', e)}\n      >\n        {props.avatarImagePath ? (\n          <div class={avatarPaddingClasses.value} onClick={handlePrependClick}>\n            <UAvatar\n              size={Sizes.xs}\n              imagePath={props.avatarImagePath}\n            ></UAvatar>\n          </div>\n        ) : null}\n        {props.avatarText ? (\n          <div class={avatarPaddingClasses.value} onClick={handlePrependClick}>\n            <UAvatar size={Sizes.xs} avatarIcon={null}>\n              {props.avatarText}\n            </UAvatar>\n          </div>\n        ) : null}\n        {props.arrowUp ? (\n          <div class={arrowUpPaddingClasses.value} onClick={handlePrependClick}>\n            <UIcon size=\"12\" color={arrowColor.value} icon=\"$arrowUp\"></UIcon>\n          </div>\n        ) : null}\n        {slots.default !== undefined && !props.plus ? (\n          <div class={labelPaddingClasses.value}>{slots.default?.()}</div>\n        ) : null}\n        {props.arrowRight ? (\n          <div\n            class={arrowRightPaddingClasses.value}\n            onClick={handleAppendClick}\n          >\n            <UIcon\n              size=\"12\"\n              color={arrowColor.value}\n              icon=\"$arrowRight\"\n            ></UIcon>\n          </div>\n        ) : null}\n        {props.plus ? (\n          <div class={plusPaddingClasses.value} onClick={handleAppendClick}>\n            <UIcon size=\"12\" color={arrowColor.value} icon=\"$plus\"></UIcon>\n          </div>\n        ) : null}\n      </div>\n    )\n  },\n})\n"],"mappings":"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"}