@highcharts/dashboards
Version:
Highcharts Dashboards framework
131 lines (130 loc) • 3.43 kB
TypeScript
import type CSSJSONObject from '../CSSJSONObject';
import type Board from '../Board.js';
import Cell from './Cell.js';
import Row from './Row.js';
import GUIElement from './GUIElement.js';
import Globals from '../Globals.js';
/**
* @internal
**/
declare class Layout extends GUIElement {
/**
* Constructs an instance of the Layout class.
*
* @param {Dashboard} board
* Reference to the dashboard instance.
*
* @param {Layout.Options} options
* Options for the layout.
*/
constructor(board: Board, options: Layout.Options, parentCell?: Cell);
/**
* Reference to the dashboard instance.
*/
board: Board;
/**
* Array of the layout rows.
*/
rows: Array<Row>;
/**
* The type of GUI element.
*/
readonly type: GUIElement.GUIElementType;
/**
* The layout options.
*/
options: Layout.Options;
copyId?: string;
level: number;
parentCell?: Cell;
/**
* HTML container of a GUIElement.
*/
container: HTMLElement;
/**
* Set the layout rows using rows options or rowClassName.
*/
setRows(): void;
/**
* Add a new Row instance to the layout rows array.
*
* @param {Row.Options} options
* Options of a row.
*
* @param {HTMLElement} rowElement
* The container for a new row HTML element.
*
* @return {Row}
* Returns the Row object.
*/
addRow(options: Row.Options, rowElement?: HTMLElement, index?: number): Row;
/**
* Destroy the element, its container, event hooks
* and inner rows.
*/
destroy(): void;
getRowIndex(row: Row): number | undefined;
mountRow(row: Row, index: number): void;
unmountRow(row: Row): void;
getVisibleRows(): Array<Row>;
protected changeVisibility(setVisible?: boolean): void;
/**
* Get the layout's options.
* @returns
* Layout's options.
*
* @internal
*
*/
getOptions(): Globals.DeepPartial<Layout.Options>;
}
interface Layout {
options: Layout.Options;
}
declare namespace Layout {
/**
* Each layout's options.
**/
interface Options {
/**
* Unique id of the layout.
**/
id?: string;
/**
* Id of the parent container.
* @internal
**/
parentContainerId?: string;
/**
* @internal
**/
copyId?: string;
/**
* The class name of the layout container.
**/
layoutClassName?: string;
/**
* The class name applied to each row that is in that exact layout.
* Note that the layout container is also treated as a row thus this
* class is also being applied to the layout container.
**/
rowClassName?: string;
/**
* The class name applied to each cell that is in that exact layout.
*
* Try it:
*
* {@link https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/dashboards/gui/cell-class-name/ | Set cell class names}
**/
cellClassName?: string;
/**
* An array of rows. Each row can contain an array of cells.
**/
rows?: Array<Row.Options>;
/**
* CSS styles of the layout.
**/
style?: CSSJSONObject;
}
}
export default Layout;