import { TemplateRef } from '@angular/core'; import { Observable } from 'rxjs'; export type GuidePositionType = 'left' | 'right' | 'top' | 'bottom' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom'; export interface IUserGuideExtraConfig { panelBackground?: string; nextButtonType?: string; infoColor?: string; operationColor?: string; dotColor?: string; } export interface IStepElement { element?: string; title?: string; content?: string | TemplateRef; position?: GuidePositionType; type?: 'normal' | 'interactable' | 'tip'; eventType?: 'clickable' | 'inputable' | 'exit'; highlightOffset?: Array; inputData?: string; waitingTime?: number; beforeChange?: Function; showPrevButton?: boolean; } export interface IStep { title: string; desc?: string; defaultStart?: boolean; showDots?: boolean; maxContentWidth?: number; isCover?: boolean; extraConfig?: IUserGuideExtraConfig; onExit?: Function; detail: Array; } export interface IStepElementDetail { element?: object; title: string; content?: string | TemplateRef; position?: GuidePositionType; top: number; left: number; width: number; height: number; type: 'normal' | 'interactable' | 'tip'; eventType?: 'clickable' | 'inputable' | 'exit'; inputData?: string; waitingTime?: number; beforeChange?: Function | Promise | Observable; }