UNPKG

@amcharts/amcharts5

Version:
344 lines 11.9 kB
import type { Color } from "../../core/util/Color"; import type { ColorSet } from "../../core/util/ColorSet"; import type { Bullet } from "../../core/render/Bullet"; import type { Root } from "../../core/Root"; import type { Easing } from "../../core/util/Ease"; import type { PatternSet } from "../../core/util/PatternSet"; import type { Pattern } from "../../core/render/patterns/Pattern"; import { Series, ISeriesSettings, ISeriesDataItem, ISeriesPrivate, ISeriesEvents } from "../../core/render/Series"; import { DataItem } from "../../core/render/Component"; import { HierarchyNode } from "./HierarchyNode"; import { Container } from "../../core/render/Container"; import { Label } from "../../core/render/Label"; import { ListTemplate } from "../../core/util/List"; import * as d3hierarchy from "d3-hierarchy"; /** * @ignore */ export interface IHierarchyDataObject { name?: string; value?: number; children?: IHierarchyDataObject[]; dataItem?: DataItem<IHierarchyDataItem>; customValue?: boolean; } export interface IHierarchyDataItem extends ISeriesDataItem { /** * Value of the node as set in data. */ value: number; /** * @ignore */ valueWorking: number; /** * Percent value of the node, based on total sum of all nodes in upper level. */ valuePercentTotal: number; /** * Percent value of the node, based on the value of its direct parent. * * @since 5.2.21 */ valuePercent: number; /** * Sum of child values. */ sum: number; /** * Category. */ category: string; /** * List of child node data items. */ children: Array<DataItem<IHierarchyDataItem>>; /** * Raw data of the node's children. */ childData: Array<any>; /** * Data item of parent node. */ parent: DataItem<IHierarchyDataItem>; /** * Node's depth within the hierarchy. */ depth: number; /** * A reference to the related [[HierarchyNode]]. */ node: HierarchyNode; /** * A reference to node's [[Label]]. */ label: Label; /** * Node's auto-assigned color. */ fill: Color; /** * Node's auto-assigned pattern. * * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/patterns/} for more info * @since 5.10.0 */ fillPattern: Pattern; /** * Indicates if node is currently disabled. */ disabled: boolean; /** * @ignore */ d3HierarchyNode: d3hierarchy.HierarchyNode<IHierarchyDataObject>; } export interface IHierarchySettings extends ISeriesSettings { /** * How to sort nodes by their value. * * @default "none" */ sort?: "ascending" | "descending" | "none"; /** * A field in data that holds numeric value for the node. */ valueField?: string; /** * A field in data that holds string-based identificator for node. */ categoryField?: string; /** * A field in data that holds an array of child node data. */ childDataField?: string; /** * A field in data that holds the parent node's ID, used with flat * (tabular) data via [[setFlatData]]. * * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/#Flat_data} for more info * @since 5.16.2 */ parentIdField?: string; /** * A field in data that holds boolean value indicating if node is * disabled (collapsed). */ disabledField?: string; /** * A field in data that holds color used for fills for various elements, such * as nodes. */ fillField?: string; /** * A [[ColorSet]] to use when asigning colors for nodes. * * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/#Node_colors} for more info */ colors?: ColorSet; /** * A [[PatternSet]] to use when asigning patterns for nodes. * * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/patterns/#Pattern_sets} for more info * @since 5.10.0 */ patterns?: PatternSet; /** * Number of child levels to open when clicking on a node. * * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/#Drill_down} for more info */ downDepth?: number; /** * Number of parent levels to show from currently selected node. * * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/#Drill_down} for more info */ upDepth?: number; /** * Number of levels to show on chart's first load. * * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/#Tree_depth} for more info */ initialDepth?: number; /** * If set, will show nodes starting from set level. * * It could be used to eliminate top level branches, that do not need to be * shown. * * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/#Tree_depth} for more info */ topDepth?: number; /** * If set to `true` will make all other branches collapse when some branch is * expanded. */ singleBranchOnly?: boolean; /** * A data item for currently selected node. * * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/#Pre_selected_branch} for more info */ selectedDataItem?: DataItem<IHierarchyDataItem>; /** * Duration for all drill animations in milliseconds. */ animationDuration?: number; /** * An easing function to use for drill animations. */ animationEasing?: Easing; } export interface IHierarchyPrivate extends ISeriesPrivate { /** * Level count in series. */ maxDepth: number; } export interface IHierarchyEvents extends ISeriesEvents { dataitemselected: { dataItem?: DataItem<IHierarchyDataItem>; }; } /** * A base class for all hierarchy charts. * * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/} for more info */ export declare abstract class Hierarchy extends Series { static className: string; static classNames: Array<string>; _settings: IHierarchySettings; _privateSettings: IHierarchyPrivate; _dataItemSettings: IHierarchyDataItem; _events: IHierarchyEvents; /** * A [[Container]] that nodes are placed in. * * @default Container.new() */ readonly nodesContainer: Container; _rootNode: d3hierarchy.HierarchyNode<IHierarchyDataObject> | undefined; _treeData: IHierarchyDataObject | undefined; protected _index: number; protected _tag: string; _applyThemes(force?: boolean): boolean; /** * A list of nodes in a [[Hierarchy]] chart. * * @default new ListTemplate<HierarchyNode> */ readonly nodes: ListTemplate<HierarchyNode>; /** * @ignore */ makeNode(dataItem: DataItem<this["_dataItemSettings"]>): HierarchyNode; /** * A list of label elements in a [[Hierarchy]] chart. * * @default new ListTemplate<Label> */ readonly labels: ListTemplate<Label>; _currentDownDepth: number | undefined; protected _afterNew(): void; _prepareChildren(): void; _changed(): void; protected _updateVisuals(): void; protected _updateNodes(hierarchyNode: d3hierarchy.HierarchyNode<IHierarchyDataObject>): void; protected _updateNode(_dataItem: DataItem<this["_dataItemSettings"]>): void; /** * Looks up and returns a data item by its ID. * * @param id ID * @return Data item */ getDataItemById(id: string): DataItem<this["_dataItemSettings"]> | undefined; _getDataItemById(dataItems: Array<DataItem<this["_dataItemSettings"]>>, id: string): DataItem<this["_dataItemSettings"]> | undefined; protected _handleBullets(dataItems: Array<DataItem<this["_dataItemSettings"]>>): void; protected _onDataClear(): void; protected processDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void; /** * Sets flat (tabular) data for the hierarchy chart. * * Converts flat data with parent references into nested hierarchical * data. Requires [[idField]] and [[parentIdField]] to be set. * * The root node should have a `null`/`undefined` parent ID. * * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/#Flat_data} for more info * @since 5.16.2 * @param flatData Array of flat data objects */ setFlatData(flatData: Array<any>): void; /** * Adds children data to the target data item. * * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/hierarchy-api/#Dynamically_adding_child_nodes} for more info * @since 5.4.5 */ addChildData(dataItem: DataItem<this["_dataItemSettings"]>, data: Array<any>): void; protected _processDataItem(_dataItem: DataItem<this["_dataItemSettings"]>): void; protected _updateValues(d3HierarchyNode: d3hierarchy.HierarchyNode<IHierarchyDataObject>): void; protected _makeHierarchyData(data: IHierarchyDataObject, dataItem: DataItem<IHierarchyDataItem>): void; /** * @ignore */ disposeDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void; /** * Hides hierarchy's data item. * * @param dataItem Data item * @param duration Animation duration in milliseconds * @return Promise */ hideDataItem(dataItem: DataItem<this["_dataItemSettings"]>, duration?: number): Promise<void>; /** * Shows hierarchy's data item. * * @param dataItem Data item * @param duration Animation duration in milliseconds * @return Promise */ showDataItem(dataItem: DataItem<this["_dataItemSettings"]>, duration?: number): Promise<void>; /** * Enables a disabled data item. * * @param dataItem Target data item * @param duration Animation duration in milliseconds */ enableDataItem(dataItem: DataItem<this["_dataItemSettings"]>, maxDepth?: number, depth?: number, duration?: number): void; /** * Disables a data item. * * @param dataItem Target data item * @param duration Animation duration in milliseconds */ disableDataItem(dataItem: DataItem<this["_dataItemSettings"]>, duration?: number): void; protected _selectDataItem(dataItem?: DataItem<this["_dataItemSettings"]>, downDepth?: number, skipDisptach?: boolean): void; protected _zoom(_dataItem: DataItem<this["_dataItemSettings"]>): void; protected _handleSingle(dataItem: DataItem<this["_dataItemSettings"]>): void; /** * Selects specific data item. * * @param dataItem Target data item */ selectDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void; protected _makeBullet(dataItem: DataItem<this["_dataItemSettings"]>, bulletFunction: (root: Root, series: Series, dataItem: DataItem<this["_dataItemSettings"]>) => Bullet | undefined, index?: number): Bullet | undefined; _positionBullet(bullet: Bullet): void; /** * Triggers hover on a series data item. * * @since 5.0.7 * @param dataItem Target data item */ hoverDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void; /** * Triggers un-hover on a series data item. * * @since 5.0.7 * @param dataItem Target data item */ unhoverDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void; } //# sourceMappingURL=Hierarchy.d.ts.map