import type { BasicWidgetInstance, BasicWidgetProps } from '../../utils'

export interface OptionItem {
    // 颜色
    color?: string
    // 图标
    icon?: string
    // 标签
    label?: string
    // 多子项
    items?: OptionItem[]
}

export interface Option {
    // 选项
    items?: OptionItem[] | OptionItem[][]
    // label 样式
    labelStyle?: Recordable
    // 色块样式
    blockStyle?: Recordable
}

export interface LegendProps extends BasicWidgetProps {
    /**
     * 是否展开
     * @default false
     */
    expand?: boolean
    /**
     * 标题
     */
    title: string
    /**
     * 选项
     */
    option?: Option
    /**
     * 底部距离 rpx
     * @default 0
     */
    bottom?: number
}

export interface LegendInstance extends BasicWidgetInstance<LegendProps> {
    /**
     * 设置标题
     * @param title 标题
     */
    setTitle: (title: string) => void
    /**
     * 设置选项
     * @param option 选项
     */
    setOption: (option: Option) => void
    /**
     * 切换展开状态
     * @param expand 是否展开
     */
    toggleExpand: (expand?: boolean) => void
}
