@amcharts/amcharts5
Version:
amCharts 5
128 lines • 4.75 kB
TypeScript
import { Theme } from "../core/Theme";
import type { Root } from "../core/Root";
import { MultiDisposer } from "../core/util/Disposer";
import type { Template } from "../core/util/Template";
/**
* An interface describing resonsive rule.
*
* @see {@link https://www.amcharts.com/docs/v5/concepts/responsive/} for more info
* @important
*/
export interface IResponsiveRule {
/**
* A class name of the elements to apply rule to.
*/
name?: string;
/**
* A class group of the elements to apply rule to.
*/
tags?: string | string[];
/**
* Settings to apply when activating the responsive rule.
*/
settings?: any;
/**
* A callback function which should check and return `true` if rule is
* applicable for current situation.
*/
relevant: (width: number, height: number) => boolean;
/**
* A custom callback function which is called when applying the rule.
*/
applying?: () => void;
/**
* A custom callback function which is called when removing the rule.
*/
removing?: () => void;
/**
* Indicates if rule is currently applied.
* @readonly
*/
applied?: boolean;
/**
* Reference to [[Template]] object associated with the rule.
* @readonly
*/
template?: Template<any>;
/**
* @ignore
*/
_dp?: MultiDisposer;
}
/**
* A configurable theme that dynamically adapts chart settings for best fit
* in available space.
*
* @see {@link https://www.amcharts.com/docs/v5/concepts/responsive/} for more info
*/
export declare class ResponsiveTheme extends Theme {
static XXS: number;
static XS: number;
static S: number;
static M: number;
static L: number;
static XL: number;
static XXL: number;
static widthXXS(width: number, _height: number): boolean;
static widthXS(width: number, _height: number): boolean;
static widthS(width: number, _height: number): boolean;
static widthM(width: number, _height: number): boolean;
static widthL(width: number, _height: number): boolean;
static widthXL(width: number, _height: number): boolean;
static widthXXL(width: number, _height: number): boolean;
static heightXXS(_width: number, height: number): boolean;
static heightXS(_width: number, height: number): boolean;
static heightS(_width: number, height: number): boolean;
static heightM(_width: number, height: number): boolean;
static heightL(_width: number, height: number): boolean;
static heightXL(_width: number, height: number): boolean;
static heightXXL(_width: number, height: number): boolean;
static isXXS(width: number, height: number): boolean;
static isXS(width: number, height: number): boolean;
static isS(width: number, height: number): boolean;
static isM(width: number, height: number): boolean;
static isL(width: number, height: number): boolean;
static isXL(width: number, height: number): boolean;
static isXXL(width: number, height: number): boolean;
static maybeXXS(width: number, height: number): boolean;
static maybeXS(width: number, height: number): boolean;
static maybeS(width: number, height: number): boolean;
static maybeM(width: number, height: number): boolean;
static maybeL(width: number, height: number): boolean;
static maybeXL(width: number, height: number): boolean;
static maybeXXL(width: number, height: number): boolean;
private _dp?;
constructor(root: Root, isReal: boolean);
/**
* Currently added rules.
*/
responsiveRules: IResponsiveRule[];
/**
* Instantiates the theme without adding default respomsive rules.
*/
static newEmpty<T extends typeof ResponsiveTheme>(this: T, root: Root): InstanceType<T>;
/**
* Adds a responsive rule as well as retuns it.
*
* @see {@link https://www.amcharts.com/docs/v5/concepts/responsive/} for more info
* @param rule Responsive rule
* @return Responsive rule
*/
addRule(rule: IResponsiveRule): IResponsiveRule;
/**
* Removes the responsive rule.
*
* @param rule Responsive rule
*/
removeRule(rule: IResponsiveRule): void;
dispose(): void;
protected _isUsed(): boolean;
protected _maybeApplyRules(): void;
protected _maybeApplyRule(rule: IResponsiveRule): void;
protected _maybeUnapplyRule(rule: IResponsiveRule): void;
/**
* Adds default rules for various chart types and most standard scenarios.
*/
protected setupDefaultRules(): void;
}
//# sourceMappingURL=ResponsiveTheme.d.ts.map