{"version":3,"file":"UTag.mjs","names":["makeComponentProps","makeTagProps","genericComponent","propsFactory","computed","UInnerTagCheckbox","UInnerTagClose","UInnerTagCount","UAvatar","Sizes","makeUTagProps","_objectSpread","size","type","String","required","isChecked","Boolean","undefined","closed","count","Number","avatarImagePath","avatarText","UTag","name","props","emits","_delete","value","change","setup","_ref","emit","slots","checkboxPaddingClasses","_ref2","_defineProperty","countPaddingClasses","_ref3","avatarPaddingClasses","margin","labelPaddingClasses","fontSizeClasses","sizes","classes","_ref4","switchCheckbox","newValue","closeTag","_slots$default","_createVNode","xxs","_default","call"],"sources":["../../../src/components/UTag/UTag.tsx"],"sourcesContent":["import { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\nimport { genericComponent, propsFactory } from '@/utils'\nimport { ExtractPropTypes, PropType } from 'vue'\nimport { computed } from 'vue'\nimport { UInnerTagCheckbox } from './UInnerTagCheckbox'\nimport { UInnerTagClose } from './UInnerTagClose'\nimport { UInnerTagCount } from './UInnerTagCount'\nimport { UAvatar } from '..'\nimport Sizes from '@/types/sizes'\n\nexport const makeUTagProps = propsFactory(\n  {\n    size: {\n      type: String,\n      default: 'sm',\n      required: false,\n    },\n    isChecked: {\n      type: [Boolean, undefined] as PropType<boolean | undefined>,\n      default: undefined,\n      required: false,\n    },\n    closed: {\n      type: Boolean,\n      default: false,\n      required: false,\n    },\n    count: {\n      type: [Number, null] as PropType<number | null>,\n      required: false,\n    },\n    avatarImagePath: {\n      type: String,\n      required: false,\n    },\n    avatarText: {\n      type: String,\n      required: false,\n    },\n\n    ...makeComponentProps(),\n    ...makeTagProps(),\n  },\n  'UTag'\n)\n\nexport type UTagProps = ExtractPropTypes<typeof makeUTagProps>\n\nexport type UTagSlots = {\n  default: never\n}\n\nexport const UTag = genericComponent<UTagSlots>()({\n  name: 'UTag',\n\n  props: makeUTagProps(),\n\n  emits: {\n    delete: (value: boolean) => true,\n    change: (value: boolean) => true,\n  },\n\n  setup(props, { emit, slots }) {\n    const checkboxPaddingClasses = computed(() => ({\n      ['pl-px']: props.size === 'sm',\n      ['pr-px']: props.size === 'md',\n      ['pl-px pr-0.5']: props.size === 'lg',\n    }))\n\n    const countPaddingClasses = computed(() => ({\n      ['']: props.size === 'sm',\n      ['ml-px']: props.size === 'md',\n      ['ml-0.5']: props.size === 'lg',\n    }))\n\n    const avatarPaddingClasses = computed(() => {\n      let margin = ''\n      if (props.size === 'sm' && props.isChecked === undefined) {\n        margin = ''\n      } else if (props.size === 'md' && props.isChecked === undefined) {\n        margin = 'pl-px pr-px'\n      } else if (props.size === 'lg' && props.isChecked === undefined) {\n        margin = 'pl-0.6 pr-0.5'\n      } else if (\n        (props.size === 'sm' || props.size === 'md' || props.size === 'lg') &&\n        props.isChecked !== undefined\n      ) {\n        margin = 'pl-1'\n      }\n      return margin\n    })\n\n    const labelPaddingClasses = computed(() => {\n      return props.closed ? 'px-1' : 'pl-1 pr-0.6'\n    })\n\n    const fontSizeClasses = computed(() => {\n      let sizes = ''\n      if (props.size === 'sm') {\n        sizes = 'text-text-xs'\n      } else if (props.size === 'md') {\n        sizes = 'text-text-sm'\n      } else if (props.size === 'lg') {\n        sizes = 'text-text-sm'\n      }\n      return sizes\n    })\n\n    const classes = computed(() => ({\n      [`flex justify-center items-center border border-gray-300 w-fit rounded-md font-medium\n      text-gray-700`]: true,\n      [fontSizeClasses.value]: true,\n      'px-1 py-0.6 max-h-6': props.size === 'sm',\n      'px-1.3 py-0.5 max-h-6': props.size === 'md',\n      'px-1.5 py-1 max-h-7': props.size === 'lg',\n    }))\n\n    const switchCheckbox = (newValue: boolean) => {\n      emit('change', newValue)\n    }\n\n    const closeTag = (newValue: boolean) => {\n      emit('delete', newValue)\n    }\n\n    return () => (\n      <div class={classes.value}>\n        {props.isChecked !== undefined ? (\n          <UInnerTagCheckbox\n            size={props.size}\n            checkboxIsChecked={props.isChecked}\n            class={checkboxPaddingClasses}\n            onChange={switchCheckbox}\n          ></UInnerTagCheckbox>\n        ) : null}\n        <div>\n          {props.avatarImagePath && !props.avatarText ? (\n            <UAvatar\n              class={avatarPaddingClasses.value}\n              size={Sizes.xxs}\n              imagePath={props.avatarImagePath}\n              avatarIcon={null}\n            ></UAvatar>\n          ) : null}\n          {props.avatarText && !props.avatarImagePath ? (\n            <UAvatar\n              class={avatarPaddingClasses.value}\n              size={Sizes.xxs}\n              avatarIcon={null}\n            >\n              {props.avatarText}\n            </UAvatar>\n          ) : null}\n        </div>\n        <div class={labelPaddingClasses.value}>{slots.default?.()}</div>\n        <div\n          class={\n            props.closed && props.count ? 'flex items-center w-fit gap-1' : ''\n          }\n        >\n          {props.count ? (\n            <UInnerTagCount\n              count={props.count}\n              size={props.size}\n              class={countPaddingClasses.value}\n            ></UInnerTagCount>\n          ) : null}\n          {props.closed ? (\n            <UInnerTagClose\n              size={props.size}\n              onDelete={closeTag}\n            ></UInnerTagClose>\n          ) : null}\n        </div>\n      </div>\n    )\n  },\n})\n\nexport type UTag = InstanceType<typeof UTag>\n"],"mappings":"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"}