mirror of
https://github.com/home-assistant/frontend.git
synced 2025-10-30 14:09:58 +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"
|
|
);
|