import type { DataItem } from "../../core/render/Component"; import { Flow, IFlowSettings, IFlowDataItem, IFlowPrivate, IFlowEvents } from "./Flow"; import { RibbonGenerator, RibbonSubgroup, Ribbon } from "d3-chord"; import { ListTemplate } from "../../core/util/List"; import { ChordNodes, IChordNodesDataItem } from "./ChordNodes"; import { ChordLink } from "./ChordLink"; import { Percent } from "../../core/util/Percent"; export interface IChordDataItem extends IFlowDataItem { /** * The link element. */ link: ChordLink; /** * Source node data item. */ source: DataItem; /** * Target node data item. */ target: DataItem; } export interface IChordSettings extends IFlowSettings { /** * Gap between adjacent nodes, in degrees. * * @default 1 */ padAngle?: number; /** * Outer radius of the node ring, in pixels or percent. A percent is of * half the smaller side of the series' area, so `100%` fills it. * * @default 90% */ radius?: number | Percent; /** * Thickness of the node ring, in pixels, measured inward from `radius`. * * @default 10 */ nodeWidth?: number; /** * Angle where the first node starts, in degrees: `0` is at the right, * `-90` at the top. Nodes follow clockwise. Dragging a node changes it. * * @default 0 */ startAngle?: number; /** * How to sort nodes by their value. `"none"` keeps the order of the data. * * @default "none" */ sort?: "ascending" | "descending" | "none"; } export interface IChordPrivate extends IFlowPrivate { } export interface IChordEvents extends IFlowEvents { } /** * Chord diagram: nodes as arcs around a circle, linked by ribbons. A node's * arc shows its outgoing total, and a ribbon is as wide at each end as the * flow out of that end, so a one-way link narrows to a point at its target. * For one-way flows, see [[ChordDirected]]. * * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more information * @important */ export declare class Chord extends Flow { static className: string; static classNames: Array; /** * List of link elements; configure them all through `links.template`. */ readonly links: ListTemplate; /** * The series that holds the chord's nodes. */ readonly nodes: ChordNodes; _settings: IChordSettings; _privateSettings: IChordPrivate; _dataItemSettings: IChordDataItem; _events: IChordEvents; _d3chord: import("d3-chord").ChordLayout; _chordLayout: { source: { index: number; startAngle: number; endAngle: number; value: number; }; target: { index: number; startAngle: number; endAngle: number; value: number; }; }[]; _ribbon: RibbonGenerator; protected _afterNew(): void; protected _fixRibbon(ribbon: RibbonGenerator): void; /** * @ignore */ makeLink(dataItem: DataItem): ChordLink; protected _makeMatrix(): number[][]; _prepareChildren(): void; protected _getLinkPoints(link: ChordLink, linkRadius: number, chordLayoutItem: any): void; protected _updateLink(ribbon: RibbonGenerator, link: ChordLink, linkRadius: number, chordLayoutItem: any): void; } //# sourceMappingURL=Chord.d.ts.map