import "./ReportLauncher.css"; import { type FieldMetadata } from "@olenbetong/appframe-core"; import type { FilterEditorSize, GetFieldOptions } from "../filter/types.js"; export type ReportLauncherTab = "parameters" | "filter"; export type ReportLauncherProps = { /** The report to run, e.g. `arpt_Personnel_Persons`. */ reportId: string; /** * `"dialog"` wraps the launcher in a modal, `"inline"` renders it in place. * @default "dialog" */ variant?: "dialog" | "inline"; /** Whether the dialog is open. Ignored when `variant` is `"inline"`. */ open?: boolean; /** Called when the launcher is dismissed. */ onClose?: () => void; /** * Overrides the filter the report was designed with, as a criteria string. * An empty string starts the launcher with no filter at all. */ initialFilter?: string | null; /** * The fields the filter can be built from. Loaded from the report's view * when not supplied. */ fields?: FieldMetadata[]; /** * The tab shown first. * @default "parameters" */ defaultTab?: ReportLauncherTab; getFieldOptions?: GetFieldOptions; className?: string; "data-size"?: FilterEditorSize; }; /** * The web port of the Windows report launcher: the saved filters and criteria * editor of the filter builder, the report's parameters, the report options, * and the save/preview/print actions. * * Everything the launcher needs comes from the report itself, so a caller only * has to name it. A report that does not resolve is one the current user has no * access to — `sviw_WinClient_MyReports` is permission-resolved. * * @example * ```jsx * setOpen(false)} * /> * ``` */ export declare function ReportLauncher({ reportId, variant, open, onClose, initialFilter: initialFilterOverride, fields: fieldsOverride, defaultTab, getFieldOptions, className, "data-size": size, }: ReportLauncherProps): import("react").JSX.Element;