@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
71 lines (70 loc) • 3.36 kB
TypeScript
import * as React from 'react';
import { CSSProperties } from 'react';
import { AdaptableApi } from '../../types';
import { ModuleInfo } from '../../Strategy/Interface/IModule';
import { ExpressionEditorNamedQuery } from '../../components/ExpressionEditor/NamedQueryContext';
import { BoxProps } from '../../components/Flex';
export type OnePageAdaptableWizardContextType<T> = {
data: T;
sections: (OnePageAdaptableWizardSection<T> | '-')[];
moduleInfo: ModuleInfo;
api: AdaptableApi;
namedQuery: ExpressionEditorNamedQuery;
};
type CmpProps = BoxProps & {
className?: string;
style?: React.CSSProperties;
};
export declare const SummaryTag: React.FunctionComponent<React.PropsWithChildren<CmpProps>>;
export declare const SummaryText: React.FunctionComponent<React.PropsWithChildren<CmpProps>>;
export declare const FormDescriptionText: React.FunctionComponent<React.PropsWithChildren<CmpProps>>;
export declare const OnePageAdaptableWizardContext: React.Context<OnePageAdaptableWizardContextType<any>>;
export declare function useOnePageAdaptableWizardContext<ENTITY>(): OnePageAdaptableWizardContextType<ENTITY>;
export interface OnePageAdaptableWizardSection<ENTITY> {
title: string;
details?: React.ReactNode;
isValid?: (data: ENTITY, api: AdaptableApi, context: OnePageAdaptableWizardContextType<ENTITY>) => true | string;
isVisible?: (data: ENTITY, api: AdaptableApi, context: OnePageAdaptableWizardContextType<ENTITY>) => boolean;
render: (data: ENTITY, index: number) => React.ReactNode;
renderSummary?: (data: ENTITY, api: AdaptableApi) => React.ReactNode;
}
export interface OnePageAdaptableWizardProps<ENTITY> {
moduleInfo: ModuleInfo;
modal?: boolean;
data: ENTITY;
sections: (OnePageAdaptableWizardSection<ENTITY> | '-')[];
currentIndex?: number;
defaultCurrentIndex?: number;
defaultCurrentSectionName?: string;
onSectionChange?: (index: number) => void;
onHide?: VoidFunction;
onFinish?: (data: ENTITY) => any;
children?: React.ReactNode;
style?: CSSProperties;
closeText?: React.ReactNode;
closeTooltip?: string;
finishText?: React.ReactNode;
/**
* Optional override for the title rendered in the wizard header. When
* absent we fall back to `moduleInfo.FriendlyName` (the standard
* "Format Column" / "Styled Column" / etc. behaviour). Use this when
* the wizard title should reflect the *current data* — e.g. the
* Styled Column wizard wants to switch from "Styled Column" to
* "Gradient" / "Percent Bar" once a type has been picked.
*
* Only the displayed header is affected; the kebab-case `data-name`,
* `moduleInfo` context value and validators keep using the canonical
* `FriendlyName`.
*/
moduleName?: string;
/**
* Persistent preview rendered as a full-width band beneath the wizard
* header — visible on every step. Used by wizards (e.g. Styled Column)
* that want users to see a live preview of the object they're building
* as they progress.
*/
headerPreview?: React.ReactNode;
}
export declare const OnePageAdaptableWizard: <ENTITY extends unknown>(props: OnePageAdaptableWizardProps<ENTITY>) => React.JSX.Element;
export declare const OnePageWizardSummary: <ENTITY extends unknown>() => React.JSX.Element;
export {};