UNPKG

@amcharts/amcharts5

Version:
164 lines 6.04 kB
import type { DataItem } from "../../core/render/Component"; import type { Bullet } from "../../core/render/Bullet"; import type { Root } from "../../core/Root"; import type { IPoint } from "../../core/util/IPoint"; import type * as d3hierarchy from "d3-hierarchy"; import { Hierarchy, IHierarchySettings, IHierarchyDataItem, IHierarchyPrivate, IHierarchyEvents } from "./Hierarchy"; import { Container } from "../../core/render/Container"; import { LinkedHierarchyNode } from "./LinkedHierarchyNode"; import { HierarchyLink } from "./HierarchyLink"; import { Circle } from "../../core/render/Circle"; import { ListTemplate } from "../../core/util/List"; import { List } from "../../core/util/List"; /** * @ignore */ export interface ILinkedHierarchyDataObject { name?: string; value?: number; children?: ILinkedHierarchyDataObject[]; dataItem?: DataItem<ILinkedHierarchyDataItem>; } export interface ILinkedHierarchyDataItem extends IHierarchyDataItem { /** * An array of child data items. */ children: Array<DataItem<ILinkedHierarchyDataItem>>; /** * A data item of a parent node. */ parent: DataItem<ILinkedHierarchyDataItem>; /** * A related node. */ node: LinkedHierarchyNode; /** * [[Circle]] element of the related node. */ circle: Circle; /** * [[Circle]] element of the related node, representing outer circle. */ outerCircle: Circle; /** * A [[HierarchyLink]] leading to parent node. */ parentLink: HierarchyLink; /** * An [[HierarchyLink]] leading to parent node. */ links: Array<HierarchyLink>; /** * An array of [[HierarchyLink]] objects leading to child nodes. */ childLinks: Array<HierarchyLink>; /** * An array of IDs of directly linked nodes. */ linkWith: Array<string>; /** * @ignore */ d3HierarchyNode: d3hierarchy.HierarchyPointNode<ILinkedHierarchyDataObject>; } export interface ILinkedHierarchySettings extends IHierarchySettings { /** * A field in data which holds IDs of nodes to link with. */ linkWithField?: string; } export interface ILinkedHierarchyPrivate extends IHierarchyPrivate { } export interface ILinkedHierarchyEvents extends IHierarchyEvents { } /** * A base class for linked hierarchy series. */ export declare abstract class LinkedHierarchy extends Hierarchy { static className: string; static classNames: Array<string>; _settings: ILinkedHierarchySettings; _privateSettings: ILinkedHierarchyPrivate; _dataItemSettings: ILinkedHierarchyDataItem; _events: ILinkedHierarchyEvents; linkBullets: List<(<D extends DataItem<IHierarchyDataItem>>(root: Root, source: D, target: D) => Bullet | undefined)>; protected _afterNew(): void; /** * A list of nodes in a [[LinkedHierarchy]] chart. * * @default new ListTemplate<LinkedHierarchyNode> */ readonly nodes: ListTemplate<LinkedHierarchyNode>; /** * A list of node circle elements in a [[LinkedHierarchy]] chart. * * @default new ListTemplate<Circle> */ readonly circles: ListTemplate<Circle>; /** * A list of node outer circle elements in a [[LinkedHierarchy]] chart. * * @default new ListTemplate<Circle> */ readonly outerCircles: ListTemplate<Circle>; /** * A list of link elements in a [[LinkedHierarchy]] chart. * * @default new ListTemplate<HierarchyLink> */ readonly links: ListTemplate<HierarchyLink>; /** * A [[Container]] that link elements are placed in. * * @default Container.new() */ readonly linksContainer: Container; /** * @ignore */ makeNode(dataItem: DataItem<this["_dataItemSettings"]>): LinkedHierarchyNode; _handleRadiusChange(): void; protected processDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void; addChildData(dataItem: DataItem<this["_dataItemSettings"]>, data: Array<any>): void; protected _processDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void; /** * @ignore */ updateLinkWith(dataItems: Array<DataItem<this["_dataItemSettings"]>>): void; protected _getPoint(hierarchyNode: this["_dataItemSettings"]["d3HierarchyNode"]): IPoint; protected _animatePositions(dataItem: DataItem<this["_dataItemSettings"]>): void; protected _updateNode(dataItem: DataItem<this["_dataItemSettings"]>): void; /** * Link two data items with a link element. * * @param source Source node data item * @param target Target node data item * @param strength Link strength * @return Link element */ linkDataItems(source: DataItem<this["_dataItemSettings"]>, target: DataItem<this["_dataItemSettings"]>, strength?: number): HierarchyLink; /** * Unlink two linked data items. * * @param source Source node data item * @param target Target node data item */ unlinkDataItems(source: DataItem<this["_dataItemSettings"]>, target: DataItem<this["_dataItemSettings"]>): void; protected _handleUnlink(): void; protected _disposeLink(link: HierarchyLink): void; /** * Returns `true` if two nodes are linked with each other. */ areLinked(source: DataItem<this["_dataItemSettings"]>, target: DataItem<this["_dataItemSettings"]>): boolean; protected _processLink(_link: HierarchyLink, _source: DataItem<this["_dataItemSettings"]>, _target: DataItem<this["_dataItemSettings"]>): void; /** * @ignore */ disposeDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void; /** * Select a data item. * @param dataItem Data item */ selectDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void; } //# sourceMappingURL=LinkedHierarchy.d.ts.map