@openshift-console/dynamic-plugin-sdk
Version:
Provides core APIs, types and utilities used by dynamic plugins at runtime.
61 lines (60 loc) • 3.41 kB
TypeScript
import * as React from 'react';
import { OverviewDetailItemProps } from '@openshift-console/plugin-shared/src';
import { CodeRef, Extension, ExtensionDeclaration } from '../types';
import { Humanize, TopConsumerPopoverProps, QueryWithDescription } from './console-types';
/** Adds a new inventory item into cluster overview page. */
export type ClusterOverviewInventoryItem = ExtensionDeclaration<'console.cluster-overview/inventory-item', {
/** The component to be rendered. */
component: CodeRef<React.ComponentType>;
}>;
export type GetQuery = (nodeType: string[]) => string;
export type GetMultilineQueries = (nodeType: string[]) => QueryWithDescription[];
/** Adds a new cluster overview utilization item. */
export type ClusterOverviewUtilizationItem = ExtensionDeclaration<'console.cluster-overview/utilization-item', {
/** The title of the utilization item. */
title: string;
/** Prometheus utilization query. */
getUtilizationQuery: CodeRef<GetQuery>;
/** Convert prometheus data to human readable form. */
humanize: CodeRef<Humanize>;
/** Prometheus total query. */
getTotalQuery?: CodeRef<GetQuery>;
/** Prometheus request query. */
getRequestQuery?: CodeRef<GetQuery>;
/** Prometheus limit query. */
getLimitQuery?: CodeRef<GetQuery>;
/** Shows Top consumer popover instead of plain value */
TopConsumerPopover?: CodeRef<React.ComponentType<TopConsumerPopoverProps>>;
}>;
/** Adds a new cluster overview multiline utilization item. */
export type ClusterOverviewMultilineUtilizationItem = ExtensionDeclaration<'console.cluster-overview/multiline-utilization-item', {
/** The title of the utilization item. */
title: string;
/** Prometheus utilization query. */
getUtilizationQueries: CodeRef<GetMultilineQueries>;
/** Convert prometheus data to human readable form. */
humanize: CodeRef<Humanize>;
/** Shows Top consumer popover instead of plain value */
TopConsumerPopovers?: CodeRef<React.ComponentType<TopConsumerPopoverProps>[]>;
}>;
/**
* @deprecated use CustomOverviewDetailItem type instead
*/
export type OverviewDetailItem = ExtensionDeclaration<'console.dashboards/overview/detail/item', {
/** The value, based on the DetailItem component */
component: CodeRef<React.ComponentType>;
}>;
/** Adds an item to the Details card of Overview Dashboard */
export type CustomOverviewDetailItem = ExtensionDeclaration<'console.dashboards/custom/overview/detail/item', Omit<OverviewDetailItemProps, 'children' | 'isLoading' | 'error'> & {
/** The value, rendered by the OverviewDetailItem component */
component: CodeRef<React.ComponentType>;
/** Function returning the loading state of the component */
isLoading?: CodeRef<() => boolean>;
/** Function returning errors to be displayed by the component */
error?: CodeRef<() => string>;
}>;
export declare const isClusterOverviewInventoryItem: (e: Extension) => e is ClusterOverviewInventoryItem;
export declare const isClusterOverviewUtilizationItem: (e: Extension) => e is ClusterOverviewUtilizationItem;
export declare const isClusterOverviewMultilineUtilizationItem: (e: Extension) => e is ClusterOverviewMultilineUtilizationItem;
export declare const isOverviewDetailItem: (e: Extension) => e is OverviewDetailItem;
export declare const isCustomOverviewDetailItem: (e: Extension) => e is CustomOverviewDetailItem;