{"version":3,"file":"UTableHeaderCell.mjs","names":["makeComponentProps","makeTagProps","genericComponent","propsFactory","ref","computed","UTableHeaderText","UCheckbox","Sizes","makeUTableHeaderCellProps","_objectSpread","color","type","String","required","isChecked","Boolean","undefined","isDisabled","text","prependIcon","appendIcon","align","width","height","UTableHeaderCell","name","props","emits","change","value","setup","_ref","emit","slots","isHovered","alignClasses","classes","containerClasses","_defineProperty","concat","switchCheckbox","newValue","_createVNode","onMouseenter","onMouseleave","md","_default"],"sources":["../../../src/components/UTable/UTableHeaderCell.tsx"],"sourcesContent":["import { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\nimport { genericComponent, propsFactory } from '@/utils'\nimport { ref, computed, PropType, ExtractPropTypes } from 'vue'\nimport { UTableHeaderText, UCheckbox } from '@/components'\nimport Sizes from '../../types/sizes'\n\nexport const makeUTableHeaderCellProps = propsFactory(\n  {\n    color: {\n      type: String,\n      default: 'white',\n      required: false,\n    },\n    isChecked: {\n      type: [Boolean, undefined] as PropType<boolean | undefined>,\n      default: undefined,\n      required: false,\n    },\n    isDisabled: {\n      type: Boolean,\n      required: false,\n    },\n    text: {\n      type: String,\n      default: '',\n      required: false,\n    },\n    prependIcon: {\n      type: [String, undefined] as PropType<string | undefined>,\n      default: undefined,\n      required: false,\n    },\n    appendIcon: {\n      type: [String, undefined] as PropType<string | undefined>,\n      default: undefined,\n      required: false,\n    },\n    align: {\n      type: String,\n      required: false,\n    },\n    width: {\n      type: String,\n      required: false,\n    },\n    height: {\n      type: String,\n      default: '44',\n      required: false,\n    },\n\n    ...makeComponentProps(),\n    ...makeTagProps(),\n  },\n  'UTableHeaderCell'\n)\n\nexport type UTableHeaderCellProps = ExtractPropTypes<\n  typeof makeUTableHeaderCellProps\n>\n\nexport type UTableHeaderCellSlots = {\n  default: never\n}\n\nexport const UTableHeaderCell = genericComponent<UTableHeaderCellSlots>()({\n  name: 'UTableHeaderCell',\n\n  props: makeUTableHeaderCellProps(),\n\n  emits: {\n    change: (value: boolean) => true,\n  },\n\n  setup(props, { emit, slots }) {\n    const isHovered = ref(false)\n\n    const alignClasses = computed(() => {\n      let classes = ''\n      if (props.align === 'left') {\n        classes = 'justify-start'\n      } else if (props.align === 'center') {\n        classes = 'justify-center'\n      } else {\n        classes = 'justify-end'\n      }\n      return classes\n    })\n\n    const containerClasses = computed(() => ({\n      [`flex ${alignClasses.value} items-center`]: true,\n    }))\n\n    const switchCheckbox = (newValue: boolean) => {\n      emit('change', newValue)\n    }\n\n    return () => (\n      <div\n        class={'table-cell align-middle border-b border-gray-200'}\n        style={`width: ${props.width}; height: ${props.height}px`}\n      >\n        <div\n          class={[containerClasses.value, 'cursor-pointer px-4']}\n          onMouseenter={() => (isHovered.value = true)}\n          onMouseleave={() => (isHovered.value = false)}\n        >\n          {props.isChecked !== undefined ? (\n            <span class={props.text ? 'pr-3' : ''}>\n              <UCheckbox\n                size={Sizes.md}\n                checked={props.isChecked}\n                onChange={switchCheckbox}\n              ></UCheckbox>\n            </span>\n          ) : null}\n          {props.text ? (\n            <UTableHeaderText\n              appendIcon={props.appendIcon}\n              prependIcon={props.prependIcon}\n              isHovered={isHovered.value}\n              isDisabled={props.isDisabled}\n            >\n              {props.text}\n            </UTableHeaderText>\n          ) : null}\n        </div>\n      </div>\n    )\n  },\n})\n\nexport type UTableHeaderCell = InstanceType<typeof UTableHeaderCell>\n"],"mappings":"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"}