@amcharts/amcharts5 5.3.17 → 5.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.internal/charts/flow/ArcDiagram.d.ts +86 -0
- package/.internal/charts/flow/ArcDiagram.d.ts.map +1 -0
- package/.internal/charts/flow/ArcDiagram.js +161 -0
- package/.internal/charts/flow/ArcDiagram.js.map +1 -0
- package/.internal/charts/flow/ArcDiagramLink.d.ts +40 -0
- package/.internal/charts/flow/ArcDiagramLink.d.ts.map +1 -0
- package/.internal/charts/flow/ArcDiagramLink.js +130 -0
- package/.internal/charts/flow/ArcDiagramLink.js.map +1 -0
- package/.internal/charts/flow/ArcDiagramNodes.d.ts +60 -0
- package/.internal/charts/flow/ArcDiagramNodes.d.ts.map +1 -0
- package/.internal/charts/flow/ArcDiagramNodes.js +96 -0
- package/.internal/charts/flow/ArcDiagramNodes.js.map +1 -0
- package/.internal/charts/flow/Chord.d.ts +0 -9
- package/.internal/charts/flow/Chord.d.ts.map +1 -1
- package/.internal/charts/flow/Chord.js +0 -10
- package/.internal/charts/flow/Chord.js.map +1 -1
- package/.internal/charts/flow/ChordNodes.d.ts +9 -0
- package/.internal/charts/flow/ChordNodes.d.ts.map +1 -1
- package/.internal/charts/flow/ChordNodes.js +23 -2
- package/.internal/charts/flow/ChordNodes.js.map +1 -1
- package/.internal/charts/flow/Flow.d.ts +27 -1
- package/.internal/charts/flow/Flow.d.ts.map +1 -1
- package/.internal/charts/flow/Flow.js +7 -1
- package/.internal/charts/flow/Flow.js.map +1 -1
- package/.internal/charts/flow/FlowDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/flow/FlowDefaultTheme.js +74 -3
- package/.internal/charts/flow/FlowDefaultTheme.js.map +1 -1
- package/.internal/charts/flow/FlowNodes.d.ts +16 -0
- package/.internal/charts/flow/FlowNodes.d.ts.map +1 -1
- package/.internal/charts/flow/FlowNodes.js +93 -1
- package/.internal/charts/flow/FlowNodes.js.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js +45 -0
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -1
- package/.internal/charts/hierarchy/Partition.d.ts +1 -1
- package/.internal/charts/hierarchy/Partition.js +1 -1
- package/.internal/charts/hierarchy/Partition.js.map +1 -1
- package/.internal/charts/hierarchy/VoronoiTreemap.d.ts +117 -0
- package/.internal/charts/hierarchy/VoronoiTreemap.d.ts.map +1 -0
- package/.internal/charts/hierarchy/VoronoiTreemap.js +176 -0
- package/.internal/charts/hierarchy/VoronoiTreemap.js.map +1 -0
- package/.internal/charts/map/MapSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapSeries.js +1 -0
- package/.internal/charts/map/MapSeries.js.map +1 -1
- package/.internal/charts/stock/indicators/BollingerBands.d.ts +1 -0
- package/.internal/charts/stock/indicators/BollingerBands.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/BollingerBands.js +10 -0
- package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
- package/.internal/charts/xy/XYChart.d.ts +1 -1
- package/.internal/charts/xy/XYChart.d.ts.map +1 -1
- package/.internal/charts/xy/XYChart.js +12 -3
- package/.internal/charts/xy/XYChart.js.map +1 -1
- package/.internal/charts/xy/XYCursor.d.ts +1 -0
- package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
- package/.internal/charts/xy/XYCursor.js +7 -4
- package/.internal/charts/xy/XYCursor.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +1 -1
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/LineSeries.js.map +1 -1
- package/.internal/core/Classes.d.ts +10 -0
- package/.internal/core/Classes.d.ts.map +1 -1
- package/.internal/core/Classes.js.map +1 -1
- package/.internal/core/Registry.d.ts.map +1 -1
- package/.internal/core/Registry.js +1 -1
- package/.internal/core/Registry.js.map +1 -1
- package/.internal/core/render/Polygon.d.ts +52 -0
- package/.internal/core/render/Polygon.d.ts.map +1 -0
- package/.internal/core/render/Polygon.js +133 -0
- package/.internal/core/render/Polygon.js.map +1 -0
- package/.internal/core/render/Sprite.js +1 -1
- package/.internal/core/render/Sprite.js.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.js +2 -2
- package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
- package/.internal/themes/AnimatedTheme.d.ts.map +1 -1
- package/.internal/themes/AnimatedTheme.js +2 -0
- package/.internal/themes/AnimatedTheme.js.map +1 -1
- package/.internal/themes/DefaultTheme.d.ts.map +1 -1
- package/.internal/themes/DefaultTheme.js +3 -0
- package/.internal/themes/DefaultTheme.js.map +1 -1
- package/CHANGELOG.md +26 -0
- package/examples/javascript/flow-arc-horizontal/README.md +6 -0
- package/examples/javascript/flow-arc-horizontal/index.css +11 -0
- package/examples/javascript/flow-arc-horizontal/index.html +12 -0
- package/examples/javascript/flow-arc-horizontal/index.js +116 -0
- package/examples/javascript/flow-arc-horizontal/package.json +16 -0
- package/examples/javascript/flow-arc-horizontal/webpack.config.js +38 -0
- package/examples/javascript/flow-arc-vertical/README.md +6 -0
- package/examples/javascript/flow-arc-vertical/index.css +11 -0
- package/examples/javascript/flow-arc-vertical/index.html +12 -0
- package/examples/javascript/flow-arc-vertical/index.js +91 -0
- package/examples/javascript/flow-arc-vertical/package.json +16 -0
- package/examples/javascript/flow-arc-vertical/webpack.config.js +38 -0
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/index.js +11 -5
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/hierarchy-voronoi-treemap/README.md +6 -0
- package/examples/javascript/hierarchy-voronoi-treemap/index.css +11 -0
- package/examples/javascript/hierarchy-voronoi-treemap/index.html +12 -0
- package/examples/javascript/hierarchy-voronoi-treemap/index.js +1298 -0
- package/examples/javascript/hierarchy-voronoi-treemap/package.json +16 -0
- package/examples/javascript/hierarchy-voronoi-treemap/webpack.config.js +38 -0
- package/examples/javascript/jest/package.json +1 -1
- package/examples/javascript/json-pie/package.json +1 -1
- package/examples/javascript/json-xy/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/stock-chart/package.json +1 -1
- package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
- package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
- package/examples/javascript/stock-chart-intraday/package.json +1 -1
- package/examples/javascript/stock-chart-live/package.json +1 -1
- package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/javascript/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-arc-horizontal/README.md +6 -0
- package/examples/typescript/flow-arc-horizontal/index.css +11 -0
- package/examples/typescript/flow-arc-horizontal/index.html +12 -0
- package/examples/typescript/flow-arc-horizontal/index.ts +116 -0
- package/examples/typescript/flow-arc-horizontal/package.json +18 -0
- package/examples/typescript/flow-arc-horizontal/tsconfig.json +12 -0
- package/examples/typescript/flow-arc-horizontal/webpack.config.js +45 -0
- package/examples/typescript/flow-arc-vertical/README.md +6 -0
- package/examples/typescript/flow-arc-vertical/index.css +11 -0
- package/examples/typescript/flow-arc-vertical/index.html +12 -0
- package/examples/typescript/flow-arc-vertical/index.ts +91 -0
- package/examples/typescript/flow-arc-vertical/package.json +18 -0
- package/examples/typescript/flow-arc-vertical/tsconfig.json +12 -0
- package/examples/typescript/flow-arc-vertical/webpack.config.js +45 -0
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/index.ts +11 -5
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/hierarchy-voronoi-treemap/README.md +6 -0
- package/examples/typescript/hierarchy-voronoi-treemap/index.css +11 -0
- package/examples/typescript/hierarchy-voronoi-treemap/index.html +12 -0
- package/examples/typescript/hierarchy-voronoi-treemap/index.ts +1298 -0
- package/examples/typescript/hierarchy-voronoi-treemap/package.json +18 -0
- package/examples/typescript/hierarchy-voronoi-treemap/tsconfig.json +12 -0
- package/examples/typescript/hierarchy-voronoi-treemap/webpack.config.js +45 -0
- package/examples/typescript/jest/package.json +1 -1
- package/examples/typescript/json-pie/package.json +1 -1
- package/examples/typescript/json-xy/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/stock-chart/package.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
- package/examples/typescript/stock-chart-intraday/package.json +1 -1
- package/examples/typescript/stock-chart-live/package.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/typescript/venn-diagram/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/flow.d.ts +3 -0
- package/flow.d.ts.map +1 -1
- package/flow.js +3 -0
- package/flow.js.map +1 -1
- package/hierarchy.d.ts +1 -0
- package/hierarchy.d.ts.map +1 -1
- package/hierarchy.js +1 -0
- package/hierarchy.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { DataItem } from "../../core/render/Component";
|
|
2
|
+
import { Flow, IFlowSettings, IFlowDataItem, IFlowPrivate, IFlowEvents } from "./Flow";
|
|
3
|
+
import { ListTemplate } from "../../core/util/List";
|
|
4
|
+
import { ArcDiagramNodes, IArcDiagramNodesDataItem } from "./ArcDiagramNodes";
|
|
5
|
+
import { ArcDiagramLink } from "./ArcDiagramLink";
|
|
6
|
+
import type { Easing } from "../../core/util/Ease";
|
|
7
|
+
export interface IArcDiagramDataItem extends IFlowDataItem {
|
|
8
|
+
/**
|
|
9
|
+
* A link element.
|
|
10
|
+
*/
|
|
11
|
+
link: ArcDiagramLink;
|
|
12
|
+
/**
|
|
13
|
+
* Source node data item.
|
|
14
|
+
*/
|
|
15
|
+
source: DataItem<IArcDiagramNodesDataItem>;
|
|
16
|
+
/**
|
|
17
|
+
* Target node data item.
|
|
18
|
+
*/
|
|
19
|
+
target: DataItem<IArcDiagramNodesDataItem>;
|
|
20
|
+
}
|
|
21
|
+
export interface IArcDiagramSettings extends IFlowSettings {
|
|
22
|
+
/**
|
|
23
|
+
* Orientation of the series. This setting can not be changed after the chart is initialized.
|
|
24
|
+
*
|
|
25
|
+
* @default "horizontal"
|
|
26
|
+
*/
|
|
27
|
+
orientation: "horizontal" | "vertical";
|
|
28
|
+
/**
|
|
29
|
+
* Minimum radius of a nodes circle.
|
|
30
|
+
* Maximum radius is computed based on available space
|
|
31
|
+
* @default 5
|
|
32
|
+
*/
|
|
33
|
+
minRadius?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Defines Which value should be used when calculating circle radius. Use "none" if you want all circles to be the same.
|
|
36
|
+
* @martynas: gal cia reik naudot radiusField, biski no idea.
|
|
37
|
+
* @default "sum"
|
|
38
|
+
*/
|
|
39
|
+
radiusKey?: "sum" | "sumIncoming" | "sumOutgoing" | "none";
|
|
40
|
+
/**
|
|
41
|
+
* Duration for all drill animations in milliseconds.
|
|
42
|
+
*/
|
|
43
|
+
animationDuration?: number;
|
|
44
|
+
/**
|
|
45
|
+
* An easing function to use for drill animations.
|
|
46
|
+
*/
|
|
47
|
+
animationEasing?: Easing;
|
|
48
|
+
}
|
|
49
|
+
export interface IArcDiagramPrivate extends IFlowPrivate {
|
|
50
|
+
}
|
|
51
|
+
export interface IArcDiagramEvents extends IFlowEvents {
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Regular ArcDiagram series.
|
|
55
|
+
*
|
|
56
|
+
* @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more information
|
|
57
|
+
* @important
|
|
58
|
+
*/
|
|
59
|
+
export declare class ArcDiagram extends Flow {
|
|
60
|
+
static className: string;
|
|
61
|
+
static classNames: Array<string>;
|
|
62
|
+
/**
|
|
63
|
+
* List of link elements.
|
|
64
|
+
*
|
|
65
|
+
* @default new ListTemplate<ArcDiagramLink>
|
|
66
|
+
*/
|
|
67
|
+
readonly links: ListTemplate<ArcDiagramLink>;
|
|
68
|
+
/**
|
|
69
|
+
* A series for all ArcDiagram nodes.
|
|
70
|
+
*
|
|
71
|
+
* @default ArcDiagramNodes.new()
|
|
72
|
+
*/
|
|
73
|
+
readonly nodes: ArcDiagramNodes;
|
|
74
|
+
_settings: IArcDiagramSettings;
|
|
75
|
+
_privateSettings: IArcDiagramPrivate;
|
|
76
|
+
_dataItemSettings: IArcDiagramDataItem;
|
|
77
|
+
_events: IArcDiagramEvents;
|
|
78
|
+
protected _afterNew(): void;
|
|
79
|
+
/**
|
|
80
|
+
* @ignore
|
|
81
|
+
*/
|
|
82
|
+
makeLink(dataItem: DataItem<this["_dataItemSettings"]>): ArcDiagramLink;
|
|
83
|
+
_prepareChildren(): void;
|
|
84
|
+
_updateLinkColor(dataItem: DataItem<this["_dataItemSettings"]>): void;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=ArcDiagram.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArcDiagram.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagram.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEvF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAOnD,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IAEzD;;OAEG;IACH,IAAI,EAAE,cAAc,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAE3C;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;CAE3C;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACzD;;;;OAIG;IACH,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IAEvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,aAAa,GAAG,MAAM,CAAC;IAE3D;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;CACvD;AAED,MAAM,WAAW,iBAAkB,SAAQ,WAAW;CACrD;AAED;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,IAAI;IAEnC,OAAc,SAAS,EAAE,MAAM,CAAgB;IAC/C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAkD;IAEzF;;;;OAIG;IACH,SAAgB,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,CAGjD;IAEF;;;;OAIG;IACH,SAAgB,KAAK,EAAE,eAAe,CAA2D;IAElF,SAAS,EAAE,mBAAmB,CAAC;IAC/B,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,OAAO,EAAE,iBAAiB,CAAC;IAE1C,SAAS,CAAC,SAAS;IAQnB;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,cAAc;IAUvE,gBAAgB;IAsFhB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;CAuBrE"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { Flow } from "./Flow";
|
|
2
|
+
import { Template } from "../../core/util/Template";
|
|
3
|
+
import { ListTemplate } from "../../core/util/List";
|
|
4
|
+
import { ArcDiagramNodes } from "./ArcDiagramNodes";
|
|
5
|
+
import { ArcDiagramLink } from "./ArcDiagramLink";
|
|
6
|
+
import * as $utils from "../../core/util/Utils";
|
|
7
|
+
import * as $array from "../../core/util/Array";
|
|
8
|
+
/**
|
|
9
|
+
* Regular ArcDiagram series.
|
|
10
|
+
*
|
|
11
|
+
* @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more information
|
|
12
|
+
* @important
|
|
13
|
+
*/
|
|
14
|
+
export class ArcDiagram extends Flow {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
/**
|
|
18
|
+
* List of link elements.
|
|
19
|
+
*
|
|
20
|
+
* @default new ListTemplate<ArcDiagramLink>
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(this, "links", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: new ListTemplate(Template.new({}), () => ArcDiagramLink._new(this._root, { themeTags: ["link", "shape"] }, [this.links.template]))
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* A series for all ArcDiagram nodes.
|
|
30
|
+
*
|
|
31
|
+
* @default ArcDiagramNodes.new()
|
|
32
|
+
*/
|
|
33
|
+
Object.defineProperty(this, "nodes", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
value: this.children.push(ArcDiagramNodes.new(this._root, {}))
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
_afterNew() {
|
|
41
|
+
this._settings.themeTags = $utils.mergeTags(this._settings.themeTags, ["arcdiagram", this._settings.orientation || "horizontal"]);
|
|
42
|
+
super._afterNew();
|
|
43
|
+
this.nodes.children.push(this.bulletsContainer);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @ignore
|
|
47
|
+
*/
|
|
48
|
+
makeLink(dataItem) {
|
|
49
|
+
const link = this.nodes.children.moveValue(this.links.make(), 0);
|
|
50
|
+
this.links.push(link);
|
|
51
|
+
link._setDataItem(dataItem);
|
|
52
|
+
link.set("source", dataItem.get("source"));
|
|
53
|
+
link.set("target", dataItem.get("target"));
|
|
54
|
+
link.series = this;
|
|
55
|
+
return link;
|
|
56
|
+
}
|
|
57
|
+
_prepareChildren() {
|
|
58
|
+
super._prepareChildren();
|
|
59
|
+
if (this._valuesDirty || this._sizeDirty || this.isDirty("orientation")) {
|
|
60
|
+
let width = 1;
|
|
61
|
+
const orientation = this.get("orientation");
|
|
62
|
+
$array.each(this.dataItems, (dataItem) => {
|
|
63
|
+
const link = dataItem.get("link");
|
|
64
|
+
link.setPrivate("orientation", this.get("orientation"));
|
|
65
|
+
});
|
|
66
|
+
if (orientation == "vertical") {
|
|
67
|
+
width = this.innerHeight();
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
width = this.innerWidth();
|
|
71
|
+
}
|
|
72
|
+
let sum = 0;
|
|
73
|
+
let low = Infinity;
|
|
74
|
+
let radiusKey = this.get("radiusKey");
|
|
75
|
+
if (radiusKey != "none") {
|
|
76
|
+
$array.each(this.nodes.dataItems, (dataItem) => {
|
|
77
|
+
let value = dataItem.get(radiusKey + "Working");
|
|
78
|
+
sum += value;
|
|
79
|
+
low = Math.min(low, value);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const count = this.nodes.dataItems.length;
|
|
83
|
+
const nodePadding = this.get("nodePadding", 10);
|
|
84
|
+
const minRadius = this.get("minRadius", 5);
|
|
85
|
+
width = width - count * (nodePadding + minRadius * 2);
|
|
86
|
+
if (width <= 0) {
|
|
87
|
+
width = 0;
|
|
88
|
+
}
|
|
89
|
+
let sumNoLow = sum - count * low;
|
|
90
|
+
let c = width / sumNoLow;
|
|
91
|
+
let prevCoord = 0;
|
|
92
|
+
const animationDuration = this.get("animationDuration", 0);
|
|
93
|
+
const animationEasing = this.get("animationEasing");
|
|
94
|
+
$array.each(this.nodes.dataItems, (dataItem) => {
|
|
95
|
+
let value = dataItem.get(radiusKey + "Working");
|
|
96
|
+
const node = dataItem.get("node");
|
|
97
|
+
let radius = minRadius + c * (value - low) / 2;
|
|
98
|
+
if (radiusKey == "none") {
|
|
99
|
+
radius = minRadius + width / count / 2;
|
|
100
|
+
}
|
|
101
|
+
if (orientation == "vertical") {
|
|
102
|
+
node.set("x", 0);
|
|
103
|
+
const y = prevCoord + nodePadding + radius;
|
|
104
|
+
if (node.y() == 0) {
|
|
105
|
+
node.set("y", y);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
node.animate({ key: "y", to: y, duration: animationDuration, easing: animationEasing });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
node.set("y", 0);
|
|
113
|
+
const x = prevCoord + nodePadding + radius;
|
|
114
|
+
if (node.x() == 0) {
|
|
115
|
+
node.set("x", x);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
node.animate({ key: "x", to: x, duration: animationDuration, easing: animationEasing });
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
prevCoord = prevCoord + nodePadding + radius * 2;
|
|
122
|
+
dataItem.get("circle").set("radius", radius);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
_updateLinkColor(dataItem) {
|
|
127
|
+
super._updateLinkColor(dataItem);
|
|
128
|
+
const orientation = this.get("orientation");
|
|
129
|
+
const fillGradient = dataItem.get("link")._fillGradient;
|
|
130
|
+
const strokeGradient = dataItem.get("link")._strokeGradient;
|
|
131
|
+
if (orientation == "vertical") {
|
|
132
|
+
if (fillGradient) {
|
|
133
|
+
fillGradient.set("rotation", 90);
|
|
134
|
+
}
|
|
135
|
+
if (strokeGradient) {
|
|
136
|
+
strokeGradient.set("rotation", 90);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
if (fillGradient) {
|
|
141
|
+
fillGradient.set("rotation", 0);
|
|
142
|
+
}
|
|
143
|
+
if (strokeGradient) {
|
|
144
|
+
strokeGradient.set("rotation", 0);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
Object.defineProperty(ArcDiagram, "className", {
|
|
150
|
+
enumerable: true,
|
|
151
|
+
configurable: true,
|
|
152
|
+
writable: true,
|
|
153
|
+
value: "ArcDiagram"
|
|
154
|
+
});
|
|
155
|
+
Object.defineProperty(ArcDiagram, "classNames", {
|
|
156
|
+
enumerable: true,
|
|
157
|
+
configurable: true,
|
|
158
|
+
writable: true,
|
|
159
|
+
value: Flow.classNames.concat([ArcDiagram.className])
|
|
160
|
+
});
|
|
161
|
+
//# sourceMappingURL=ArcDiagram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArcDiagram.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagram.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\r\n\r\nimport { Flow, IFlowSettings, IFlowDataItem, IFlowPrivate, IFlowEvents } from \"./Flow\";\r\nimport { Template } from \"../../core/util/Template\";\r\nimport { ListTemplate } from \"../../core/util/List\";\r\nimport { ArcDiagramNodes, IArcDiagramNodesDataItem } from \"./ArcDiagramNodes\";\r\nimport { ArcDiagramLink } from \"./ArcDiagramLink\";\r\nimport type { Easing } from \"../../core/util/Ease\";\r\n\r\nimport * as $utils from \"../../core/util/Utils\";\r\nimport * as $array from \"../../core/util/Array\";\r\n\r\n\r\n\r\nexport interface IArcDiagramDataItem extends IFlowDataItem {\r\n\r\n\t/**\r\n\t * A link element.\r\n\t */\r\n\tlink: ArcDiagramLink;\r\n\r\n\t/**\r\n\t * Source node data item.\r\n\t */\r\n\tsource: DataItem<IArcDiagramNodesDataItem>;\r\n\r\n\t/**\r\n\t * Target node data item.\r\n\t */\r\n\ttarget: DataItem<IArcDiagramNodesDataItem>;\r\n\r\n}\r\n\r\nexport interface IArcDiagramSettings extends IFlowSettings {\r\n\t/**\r\n\t * Orientation of the series. This setting can not be changed after the chart is initialized.\r\n\t *\r\n\t * @default \"horizontal\"\r\n\t */\r\n\torientation: \"horizontal\" | \"vertical\";\r\n\r\n\t/**\r\n\t * Minimum radius of a nodes circle.\r\n\t * Maximum radius is computed based on available space\r\n\t * @default 5\r\n\t */\r\n\tminRadius?: number;\r\n\r\n\t/**\r\n\t * Defines Which value should be used when calculating circle radius. Use \"none\" if you want all circles to be the same.\r\n\t * @martynas: gal cia reik naudot radiusField, biski no idea.\r\n\t * @default \"sum\"\r\n\t */\r\n\tradiusKey?: \"sum\" | \"sumIncoming\" | \"sumOutgoing\" | \"none\";\r\n\r\n\t/**\r\n\t * Duration for all drill animations in milliseconds.\r\n\t */\r\n\tanimationDuration?: number;\r\n\r\n\t/**\r\n\t * An easing function to use for drill animations.\r\n\t */\r\n\tanimationEasing?: Easing;\r\n}\r\n\r\nexport interface IArcDiagramPrivate extends IFlowPrivate {\r\n}\r\n\r\nexport interface IArcDiagramEvents extends IFlowEvents {\r\n}\r\n\r\n/**\r\n * Regular ArcDiagram series.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more information\r\n * @important\r\n */\r\nexport class ArcDiagram extends Flow {\r\n\r\n\tpublic static className: string = \"ArcDiagram\";\r\n\tpublic static classNames: Array<string> = Flow.classNames.concat([ArcDiagram.className]);\r\n\r\n\t/**\r\n\t * List of link elements.\r\n\t *\r\n\t * @default new ListTemplate<ArcDiagramLink>\r\n\t */\r\n\tpublic readonly links: ListTemplate<ArcDiagramLink> = new ListTemplate(\r\n\t\tTemplate.new({}),\r\n\t\t() => ArcDiagramLink._new(this._root, { themeTags: [\"link\", \"shape\"] }, [this.links.template])\r\n\t);\r\n\r\n\t/**\r\n\t * A series for all ArcDiagram nodes.\r\n\t *\r\n\t * @default ArcDiagramNodes.new()\r\n\t */\r\n\tpublic readonly nodes: ArcDiagramNodes = this.children.push(ArcDiagramNodes.new(this._root, {}));\r\n\r\n\tdeclare public _settings: IArcDiagramSettings;\r\n\tdeclare public _privateSettings: IArcDiagramPrivate;\r\n\tdeclare public _dataItemSettings: IArcDiagramDataItem;\r\n\tdeclare public _events: IArcDiagramEvents;\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"arcdiagram\", this._settings.orientation || \"horizontal\"]);\r\n\r\n\t\tsuper._afterNew();\r\n\t\tthis.nodes.children.push(this.bulletsContainer);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic makeLink(dataItem: DataItem<this[\"_dataItemSettings\"]>): ArcDiagramLink {\r\n\t\tconst link = this.nodes.children.moveValue(this.links.make(), 0);\r\n\t\tthis.links.push(link);\r\n\t\tlink._setDataItem(dataItem);\r\n\t\tlink.set(\"source\", dataItem.get(\"source\"));\r\n\t\tlink.set(\"target\", dataItem.get(\"target\"));\r\n\t\tlink.series = this;\r\n\t\treturn link;\r\n\t}\r\n\r\n\tpublic _prepareChildren() {\r\n\t\tsuper._prepareChildren();\r\n\r\n\t\tif (this._valuesDirty || this._sizeDirty || this.isDirty(\"orientation\")) {\r\n\t\t\tlet width = 1;\r\n\t\t\tconst orientation = this.get(\"orientation\");\r\n\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tconst link = dataItem.get(\"link\");\r\n\t\t\t\tlink.setPrivate(\"orientation\", this.get(\"orientation\"));\r\n\t\t\t})\r\n\r\n\t\t\tif (orientation == \"vertical\") {\r\n\t\t\t\twidth = this.innerHeight();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\twidth = this.innerWidth();\r\n\t\t\t}\r\n\r\n\t\t\tlet sum = 0;\r\n\t\t\tlet low = Infinity;\r\n\t\t\tlet radiusKey = this.get(\"radiusKey\");\r\n\r\n\t\t\tif (radiusKey != \"none\") {\r\n\t\t\t\t$array.each(this.nodes.dataItems, (dataItem) => {\r\n\t\t\t\t\tlet value = dataItem.get(radiusKey + \"Working\" as any);\r\n\t\t\t\t\tsum += value;\r\n\t\t\t\t\tlow = Math.min(low, value);\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tconst count = this.nodes.dataItems.length;\r\n\t\t\tconst nodePadding = this.get(\"nodePadding\", 10);\r\n\t\t\tconst minRadius = this.get(\"minRadius\", 5);\r\n\r\n\t\t\twidth = width - count * (nodePadding + minRadius * 2);\r\n\r\n\t\t\tif (width <= 0) {\r\n\t\t\t\twidth = 0;\r\n\t\t\t}\r\n\r\n\t\t\tlet sumNoLow = sum - count * low;\r\n\t\t\tlet c = width / sumNoLow;\r\n\r\n\t\t\tlet prevCoord = 0;\r\n\t\t\tconst animationDuration = this.get(\"animationDuration\", 0);\r\n\t\t\tconst animationEasing = this.get(\"animationEasing\");\r\n\r\n\t\t\t$array.each(this.nodes.dataItems, (dataItem) => {\r\n\t\t\t\tlet value = dataItem.get(radiusKey + \"Working\" as any);\r\n\r\n\t\t\t\tconst node = dataItem.get(\"node\");\r\n\t\t\t\tlet radius = minRadius + c * (value - low) / 2;\r\n\r\n\t\t\t\tif (radiusKey == \"none\") {\r\n\t\t\t\t\tradius = minRadius + width / count / 2;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (orientation == \"vertical\") {\r\n\t\t\t\t\tnode.set(\"x\", 0);\r\n\r\n\t\t\t\t\tconst y = prevCoord + nodePadding + radius;\r\n\t\t\t\t\tif (node.y() == 0) {\r\n\t\t\t\t\t\tnode.set(\"y\", y);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tnode.animate({ key: \"y\", to: y, duration: animationDuration, easing: animationEasing });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tnode.set(\"y\", 0);\r\n\t\t\t\t\tconst x = prevCoord + nodePadding + radius;\r\n\t\t\t\t\tif (node.x() == 0) {\r\n\t\t\t\t\t\tnode.set(\"x\", x);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tnode.animate({ key: \"x\", to: x, duration: animationDuration, easing: animationEasing });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tprevCoord = prevCoord + nodePadding + radius * 2;\r\n\t\t\t\tdataItem.get(\"circle\").set(\"radius\", radius);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateLinkColor(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\r\n\t\tsuper._updateLinkColor(dataItem);\r\n\t\tconst orientation = this.get(\"orientation\");\r\n\t\tconst fillGradient = dataItem.get(\"link\")._fillGradient;\r\n\t\tconst strokeGradient = dataItem.get(\"link\")._strokeGradient;\r\n\r\n\t\tif (orientation == \"vertical\") {\r\n\t\t\tif (fillGradient) {\r\n\t\t\t\tfillGradient.set(\"rotation\", 90);\r\n\t\t\t}\r\n\t\t\tif (strokeGradient) {\r\n\t\t\t\tstrokeGradient.set(\"rotation\", 90);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (fillGradient) {\r\n\t\t\t\tfillGradient.set(\"rotation\", 0);\r\n\t\t\t}\r\n\t\t\tif (strokeGradient) {\r\n\t\t\t\tstrokeGradient.set(\"rotation\", 0);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { FlowLink, IFlowLinkPrivate, IFlowLinkSettings } from "./FlowLink";
|
|
2
|
+
import type { DataItem } from "../../core/render/Component";
|
|
3
|
+
import type { IArcDiagramNodesDataItem } from "./ArcDiagramNodes";
|
|
4
|
+
import type { ArcDiagram, IArcDiagramDataItem } from "./ArcDiagram";
|
|
5
|
+
import type { IOrientationPoint, IPoint } from "../../core/util/IPoint";
|
|
6
|
+
export interface IArcDiagramLinkSettings extends IFlowLinkSettings {
|
|
7
|
+
/**
|
|
8
|
+
* Source data item.
|
|
9
|
+
*/
|
|
10
|
+
source?: DataItem<IArcDiagramNodesDataItem>;
|
|
11
|
+
/**
|
|
12
|
+
* target data item.
|
|
13
|
+
*/
|
|
14
|
+
target?: DataItem<IArcDiagramNodesDataItem>;
|
|
15
|
+
}
|
|
16
|
+
export interface IArcDiagramLinkPrivate extends IFlowLinkPrivate {
|
|
17
|
+
/**
|
|
18
|
+
* Link orientation.
|
|
19
|
+
*/
|
|
20
|
+
orientation?: "horizontal" | "vertical";
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A link element used in [[ArcDiagram]] chart.
|
|
24
|
+
*/
|
|
25
|
+
export declare class ArcDiagramLink extends FlowLink {
|
|
26
|
+
_p0: IPoint | undefined;
|
|
27
|
+
_p1: IPoint | undefined;
|
|
28
|
+
_radius: number;
|
|
29
|
+
_settings: IArcDiagramLinkSettings;
|
|
30
|
+
_privateSettings: IArcDiagramLinkPrivate;
|
|
31
|
+
static className: string;
|
|
32
|
+
static classNames: Array<string>;
|
|
33
|
+
protected _dataItem: DataItem<IArcDiagramDataItem> | undefined;
|
|
34
|
+
series: ArcDiagram | undefined;
|
|
35
|
+
_beforeChanged(): void;
|
|
36
|
+
_changed(): void;
|
|
37
|
+
_draw(): void;
|
|
38
|
+
getPoint(location: number): IOrientationPoint;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=ArcDiagramLink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArcDiagramLink.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagramLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIxE,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAEjE;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAE5C;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC/D;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAEpC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,OAAO,EAAE,MAAM,CAAK;IAEZ,SAAS,EAAE,uBAAuB,CAAC;IACnC,gBAAgB,EAAE,sBAAsB,CAAC;IAExD,OAAc,SAAS,EAAE,MAAM,CAAoB;IACnD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA0D;IAEjG,UAAkB,SAAS,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAExD,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAEvC,cAAc;IA0Cd,QAAQ;IAQR,KAAK;IAyCL,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;CAepD"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { FlowLink } from "./FlowLink";
|
|
2
|
+
import * as $math from "../../core/util/Math";
|
|
3
|
+
/**
|
|
4
|
+
* A link element used in [[ArcDiagram]] chart.
|
|
5
|
+
*/
|
|
6
|
+
export class ArcDiagramLink extends FlowLink {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
Object.defineProperty(this, "_p0", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: void 0
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "_p1", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(this, "_radius", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
writable: true,
|
|
25
|
+
value: 0
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
_beforeChanged() {
|
|
29
|
+
super._beforeChanged();
|
|
30
|
+
if (this.isDirty("source")) {
|
|
31
|
+
const source = this.get("source");
|
|
32
|
+
if (source) {
|
|
33
|
+
const sourceNode = source.get("node");
|
|
34
|
+
this._disposers.push(sourceNode.events.on("positionchanged", () => {
|
|
35
|
+
this._markDirtyKey("stroke");
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (this.isDirty("target")) {
|
|
40
|
+
const target = this.get("target");
|
|
41
|
+
if (target) {
|
|
42
|
+
const targetNode = target.get("node");
|
|
43
|
+
this._disposers.push(targetNode.events.on("positionchanged", () => {
|
|
44
|
+
this._markDirtyKey("stroke");
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (this.isPrivateDirty("orientation")) {
|
|
49
|
+
const series = this.series;
|
|
50
|
+
const dataItem = this.dataItem;
|
|
51
|
+
if (dataItem && series) {
|
|
52
|
+
series._updateLinkColor(dataItem);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (this.series && this.dataItem) {
|
|
56
|
+
this.series._positionBullets(this.dataItem);
|
|
57
|
+
}
|
|
58
|
+
if (this.get("strokeStyle") == "gradient") {
|
|
59
|
+
this.set("isMeasured", true);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.set("isMeasured", false);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
_changed() {
|
|
66
|
+
super._changed();
|
|
67
|
+
if (this._clear) {
|
|
68
|
+
this._draw();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
_draw() {
|
|
72
|
+
const target = this.get("target");
|
|
73
|
+
const source = this.get("source");
|
|
74
|
+
if (source && target) {
|
|
75
|
+
let sourceNode = source.get("node");
|
|
76
|
+
let targetNode = target.get("node");
|
|
77
|
+
const x0 = sourceNode.x();
|
|
78
|
+
const y0 = sourceNode.y();
|
|
79
|
+
const x1 = targetNode.x();
|
|
80
|
+
const y1 = targetNode.y();
|
|
81
|
+
this._p0 = { x: x0, y: y0 };
|
|
82
|
+
this._p1 = { x: x1, y: y1 };
|
|
83
|
+
let radius = 0;
|
|
84
|
+
if (this.getPrivate("orientation") == "vertical") {
|
|
85
|
+
radius = (y1 - y0) / 2;
|
|
86
|
+
let d = 1;
|
|
87
|
+
if (y0 > y1) {
|
|
88
|
+
d = -1;
|
|
89
|
+
}
|
|
90
|
+
this._display.arc(x0, y0 + radius, radius * d, -Math.PI / 2, Math.PI / 2);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
radius = (x1 - x0) / 2;
|
|
94
|
+
let d = 1;
|
|
95
|
+
if (x0 > x1) {
|
|
96
|
+
d = -1;
|
|
97
|
+
}
|
|
98
|
+
this._display.arc(x0 + radius, y0, radius * d, -Math.PI, 0);
|
|
99
|
+
}
|
|
100
|
+
this._radius = radius;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
getPoint(location) {
|
|
104
|
+
if (this._p0 && this._p1) {
|
|
105
|
+
const radius = this._radius;
|
|
106
|
+
if (this.getPrivate("orientation") == "vertical") {
|
|
107
|
+
let angle = -90 + 180 * location;
|
|
108
|
+
return { y: this._p0.y + radius + radius * $math.sin(angle), x: radius * $math.cos(angle), angle: angle + 90 };
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
let angle = 180 + 180 * location;
|
|
112
|
+
return { x: this._p0.x + radius + radius * $math.cos(angle), y: radius * $math.sin(angle), angle: angle + 90 };
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return { x: 0, y: 0, angle: 0 };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
Object.defineProperty(ArcDiagramLink, "className", {
|
|
119
|
+
enumerable: true,
|
|
120
|
+
configurable: true,
|
|
121
|
+
writable: true,
|
|
122
|
+
value: "ArcDiagramLink"
|
|
123
|
+
});
|
|
124
|
+
Object.defineProperty(ArcDiagramLink, "classNames", {
|
|
125
|
+
enumerable: true,
|
|
126
|
+
configurable: true,
|
|
127
|
+
writable: true,
|
|
128
|
+
value: FlowLink.classNames.concat([ArcDiagramLink.className])
|
|
129
|
+
});
|
|
130
|
+
//# sourceMappingURL=ArcDiagramLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArcDiagramLink.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagramLink.ts"],"names":[],"mappings":"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","sourcesContent":["import { FlowLink, IFlowLinkPrivate, IFlowLinkSettings } from \"./FlowLink\";\r\nimport type { DataItem } from \"../../core/render/Component\";\r\nimport type { IArcDiagramNodesDataItem } from \"./ArcDiagramNodes\";\r\nimport type { ArcDiagram, IArcDiagramDataItem } from \"./ArcDiagram\";\r\nimport type { IOrientationPoint, IPoint } from \"../../core/util/IPoint\";\r\nimport * as $math from \"../../core/util/Math\";\r\n\r\n\r\nexport interface IArcDiagramLinkSettings extends IFlowLinkSettings {\r\n\r\n\t/**\r\n\t * Source data item.\r\n\t */\r\n\tsource?: DataItem<IArcDiagramNodesDataItem>;\r\n\r\n\t/**\r\n\t * target data item.\r\n\t */\r\n\ttarget?: DataItem<IArcDiagramNodesDataItem>;\r\n}\r\n\r\nexport interface IArcDiagramLinkPrivate extends IFlowLinkPrivate {\r\n\t/**\r\n\t * Link orientation.\r\n\t */\r\n\torientation?: \"horizontal\" | \"vertical\";\r\n}\r\n\r\n/**\r\n * A link element used in [[ArcDiagram]] chart.\r\n */\r\nexport class ArcDiagramLink extends FlowLink {\r\n\r\n\tpublic _p0: IPoint | undefined;\r\n\tpublic _p1: IPoint | undefined;\r\n\tpublic _radius: number = 0;\r\n\r\n\tdeclare public _settings: IArcDiagramLinkSettings;\r\n\tdeclare public _privateSettings: IArcDiagramLinkPrivate;\r\n\r\n\tpublic static className: string = \"ArcDiagramLink\";\r\n\tpublic static classNames: Array<string> = FlowLink.classNames.concat([ArcDiagramLink.className]);\r\n\r\n\tdeclare protected _dataItem: DataItem<IArcDiagramDataItem> | undefined;\r\n\r\n\tdeclare public series: ArcDiagram | undefined;\r\n\r\n\tpublic _beforeChanged() {\r\n\t\tsuper._beforeChanged();\r\n\r\n\t\tif (this.isDirty(\"source\")) {\r\n\t\t\tconst source = this.get(\"source\");\r\n\t\t\tif (source) {\r\n\t\t\t\tconst sourceNode = source.get(\"node\");\r\n\t\t\t\tthis._disposers.push(sourceNode.events.on(\"positionchanged\", () => {\r\n\t\t\t\t\tthis._markDirtyKey(\"stroke\");\r\n\t\t\t\t}))\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.isDirty(\"target\")) {\r\n\t\t\tconst target = this.get(\"target\");\r\n\t\t\tif (target) {\r\n\t\t\t\tconst targetNode = target.get(\"node\");\r\n\t\t\t\tthis._disposers.push(targetNode.events.on(\"positionchanged\", () => {\r\n\t\t\t\t\tthis._markDirtyKey(\"stroke\");\r\n\t\t\t\t}))\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.isPrivateDirty(\"orientation\")) {\r\n\t\t\tconst series = this.series;\r\n\t\t\tconst dataItem = this.dataItem as DataItem<IArcDiagramDataItem>;\r\n\t\t\tif (dataItem && series) {\r\n\t\t\t\tseries._updateLinkColor(dataItem);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.series && this.dataItem) {\r\n\t\t\tthis.series._positionBullets(this.dataItem as any);\r\n\t\t}\r\n\r\n\t\tif (this.get(\"strokeStyle\") == \"gradient\") {\r\n\t\t\tthis.set(\"isMeasured\", true);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.set(\"isMeasured\", false);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _changed() {\r\n\t\tsuper._changed();\r\n\r\n\t\tif (this._clear) {\r\n\t\t\tthis._draw();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _draw() {\r\n\t\tconst target = this.get(\"target\");\r\n\t\tconst source = this.get(\"source\");\r\n\r\n\t\tif (source && target) {\r\n\t\t\tlet sourceNode = source.get(\"node\");\r\n\t\t\tlet targetNode = target.get(\"node\");\r\n\r\n\t\t\tconst x0 = sourceNode.x();\r\n\t\t\tconst y0 = sourceNode.y();\r\n\r\n\t\t\tconst x1 = targetNode.x();\r\n\t\t\tconst y1 = targetNode.y();\r\n\r\n\t\t\tthis._p0 = { x: x0, y: y0 };\r\n\t\t\tthis._p1 = { x: x1, y: y1 };\r\n\r\n\t\t\tlet radius = 0;\r\n\r\n\t\t\tif (this.getPrivate(\"orientation\") == \"vertical\") {\r\n\t\t\t\tradius = (y1 - y0) / 2;\r\n\t\t\t\tlet d = 1;\r\n\t\t\t\tif (y0 > y1) {\r\n\t\t\t\t\td = -1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._display.arc(x0, y0 + radius, radius * d, -Math.PI / 2, Math.PI / 2);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tradius = (x1 - x0) / 2;\r\n\t\t\t\tlet d = 1;\r\n\t\t\t\tif (x0 > x1) {\r\n\t\t\t\t\td = -1;\r\n\t\t\t\t}\r\n\t\t\t\tthis._display.arc(x0 + radius, y0, radius * d, -Math.PI, 0);\r\n\t\t\t}\r\n\t\t\tthis._radius = radius;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tpublic getPoint(location: number): IOrientationPoint {\r\n\t\tif (this._p0 && this._p1) {\r\n\t\t\tconst radius = this._radius;\r\n\r\n\t\t\tif (this.getPrivate(\"orientation\") == \"vertical\") {\r\n\t\t\t\tlet angle = -90 + 180 * location;\r\n\t\t\t\treturn { y: this._p0.y + radius + radius * $math.sin(angle), x: radius * $math.cos(angle), angle: angle + 90 };\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet angle = 180 + 180 * location;\r\n\t\t\t\treturn { x: this._p0.x + radius + radius * $math.cos(angle), y: radius * $math.sin(angle), angle: angle + 90 };\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { x: 0, y: 0, angle: 0 };\r\n\t}\r\n}\r\n"]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { DataItem } from "../../core/render/Component";
|
|
2
|
+
import type { FlowNode } from "./FlowNode";
|
|
3
|
+
import type { ArcDiagram } from "./ArcDiagram";
|
|
4
|
+
import { FlowNodes, IFlowNodesSettings, IFlowNodesDataItem, IFlowNodesPrivate, IFlowNodesEvents } from "./FlowNodes";
|
|
5
|
+
import { Circle } from "../../core/render/Circle";
|
|
6
|
+
import { ListTemplate } from "../../core/util/List";
|
|
7
|
+
import { Label } from "../../core/render/Label";
|
|
8
|
+
export interface IArcDiagramNodesDataItem extends IFlowNodesDataItem {
|
|
9
|
+
/**
|
|
10
|
+
* Node [[Circle]] element.
|
|
11
|
+
*/
|
|
12
|
+
circle: Circle;
|
|
13
|
+
/**
|
|
14
|
+
* Node label element.
|
|
15
|
+
*/
|
|
16
|
+
label: Label;
|
|
17
|
+
}
|
|
18
|
+
export interface IArcDiagramNodesSettings extends IFlowNodesSettings {
|
|
19
|
+
}
|
|
20
|
+
export interface IArcDiagramNodesPrivate extends IFlowNodesPrivate {
|
|
21
|
+
}
|
|
22
|
+
export interface IArcDiagramNodesEvents extends IFlowNodesEvents {
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Holds instances of nodes for a [[ArcDiagram]] series.
|
|
26
|
+
*/
|
|
27
|
+
export declare class ArcDiagramNodes extends FlowNodes {
|
|
28
|
+
static className: string;
|
|
29
|
+
static classNames: Array<string>;
|
|
30
|
+
/**
|
|
31
|
+
* List of label elements.
|
|
32
|
+
*
|
|
33
|
+
* @default new ListTemplate<Label>
|
|
34
|
+
*/
|
|
35
|
+
readonly labels: ListTemplate<Label>;
|
|
36
|
+
_settings: IArcDiagramNodesSettings;
|
|
37
|
+
_privateSettings: IArcDiagramNodesPrivate;
|
|
38
|
+
_dataItemSettings: IArcDiagramNodesDataItem;
|
|
39
|
+
_events: IArcDiagramNodesEvents;
|
|
40
|
+
/**
|
|
41
|
+
* Related [[ArcDiagram]] series.
|
|
42
|
+
*/
|
|
43
|
+
flow: ArcDiagram | undefined;
|
|
44
|
+
protected _dAngle: number;
|
|
45
|
+
/**
|
|
46
|
+
* List of slice elements.
|
|
47
|
+
*
|
|
48
|
+
* @default new ListTemplate<Slice>
|
|
49
|
+
*/
|
|
50
|
+
readonly circles: ListTemplate<Circle>;
|
|
51
|
+
/**
|
|
52
|
+
* @ignore
|
|
53
|
+
*/
|
|
54
|
+
makeNode(dataItem: DataItem<this["_dataItemSettings"]>): FlowNode;
|
|
55
|
+
/**
|
|
56
|
+
* @ignore
|
|
57
|
+
*/
|
|
58
|
+
disposeDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=ArcDiagramNodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArcDiagramNodes.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagramNodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrH,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAEnE;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACb;AAED,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;CAAI;AAExE,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;CAAI;AAEtE,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;CAAI;AAEpE;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC7C,OAAc,SAAS,EAAE,MAAM,CAAqB;IACpD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA4D;IAEnG;;;;OAIG;IACH,SAAgB,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAGzC;IAEa,SAAS,EAAE,wBAAwB,CAAC;IACpC,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,OAAO,EAAE,sBAAsB,CAAC;IAE/C;;OAEG;IACI,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IAEpC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAE9B;;;;OAIG;IACH,SAAgB,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAG3C;IAEF;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,QAAQ;IAsBxE;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;CAQpE"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { FlowNodes } from "./FlowNodes";
|
|
2
|
+
import { Circle } from "../../core/render/Circle";
|
|
3
|
+
import { Template } from "../../core/util/Template";
|
|
4
|
+
import { ListTemplate } from "../../core/util/List";
|
|
5
|
+
import { Label } from "../../core/render/Label";
|
|
6
|
+
;
|
|
7
|
+
;
|
|
8
|
+
;
|
|
9
|
+
/**
|
|
10
|
+
* Holds instances of nodes for a [[ArcDiagram]] series.
|
|
11
|
+
*/
|
|
12
|
+
export class ArcDiagramNodes extends FlowNodes {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
/**
|
|
16
|
+
* List of label elements.
|
|
17
|
+
*
|
|
18
|
+
* @default new ListTemplate<Label>
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(this, "labels", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
writable: true,
|
|
24
|
+
value: new ListTemplate(Template.new({}), () => Label._new(this._root, {}, [this.labels.template]))
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* Related [[ArcDiagram]] series.
|
|
28
|
+
*/
|
|
29
|
+
Object.defineProperty(this, "flow", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: void 0
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(this, "_dAngle", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true,
|
|
39
|
+
value: 0
|
|
40
|
+
});
|
|
41
|
+
/**
|
|
42
|
+
* List of slice elements.
|
|
43
|
+
*
|
|
44
|
+
* @default new ListTemplate<Slice>
|
|
45
|
+
*/
|
|
46
|
+
Object.defineProperty(this, "circles", {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
writable: true,
|
|
50
|
+
value: new ListTemplate(Template.new({}), () => Circle._new(this._root, { themeTags: ["shape"] }, [this.circles.template]))
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @ignore
|
|
55
|
+
*/
|
|
56
|
+
makeNode(dataItem) {
|
|
57
|
+
const node = super.makeNode(dataItem, "ArcDiagram");
|
|
58
|
+
const circle = node.children.insertIndex(0, this.circles.make());
|
|
59
|
+
dataItem.set("circle", circle);
|
|
60
|
+
circle._setSoft("fill", dataItem.get("fill"));
|
|
61
|
+
const label = this.labels.make();
|
|
62
|
+
this.labels.push(label);
|
|
63
|
+
label.addTag("flow");
|
|
64
|
+
label.addTag("arcdiagram");
|
|
65
|
+
label.addTag("node");
|
|
66
|
+
node.children.push(label);
|
|
67
|
+
dataItem.set("label", label);
|
|
68
|
+
label._setDataItem(dataItem);
|
|
69
|
+
circle._setDataItem(dataItem);
|
|
70
|
+
return node;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* @ignore
|
|
74
|
+
*/
|
|
75
|
+
disposeDataItem(dataItem) {
|
|
76
|
+
super.disposeDataItem(dataItem);
|
|
77
|
+
let circle = dataItem.get("circle");
|
|
78
|
+
if (circle) {
|
|
79
|
+
this.circles.removeValue(circle);
|
|
80
|
+
circle.dispose();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
Object.defineProperty(ArcDiagramNodes, "className", {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
configurable: true,
|
|
87
|
+
writable: true,
|
|
88
|
+
value: "ArcDiagramNodes"
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(ArcDiagramNodes, "classNames", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
configurable: true,
|
|
93
|
+
writable: true,
|
|
94
|
+
value: FlowNodes.classNames.concat([ArcDiagramNodes.className])
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=ArcDiagramNodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArcDiagramNodes.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagramNodes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAA+E,MAAM,aAAa,CAAC;AACrH,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAewB,CAAC;AAEH,CAAC;AAEH,CAAC;AAErE;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAA9C;;QAIC;;;;WAIG;QACH;;;;mBAA8C,IAAI,YAAY,CAC7D,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAChB,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CACxD;WAAC;QAOF;;WAEG;QACH;;;;;WAAoC;QAEpC;;;;mBAA4B,CAAC;WAAC;QAE9B;;;;WAIG;QACH;;;;mBAAgD,IAAI,YAAY,CAC/D,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAChB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAChF;WAAC;IAsCH,CAAC;IApCA;;OAEG;IACI,QAAQ,CAAC,QAA6C;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAErB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE7B,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,QAA6C;QACnE,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,MAAM,EAAE;YACX,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,CAAC,OAAO,EAAE,CAAC;SACjB;IACF,CAAC;;AAtED;;;;WAAkC,iBAAiB;GAAC;AACpD;;;;WAA0C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\r\nimport type { FlowNode } from \"./FlowNode\";\r\nimport type { ArcDiagram } from \"./ArcDiagram\";\r\n\r\nimport { FlowNodes, IFlowNodesSettings, IFlowNodesDataItem, IFlowNodesPrivate, IFlowNodesEvents } from \"./FlowNodes\";\r\nimport { Circle } from \"../../core/render/Circle\";\r\nimport { Template } from \"../../core/util/Template\";\r\nimport { ListTemplate } from \"../../core/util/List\";\r\nimport { Label } from \"../../core/render/Label\";\r\n\r\nexport interface IArcDiagramNodesDataItem extends IFlowNodesDataItem {\r\n\r\n\t/**\r\n\t * Node [[Circle]] element.\r\n\t */\r\n\tcircle: Circle;\r\n\r\n\t/**\r\n\t * Node label element.\r\n\t */\r\n\tlabel: Label;\r\n}\r\n\r\nexport interface IArcDiagramNodesSettings extends IFlowNodesSettings { };\r\n\r\nexport interface IArcDiagramNodesPrivate extends IFlowNodesPrivate { };\r\n\r\nexport interface IArcDiagramNodesEvents extends IFlowNodesEvents { };\r\n\r\n/**\r\n * Holds instances of nodes for a [[ArcDiagram]] series.\r\n */\r\nexport class ArcDiagramNodes extends FlowNodes {\r\n\tpublic static className: string = \"ArcDiagramNodes\";\r\n\tpublic static classNames: Array<string> = FlowNodes.classNames.concat([ArcDiagramNodes.className]);\r\n\r\n\t/**\r\n\t * List of label elements.\r\n\t *\r\n\t * @default new ListTemplate<Label>\r\n\t */\r\n\tpublic readonly labels: ListTemplate<Label> = new ListTemplate(\r\n\t\tTemplate.new({}),\r\n\t\t() => Label._new(this._root, {}, [this.labels.template])\r\n\t);\r\n\r\n\tdeclare public _settings: IArcDiagramNodesSettings;\r\n\tdeclare public _privateSettings: IArcDiagramNodesPrivate;\r\n\tdeclare public _dataItemSettings: IArcDiagramNodesDataItem;\r\n\tdeclare public _events: IArcDiagramNodesEvents;\r\n\r\n\t/**\r\n\t * Related [[ArcDiagram]] series.\r\n\t */\r\n\tpublic flow: ArcDiagram | undefined;\r\n\r\n\tprotected _dAngle: number = 0;\r\n\r\n\t/**\r\n\t * List of slice elements.\r\n\t *\r\n\t * @default new ListTemplate<Slice>\r\n\t */\r\n\tpublic readonly circles: ListTemplate<Circle> = new ListTemplate(\r\n\t\tTemplate.new({}),\r\n\t\t() => Circle._new(this._root, { themeTags: [\"shape\"] }, [this.circles.template])\r\n\t);\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic makeNode(dataItem: DataItem<this[\"_dataItemSettings\"]>): FlowNode {\r\n\t\tconst node = super.makeNode(dataItem, \"ArcDiagram\");\r\n\r\n\t\tconst circle = node.children.insertIndex(0, this.circles.make());\r\n\t\tdataItem.set(\"circle\", circle);\r\n\t\tcircle._setSoft(\"fill\", dataItem.get(\"fill\"));\r\n\r\n\t\tconst label = this.labels.make();\r\n\t\tthis.labels.push(label);\r\n\t\tlabel.addTag(\"flow\");\r\n\t\tlabel.addTag(\"arcdiagram\");\r\n\t\tlabel.addTag(\"node\");\r\n\r\n\t\tnode.children.push(label);\r\n\t\tdataItem.set(\"label\", label);\r\n\r\n\t\tlabel._setDataItem(dataItem);\r\n\t\tcircle._setDataItem(dataItem);\r\n\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\r\n\t\tsuper.disposeDataItem(dataItem);\r\n\t\tlet circle = dataItem.get(\"circle\");\r\n\t\tif (circle) {\r\n\t\t\tthis.circles.removeValue(circle);\r\n\t\t\tcircle.dispose();\r\n\t\t}\r\n\t}\r\n}\r\n"]}
|