import type { ExtractPropTypes } from 'vue'
import type { wizardProps, $constants } from '@/wizard/src'
import type { ISharedRenderlessFunctionParams, ISharedRenderlessParamUtils } from './shared.type'
export type IWizardProps = ExtractPropTypes<typeof wizardProps>
interface IWizardPropsDataNodeValues {
text: string
value: string
}
export interface IWizardPropsDataNode {
name: string
status: string
showNode?: boolean
content?: string
imgUrl?: string
users?: string
userName?: string
roleNumber?: string
date?: string
values?: IWizardPropsDataNodeValues[]
}
export interface IWizardState {
datas: IWizardProps['data']
submitShow: boolean
doing: string
ready: string
wait: string
iconYes: 'tiny-icon-yes' | 'tiny-icon-successful'
}
export type IWizardConstants = typeof $constants
export type IWizardRenderlessParams = ISharedRenderlessFunctionParams<IWizardConstants> & {
state: IWizardState
props: IWizardProps
api: IWizardApi
}
export interface IWizardValue {
text: string
value: number
}
export interface IWizardNodesItem {
date: string
nodeStatus: string
showNode: boolean
value: IWizardPropsDataNode[]
}
export interface IWizardApi {
state: IWizardState
nodeClick: (node: IWizardPropsDataNode, index: number, event: Event) => void
showNode: (node: IWizardPropsDataNode, index: number, event: Event) => void
nextStepHandle: () => void
lastStepHandle: () => void
submitHandle: () => void
btnSaveHandle: () => void
setTimelineflowNodeStatus: (nodes: IWizardNodesItem[]) => void
timelineflowData: () => void
}
export type IWizardRenderlessParamUtils = ISharedRenderlessParamUtils<IWizardConstants>