mirror of
				https://github.com/home-assistant/frontend.git
				synced 2025-11-04 00:19:47 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			132 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import type { Connection } from "home-assistant-js-websocket";
 | 
						|
import type { HaFormSchema } from "../components/ha-form/types";
 | 
						|
import type { ConfigEntry } from "./config_entries";
 | 
						|
 | 
						|
export type FlowType =
 | 
						|
  | "config_flow"
 | 
						|
  | "config_subentries_flow"
 | 
						|
  | "options_flow"
 | 
						|
  | "repair_flow";
 | 
						|
 | 
						|
export interface DataEntryFlowProgressedEvent {
 | 
						|
  type: "data_entry_flow_progressed";
 | 
						|
  data: {
 | 
						|
    handler: string;
 | 
						|
    flow_id: string;
 | 
						|
    refresh: boolean;
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
export interface DataEntryFlowProgressEvent {
 | 
						|
  type: "data_entry_flow_progress_update";
 | 
						|
  data: {
 | 
						|
    handler: string;
 | 
						|
    flow_id: string;
 | 
						|
    progress: number;
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
export interface DataEntryFlowProgress {
 | 
						|
  flow_id: string;
 | 
						|
  handler: string;
 | 
						|
  step_id: string;
 | 
						|
  context: {
 | 
						|
    title_placeholders: Record<string, string>;
 | 
						|
    [key: string]: any;
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
export interface DataEntryFlowStepForm {
 | 
						|
  type: "form";
 | 
						|
  flow_id: string;
 | 
						|
  handler: string;
 | 
						|
  step_id: string;
 | 
						|
  data_schema: HaFormSchema[];
 | 
						|
  errors: Record<string, string>;
 | 
						|
  description_placeholders?: Record<string, string>;
 | 
						|
  last_step: boolean | null;
 | 
						|
  preview?: string;
 | 
						|
  translation_domain?: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface DataEntryFlowStepExternal {
 | 
						|
  type: "external";
 | 
						|
  flow_id: string;
 | 
						|
  handler: string;
 | 
						|
  step_id: string;
 | 
						|
  url: string;
 | 
						|
  description_placeholders: Record<string, string>;
 | 
						|
  translation_domain?: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface DataEntryFlowStepCreateEntry {
 | 
						|
  type: "create_entry";
 | 
						|
  version: number;
 | 
						|
  flow_id: string;
 | 
						|
  next_flow?: [FlowType, string]; // [flow_type, flow_id]
 | 
						|
  handler: string;
 | 
						|
  title: string;
 | 
						|
  result?: ConfigEntry;
 | 
						|
  description: string;
 | 
						|
  description_placeholders?: Record<string, string>;
 | 
						|
  translation_domain?: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface DataEntryFlowStepAbort {
 | 
						|
  type: "abort";
 | 
						|
  flow_id: string;
 | 
						|
  handler: string;
 | 
						|
  reason: string;
 | 
						|
  description_placeholders?: Record<string, string>;
 | 
						|
  translation_domain?: string;
 | 
						|
  next_flow?: [FlowType, string]; // [flow_type, flow_id]
 | 
						|
}
 | 
						|
 | 
						|
export interface DataEntryFlowStepProgress {
 | 
						|
  type: "progress";
 | 
						|
  flow_id: string;
 | 
						|
  handler: string;
 | 
						|
  step_id: string;
 | 
						|
  progress_action: string;
 | 
						|
  description_placeholders?: Record<string, string>;
 | 
						|
  translation_domain?: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface DataEntryFlowStepMenu {
 | 
						|
  type: "menu";
 | 
						|
  flow_id: string;
 | 
						|
  handler: string;
 | 
						|
  step_id: string;
 | 
						|
  /** If array, use value to lookup translations in strings.json */
 | 
						|
  menu_options: string[] | Record<string, string>;
 | 
						|
  sort?: boolean;
 | 
						|
  description_placeholders?: Record<string, string>;
 | 
						|
  translation_domain?: string;
 | 
						|
}
 | 
						|
 | 
						|
export type DataEntryFlowStep =
 | 
						|
  | DataEntryFlowStepForm
 | 
						|
  | DataEntryFlowStepExternal
 | 
						|
  | DataEntryFlowStepCreateEntry
 | 
						|
  | DataEntryFlowStepAbort
 | 
						|
  | DataEntryFlowStepProgress
 | 
						|
  | DataEntryFlowStepMenu;
 | 
						|
 | 
						|
export const subscribeDataEntryFlowProgressed = (
 | 
						|
  conn: Connection,
 | 
						|
  callback: (ev: DataEntryFlowProgressedEvent) => void
 | 
						|
) =>
 | 
						|
  conn.subscribeEvents<DataEntryFlowProgressedEvent>(
 | 
						|
    callback,
 | 
						|
    "data_entry_flow_progressed"
 | 
						|
  );
 | 
						|
 | 
						|
export const subscribeDataEntryFlowProgress = (
 | 
						|
  conn: Connection,
 | 
						|
  callback: (ev: DataEntryFlowProgressEvent) => void
 | 
						|
) =>
 | 
						|
  conn.subscribeEvents<DataEntryFlowProgressEvent>(
 | 
						|
    callback,
 | 
						|
    "data_entry_flow_progress_update"
 | 
						|
  );
 |