UNPKG

@eccenca/gui-elements

Version:

GUI elements based on other libraries, usable in React application, written in Typescript.

88 lines (87 loc) 2.87 kB
import React from "react"; import { ValidIconName } from "../../components/Icon/canonicalIconNames"; import { IconProps } from "../../components/Icon/Icon"; import { TestIconProps } from "../../components/Icon/TestIcon"; import { TestableComponent } from "../../components/interfaces"; import { ProgressBarProps } from "../../components/ProgressBar/ProgressBar"; import { SpinnerProps } from "../../components/Spinner/Spinner"; export interface ActivityControlWidgetProps extends TestableComponent { /** * The label to be shown */ label?: string | JSX.Element; /** * Element that wraps around the label. * Default: `<OverflowText inline={true} />` */ labelWrapper?: JSX.Element; /** * To add tags in addition to the widget status description */ tags?: JSX.Element; /** * The progress bar parameters if it should be show by a progres bar */ progressBar?: ProgressBarProps; /** * The spinner parameters if it should be show by a spinner */ progressSpinner?: SpinnerProps; /** * Status message */ statusMessage?: string; /** * The action buttons */ activityActions?: ActivityControlWidgetAction[]; /** * Context menu items */ activityContextMenu?: IActivityContextMenu; /** * show small version of the widget */ small?: boolean; /** * display widget inside rectangle */ border?: boolean; /** * display a bit whitespace around widget, even without border */ hasSpacing?: boolean; /** * only use necessary width, not always the available 100% of parent element */ canShrink?: boolean; /** * if this is set the spinner is replaced when the progress has finished from 0 - 1 */ progressSpinnerFinishedIcon?: React.ReactElement<IconProps> | React.ReactElement<TestIconProps>; /** * execution timer messages for waiting and running times. */ timerExecutionMsg?: JSX.Element | null; /** * additional actions that can serve as a complex component, positioned between the default actions and the context menu */ additionalActions?: React.ReactElement<unknown>[]; } interface IActivityContextMenu extends TestableComponent { tooltip?: string; menuItems: IActivityMenuAction[]; } export interface ActivityControlWidgetAction extends TestableComponent { action: () => void; tooltip?: string; icon: ValidIconName | React.ReactElement<TestIconProps>; disabled?: boolean; hasStateWarning?: boolean; } interface IActivityMenuAction extends ActivityControlWidgetAction { href?: string; } /** Shows the status of activities and supports actions on these activities. */ export declare function ActivityControlWidget(props: ActivityControlWidgetProps): React.JSX.Element; export {};