import { BaseWidget } from './baseWidget'
import { VariableGroup } from './variables'

export type ReferenceLine = {
  // ID
  id: string
  // 垂直 水平
  type: 'horizontal' | 'vertical' | null
  // 位置
  value: number
  // x
  x: number
  // y
  y: number
}

export type Page = {
  // 页面ID
  id: string
  // 页面名称
  name: string
  // 类型
  type: 'page'
  // 隐藏
  hidden: boolean
  // 锁定
  locked: boolean
  // 当前部件
  part?: string
  // 当前部件状态
  state?: string
  // 参考线
  referenceLine: ReferenceLine[]
  // 属性
  props: Record<string, any>
  // 样式
  style: Record<string, any>[]
  // 事件
  events: {
    // 事件ID
    id: string
    // 事件名称
    name: string
    // 触发器
    trigger: string
    // 执行类型
    type: 'play_animation' | 'function'
    // 动画ID
    animation: string
    // 动画播放前函数ID
    animationPlayerBeforeEvent: string
    // 动画播放后函数ID
    animationPlayerAfterEvent: string
    // 函数ID
    function: string
  }[]
  // 页面变量
  variables: VariableGroup[]
  // 子组件
  children: BaseWidget[]
}
