import { Slot } from 'vue'; import { BadgeProps } from '../.././components/badge/Badge.vue.d'; import { ClassComponent, HintedString } from '../.././components/ts-helpers'; export type ObjectBadge = { text: string; severity: | 'success' | 'danger' | 'warning' | 'dark' | 'primary' | 'fixed-primary' | 'supply-primary'; }; export interface BadgeGroupProps extends Omit { /** * Support data type object to determine severity for specific text */ labels: string[] | ObjectBadge[]; /** * Determine whether severity of text "more" is customizable * * @default undefined */ textMoreSeverity?: HintedString< | 'secondary' | 'info' | 'success' | 'warning' | 'danger' | 'contrast' | 'fixed-primary' | 'supply-primary' >; /** * The text shown on the more button * * @default 'more' */ textMore?: string; /** * Maximum number of label to be shown. */ limit?: number; /** * The dialog header shown on more button clicked */ headerLabel?: string; /** * Specify if the badge should be emptyable * @default false */ emptyable?: boolean; } export interface BadgeGroupSlots { /** * Slot for custom more dialog content */ dialogcontent: Slot<{ labels: string[] }>; } export default class Badge extends ClassComponent< BadgeGroupProps, BadgeGroupSlots, unknown > {}