import type { ReactNode } from 'react'; import type { WithRemoteItem } from 'jamis-core'; import type { BaseSchema, SchemaApi, SchemaClassName, SchemaCollection, SchemaTokenizeableString } from '../types'; export interface TimelineSchema extends BaseSchema { /** * 指定为 Timeline 时间轴组件 */ type: 'timeline'; /** * 节点数据 */ items?: Array; /** 每项的公共样式类 */ itemClassName?: SchemaClassName; /** * API 或 数据映射 */ source?: SchemaApi | SchemaTokenizeableString; /** * 文字相对于时间轴展示方向 */ mode?: 'left' | 'right' | 'alternate'; /** * 展示方向 */ direction?: 'horizontal' | 'vertical'; /** * 节点倒序 */ reverse?: boolean; } export interface TimelineItemSchema extends Omit, WithRemoteItem { /** * 时间点 */ time: string; timeClassName?: SchemaClassName; /** * 时间节点标题 */ title?: SchemaCollection; titleClassName?: SchemaClassName; /** * 详细内容 */ detail?: string; detailClassName?: SchemaClassName; /** * detail折叠时文案 */ detailCollapsedText?: string; /** * detail展开时文案 */ detailExpandedText?: string; /** * 时间点圆圈颜色 */ color?: string | 'info' | 'success' | 'warning' | 'danger'; /** * 图标 */ icon?: SchemaCollection; iconClassName?: SchemaClassName; roundClassName?: SchemaClassName; lineClassName?: SchemaClassName; } export interface TimelineItemProps extends Omit { /** * 事件名称 */ title?: string | ReactNode; /** * 图标 */ icon?: string | ReactNode; }