lumen-react-javascript
Version:
Lumen React bridge
48 lines (47 loc) • 2.03 kB
TypeScript
import * as React from 'react';
import { AbstractComponent } from "./abstract-component";
export declare enum LabelType {
SIMPLE = 0,
SMALL = 1,
MEDIUM = 2,
LARGE = 3,
SEMIFULL = 4,
FULL = 5
}
export interface LabelProps extends React.HTMLProps<HTMLSpanElement> {
labelType?: LabelType;
thumbnailOnly?: boolean;
avatarProps?: React.HTMLProps<HTMLSpanElement>;
descriptionProps?: React.HTMLProps<HTMLSpanElement>;
renderThumbnail?: boolean;
}
export default abstract class AbstractLabel<T extends LabelProps, U> extends AbstractComponent<T, any> {
static defaultProps: {
labelType: LabelType;
thumbnailOnly: boolean;
renderThumbnail: boolean;
};
static sizeKeyMap: {
[]: string;
[]: string;
[]: string;
[]: string;
[]: string;
};
protected abstract getName(): string;
protected abstract hasThumbnail(): boolean;
protected abstract getThumbnail(): string;
protected abstract getGlyph(): string;
protected abstract getSub(): string | JSX.Element;
protected abstract getContent(): string | JSX.Element;
protected abstract renderMissingThumbnal(): string | JSX.Element;
protected getCleanedProps(): Partial<T>;
private renderThumbnail;
protected renderSimpleLabel(elementProps: any, avatarProps: any, descriptionProps: any): JSX.Element;
protected renderSmallLabel(elementProps: any, avatarProps: any, descriptionProps: any): JSX.Element;
protected renderMediumLabel(elementProps: any, avatarProps: any, descriptionProps: any): JSX.Element;
protected renderLargeLabel(elementProps: any, avatarProps: any, descriptionProps: any): JSX.Element;
protected renderSemiFullLabel(elementProps: any, avatarProps: any, descriptionProps: any): JSX.Element;
protected renderFullLabel(elementProps: any, avatarProps: any, descriptionProps: any): JSX.Element;
render(): JSX.Element;
}