@amcharts/amcharts5 5.18.0 → 5.19.0
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/ArcDiagramLink.d.ts +3 -0
- package/.internal/charts/flow/ArcDiagramLink.d.ts.map +1 -1
- package/.internal/charts/flow/ArcDiagramLink.js +12 -4
- package/.internal/charts/flow/ArcDiagramLink.js.map +1 -1
- package/.internal/charts/flow/ChordDirected.d.ts.map +1 -1
- package/.internal/charts/flow/ChordDirected.js +1 -0
- package/.internal/charts/flow/ChordDirected.js.map +1 -1
- package/.internal/charts/flow/SankeyLink.d.ts +3 -0
- package/.internal/charts/flow/SankeyLink.d.ts.map +1 -1
- package/.internal/charts/flow/SankeyLink.js +12 -4
- package/.internal/charts/flow/SankeyLink.js.map +1 -1
- package/.internal/charts/hierarchy/BreadcrumbBar.d.ts.map +1 -1
- package/.internal/charts/hierarchy/BreadcrumbBar.js +6 -8
- package/.internal/charts/hierarchy/BreadcrumbBar.js.map +1 -1
- package/.internal/charts/hierarchy/ForceDirected.js +1 -1
- package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
- package/.internal/charts/hierarchy/HierarchyLink.d.ts +3 -0
- package/.internal/charts/hierarchy/HierarchyLink.d.ts.map +1 -1
- package/.internal/charts/hierarchy/HierarchyLink.js +10 -2
- package/.internal/charts/hierarchy/HierarchyLink.js.map +1 -1
- package/.internal/charts/map/GraticuleSeries.d.ts +2 -0
- package/.internal/charts/map/GraticuleSeries.d.ts.map +1 -1
- package/.internal/charts/map/GraticuleSeries.js +6 -1
- package/.internal/charts/map/GraticuleSeries.js.map +1 -1
- package/.internal/charts/map/MapChart.d.ts +59 -0
- package/.internal/charts/map/MapChart.d.ts.map +1 -1
- package/.internal/charts/map/MapChart.js +43 -0
- package/.internal/charts/map/MapChart.js.map +1 -1
- package/.internal/charts/map/MapChartProjections.d.ts +3 -0
- package/.internal/charts/map/MapChartProjections.d.ts.map +1 -0
- package/.internal/charts/map/MapChartProjections.js +20 -0
- package/.internal/charts/map/MapChartProjections.js.map +1 -0
- package/.internal/charts/map/MapPointSeries.js +1 -1
- package/.internal/charts/map/MapPointSeries.js.map +1 -1
- package/.internal/charts/map/MapPolygonSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapPolygonSeries.js +2 -1
- package/.internal/charts/map/MapPolygonSeries.js.map +1 -1
- package/.internal/charts/map/MapProjections.d.ts +13 -0
- package/.internal/charts/map/MapProjections.d.ts.map +1 -0
- package/.internal/charts/map/MapProjections.js +15 -0
- package/.internal/charts/map/MapProjections.js.map +1 -0
- package/.internal/charts/pie/PieChart.d.ts +1 -0
- package/.internal/charts/pie/PieChart.d.ts.map +1 -1
- package/.internal/charts/pie/PieChart.js +6 -0
- package/.internal/charts/pie/PieChart.js.map +1 -1
- package/.internal/charts/stock/SettingsModal.js +1 -1
- package/.internal/charts/stock/SettingsModal.js.map +1 -1
- package/.internal/charts/stock/indicators/Indicator.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/Indicator.js +1 -1
- package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockToolbar.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/StockToolbar.js +3 -0
- package/.internal/charts/stock/toolbar/StockToolbar.js.map +1 -1
- package/.internal/charts/xy/XYChart.js +5 -5
- package/.internal/charts/xy/XYChart.js.map +1 -1
- package/.internal/charts/xy/XYCursor.d.ts +2 -0
- package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
- package/.internal/charts/xy/XYCursor.js +6 -2
- package/.internal/charts/xy/XYCursor.js.map +1 -1
- package/.internal/charts/xy/axes/Axis.d.ts +7 -0
- package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/Axis.js +33 -20
- package/.internal/charts/xy/axes/Axis.js.map +1 -1
- package/.internal/charts/xy/axes/CategoryDateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/CategoryDateAxis.js +3 -0
- package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +18 -1
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.d.ts +1 -0
- package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.js +26 -10
- package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
- package/.internal/charts/xy/series/StepLineSeries.js +1 -1
- package/.internal/charts/xy/series/StepLineSeries.js.map +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/XYSeries.js +10 -4
- package/.internal/charts/xy/series/XYSeries.js.map +1 -1
- package/.internal/core/Registry.js +1 -1
- package/.internal/core/Registry.js.map +1 -1
- package/.internal/core/Root.d.ts +19 -0
- package/.internal/core/Root.d.ts.map +1 -1
- package/.internal/core/Root.js +15 -2
- package/.internal/core/Root.js.map +1 -1
- package/.internal/core/render/Container.d.ts.map +1 -1
- package/.internal/core/render/Container.js +1 -0
- package/.internal/core/render/Container.js.map +1 -1
- package/.internal/core/render/Legend.js +2 -2
- package/.internal/core/render/Legend.js.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.d.ts +6 -0
- package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.js +25 -5
- package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
- package/.internal/core/util/Modal.js +2 -2
- package/.internal/core/util/Modal.js.map +1 -1
- package/.internal/core/util/Utils.d.ts +21 -0
- package/.internal/core/util/Utils.d.ts.map +1 -1
- package/.internal/core/util/Utils.js +49 -0
- package/.internal/core/util/Utils.js.map +1 -1
- package/.internal/plugins/exporting/Exporting.d.ts +38 -0
- package/.internal/plugins/exporting/Exporting.d.ts.map +1 -1
- package/.internal/plugins/exporting/Exporting.js +33 -0
- package/.internal/plugins/exporting/Exporting.js.map +1 -1
- package/.internal/plugins/exporting/ExportingMenu.js +2 -2
- package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
- package/.internal/plugins/json/ChartSerializer.d.ts +0 -9
- package/.internal/plugins/json/ChartSerializer.d.ts.map +1 -1
- package/.internal/plugins/json/ChartSerializer.js +8 -12
- package/.internal/plugins/json/ChartSerializer.js.map +1 -1
- package/.internal/plugins/json/Classes.d.ts.map +1 -1
- package/.internal/plugins/json/Classes.js +4 -1
- package/.internal/plugins/json/Classes.js.map +1 -1
- package/.internal/plugins/json/Json.d.ts.map +1 -1
- package/.internal/plugins/json/Json.js +56 -2
- package/.internal/plugins/json/Json.js.map +1 -1
- package/CHANGELOG.md +23 -0
- package/examples/javascript/flow-arc-horizontal/package.json +1 -1
- package/examples/javascript/flow-arc-vertical/package.json +1 -1
- 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/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gantt/package.json +1 -1
- package/examples/javascript/gantt-multilevel/package.json +1 -1
- package/examples/javascript/gantt-simple/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/package.json +1 -1
- 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-clustered-points/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-sankey/package.json +1 -1
- package/examples/javascript/map-sankey-waypoints/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/timeline-horizontal-serpentine-chart/package.json +1 -1
- package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
- package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
- package/examples/javascript/timeline-spiral-chart/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/package.json +1 -1
- package/examples/typescript/flow-arc-vertical/package.json +1 -1
- 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/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gantt/package.json +1 -1
- package/examples/typescript/gantt-multilevel/package.json +1 -1
- package/examples/typescript/gantt-simple/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/package.json +1 -1
- 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-clustered-points/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-sankey/package.json +1 -1
- package/examples/typescript/map-sankey-waypoints/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/timeline-horizontal-serpentine-chart/package.json +1 -1
- package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
- package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
- package/examples/typescript/timeline-spiral-chart/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/map.d.ts +2 -3
- package/map.d.ts.map +1 -1
- package/map.js +2 -3
- package/map.js.map +1 -1
- package/package.json +4 -2
|
@@ -3,6 +3,7 @@ import type { DataItem } from "../../core/render/Component";
|
|
|
3
3
|
import type { IArcDiagramNodesDataItem } from "./ArcDiagramNodes";
|
|
4
4
|
import type { ArcDiagram, IArcDiagramDataItem } from "./ArcDiagram";
|
|
5
5
|
import type { IOrientationPoint, IPoint } from "../../core/util/IPoint";
|
|
6
|
+
import type { IDisposer } from "../../core/util/Disposer";
|
|
6
7
|
export interface IArcDiagramLinkSettings extends IFlowLinkSettings {
|
|
7
8
|
/**
|
|
8
9
|
* Source data item.
|
|
@@ -32,6 +33,8 @@ export declare class ArcDiagramLink extends FlowLink {
|
|
|
32
33
|
static classNames: Array<string>;
|
|
33
34
|
protected _dataItem: DataItem<IArcDiagramDataItem> | undefined;
|
|
34
35
|
series: ArcDiagram | undefined;
|
|
36
|
+
protected _sourceDp?: IDisposer;
|
|
37
|
+
protected _targetDp?: IDisposer;
|
|
35
38
|
_beforeChanged(): void;
|
|
36
39
|
_changed(): void;
|
|
37
40
|
_draw(): void;
|
|
@@ -1 +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;
|
|
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;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAI1D,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;IAE9C,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAEzB,cAAc;IAkDd,QAAQ;IAQR,KAAK;IAyCL,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;CAepD"}
|
|
@@ -11,21 +11,29 @@ export class ArcDiagramLink extends FlowLink {
|
|
|
11
11
|
_beforeChanged() {
|
|
12
12
|
super._beforeChanged();
|
|
13
13
|
if (this.isDirty("source")) {
|
|
14
|
+
if (this._sourceDp) {
|
|
15
|
+
this._sourceDp.dispose();
|
|
16
|
+
}
|
|
14
17
|
const source = this.get("source");
|
|
15
18
|
if (source) {
|
|
16
19
|
const sourceNode = source.get("node");
|
|
17
|
-
this.
|
|
20
|
+
this._sourceDp = sourceNode.events.on("positionchanged", () => {
|
|
18
21
|
this._markDirtyKey("stroke");
|
|
19
|
-
})
|
|
22
|
+
});
|
|
23
|
+
this._disposers.push(this._sourceDp);
|
|
20
24
|
}
|
|
21
25
|
}
|
|
22
26
|
if (this.isDirty("target")) {
|
|
27
|
+
if (this._targetDp) {
|
|
28
|
+
this._targetDp.dispose();
|
|
29
|
+
}
|
|
23
30
|
const target = this.get("target");
|
|
24
31
|
if (target) {
|
|
25
32
|
const targetNode = target.get("node");
|
|
26
|
-
this.
|
|
33
|
+
this._targetDp = targetNode.events.on("positionchanged", () => {
|
|
27
34
|
this._markDirtyKey("stroke");
|
|
28
|
-
})
|
|
35
|
+
});
|
|
36
|
+
this._disposers.push(this._targetDp);
|
|
29
37
|
}
|
|
30
38
|
}
|
|
31
39
|
if (this.isPrivateDirty("orientation")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcDiagramLink.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagramLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ArcDiagramLink.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagramLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuC,MAAM,YAAY,CAAC;AAM3E,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAuB9C;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAA5C;;QAIQ,YAAO,GAAW,CAAC,CAAC;IAiI5B,CAAC;IAlHO,cAAc;QACpB,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aACzB;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,MAAM,EAAE;gBACX,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;oBAC7D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACrC;SACD;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aACzB;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,MAAM,EAAE;gBACX,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;oBAC7D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACrC;SACD;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAyC,CAAC;YAChE,IAAI,QAAQ,IAAI,MAAM,EAAE;gBACvB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aAClC;SACD;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;SACnD;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,UAAU,EAAE;YAC1C,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAC7B;aACI;YACJ,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;SAC9B;IACF,CAAC;IAEM,QAAQ;QACd,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC;SACb;IACF,CAAC;IAEM,KAAK;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAI,MAAM,IAAI,MAAM,EAAE;YACrB,IAAI,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEpC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC;YAE1B,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC;YAE1B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;YAE5B,IAAI,MAAM,GAAG,CAAC,CAAC;YAEf,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,UAAU,EAAE;gBACjD,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,EAAE,GAAG,EAAE,EAAE;oBACZ,CAAC,GAAG,CAAC,CAAC,CAAC;iBACP;gBAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;aAC1E;iBACI;gBACJ,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,EAAE,GAAG,EAAE,EAAE;oBACZ,CAAC,GAAG,CAAC,CAAC,CAAC;iBACP;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aAC5D;YACD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;SACtB;IACF,CAAC;IAGM,QAAQ,CAAC,QAAgB;QAC/B,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAE5B,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,UAAU,EAAE;gBACjD,IAAI,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC;gBACjC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC;aAC/G;iBACI;gBACJ,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC;gBACjC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC;aAC/G;SACD;QACD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC;;AA3Ha,wBAAS,GAAW,gBAAgB,CAAC;AACrC,yBAAU,GAAkB,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC","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 type { IDisposer } from \"../../core/util/Disposer\";\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\tprotected _sourceDp?: IDisposer;\r\n\tprotected _targetDp?: IDisposer;\r\n\r\n\tpublic _beforeChanged() {\r\n\t\tsuper._beforeChanged();\r\n\r\n\t\tif (this.isDirty(\"source\")) {\r\n\t\t\tif (this._sourceDp) {\r\n\t\t\t\tthis._sourceDp.dispose();\r\n\t\t\t}\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._sourceDp = sourceNode.events.on(\"positionchanged\", () => {\r\n\t\t\t\t\tthis._markDirtyKey(\"stroke\");\r\n\t\t\t\t});\r\n\t\t\t\tthis._disposers.push(this._sourceDp);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.isDirty(\"target\")) {\r\n\t\t\tif (this._targetDp) {\r\n\t\t\t\tthis._targetDp.dispose();\r\n\t\t\t}\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._targetDp = targetNode.events.on(\"positionchanged\", () => {\r\n\t\t\t\t\tthis._markDirtyKey(\"stroke\");\r\n\t\t\t\t});\r\n\t\t\t\tthis._disposers.push(this._targetDp);\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChordDirected.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ChordDirected.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAsC,oBAAoB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE5G,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;CAE7D;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAE7D;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAEpC;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;CAC3D;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;CACzD;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAEvC,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAsD;IAE9E,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,OAAO,EAAE,oBAAoB,CAAC;IAEtC,QAAQ,iCAAmB;IAC3B,YAAY,EAAE,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,CAAiB;IAEvF;;;;OAIG;IACH,SAAgB,KAAK,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAGnD;IACH;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,iBAAiB;
|
|
1
|
+
{"version":3,"file":"ChordDirected.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ChordDirected.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAsC,oBAAoB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE5G,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;CAE7D;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAE7D;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAEpC;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;CAC3D;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;CACzD;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAEvC,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAsD;IAE9E,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,OAAO,EAAE,oBAAoB,CAAC;IAEtC,QAAQ,iCAAmB;IAC3B,YAAY,EAAE,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,CAAiB;IAEvF;;;;OAIG;IACH,SAAgB,KAAK,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAGnD;IACH;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,iBAAiB;IAYjF,SAAS,CAAC,SAAS;IAMZ,gBAAgB;CAgBvB"}
|
|
@@ -27,6 +27,7 @@ export class ChordDirected extends Chord {
|
|
|
27
27
|
*/
|
|
28
28
|
makeLink(dataItem) {
|
|
29
29
|
const link = this.linksContainer.children.push(this.links.make());
|
|
30
|
+
this.links.push(link);
|
|
30
31
|
link._setDataItem(dataItem);
|
|
31
32
|
link.set("source", dataItem.get("source"));
|
|
32
33
|
link.set("target", dataItem.get("target"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChordDirected.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ChordDirected.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAA+D,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAgD,MAAM,UAAU,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAyBhD;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAAxC;;QAUQ,aAAQ,GAAG,aAAa,EAAE,CAAC;QAC3B,iBAAY,GAAsD,WAAW,EAAE,CAAC;QAEvF;;;;WAIG;QACa,UAAK,GAAoC,IAAI,CAAC,WAAW,CAAC,IAAI,YAAY,CACzF,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAChB,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CACjG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ChordDirected.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ChordDirected.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAA+D,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAgD,MAAM,UAAU,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAyBhD;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAAxC;;QAUQ,aAAQ,GAAG,aAAa,EAAE,CAAC;QAC3B,iBAAY,GAAsD,WAAW,EAAE,CAAC;QAEvF;;;;WAIG;QACa,UAAK,GAAoC,IAAI,CAAC,WAAW,CAAC,IAAI,YAAY,CACzF,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAChB,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CACjG,CAAC,CAAC;IAsCJ,CAAC;IArCA;;OAEG;IACI,QAAQ,CAAC,QAA6C;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,OAAO,IAAI,CAAC;IACb,CAAC;IAES,SAAS;QAClB,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACpF,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IAEM,gBAAgB;QACtB,MAAM,cAAc,GAAG,gBAAgB,CAAC;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5C,IAAI,UAAU,IAAI,IAAI,EAAE;gBACvB,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC;aACxB;iBACI;gBACJ,IAAI,MAAM,GAAG,WAAW,EAAE,CAAC;gBAC3B,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aACtB;SACD;QAED,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;;AAxDa,uBAAS,GAAW,eAAe,CAAC;AACpC,wBAAU,GAAkB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\n\nimport { Chord, IChordSettings, IChordDataItem, IChordPrivate, IChordEvents } from \"./Chord\";\nimport { ChordLinkDirected } from \"./ChordLinkDirected\";\nimport { chordDirected, ribbonArrow, ribbon, RibbonArrowGenerator, Ribbon, RibbonSubgroup } from \"d3-chord\";\nimport { Template } from \"../../core/util/Template\";\nimport { ListTemplate } from \"../../core/util/List\";\n\nimport * as $utils from \"../../core/util/Utils\";\n\nexport interface IChordDirectedDataItem extends IChordDataItem {\n\n}\n\nexport interface IChordDirectedSettings extends IChordSettings {\n\n\t/**\n\t * Length of the link arrow in pixels.\n\t *\n\t * Set to `null` to disable arrowheads.\n\t *\n\t * @default 10\n\t */\n\tlinkHeadRadius?: number | undefined;\n\n}\n\nexport interface IChordDirectedPrivate extends IChordPrivate {\n}\n\nexport interface IChordDirectedEvents extends IChordEvents {\n}\n\n/**\n * Directed chord series.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more information\n * @important\n */\nexport class ChordDirected extends Chord {\n\n\tpublic static className: string = \"ChordDirected\";\n\tpublic static classNames: Array<string> = Chord.classNames.concat([ChordDirected.className]);\n\n\tdeclare public _settings: IChordDirectedSettings;\n\tdeclare public _privateSettings: IChordDirectedPrivate;\n\tdeclare public _dataItemSettings: IChordDirectedDataItem;\n\tdeclare public _events: IChordDirectedEvents;\n\n\tpublic _d3chord = chordDirected();\n\tpublic _ribbonArrow: RibbonArrowGenerator<any, Ribbon, RibbonSubgroup> = ribbonArrow();\n\n\t/**\n\t * List of link elements.\n\t *\n\t * @default new ListTemplate<ChordLinkDirected>\n\t */\n\tpublic readonly links: ListTemplate<ChordLinkDirected> = this.addDisposer(new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => ChordLinkDirected._new(this._root, { themeTags: [\"link\", \"shape\"] }, [this.links.template])\n\t));\n\t/**\n\t * @ignore\n\t */\n\tpublic makeLink(dataItem: DataItem<this[\"_dataItemSettings\"]>): ChordLinkDirected {\n\t\tconst link = this.linksContainer.children.push(this.links.make());\n\t\tthis.links.push(link);\n\t\tlink._setDataItem(dataItem);\n\t\tlink.set(\"source\", dataItem.get(\"source\"));\n\t\tlink.set(\"target\", dataItem.get(\"target\"));\n\n\t\tlink.series = this;\n\n\t\treturn link;\n\t}\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"directed\"]);\n\t\tsuper._afterNew();\n\t\tthis._markDirtyKey(\"linkHeadRadius\");\n\t}\n\n\tpublic _prepareChildren() {\n\t\tconst linkHeadRadius = \"linkHeadRadius\";\n\t\tif (this.isDirty(linkHeadRadius)) {\n\t\t\tconst headRadius = this.get(linkHeadRadius);\n\t\t\tif (headRadius == null) {\n\t\t\t\tthis._ribbon = ribbon();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet ribbon = ribbonArrow();\n\t\t\t\tribbon.headRadius(headRadius);\n\t\t\t\tthis._ribbon = ribbon;\n\t\t\t}\n\t\t}\n\n\t\tsuper._prepareChildren();\n\t}\n}\n"]}
|
|
@@ -2,6 +2,7 @@ import type { DataItem } from "../../core/render/Component";
|
|
|
2
2
|
import type { Sankey, ISankeyDataItem } from "./Sankey";
|
|
3
3
|
import type { ISankeyNodesDataItem } from "./SankeyNodes";
|
|
4
4
|
import type { IOrientationPoint } from "../../core/util/IPoint";
|
|
5
|
+
import type { IDisposer } from "../../core/util/Disposer";
|
|
5
6
|
import { FlowLink, IFlowLinkPrivate, IFlowLinkSettings } from "./FlowLink";
|
|
6
7
|
import type { IPoint } from "../../core/util/IPoint";
|
|
7
8
|
export interface ISankeyLinkSettings extends IFlowLinkSettings {
|
|
@@ -43,6 +44,8 @@ export declare class SankeyLink extends FlowLink {
|
|
|
43
44
|
series: Sankey | undefined;
|
|
44
45
|
protected _svgPath: SVGPathElement;
|
|
45
46
|
protected _totalLength: number;
|
|
47
|
+
protected _sourceDp?: IDisposer;
|
|
48
|
+
protected _targetDp?: IDisposer;
|
|
46
49
|
_beforeChanged(): void;
|
|
47
50
|
getPoint(location: number): IOrientationPoint;
|
|
48
51
|
_getTooltipPoint(): IPoint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SankeyLink.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/SankeyLink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"SankeyLink.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/SankeyLink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAE7D;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAExC;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAExC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAEvD;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAE9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAE3D;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CAExC;AAED,qBAAa,UAAW,SAAQ,QAAQ;IACxB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,gBAAgB,EAAE,kBAAkB,CAAC;IAEpD,OAAc,SAAS,EAAE,MAAM,CAAgB;IAC/C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAsD;IAE7F,UAAkB,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IAEpD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1C,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAkE;IACpG,SAAS,CAAC,YAAY,EAAE,MAAM,CAAK;IAEnC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAGzB,cAAc;IA+Qd,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;IAY7C,gBAAgB,IAAI,MAAM;CAGjC"}
|
|
@@ -9,21 +9,29 @@ export class SankeyLink extends FlowLink {
|
|
|
9
9
|
_beforeChanged() {
|
|
10
10
|
super._beforeChanged();
|
|
11
11
|
if (this.isDirty("source")) {
|
|
12
|
+
if (this._sourceDp) {
|
|
13
|
+
this._sourceDp.dispose();
|
|
14
|
+
}
|
|
12
15
|
const source = this.get("source");
|
|
13
16
|
if (source) {
|
|
14
17
|
const sourceNode = source.get("node");
|
|
15
|
-
this.
|
|
18
|
+
this._sourceDp = sourceNode.events.on("positionchanged", () => {
|
|
16
19
|
this.markDirty();
|
|
17
|
-
})
|
|
20
|
+
});
|
|
21
|
+
this._disposers.push(this._sourceDp);
|
|
18
22
|
}
|
|
19
23
|
}
|
|
20
24
|
if (this.isDirty("target")) {
|
|
25
|
+
if (this._targetDp) {
|
|
26
|
+
this._targetDp.dispose();
|
|
27
|
+
}
|
|
21
28
|
const target = this.get("target");
|
|
22
29
|
if (target) {
|
|
23
30
|
const targetNode = target.get("node");
|
|
24
|
-
this.
|
|
31
|
+
this._targetDp = targetNode.events.on("positionchanged", () => {
|
|
25
32
|
this.markDirty();
|
|
26
|
-
})
|
|
33
|
+
});
|
|
34
|
+
this._disposers.push(this._targetDp);
|
|
27
35
|
}
|
|
28
36
|
}
|
|
29
37
|
if (this.isPrivateDirty("orientation")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SankeyLink.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/SankeyLink.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { FlowNode } from \"./FlowNode\";\nimport type { Sankey, ISankeyDataItem } from \"./Sankey\";\nimport type { ISankeyNodesDataItem } from \"./SankeyNodes\";\nimport type { IOrientationPoint } from \"../../core/util/IPoint\";\n\nimport { FlowLink, IFlowLinkPrivate, IFlowLinkSettings } from \"./FlowLink\";\nimport type { IPoint } from \"../../core/util/IPoint\";\nimport * as $math from \"../../core/util/Math\";\n\n\nexport interface ISankeyLinkSettings extends IFlowLinkSettings {\n\n\t/**\n\t * Source node data item.\n\t */\n\tsource?: DataItem<ISankeyNodesDataItem>;\n\n\t/**\n\t * Target node data item.\n\t */\n\ttarget?: DataItem<ISankeyNodesDataItem>;\n\n\t/**\n\t * Type of fill to use for links.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/sankey-diagram/#Color_mode} for more info\n\t * @default \"gradient\"\n\t */\n\tfillStyle?: \"solid\" | \"gradient\" | \"source\" | \"target\";\n\n\t/**\n\t * A relative distance from node for link \"elbow\" (bend point).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/sankey-diagram/#Bend_point} for more info\n\t * @default 0.2\n\t */\n\tcontrolPointDistance?: number;\n\n}\n\nexport interface ISankeyLinkPrivate extends IFlowLinkPrivate {\n\n\t/**\n\t * Link orientation.\n\t */\n\torientation?: \"horizontal\" | \"vertical\";\n\n}\n\nexport class SankeyLink extends FlowLink {\n\tdeclare public _settings: ISankeyLinkSettings;\n\tdeclare public _privateSettings: ISankeyLinkPrivate;\n\n\tpublic static className: string = \"SankeyLink\";\n\tpublic static classNames: Array<string> = FlowLink.classNames.concat([SankeyLink.className]);\n\n\tdeclare protected _dataItem: DataItem<ISankeyDataItem> | undefined;\n\n\tdeclare public series: Sankey | undefined;\n\n\tprotected _svgPath: SVGPathElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n\tprotected _totalLength: number = 0;\n\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this.isDirty(\"source\")) {\n\t\t\tconst source = this.get(\"source\");\n\t\t\tif (source) {\n\t\t\t\tconst sourceNode = source.get(\"node\");\n\t\t\t\tthis._disposers.push(sourceNode.events.on(\"positionchanged\", () => {\n\t\t\t\t\tthis.markDirty();\n\t\t\t\t}))\n\t\t\t}\n\t\t}\n\t\tif (this.isDirty(\"target\")) {\n\t\t\tconst target = this.get(\"target\");\n\t\t\tif (target) {\n\t\t\t\tconst targetNode = target.get(\"node\");\n\t\t\t\tthis._disposers.push(targetNode.events.on(\"positionchanged\", () => {\n\t\t\t\t\tthis.markDirty();\n\t\t\t\t}))\n\t\t\t}\n\t\t}\n\n\t\tif (this.isPrivateDirty(\"orientation\")) {\n\t\t\tconst series = this.series;\n\t\t\tconst dataItem = this.dataItem as DataItem<ISankeyDataItem>;\n\t\t\tif (dataItem && series) {\n\t\t\t\tseries._updateLinkColor(dataItem);\n\t\t\t}\n\t\t}\n\n\t\tconst target = this.get(\"target\");\n\t\tconst source = this.get(\"source\");\n\n\t\tlet sourceNode: FlowNode | undefined;\n\t\tlet targetNode: FlowNode | undefined;\n\n\t\tif (source && target) {\n\t\t\tthis._clear = true;\n\t\t\tsourceNode = source.get(\"node\");\n\t\t\ttargetNode = target.get(\"node\");\n\n\t\t\tlet x0 = 0;\n\t\t\tlet x1 = 0;\n\t\t\tlet y0 = 0;\n\t\t\tlet y1 = 0;\n\n\t\t\tlet xt0 = 0;\n\t\t\tlet yt0 = 0;\n\n\t\t\tlet xt1 = 0;\n\t\t\tlet yt1 = 0;\n\n\t\t\tlet xb0 = 0;\n\t\t\tlet xb1 = 0;\n\n\t\t\tlet yb0 = 0;\n\t\t\tlet yb1 = 0;\n\n\t\t\tlet xm0 = 0;\n\t\t\tlet xm1 = 0;\n\n\t\t\tlet ym0 = 0;\n\t\t\tlet ym1 = 0;\n\n\t\t\tlet angle0 = 0;\n\t\t\tlet angle1 = 0;\n\n\n\t\t\tconst dataItem = this.dataItem as DataItem<ISankeyDataItem>;\n\t\t\tif (dataItem) {\n\t\t\t\tconst d3SankeyLink = dataItem.get(\"d3SankeyLink\");\n\t\t\t\tif (d3SankeyLink) {\n\n\t\t\t\t\tlet w = d3SankeyLink.width || 0;\n\n\t\t\t\t\tlet orientation = this.getPrivate(\"orientation\");\n\n\t\t\t\t\tif (orientation == \"vertical\") {\n\t\t\t\t\t\tif (sourceNode) {\n\t\t\t\t\t\t\ty0 = sourceNode.y() + sourceNode.get(\"dy\", 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (targetNode) {\n\t\t\t\t\t\t\ty1 = targetNode.y() + targetNode.get(\"dy\", 0);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tangle0 = 90;\n\t\t\t\t\t\tangle1 = 90;\n\n\t\t\t\t\t\tx0 = d3SankeyLink.y0 || 0;\n\t\t\t\t\t\tx1 = d3SankeyLink.y1 || 0;\n\n\t\t\t\t\t\tx0 += sourceNode.get(\"dx\", 0);\n\t\t\t\t\t\tx1 += targetNode.get(\"dx\", 0);\n\n\t\t\t\t\t\tif (y1 < y0) {\n\t\t\t\t\t\t\t[x0, x1] = [x1, x0];\n\t\t\t\t\t\t\t[y0, y1] = [y1, y0];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (source.get(\"unknown\")) {\n\t\t\t\t\t\t\tx0 = x1;\n\t\t\t\t\t\t\ty0 = y0 + (y1 - y0) / 2;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (target.get(\"unknown\")) {\n\t\t\t\t\t\t\tx1 = x0;\n\t\t\t\t\t\t\ty1 = y0 + (y1 - y0) / 2;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\txt0 = x0 - w / 2;\n\t\t\t\t\t\tyt0 = y0;\n\n\t\t\t\t\t\txt1 = x1 - w / 2;\n\t\t\t\t\t\tyt1 = y1;\n\n\t\t\t\t\t\txb0 = x0 + w / 2;\n\t\t\t\t\t\txb1 = x1 + w / 2;\n\n\t\t\t\t\t\tyb0 = y0;\n\t\t\t\t\t\tyb1 = y1;\n\n\t\t\t\t\t\txm0 = x0;\n\t\t\t\t\t\txm1 = x1;\n\n\t\t\t\t\t\tym0 = y0;\n\t\t\t\t\t\tym1 = y1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (sourceNode) {\n\t\t\t\t\t\t\tx0 = sourceNode.x() + sourceNode.get(\"dx\", 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (targetNode) {\n\t\t\t\t\t\t\tx1 = targetNode.x() + targetNode.get(\"dx\", 0);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ty0 = d3SankeyLink.y0 || 0;\n\t\t\t\t\t\ty1 = d3SankeyLink.y1 || 0;\n\n\t\t\t\t\t\ty0 += sourceNode.get(\"dy\", 0);\n\t\t\t\t\t\ty1 += targetNode.get(\"dy\", 0);\n\n\t\t\t\t\t\tif (x1 < x0) {\n\t\t\t\t\t\t\t[x0, x1] = [x1, x0];\n\t\t\t\t\t\t\t[y0, y1] = [y1, y0];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (source.get(\"unknown\")) {\n\t\t\t\t\t\t\ty0 = y1;\n\t\t\t\t\t\t\tx0 = x0 + (x1 - x0) / 2;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (target.get(\"unknown\")) {\n\t\t\t\t\t\t\ty1 = y0;\n\t\t\t\t\t\t\tx1 = x0 + (x1 - x0) / 2;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\txt0 = x0;\n\t\t\t\t\t\tyt0 = y0 - w / 2;\n\n\t\t\t\t\t\txt1 = x1;\n\t\t\t\t\t\tyt1 = y1 - w / 2;\n\n\t\t\t\t\t\txb0 = x0;\n\t\t\t\t\t\txb1 = x1;\n\n\t\t\t\t\t\tyb0 = y0 + w / 2;\n\t\t\t\t\t\tyb1 = y1 + w / 2;\n\n\t\t\t\t\t\txm0 = x0;\n\t\t\t\t\t\txm1 = x1;\n\n\t\t\t\t\t\tym0 = y0;\n\t\t\t\t\t\tym1 = y1;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($math.round(xt0, 3) == $math.round(xt1, 3)) {\n\t\t\t\t\t\txt1 += 0.01;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($math.round(yt0, 3) == $math.round(yt1, 3)) {\n\t\t\t\t\t\tyt1 += 0.01;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($math.round(xb0, 3) == $math.round(xb1, 3)) {\n\t\t\t\t\t\txb1 += 0.01;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($math.round(yb0, 3) == $math.round(yb1, 3)) {\n\t\t\t\t\t\tyb1 += 0.01;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet cpd = this.get(\"controlPointDistance\", 0.2);\n\t\t\t\t\tcpd = Math.min(0.4999, cpd);\n\n\t\t\t\t\tlet kxt0 = xt0 + (xt1 - xt0) * cpd * $math.cos(angle0);\n\t\t\t\t\tlet kyt0 = yt0 + (yt1 - yt0) * cpd * $math.sin(angle0);\n\n\t\t\t\t\tlet kxt1 = xt1 - (xt1 - xt0) * cpd * $math.cos(angle1);\n\t\t\t\t\tlet kyt1 = yt1 - (yt1 - yt0) * cpd * $math.sin(angle1);\n\n\t\t\t\t\tlet kxm0 = xm0 + (xm1 - xm0) * cpd * $math.cos(angle0);\n\t\t\t\t\tlet kym0 = ym0 + (ym1 - ym0) * cpd * $math.sin(angle0);\n\n\t\t\t\t\tlet kxm1 = xm1 - (xm1 - xm0) * cpd * $math.cos(angle1);\n\t\t\t\t\tlet kym1 = ym1 - (ym1 - ym0) * cpd * $math.sin(angle1);\n\n\t\t\t\t\tlet angle = $math.getAngle({ x: kxt0, y: kyt0 }, { x: kxt1, y: kyt1 });\n\n\t\t\t\t\tlet dx = (w / $math.cos(angle) - w) / $math.tan(angle) * $math.cos(angle0);\n\t\t\t\t\tlet dy = (w / $math.sin(angle) - w) * $math.tan(angle) * $math.sin(angle0);\n\n\t\t\t\t\tlet kxb0 = -dx / 2 + xb0 + (xb1 - xb0) * cpd * $math.cos(angle0);\n\t\t\t\t\tlet kyb0 = -dy / 2 + yb0 + (yb1 - yb0) * cpd * $math.sin(angle0);\n\n\t\t\t\t\tlet kxb1 = -dx / 2 + xb1 - (xb1 - xb0) * cpd * $math.cos(angle1);\n\t\t\t\t\tlet kyb1 = -dy / 2 + yb1 - (yb1 - yb0) * cpd * $math.sin(angle1);\n\n\t\t\t\t\tkxt0 += dx / 2;\n\t\t\t\t\tkyt0 += dy / 2;\n\n\t\t\t\t\tkxt1 += dx / 2;\n\t\t\t\t\tkyt1 += dy / 2;\n\n\t\t\t\t\tif (orientation == \"vertical\") {\n\t\t\t\t\t\tkyt0 = Math.min(yt1, Math.max(yt0 + 1, kyt0));\n\t\t\t\t\t\tkyb0 = Math.min(yb1, Math.max(yb0 + 1, kyb0));\n\n\t\t\t\t\t\tkyt1 = Math.max(yt0, Math.min(yt1 - 1, kyt1));\n\t\t\t\t\t\tkyb1 = Math.max(yb0, Math.min(yb1 - 1, kyb1));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tkxt0 = Math.min(xt1, Math.max(xt0 + 1, kxt0));\n\t\t\t\t\t\tkxb0 = Math.min(xb1, Math.max(xb0 + 1, kxb0));\n\n\t\t\t\t\t\tkxt1 = Math.max(xt0, Math.min(xt1 - 1, kxt1));\n\t\t\t\t\t\tkxb1 = Math.max(xb0, Math.min(xb1 - 1, kxb1));\n\t\t\t\t\t}\n\n\t\t\t\t\tlet segment = [[xt0, yt0, xb0, yb0], [kxt0, kyt0, kxb0, kyb0], [kxt1, kyt1, kxb1, kyb1], [xt1, yt1, xb1, yb1]];\n\n\t\t\t\t\tthis.set(\"draw\", (display) => {\n\t\t\t\t\t\tconst series = this.series!;\n\t\t\t\t\t\tseries._fillGenerator.context(display as any);\n\t\t\t\t\t\tseries._fillGenerator(segment as [number, number][]);\n\t\t\t\t\t})\n\n\t\t\t\t\tlet middleSegment = [[xm0, ym0], [kxm0, kym0], [kxm1, kym1], [xm1, ym1]];\n\n\t\t\t\t\tconst path = this.series!._strokeGenerator(middleSegment as [number, number][]);\n\n\t\t\t\t\tif (path) {\n\t\t\t\t\t\tthis._svgPath.setAttribute(\"d\", path);\n\t\t\t\t\t\tthis._totalLength = this._svgPath.getTotalLength();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.series && this.dataItem) {\n\t\t\tthis.series._positionBullets(this.dataItem as any);\n\t\t}\n\t}\n\n\tpublic getPoint(location: number): IOrientationPoint {\n\t\tif (this._svgPath) {\n\t\t\tif (this._svgPath.getAttribute(\"d\")) {\n\t\t\t\tlet p0 = this._svgPath.getPointAtLength(location * this._totalLength - 0.1);\n\t\t\t\tlet p1 = this._svgPath.getPointAtLength(location * this._totalLength + 0.1);\n\t\t\t\tlet p = this.toGlobal(this._svgPath.getPointAtLength(location * this._totalLength));\n\t\t\t\treturn { x: p.x, y: p.y, angle: $math.getAngle(p0, p1) };\n\t\t\t}\n\t\t}\n\t\treturn { x: 0, y: 0, angle: 0 }\n\t}\n\n\tpublic _getTooltipPoint(): IPoint {\n\t\treturn this.toLocal(super._getTooltipPoint());\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SankeyLink.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/SankeyLink.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAuC,MAAM,YAAY,CAAC;AAE3E,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AA0C9C,MAAM,OAAO,UAAW,SAAQ,QAAQ;IAAxC;;QAWW,aAAQ,GAAmB,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;QAC1F,iBAAY,GAAW,CAAC,CAAC;IAoSpC,CAAC;IA9RO,cAAc;QACpB,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aACzB;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,MAAM,EAAE;gBACX,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;oBAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACrC;SACD;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aACzB;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,MAAM,EAAE;gBACX,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;oBAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACrC;SACD;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAqC,CAAC;YAC5D,IAAI,QAAQ,IAAI,MAAM,EAAE;gBACvB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aAClC;SACD;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAI,UAAgC,CAAC;QACrC,IAAI,UAAgC,CAAC;QAErC,IAAI,MAAM,IAAI,MAAM,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEhC,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC;YAEX,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,MAAM,GAAG,CAAC,CAAC;YAGf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAqC,CAAC;YAC5D,IAAI,QAAQ,EAAE;gBACb,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAClD,IAAI,YAAY,EAAE;oBAEjB,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC;oBAEhC,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;oBAEjD,IAAI,WAAW,IAAI,UAAU,EAAE;wBAC9B,IAAI,UAAU,EAAE;4BACf,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;yBAC9C;wBACD,IAAI,UAAU,EAAE;4BACf,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;yBAC9C;wBAED,MAAM,GAAG,EAAE,CAAC;wBACZ,MAAM,GAAG,EAAE,CAAC;wBAEZ,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;wBAC1B,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;wBAE1B,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAC9B,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAE9B,IAAI,EAAE,GAAG,EAAE,EAAE;4BACZ,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;4BACpB,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;yBACpB;wBAED,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;4BAC1B,EAAE,GAAG,EAAE,CAAC;4BACR,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;yBACxB;wBAED,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;4BAC1B,EAAE,GAAG,EAAE,CAAC;4BACR,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;yBACxB;wBAGD,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;wBACjB,GAAG,GAAG,EAAE,CAAC;wBAET,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;wBACjB,GAAG,GAAG,EAAE,CAAC;wBAET,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;wBACjB,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;wBAEjB,GAAG,GAAG,EAAE,CAAC;wBACT,GAAG,GAAG,EAAE,CAAC;wBAET,GAAG,GAAG,EAAE,CAAC;wBACT,GAAG,GAAG,EAAE,CAAC;wBAET,GAAG,GAAG,EAAE,CAAC;wBACT,GAAG,GAAG,EAAE,CAAC;qBACT;yBACI;wBACJ,IAAI,UAAU,EAAE;4BACf,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;yBAC9C;wBACD,IAAI,UAAU,EAAE;4BACf,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;yBAC9C;wBAED,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;wBAC1B,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;wBAE1B,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAC9B,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAE9B,IAAI,EAAE,GAAG,EAAE,EAAE;4BACZ,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;4BACpB,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;yBACpB;wBAED,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;4BAC1B,EAAE,GAAG,EAAE,CAAC;4BACR,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;yBACxB;wBAED,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;4BAC1B,EAAE,GAAG,EAAE,CAAC;4BACR,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;yBACxB;wBAED,GAAG,GAAG,EAAE,CAAC;wBACT,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;wBAEjB,GAAG,GAAG,EAAE,CAAC;wBACT,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;wBAEjB,GAAG,GAAG,EAAE,CAAC;wBACT,GAAG,GAAG,EAAE,CAAC;wBAET,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;wBACjB,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;wBAEjB,GAAG,GAAG,EAAE,CAAC;wBACT,GAAG,GAAG,EAAE,CAAC;wBAET,GAAG,GAAG,EAAE,CAAC;wBACT,GAAG,GAAG,EAAE,CAAC;qBACT;oBAED,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;wBAC/C,GAAG,IAAI,IAAI,CAAC;qBACZ;oBAED,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;wBAC/C,GAAG,IAAI,IAAI,CAAC;qBACZ;oBAED,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;wBAC/C,GAAG,IAAI,IAAI,CAAC;qBACZ;oBAED,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;wBAC/C,GAAG,IAAI,IAAI,CAAC;qBACZ;oBAED,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;oBAChD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAE5B,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACvD,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAEvD,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACvD,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAEvD,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACvD,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAEvD,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACvD,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAEvD,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;oBAEvE,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC3E,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAE3E,IAAI,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACjE,IAAI,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAEjE,IAAI,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACjE,IAAI,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAEjE,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;oBACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;oBAEf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;oBACf,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;oBAEf,IAAI,WAAW,IAAI,UAAU,EAAE;wBAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;wBAC9C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;wBAE9C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;wBAC9C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;qBAC9C;yBACI;wBACJ,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;wBAC9C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;wBAE9C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;wBAC9C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;qBAC9C;oBAED,IAAI,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;oBAE/G,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;wBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAO,CAAC;wBAC5B,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,OAAc,CAAC,CAAC;wBAC9C,MAAM,CAAC,cAAc,CAAC,OAA6B,CAAC,CAAC;oBACtD,CAAC,CAAC,CAAA;oBAEF,IAAI,aAAa,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;oBAEzE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAO,CAAC,gBAAgB,CAAC,aAAmC,CAAC,CAAC;oBAEhF,IAAI,IAAI,EAAE;wBACT,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;qBACnD;iBACD;aACD;SACD;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;SACnD;IACF,CAAC;IAEM,QAAQ,CAAC,QAAgB;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;gBACpC,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;gBAC5E,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;gBAC5E,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBACpF,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;aACzD;SACD;QACD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IAChC,CAAC;IAEM,gBAAgB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC/C,CAAC;;AA3Sa,oBAAS,GAAW,YAAY,CAAC;AACjC,qBAAU,GAAkB,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { FlowNode } from \"./FlowNode\";\nimport type { Sankey, ISankeyDataItem } from \"./Sankey\";\nimport type { ISankeyNodesDataItem } from \"./SankeyNodes\";\nimport type { IOrientationPoint } from \"../../core/util/IPoint\";\nimport type { IDisposer } from \"../../core/util/Disposer\";\n\nimport { FlowLink, IFlowLinkPrivate, IFlowLinkSettings } from \"./FlowLink\";\nimport type { IPoint } from \"../../core/util/IPoint\";\nimport * as $math from \"../../core/util/Math\";\n\n\nexport interface ISankeyLinkSettings extends IFlowLinkSettings {\n\n\t/**\n\t * Source node data item.\n\t */\n\tsource?: DataItem<ISankeyNodesDataItem>;\n\n\t/**\n\t * Target node data item.\n\t */\n\ttarget?: DataItem<ISankeyNodesDataItem>;\n\n\t/**\n\t * Type of fill to use for links.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/sankey-diagram/#Color_mode} for more info\n\t * @default \"gradient\"\n\t */\n\tfillStyle?: \"solid\" | \"gradient\" | \"source\" | \"target\";\n\n\t/**\n\t * A relative distance from node for link \"elbow\" (bend point).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/sankey-diagram/#Bend_point} for more info\n\t * @default 0.2\n\t */\n\tcontrolPointDistance?: number;\n\n}\n\nexport interface ISankeyLinkPrivate extends IFlowLinkPrivate {\n\n\t/**\n\t * Link orientation.\n\t */\n\torientation?: \"horizontal\" | \"vertical\";\n\n}\n\nexport class SankeyLink extends FlowLink {\n\tdeclare public _settings: ISankeyLinkSettings;\n\tdeclare public _privateSettings: ISankeyLinkPrivate;\n\n\tpublic static className: string = \"SankeyLink\";\n\tpublic static classNames: Array<string> = FlowLink.classNames.concat([SankeyLink.className]);\n\n\tdeclare protected _dataItem: DataItem<ISankeyDataItem> | undefined;\n\n\tdeclare public series: Sankey | undefined;\n\n\tprotected _svgPath: SVGPathElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n\tprotected _totalLength: number = 0;\n\n\tprotected _sourceDp?: IDisposer;\n\tprotected _targetDp?: IDisposer;\n\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this.isDirty(\"source\")) {\n\t\t\tif (this._sourceDp) {\n\t\t\t\tthis._sourceDp.dispose();\n\t\t\t}\n\t\t\tconst source = this.get(\"source\");\n\t\t\tif (source) {\n\t\t\t\tconst sourceNode = source.get(\"node\");\n\t\t\t\tthis._sourceDp = sourceNode.events.on(\"positionchanged\", () => {\n\t\t\t\t\tthis.markDirty();\n\t\t\t\t});\n\t\t\t\tthis._disposers.push(this._sourceDp);\n\t\t\t}\n\t\t}\n\t\tif (this.isDirty(\"target\")) {\n\t\t\tif (this._targetDp) {\n\t\t\t\tthis._targetDp.dispose();\n\t\t\t}\n\t\t\tconst target = this.get(\"target\");\n\t\t\tif (target) {\n\t\t\t\tconst targetNode = target.get(\"node\");\n\t\t\t\tthis._targetDp = targetNode.events.on(\"positionchanged\", () => {\n\t\t\t\t\tthis.markDirty();\n\t\t\t\t});\n\t\t\t\tthis._disposers.push(this._targetDp);\n\t\t\t}\n\t\t}\n\n\t\tif (this.isPrivateDirty(\"orientation\")) {\n\t\t\tconst series = this.series;\n\t\t\tconst dataItem = this.dataItem as DataItem<ISankeyDataItem>;\n\t\t\tif (dataItem && series) {\n\t\t\t\tseries._updateLinkColor(dataItem);\n\t\t\t}\n\t\t}\n\n\t\tconst target = this.get(\"target\");\n\t\tconst source = this.get(\"source\");\n\n\t\tlet sourceNode: FlowNode | undefined;\n\t\tlet targetNode: FlowNode | undefined;\n\n\t\tif (source && target) {\n\t\t\tthis._clear = true;\n\t\t\tsourceNode = source.get(\"node\");\n\t\t\ttargetNode = target.get(\"node\");\n\n\t\t\tlet x0 = 0;\n\t\t\tlet x1 = 0;\n\t\t\tlet y0 = 0;\n\t\t\tlet y1 = 0;\n\n\t\t\tlet xt0 = 0;\n\t\t\tlet yt0 = 0;\n\n\t\t\tlet xt1 = 0;\n\t\t\tlet yt1 = 0;\n\n\t\t\tlet xb0 = 0;\n\t\t\tlet xb1 = 0;\n\n\t\t\tlet yb0 = 0;\n\t\t\tlet yb1 = 0;\n\n\t\t\tlet xm0 = 0;\n\t\t\tlet xm1 = 0;\n\n\t\t\tlet ym0 = 0;\n\t\t\tlet ym1 = 0;\n\n\t\t\tlet angle0 = 0;\n\t\t\tlet angle1 = 0;\n\n\n\t\t\tconst dataItem = this.dataItem as DataItem<ISankeyDataItem>;\n\t\t\tif (dataItem) {\n\t\t\t\tconst d3SankeyLink = dataItem.get(\"d3SankeyLink\");\n\t\t\t\tif (d3SankeyLink) {\n\n\t\t\t\t\tlet w = d3SankeyLink.width || 0;\n\n\t\t\t\t\tlet orientation = this.getPrivate(\"orientation\");\n\n\t\t\t\t\tif (orientation == \"vertical\") {\n\t\t\t\t\t\tif (sourceNode) {\n\t\t\t\t\t\t\ty0 = sourceNode.y() + sourceNode.get(\"dy\", 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (targetNode) {\n\t\t\t\t\t\t\ty1 = targetNode.y() + targetNode.get(\"dy\", 0);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tangle0 = 90;\n\t\t\t\t\t\tangle1 = 90;\n\n\t\t\t\t\t\tx0 = d3SankeyLink.y0 || 0;\n\t\t\t\t\t\tx1 = d3SankeyLink.y1 || 0;\n\n\t\t\t\t\t\tx0 += sourceNode.get(\"dx\", 0);\n\t\t\t\t\t\tx1 += targetNode.get(\"dx\", 0);\n\n\t\t\t\t\t\tif (y1 < y0) {\n\t\t\t\t\t\t\t[x0, x1] = [x1, x0];\n\t\t\t\t\t\t\t[y0, y1] = [y1, y0];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (source.get(\"unknown\")) {\n\t\t\t\t\t\t\tx0 = x1;\n\t\t\t\t\t\t\ty0 = y0 + (y1 - y0) / 2;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (target.get(\"unknown\")) {\n\t\t\t\t\t\t\tx1 = x0;\n\t\t\t\t\t\t\ty1 = y0 + (y1 - y0) / 2;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\txt0 = x0 - w / 2;\n\t\t\t\t\t\tyt0 = y0;\n\n\t\t\t\t\t\txt1 = x1 - w / 2;\n\t\t\t\t\t\tyt1 = y1;\n\n\t\t\t\t\t\txb0 = x0 + w / 2;\n\t\t\t\t\t\txb1 = x1 + w / 2;\n\n\t\t\t\t\t\tyb0 = y0;\n\t\t\t\t\t\tyb1 = y1;\n\n\t\t\t\t\t\txm0 = x0;\n\t\t\t\t\t\txm1 = x1;\n\n\t\t\t\t\t\tym0 = y0;\n\t\t\t\t\t\tym1 = y1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (sourceNode) {\n\t\t\t\t\t\t\tx0 = sourceNode.x() + sourceNode.get(\"dx\", 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (targetNode) {\n\t\t\t\t\t\t\tx1 = targetNode.x() + targetNode.get(\"dx\", 0);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ty0 = d3SankeyLink.y0 || 0;\n\t\t\t\t\t\ty1 = d3SankeyLink.y1 || 0;\n\n\t\t\t\t\t\ty0 += sourceNode.get(\"dy\", 0);\n\t\t\t\t\t\ty1 += targetNode.get(\"dy\", 0);\n\n\t\t\t\t\t\tif (x1 < x0) {\n\t\t\t\t\t\t\t[x0, x1] = [x1, x0];\n\t\t\t\t\t\t\t[y0, y1] = [y1, y0];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (source.get(\"unknown\")) {\n\t\t\t\t\t\t\ty0 = y1;\n\t\t\t\t\t\t\tx0 = x0 + (x1 - x0) / 2;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (target.get(\"unknown\")) {\n\t\t\t\t\t\t\ty1 = y0;\n\t\t\t\t\t\t\tx1 = x0 + (x1 - x0) / 2;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\txt0 = x0;\n\t\t\t\t\t\tyt0 = y0 - w / 2;\n\n\t\t\t\t\t\txt1 = x1;\n\t\t\t\t\t\tyt1 = y1 - w / 2;\n\n\t\t\t\t\t\txb0 = x0;\n\t\t\t\t\t\txb1 = x1;\n\n\t\t\t\t\t\tyb0 = y0 + w / 2;\n\t\t\t\t\t\tyb1 = y1 + w / 2;\n\n\t\t\t\t\t\txm0 = x0;\n\t\t\t\t\t\txm1 = x1;\n\n\t\t\t\t\t\tym0 = y0;\n\t\t\t\t\t\tym1 = y1;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($math.round(xt0, 3) == $math.round(xt1, 3)) {\n\t\t\t\t\t\txt1 += 0.01;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($math.round(yt0, 3) == $math.round(yt1, 3)) {\n\t\t\t\t\t\tyt1 += 0.01;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($math.round(xb0, 3) == $math.round(xb1, 3)) {\n\t\t\t\t\t\txb1 += 0.01;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($math.round(yb0, 3) == $math.round(yb1, 3)) {\n\t\t\t\t\t\tyb1 += 0.01;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet cpd = this.get(\"controlPointDistance\", 0.2);\n\t\t\t\t\tcpd = Math.min(0.4999, cpd);\n\n\t\t\t\t\tlet kxt0 = xt0 + (xt1 - xt0) * cpd * $math.cos(angle0);\n\t\t\t\t\tlet kyt0 = yt0 + (yt1 - yt0) * cpd * $math.sin(angle0);\n\n\t\t\t\t\tlet kxt1 = xt1 - (xt1 - xt0) * cpd * $math.cos(angle1);\n\t\t\t\t\tlet kyt1 = yt1 - (yt1 - yt0) * cpd * $math.sin(angle1);\n\n\t\t\t\t\tlet kxm0 = xm0 + (xm1 - xm0) * cpd * $math.cos(angle0);\n\t\t\t\t\tlet kym0 = ym0 + (ym1 - ym0) * cpd * $math.sin(angle0);\n\n\t\t\t\t\tlet kxm1 = xm1 - (xm1 - xm0) * cpd * $math.cos(angle1);\n\t\t\t\t\tlet kym1 = ym1 - (ym1 - ym0) * cpd * $math.sin(angle1);\n\n\t\t\t\t\tlet angle = $math.getAngle({ x: kxt0, y: kyt0 }, { x: kxt1, y: kyt1 });\n\n\t\t\t\t\tlet dx = (w / $math.cos(angle) - w) / $math.tan(angle) * $math.cos(angle0);\n\t\t\t\t\tlet dy = (w / $math.sin(angle) - w) * $math.tan(angle) * $math.sin(angle0);\n\n\t\t\t\t\tlet kxb0 = -dx / 2 + xb0 + (xb1 - xb0) * cpd * $math.cos(angle0);\n\t\t\t\t\tlet kyb0 = -dy / 2 + yb0 + (yb1 - yb0) * cpd * $math.sin(angle0);\n\n\t\t\t\t\tlet kxb1 = -dx / 2 + xb1 - (xb1 - xb0) * cpd * $math.cos(angle1);\n\t\t\t\t\tlet kyb1 = -dy / 2 + yb1 - (yb1 - yb0) * cpd * $math.sin(angle1);\n\n\t\t\t\t\tkxt0 += dx / 2;\n\t\t\t\t\tkyt0 += dy / 2;\n\n\t\t\t\t\tkxt1 += dx / 2;\n\t\t\t\t\tkyt1 += dy / 2;\n\n\t\t\t\t\tif (orientation == \"vertical\") {\n\t\t\t\t\t\tkyt0 = Math.min(yt1, Math.max(yt0 + 1, kyt0));\n\t\t\t\t\t\tkyb0 = Math.min(yb1, Math.max(yb0 + 1, kyb0));\n\n\t\t\t\t\t\tkyt1 = Math.max(yt0, Math.min(yt1 - 1, kyt1));\n\t\t\t\t\t\tkyb1 = Math.max(yb0, Math.min(yb1 - 1, kyb1));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tkxt0 = Math.min(xt1, Math.max(xt0 + 1, kxt0));\n\t\t\t\t\t\tkxb0 = Math.min(xb1, Math.max(xb0 + 1, kxb0));\n\n\t\t\t\t\t\tkxt1 = Math.max(xt0, Math.min(xt1 - 1, kxt1));\n\t\t\t\t\t\tkxb1 = Math.max(xb0, Math.min(xb1 - 1, kxb1));\n\t\t\t\t\t}\n\n\t\t\t\t\tlet segment = [[xt0, yt0, xb0, yb0], [kxt0, kyt0, kxb0, kyb0], [kxt1, kyt1, kxb1, kyb1], [xt1, yt1, xb1, yb1]];\n\n\t\t\t\t\tthis.set(\"draw\", (display) => {\n\t\t\t\t\t\tconst series = this.series!;\n\t\t\t\t\t\tseries._fillGenerator.context(display as any);\n\t\t\t\t\t\tseries._fillGenerator(segment as [number, number][]);\n\t\t\t\t\t})\n\n\t\t\t\t\tlet middleSegment = [[xm0, ym0], [kxm0, kym0], [kxm1, kym1], [xm1, ym1]];\n\n\t\t\t\t\tconst path = this.series!._strokeGenerator(middleSegment as [number, number][]);\n\n\t\t\t\t\tif (path) {\n\t\t\t\t\t\tthis._svgPath.setAttribute(\"d\", path);\n\t\t\t\t\t\tthis._totalLength = this._svgPath.getTotalLength();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.series && this.dataItem) {\n\t\t\tthis.series._positionBullets(this.dataItem as any);\n\t\t}\n\t}\n\n\tpublic getPoint(location: number): IOrientationPoint {\n\t\tif (this._svgPath) {\n\t\t\tif (this._svgPath.getAttribute(\"d\")) {\n\t\t\t\tlet p0 = this._svgPath.getPointAtLength(location * this._totalLength - 0.1);\n\t\t\t\tlet p1 = this._svgPath.getPointAtLength(location * this._totalLength + 0.1);\n\t\t\t\tlet p = this.toGlobal(this._svgPath.getPointAtLength(location * this._totalLength));\n\t\t\t\treturn { x: p.x, y: p.y, angle: $math.getAngle(p0, p1) };\n\t\t\t}\n\t\t}\n\t\treturn { x: 0, y: 0, angle: 0 }\n\t}\n\n\tpublic _getTooltipPoint(): IPoint {\n\t\treturn this.toLocal(super._getTooltipPoint());\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BreadcrumbBar.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/BreadcrumbBar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAEjE;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC;CAElB;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;CAC/D;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;CAC7D;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAE3C;;OAEG;IACI,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,KAAK;IAiB/D;;;;;;OAMG;IACH,SAAgB,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAQxC;IAEH,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA0D;IAElF,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC;IAE7C,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IAE3C,SAAS,CAAC,SAAS;IAOZ,QAAQ;
|
|
1
|
+
{"version":3,"file":"BreadcrumbBar.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/BreadcrumbBar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAEjE;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC;CAElB;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;CAC/D;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;CAC7D;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAE3C;;OAEG;IACI,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,KAAK;IAiB/D;;;;;;OAMG;IACH,SAAgB,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAQxC;IAEH,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA0D;IAElF,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC;IAE7C,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IAE3C,SAAS,CAAC,SAAS;IAOZ,QAAQ;IAmBf,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,SAAS;CAkB5E"}
|
|
@@ -53,19 +53,17 @@ export class BreadcrumbBar extends Container {
|
|
|
53
53
|
_changed() {
|
|
54
54
|
super._changed();
|
|
55
55
|
if (this.isDirty("series")) {
|
|
56
|
+
if (this._disposer) {
|
|
57
|
+
this._disposer.dispose();
|
|
58
|
+
this._disposer = undefined;
|
|
59
|
+
}
|
|
56
60
|
const series = this.get("series");
|
|
57
|
-
|
|
58
|
-
if (series != previous) {
|
|
61
|
+
if (series) {
|
|
59
62
|
this._disposer = series.events.on("dataitemselected", (event) => {
|
|
60
63
|
this._handleDataItem(event.dataItem);
|
|
61
64
|
});
|
|
65
|
+
this._handleDataItem(series.get("selectedDataItem"));
|
|
62
66
|
}
|
|
63
|
-
else if (previous) {
|
|
64
|
-
if (this._disposer) {
|
|
65
|
-
this._disposer.dispose();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
this._handleDataItem(series.get("selectedDataItem"));
|
|
69
67
|
}
|
|
70
68
|
}
|
|
71
69
|
_handleDataItem(dataItem) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BreadcrumbBar.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/BreadcrumbBar.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAA2D,MAAM,6BAA6B,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAiBhD;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAA5C;;QAsBC;;;;;;WAMG;QACa,WAAM,GAAwB,IAAI,CAAC,WAAW,CAAC,IAAI,YAAY,CAC9E,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAChB,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC5B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YACjF,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;gBAC5C,SAAS,EAAE,CAAC,YAAY,CAAC;aACzB,CAAC;SACF,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAC1B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"BreadcrumbBar.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/BreadcrumbBar.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { IDisposer } from \"../../core/util/Disposer\";\nimport type { Hierarchy, IHierarchyDataItem } from \"./Hierarchy\";\n\nimport { HierarchyDefaultTheme } from \"./HierarchyDefaultTheme\";\nimport { Container, IContainerPrivate, IContainerSettings, IContainerEvents } from \"../../core/render/Container\";\nimport { Label } from \"../../core/render/Label\";\nimport { RoundedRectangle } from \"../../core/render/RoundedRectangle\";\nimport { Template } from \"../../core/util/Template\";\nimport { ListTemplate } from \"../../core/util/List\";\n\nimport * as $utils from \"../../core/util/Utils\";\n\nexport interface IBreadcrumbBarSettings extends IContainerSettings {\n\n\t/**\n\t * A hierarchy series bar will use to build current selection path.\n\t */\n\tseries: Hierarchy;\n\n}\n\nexport interface IBreadcrumbBarPrivate extends IContainerPrivate {\n}\n\nexport interface IBreadcrumbBarEvents extends IContainerEvents {\n}\n\n/**\n * Creates a breadcrumb navigation control.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/breadcrumbs/} for more info\n * @important\n */\nexport class BreadcrumbBar extends Container {\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeLabel(dataItem: DataItem<IHierarchyDataItem>): Label {\n\t\tconst label = this.labels.make();\n\t\tlabel._setDataItem(dataItem);\n\t\tlabel.states.create(\"hover\", {});\n\t\tlabel.states.create(\"down\", {});\n\t\tlabel.events.on(\"click\", () => {\n\t\t\tconst series = this.get(\"series\");\n\t\t\tif (series) {\n\t\t\t\tseries.selectDataItem(dataItem);\n\t\t\t}\n\t\t});\n\n\t\tthis.labels.push(label);\n\n\t\treturn label;\n\t}\n\n\t/**\n\t * A list of labels in the bar.\n\t *\n\t * `labels.template` can be used to configure label apperance and behavior.\n\t *\n\t * @default new ListTemplate<Label>\n\t */\n\tpublic readonly labels: ListTemplate<Label> = this.addDisposer(new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Label._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.labels.template.get(\"themeTags\", []), [\"label\"]),\n\t\t\tbackground: RoundedRectangle.new(this._root, {\n\t\t\t\tthemeTags: [\"background\"]\n\t\t\t})\n\t\t}, [this.labels.template])\n\t));\n\n\tpublic static className: string = \"BreadcrumbBar\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([BreadcrumbBar.className]);\n\n\tdeclare public _settings: IBreadcrumbBarSettings;\n\tdeclare public _privateSettings: IBreadcrumbBarPrivate;\n\tdeclare public _events: IBreadcrumbBarEvents;\n\n\tprotected _disposer: IDisposer | undefined;\n\n\tprotected _afterNew() {\n\t\tthis._defaultThemes.push(HierarchyDefaultTheme.new(this._root));\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"breadcrumb\"]);\n\n\t\tsuper._afterNew();\n\t}\n\n\tpublic _changed() {\n\t\tsuper._changed();\n\t\tif (this.isDirty(\"series\")) {\n\t\t\tif (this._disposer) {\n\t\t\t\tthis._disposer.dispose();\n\t\t\t\tthis._disposer = undefined;\n\t\t\t}\n\n\t\t\tconst series = this.get(\"series\");\n\t\t\tif (series) {\n\t\t\t\tthis._disposer = series.events.on(\"dataitemselected\", (event) => {\n\t\t\t\t\tthis._handleDataItem(event.dataItem)\n\t\t\t\t})\n\n\t\t\t\tthis._handleDataItem(series.get(\"selectedDataItem\"));\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _handleDataItem(dataItem: DataItem<IHierarchyDataItem> | undefined) {\n\t\tthis.set(\"minHeight\", this.height());\n\t\tthis.children.clear();\n\t\tthis.labels.clear();\n\n\t\tif (dataItem) {\n\t\t\tlet parent = dataItem;\n\n\t\t\twhile (parent) {\n\t\t\t\tlet label = this.makeLabel(parent);\n\t\t\t\tif (parent == dataItem) {\n\t\t\t\t\tlabel.addTag(\"last\");\n\t\t\t\t}\n\t\t\t\tthis.children.moveValue(label, 0);\n\t\t\t\tparent = parent.get(\"parent\");\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForceDirected.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/ForceDirected.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { Percent } from \"../../core/util/Percent\";\nimport type { LinkedHierarchyNode } from \"./LinkedHierarchyNode\";\nimport type { HierarchyLink } from \"./HierarchyLink\";\nimport type * as d3Hierarchy from \"d3-hierarchy\";\n\nimport { LinkedHierarchy, ILinkedHierarchySettings, ILinkedHierarchyDataItem, ILinkedHierarchyPrivate, ILinkedHierarchyEvents } from \"./LinkedHierarchy\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $utils from \"../../core/util/Utils\";\nimport * as $type from \"../../core/util/Type\";\nimport * as d3Force from \"d3-force\";\n\n/**\n * @ignore\n */\nexport interface IForceDirectedDataObject {\n\tname?: string,\n\tvalue?: number,\n\tchildren?: IForceDirectedDataObject[],\n\tdataItem?: DataItem<IForceDirectedDataItem>\n};\n\nexport interface IForceDirectedDataItem extends ILinkedHierarchyDataItem {\n\n\t/**\n\t * An array of data items of child nodes.\n\t */\n\tchildren: Array<DataItem<IForceDirectedDataItem>>;\n\n\t/**\n\t * Data item of a parent node.\n\t */\n\tparent: DataItem<IForceDirectedDataItem>;\n\n\t/**\n\t * @ignore\n\t */\n\td3ForceNode: d3Force.SimulationNodeDatum;\n\n\t/**\n\t * X coordinate.\n\t */\n\tx: number | undefined;\n\n\t/**\n\t * Y coordinate.\n\t */\n\ty: number | undefined;\n}\n\nexport interface IForceDirectedSettings extends ILinkedHierarchySettings {\n\n\t/**\n\t * Minimum gap in pixels between the nodes.\n\t */\n\tnodePadding?: number;\n\n\t/**\n\t * A force that attracts (or pushes back) all nodes to the center of the\n\t * chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default 0.5\n\t */\n\tcenterStrength?: number;\n\n\t/**\n\t * A force that attracts (or pushes back) all nodes to each other.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default -15\n\t */\n\tmanyBodyStrength?: number;\n\n\t/**\n\t * A force that attracts (or pushes back) nodes that are linked together\n\t * via `linkWithField`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default 0.5\n\t */\n\tlinkWithStrength?: number | undefined;\n\n\t/**\n\t * Resistance acting against node speed.\n\t *\n\t * The greater the value, the more \"sluggish\" the nodes will be.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default 0.5\n\t */\n\tvelocityDecay?: number;\n\n\t/**\n\t * Length of how long initial force simulation would run in frames.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default 500\n\t */\n\tinitialFrames?: number;\n\n\t/**\n\t * If set to a number will wait X number of frames before revealing\n\t * the tree.\n\t *\n\t * Can be used to hide initial animations where nodes settle into their\n\t * places.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default 10\n\t */\n\tshowOnFrame?: number;\n\n\t/**\n\t * Smallest possible radius for a node circle.\n\t *\n\t * Can be a fixed pixel value or percent relative to chart size.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Sizing_nodes} for more info\n\t * @default 1%\n\t */\n\tminRadius?: number | Percent;\n\n\t/**\n\t * Biggest possible radius for a node circle.\n\t *\n\t * Can be a fixed pixel value or percent relative to chart size.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Sizing_nodes} for more info\n\t * @default 8%\n\t */\n\tmaxRadius?: number | Percent;\n\n\t/**\n\t * Field in data that holds X coordinate of the node.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Fixed_nodes} for more info\n\t */\n\txField?: string;\n\n\t/**\n\t * Field in data that holds Y coordinate of the node.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Fixed_nodes} for more info\n\t */\n\tyField?: string;\n\n}\n\nexport interface IForceDirectedPrivate extends ILinkedHierarchyPrivate {\n}\n\nexport interface IForceDirectedEvents extends ILinkedHierarchyEvents {\n}\n\n/**\n * Creates a force-directed tree.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/} for more info\n * @important\n */\nexport class ForceDirected extends LinkedHierarchy {\n\n\tprotected _tag: string = \"forcedirected\";\n\n\t/**\n\t * @ignore\n\t */\n\tpublic readonly d3forceSimulation: d3Force.Simulation<{}, d3Force.SimulationLinkDatum<d3Force.SimulationNodeDatum>> = d3Force.forceSimulation();\n\n\t/**\n\t * @ignore\n\t */\n\tpublic readonly collisionForce: d3Force.ForceCollide<d3Force.SimulationNodeDatum> = d3Force.forceCollide(20);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic linkForce: d3Force.ForceLink<d3Force.SimulationNodeDatum, d3Force.SimulationLinkDatum<d3Force.SimulationNodeDatum>> = d3Force.forceLink();\n\n\tpublic static className: string = \"ForceDirected\";\n\tpublic static classNames: Array<string> = LinkedHierarchy.classNames.concat([ForceDirected.className]);\n\n\tdeclare public _settings: IForceDirectedSettings;\n\tdeclare public _privateSettings: IForceDirectedPrivate;\n\tdeclare public _dataItemSettings: IForceDirectedDataItem;\n\tdeclare public _events: IForceDirectedEvents;\n\n\tprotected _nodes: Array<any> = [];\n\tprotected _links: Array<any> = [];\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\n\t\tthis.d3forceSimulation.on(\"tick\", () => {\n\t\t\tthis._tick++;\n\t\t\tthis.updateNodePositions();\n\t\t});\n\t}\n\n\tprotected _tick: number = 0;\n\tprotected _nodesDirty: boolean = false;\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\t\tif (this.isDirty(\"showOnFrame\")) {\n\t\t\tconst showOnFrame = this.get(\"showOnFrame\");\n\t\t\tif (showOnFrame > this._tick) {\n\t\t\t\tthis.nodesContainer.setPrivate(\"visible\", false);\n\t\t\t\tthis.linksContainer.setPrivate(\"visible\", false);\n\t\t\t}\n\t\t}\n\n\t\tconst d3forceSimulation = this.d3forceSimulation;\n\n\t\tif (this.isDirty(\"velocityDecay\")) {\n\t\t\td3forceSimulation.velocityDecay(this.get(\"velocityDecay\", 0));\n\t\t}\n\n\t\tif (this.isDirty(\"initialFrames\")) {\n\t\t\td3forceSimulation.alphaDecay(1 - Math.pow(0.001, 1 / this.get(\"initialFrames\", 500)));\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic restartSimulation(alpha: number): void {\n\t\tconst d3forceSimulation = this.d3forceSimulation;\n\t\tif (d3forceSimulation.alpha() < .25) {\n\t\t\td3forceSimulation.alpha(alpha);\n\t\t\td3forceSimulation.restart();\n\t\t}\n\t}\n\n\tpublic _handleRadiusChange() {\n\t\tthis._updateForces();\n\t}\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst d3ForceNode: any = { index: this._index, x: this.innerWidth() / 2, y: this.innerHeight() / 2, dataItem: dataItem };\n\t\tconst index = this._nodes.push(d3ForceNode) - 1;\n\t\td3ForceNode.index = index;\n\n\t\tthis.d3forceSimulation.nodes(this._nodes);\n\n\t\tdataItem.set(\"d3ForceNode\", d3ForceNode);\n\t\tsuper.processDataItem(dataItem);\n\n\t\tconst node = dataItem.get(\"node\");\n\t\tnode.set(\"x\", -10000);\n\t\tnode.on(\"scale\", () => {\n\t\t\tthis._updateForces();\n\t\t})\n\n\t\tnode.events.on(\"dragged\", () => {\n\t\t\td3ForceNode.fx = node.x();\n\t\t\td3ForceNode.fy = node.y();\n\t\t\tthis._updateForces();\n\t\t})\n\n\t\tnode.events.on(\"dragstop\", () => {\n\t\t\tif (dataItem.get(\"x\") == null) {\n\t\t\t\td3ForceNode.fx = undefined;\n\t\t\t}\n\t\t\tif (dataItem.get(\"y\") == null) {\n\t\t\t\td3ForceNode.fy = undefined;\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected _updateValues(d3HierarchyNode: d3Hierarchy.HierarchyNode<IForceDirectedDataObject>) {\n\t\tsuper._updateValues(d3HierarchyNode);\n\n\t\tthis._nodesDirty = true;\n\n\t\tconst d3forceSimulation = this.d3forceSimulation;\n\t\td3forceSimulation.force(\"collision\", this.collisionForce);\n\t\td3forceSimulation.nodes(this._nodes);\n\n\t\tthis.linkForce = d3Force.forceLink(this._links);\n\t\td3forceSimulation.force(\"link\", this.linkForce);\n\t}\n\n\tprotected _updateVisuals() {\n\t\tsuper._updateVisuals();\n\t\tthis.restartSimulation(.3);\n\t}\n\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\n\t\tconst d3forceSimulation = this.d3forceSimulation;\n\n\t\tif (this._sizeDirty) {\n\t\t\tlet w = Math.max(50, this.innerWidth());\n\t\t\tlet h = Math.max(50, this.innerHeight());\n\t\t\tlet pt = this.get(\"paddingTop\", 0);\n\t\t\tlet pl = this.get(\"paddingLeft\", 0);\n\n\t\t\tlet centerStrength = this.get(\"centerStrength\", 1);\n\n\t\t\td3forceSimulation.force(\"x\", d3Force.forceX().x(w / 2 + pl).strength(centerStrength * 100 / w));\n\t\t\td3forceSimulation.force(\"y\", d3Force.forceY().y(h / 2 + pt).strength(centerStrength * 100 / h));\n\t\t}\n\n\t\tif (this._nodesDirty) {\n\t\t\tthis._updateForces();\n\t\t}\n\t}\n\n\tpublic _updateForces() {\n\t\tconst d3forceSimulation = this.d3forceSimulation;\n\t\td3forceSimulation.force(\"manybody\", d3Force.forceManyBody().strength((d3node) => {\n\t\t\tlet dataItem = (d3node as any).dataItem;\n\t\t\tlet node = dataItem.get(\"node\") as LinkedHierarchyNode;\n\t\t\tlet circle = dataItem.get(\"circle\");\n\t\t\tlet manyBodyStrength = this.get(\"manyBodyStrength\", -15);\n\n\t\t\tif (circle) {\n\t\t\t\treturn circle.get(\"radius\", 1) * node.get(\"scale\", 1) * manyBodyStrength;\n\t\t\t}\n\t\t\treturn 0;\n\t\t}));\n\n\t\tthis.collisionForce.radius((d3node) => {\n\t\t\tlet dataItem = (d3node as any).dataItem;\n\t\t\tlet node = dataItem.get(\"node\") as LinkedHierarchyNode;\n\t\t\tlet circle = dataItem.get(\"circle\");\n\t\t\tlet outerCircle = dataItem.get(\"outerCircle\");\n\t\t\tif (circle && outerCircle) {\n\t\t\t\tlet radius = circle.get(\"radius\", 1);\n\n\t\t\t\tif (!outerCircle.isHidden()) {\n\t\t\t\t\tradius = radius * outerCircle.get(\"scale\", 1.1);\n\t\t\t\t}\n\n\t\t\t\tradius *= node.get(\"scale\", 1);\n\n\t\t\t\treturn radius + this.get(\"nodePadding\", 0);\n\t\t\t}\n\t\t})\n\t\tthis.restartSimulation(0.3);\n\t}\n\n\tprotected _animatePositions(_dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\t// void, do not remove\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._nodesDirty = false;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateNodePositions() {\n\t\tconst linkForce = this.linkForce;\n\t\tif (linkForce) {\n\t\t\tlinkForce.distance((linkDatum) => {\n\t\t\t\treturn this.getDistance(linkDatum)\n\t\t\t});\n\t\t\tlinkForce.strength((linkDatum) => {\n\t\t\t\treturn this.getStrength(linkDatum)\n\t\t\t});\n\t\t}\n\t\tif (this._tick == this.get(\"showOnFrame\")) {\n\t\t\tthis.nodesContainer.setPrivate(\"visible\", true);\n\t\t\tthis.linksContainer.setPrivate(\"visible\", true);\n\t\t}\n\n\t\tlet d3Nodes = this.d3forceSimulation.nodes();\n\n\t\t$array.each(d3Nodes, (d3Node: any) => {\n\t\t\tconst dataItem = d3Node.dataItem as DataItem<this[\"_dataItemSettings\"]>;\n\t\t\tconst node = dataItem.get(\"node\");\n\n\t\t\tnode.set(\"x\", d3Node.x);\n\t\t\tnode.set(\"y\", d3Node.y);\n\t\t})\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateLinkWith(dataItems: Array<DataItem<this[\"_dataItemSettings\"]>>) {\n\t\t$array.each(dataItems, (dataItem) => {\n\t\t\tconst linkWith = dataItem.get(\"linkWith\");\n\t\t\tif (linkWith) {\n\t\t\t\t$array.each(linkWith, (id) => {\n\t\t\t\t\tconst linkWithDataItem = this._getDataItemById(this.dataItems, id);\n\n\t\t\t\t\tif (linkWithDataItem) {\n\t\t\t\t\t\tthis.linkDataItems(dataItem, linkWithDataItem, this.get(\"linkWithStrength\"));\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst children = dataItem.get(\"children\");\n\t\t\tif (children) {\n\t\t\t\tthis.updateLinkWith(children);\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprotected getDistance(linkDatum: any) {\n\t\tlet sourceDataItem: DataItem<this[\"_dataItemSettings\"]> = <DataItem<this[\"_dataItemSettings\"]>>linkDatum.sourceDataItem;\n\t\tlet targetDataItem: DataItem<this[\"_dataItemSettings\"]> = <DataItem<this[\"_dataItemSettings\"]>>linkDatum.targetDataItem;\n\n\t\tlet distance = 0;\n\n\t\tif (sourceDataItem && targetDataItem) {\n\n\t\t\tconst targetNode = targetDataItem.get(\"node\");\n\t\t\tif (targetNode.isHidden()) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tlet link = linkDatum.link;\n\t\t\tif (link) {\n\t\t\t\tdistance = link.get(\"distance\", 1);\n\t\t\t}\n\n\t\t\tconst sourceNode = sourceDataItem.get(\"node\");\n\n\t\t\tif (targetNode.isHidden()) {\n\t\t\t\tdistance = 1;\n\t\t\t}\n\n\t\t\treturn (distance * (sourceDataItem.get(\"circle\").get(\"radius\", 1) * sourceNode.get(\"scale\", 1) + targetDataItem.get(\"circle\").get(\"radius\", 1) * targetNode.get(\"scale\", 1)));\n\t\t}\n\t\treturn distance;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprotected getStrength(linkDatum: any) {\n\t\tlet strength = 0;\n\n\t\tlet link = linkDatum.link;\n\t\tif (link) {\n\t\t\tstrength = link.get(\"strength\", 1);\n\t\t}\n\n\t\tconst targetDataItem = linkDatum.targetDataItem;\n\t\tstrength *= targetDataItem.get(\"node\").get(\"scale\");\n\n\t\treturn strength;\n\t}\n\n\tprotected _updateNode(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper._updateNode(dataItem);\n\t\tthis._updateRadius(dataItem);\n\n\t\tconst x = dataItem.get(\"x\");\n\t\tconst y = dataItem.get(\"y\");\n\n\t\tconst d3Node = dataItem.get(\"d3ForceNode\");\n\n\t\tif (x != null) {\n\t\t\t(d3Node as any).fx = $utils.relativeToValue(x, this.innerWidth());\n\t\t}\n\t\telse {\n\t\t\t(d3Node as any).fx = undefined;\n\t\t}\n\n\t\tif (y != null) {\n\t\t\t(d3Node as any).fy = $utils.relativeToValue(y, this.innerHeight());\n\t\t}\n\t\telse {\n\t\t\t(d3Node as any).fx = undefined;\n\t\t}\n\t}\n\n\tprotected _updateRadius(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tlet size = (this.innerWidth() + this.innerHeight()) / 2;\n\n\t\tlet minRadius = $utils.relativeToValue(this.get(\"minRadius\", 1), size);\n\t\tlet maxRadius = $utils.relativeToValue(this.get(\"maxRadius\", 5), size);\n\n\t\tlet valueWorking = dataItem.get(\"sum\");\n\n\t\tlet radius = maxRadius;\n\n\t\tconst min = this.getPrivate(\"valueLow\", 0);\n\t\tconst max = this.getPrivate(\"valueHigh\", 0);\n\n\t\tif (max > 0) {\n\t\t\tradius = minRadius + (valueWorking - min) / (max - min) * (maxRadius - minRadius);\n\t\t}\n\n\t\tif (!$type.isNumber(radius)) {\n\t\t\tradius = minRadius;\n\t\t}\n\n\t\tconst duration = this.get(\"animationDuration\", 0);\n\t\tconst easing = this.get(\"animationEasing\");\n\n\t\tdataItem.get(\"circle\").animate({ key: \"radius\", to: radius, duration: duration, easing: easing });\n\t}\n\n\tprotected _processLink(link: HierarchyLink, source: DataItem<this[\"_dataItemSettings\"]>, target: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst d3Link = { link: link, source: source.get(\"d3ForceNode\").index, target: target.get(\"d3ForceNode\").index, sourceDataItem: source, targetDataItem: target };\n\t\tthis._links.push(d3Link);\n\t\tlink.setPrivate(\"d3Link\", d3Link);\n\n\t\tthis.linkForce = d3Force.forceLink(this._links);\n\t\tthis.d3forceSimulation.force(\"link\", this.linkForce);\n\t\tthis.restartSimulation(0.5);\n\t}\n\n\tprotected _disposeLink(link: HierarchyLink) {\n\t\tsuper._disposeLink(link);\n\t\t$array.remove(this._links, link.getPrivate(\"d3Link\"));\n\t}\n\n\tprotected _handleUnlink() {\n\t\tthis.restartSimulation(0.5);\n\t}\n\n\tprotected _onDataClear() {\n\n\t\tsuper._onDataClear();\n\n\t\tthis._nodes = [];\n\t\tthis._links = [];\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ForceDirected.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/ForceDirected.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { Percent } from \"../../core/util/Percent\";\nimport type { LinkedHierarchyNode } from \"./LinkedHierarchyNode\";\nimport type { HierarchyLink } from \"./HierarchyLink\";\nimport type * as d3Hierarchy from \"d3-hierarchy\";\n\nimport { LinkedHierarchy, ILinkedHierarchySettings, ILinkedHierarchyDataItem, ILinkedHierarchyPrivate, ILinkedHierarchyEvents } from \"./LinkedHierarchy\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $utils from \"../../core/util/Utils\";\nimport * as $type from \"../../core/util/Type\";\nimport * as d3Force from \"d3-force\";\n\n/**\n * @ignore\n */\nexport interface IForceDirectedDataObject {\n\tname?: string,\n\tvalue?: number,\n\tchildren?: IForceDirectedDataObject[],\n\tdataItem?: DataItem<IForceDirectedDataItem>\n};\n\nexport interface IForceDirectedDataItem extends ILinkedHierarchyDataItem {\n\n\t/**\n\t * An array of data items of child nodes.\n\t */\n\tchildren: Array<DataItem<IForceDirectedDataItem>>;\n\n\t/**\n\t * Data item of a parent node.\n\t */\n\tparent: DataItem<IForceDirectedDataItem>;\n\n\t/**\n\t * @ignore\n\t */\n\td3ForceNode: d3Force.SimulationNodeDatum;\n\n\t/**\n\t * X coordinate.\n\t */\n\tx: number | undefined;\n\n\t/**\n\t * Y coordinate.\n\t */\n\ty: number | undefined;\n}\n\nexport interface IForceDirectedSettings extends ILinkedHierarchySettings {\n\n\t/**\n\t * Minimum gap in pixels between the nodes.\n\t */\n\tnodePadding?: number;\n\n\t/**\n\t * A force that attracts (or pushes back) all nodes to the center of the\n\t * chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default 0.5\n\t */\n\tcenterStrength?: number;\n\n\t/**\n\t * A force that attracts (or pushes back) all nodes to each other.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default -15\n\t */\n\tmanyBodyStrength?: number;\n\n\t/**\n\t * A force that attracts (or pushes back) nodes that are linked together\n\t * via `linkWithField`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default 0.5\n\t */\n\tlinkWithStrength?: number | undefined;\n\n\t/**\n\t * Resistance acting against node speed.\n\t *\n\t * The greater the value, the more \"sluggish\" the nodes will be.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default 0.5\n\t */\n\tvelocityDecay?: number;\n\n\t/**\n\t * Length of how long initial force simulation would run in frames.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default 500\n\t */\n\tinitialFrames?: number;\n\n\t/**\n\t * If set to a number will wait X number of frames before revealing\n\t * the tree.\n\t *\n\t * Can be used to hide initial animations where nodes settle into their\n\t * places.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Layout_and_force_simulation} for more info\n\t * @default 10\n\t */\n\tshowOnFrame?: number;\n\n\t/**\n\t * Smallest possible radius for a node circle.\n\t *\n\t * Can be a fixed pixel value or percent relative to chart size.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Sizing_nodes} for more info\n\t * @default 1%\n\t */\n\tminRadius?: number | Percent;\n\n\t/**\n\t * Biggest possible radius for a node circle.\n\t *\n\t * Can be a fixed pixel value or percent relative to chart size.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Sizing_nodes} for more info\n\t * @default 8%\n\t */\n\tmaxRadius?: number | Percent;\n\n\t/**\n\t * Field in data that holds X coordinate of the node.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Fixed_nodes} for more info\n\t */\n\txField?: string;\n\n\t/**\n\t * Field in data that holds Y coordinate of the node.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/#Fixed_nodes} for more info\n\t */\n\tyField?: string;\n\n}\n\nexport interface IForceDirectedPrivate extends ILinkedHierarchyPrivate {\n}\n\nexport interface IForceDirectedEvents extends ILinkedHierarchyEvents {\n}\n\n/**\n * Creates a force-directed tree.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/force-directed/} for more info\n * @important\n */\nexport class ForceDirected extends LinkedHierarchy {\n\n\tprotected _tag: string = \"forcedirected\";\n\n\t/**\n\t * @ignore\n\t */\n\tpublic readonly d3forceSimulation: d3Force.Simulation<{}, d3Force.SimulationLinkDatum<d3Force.SimulationNodeDatum>> = d3Force.forceSimulation();\n\n\t/**\n\t * @ignore\n\t */\n\tpublic readonly collisionForce: d3Force.ForceCollide<d3Force.SimulationNodeDatum> = d3Force.forceCollide(20);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic linkForce: d3Force.ForceLink<d3Force.SimulationNodeDatum, d3Force.SimulationLinkDatum<d3Force.SimulationNodeDatum>> = d3Force.forceLink();\n\n\tpublic static className: string = \"ForceDirected\";\n\tpublic static classNames: Array<string> = LinkedHierarchy.classNames.concat([ForceDirected.className]);\n\n\tdeclare public _settings: IForceDirectedSettings;\n\tdeclare public _privateSettings: IForceDirectedPrivate;\n\tdeclare public _dataItemSettings: IForceDirectedDataItem;\n\tdeclare public _events: IForceDirectedEvents;\n\n\tprotected _nodes: Array<any> = [];\n\tprotected _links: Array<any> = [];\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\n\t\tthis.d3forceSimulation.on(\"tick\", () => {\n\t\t\tthis._tick++;\n\t\t\tthis.updateNodePositions();\n\t\t});\n\t}\n\n\tprotected _tick: number = 0;\n\tprotected _nodesDirty: boolean = false;\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\t\tif (this.isDirty(\"showOnFrame\")) {\n\t\t\tconst showOnFrame = this.get(\"showOnFrame\");\n\t\t\tif (showOnFrame > this._tick) {\n\t\t\t\tthis.nodesContainer.setPrivate(\"visible\", false);\n\t\t\t\tthis.linksContainer.setPrivate(\"visible\", false);\n\t\t\t}\n\t\t}\n\n\t\tconst d3forceSimulation = this.d3forceSimulation;\n\n\t\tif (this.isDirty(\"velocityDecay\")) {\n\t\t\td3forceSimulation.velocityDecay(this.get(\"velocityDecay\", 0));\n\t\t}\n\n\t\tif (this.isDirty(\"initialFrames\")) {\n\t\t\td3forceSimulation.alphaDecay(1 - Math.pow(0.001, 1 / this.get(\"initialFrames\", 500)));\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic restartSimulation(alpha: number): void {\n\t\tconst d3forceSimulation = this.d3forceSimulation;\n\t\tif (d3forceSimulation.alpha() < .25) {\n\t\t\td3forceSimulation.alpha(alpha);\n\t\t\td3forceSimulation.restart();\n\t\t}\n\t}\n\n\tpublic _handleRadiusChange() {\n\t\tthis._updateForces();\n\t}\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst d3ForceNode: any = { index: this._index, x: this.innerWidth() / 2, y: this.innerHeight() / 2, dataItem: dataItem };\n\t\tconst index = this._nodes.push(d3ForceNode) - 1;\n\t\td3ForceNode.index = index;\n\n\t\tthis.d3forceSimulation.nodes(this._nodes);\n\n\t\tdataItem.set(\"d3ForceNode\", d3ForceNode);\n\t\tsuper.processDataItem(dataItem);\n\n\t\tconst node = dataItem.get(\"node\");\n\t\tnode.set(\"x\", -10000);\n\t\tnode.on(\"scale\", () => {\n\t\t\tthis._updateForces();\n\t\t})\n\n\t\tnode.events.on(\"dragged\", () => {\n\t\t\td3ForceNode.fx = node.x();\n\t\t\td3ForceNode.fy = node.y();\n\t\t\tthis._updateForces();\n\t\t})\n\n\t\tnode.events.on(\"dragstop\", () => {\n\t\t\tif (dataItem.get(\"x\") == null) {\n\t\t\t\td3ForceNode.fx = undefined;\n\t\t\t}\n\t\t\tif (dataItem.get(\"y\") == null) {\n\t\t\t\td3ForceNode.fy = undefined;\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected _updateValues(d3HierarchyNode: d3Hierarchy.HierarchyNode<IForceDirectedDataObject>) {\n\t\tsuper._updateValues(d3HierarchyNode);\n\n\t\tthis._nodesDirty = true;\n\n\t\tconst d3forceSimulation = this.d3forceSimulation;\n\t\td3forceSimulation.force(\"collision\", this.collisionForce);\n\t\td3forceSimulation.nodes(this._nodes);\n\n\t\tthis.linkForce = d3Force.forceLink(this._links);\n\t\td3forceSimulation.force(\"link\", this.linkForce);\n\t}\n\n\tprotected _updateVisuals() {\n\t\tsuper._updateVisuals();\n\t\tthis.restartSimulation(.3);\n\t}\n\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\n\t\tconst d3forceSimulation = this.d3forceSimulation;\n\n\t\tif (this._sizeDirty) {\n\t\t\tlet w = Math.max(50, this.innerWidth());\n\t\t\tlet h = Math.max(50, this.innerHeight());\n\t\t\tlet pt = this.get(\"paddingTop\", 0);\n\t\t\tlet pl = this.get(\"paddingLeft\", 0);\n\n\t\t\tlet centerStrength = this.get(\"centerStrength\", 1);\n\n\t\t\td3forceSimulation.force(\"x\", d3Force.forceX().x(w / 2 + pl).strength(centerStrength * 100 / w));\n\t\t\td3forceSimulation.force(\"y\", d3Force.forceY().y(h / 2 + pt).strength(centerStrength * 100 / h));\n\t\t}\n\n\t\tif (this._nodesDirty) {\n\t\t\tthis._updateForces();\n\t\t}\n\t}\n\n\tpublic _updateForces() {\n\t\tconst d3forceSimulation = this.d3forceSimulation;\n\t\td3forceSimulation.force(\"manybody\", d3Force.forceManyBody().strength((d3node) => {\n\t\t\tlet dataItem = (d3node as any).dataItem;\n\t\t\tlet node = dataItem.get(\"node\") as LinkedHierarchyNode;\n\t\t\tlet circle = dataItem.get(\"circle\");\n\t\t\tlet manyBodyStrength = this.get(\"manyBodyStrength\", -15);\n\n\t\t\tif (circle) {\n\t\t\t\treturn circle.get(\"radius\", 1) * node.get(\"scale\", 1) * manyBodyStrength;\n\t\t\t}\n\t\t\treturn 0;\n\t\t}));\n\n\t\tthis.collisionForce.radius((d3node) => {\n\t\t\tlet dataItem = (d3node as any).dataItem;\n\t\t\tlet node = dataItem.get(\"node\") as LinkedHierarchyNode;\n\t\t\tlet circle = dataItem.get(\"circle\");\n\t\t\tlet outerCircle = dataItem.get(\"outerCircle\");\n\t\t\tif (circle && outerCircle) {\n\t\t\t\tlet radius = circle.get(\"radius\", 1);\n\n\t\t\t\tif (!outerCircle.isHidden()) {\n\t\t\t\t\tradius = radius * outerCircle.get(\"scale\", 1.1);\n\t\t\t\t}\n\n\t\t\t\tradius *= node.get(\"scale\", 1);\n\n\t\t\t\treturn radius + this.get(\"nodePadding\", 0);\n\t\t\t}\n\t\t})\n\t\tthis.restartSimulation(0.3);\n\t}\n\n\tprotected _animatePositions(_dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\t// void, do not remove\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._nodesDirty = false;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateNodePositions() {\n\t\tconst linkForce = this.linkForce;\n\t\tif (linkForce) {\n\t\t\tlinkForce.distance((linkDatum) => {\n\t\t\t\treturn this.getDistance(linkDatum)\n\t\t\t});\n\t\t\tlinkForce.strength((linkDatum) => {\n\t\t\t\treturn this.getStrength(linkDatum)\n\t\t\t});\n\t\t}\n\t\tif (this._tick == this.get(\"showOnFrame\")) {\n\t\t\tthis.nodesContainer.setPrivate(\"visible\", true);\n\t\t\tthis.linksContainer.setPrivate(\"visible\", true);\n\t\t}\n\n\t\tlet d3Nodes = this.d3forceSimulation.nodes();\n\n\t\t$array.each(d3Nodes, (d3Node: any) => {\n\t\t\tconst dataItem = d3Node.dataItem as DataItem<this[\"_dataItemSettings\"]>;\n\t\t\tconst node = dataItem.get(\"node\");\n\n\t\t\tnode.set(\"x\", d3Node.x);\n\t\t\tnode.set(\"y\", d3Node.y);\n\t\t})\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateLinkWith(dataItems: Array<DataItem<this[\"_dataItemSettings\"]>>) {\n\t\t$array.each(dataItems, (dataItem) => {\n\t\t\tconst linkWith = dataItem.get(\"linkWith\");\n\t\t\tif (linkWith) {\n\t\t\t\t$array.each(linkWith, (id) => {\n\t\t\t\t\tconst linkWithDataItem = this._getDataItemById(this.dataItems, id);\n\n\t\t\t\t\tif (linkWithDataItem) {\n\t\t\t\t\t\tthis.linkDataItems(dataItem, linkWithDataItem, this.get(\"linkWithStrength\"));\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst children = dataItem.get(\"children\");\n\t\t\tif (children) {\n\t\t\t\tthis.updateLinkWith(children);\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprotected getDistance(linkDatum: any) {\n\t\tlet sourceDataItem: DataItem<this[\"_dataItemSettings\"]> = <DataItem<this[\"_dataItemSettings\"]>>linkDatum.sourceDataItem;\n\t\tlet targetDataItem: DataItem<this[\"_dataItemSettings\"]> = <DataItem<this[\"_dataItemSettings\"]>>linkDatum.targetDataItem;\n\n\t\tlet distance = 0;\n\n\t\tif (sourceDataItem && targetDataItem) {\n\n\t\t\tconst targetNode = targetDataItem.get(\"node\");\n\t\t\tif (targetNode.isHidden()) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tlet link = linkDatum.link;\n\t\t\tif (link) {\n\t\t\t\tdistance = link.get(\"distance\", 1);\n\t\t\t}\n\n\t\t\tconst sourceNode = sourceDataItem.get(\"node\");\n\n\t\t\tif (targetNode.isHidden()) {\n\t\t\t\tdistance = 1;\n\t\t\t}\n\n\t\t\treturn (distance * (sourceDataItem.get(\"circle\").get(\"radius\", 1) * sourceNode.get(\"scale\", 1) + targetDataItem.get(\"circle\").get(\"radius\", 1) * targetNode.get(\"scale\", 1)));\n\t\t}\n\t\treturn distance;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprotected getStrength(linkDatum: any) {\n\t\tlet strength = 0;\n\n\t\tlet link = linkDatum.link;\n\t\tif (link) {\n\t\t\tstrength = link.get(\"strength\", 1);\n\t\t}\n\n\t\tconst targetDataItem = linkDatum.targetDataItem;\n\t\tstrength *= targetDataItem.get(\"node\").get(\"scale\");\n\n\t\treturn strength;\n\t}\n\n\tprotected _updateNode(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper._updateNode(dataItem);\n\t\tthis._updateRadius(dataItem);\n\n\t\tconst x = dataItem.get(\"x\");\n\t\tconst y = dataItem.get(\"y\");\n\n\t\tconst d3Node = dataItem.get(\"d3ForceNode\");\n\n\t\tif (x != null) {\n\t\t\t(d3Node as any).fx = $utils.relativeToValue(x, this.innerWidth());\n\t\t}\n\t\telse {\n\t\t\t(d3Node as any).fx = undefined;\n\t\t}\n\n\t\tif (y != null) {\n\t\t\t(d3Node as any).fy = $utils.relativeToValue(y, this.innerHeight());\n\t\t}\n\t\telse {\n\t\t\t(d3Node as any).fy = undefined;\n\t\t}\n\t}\n\n\tprotected _updateRadius(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tlet size = (this.innerWidth() + this.innerHeight()) / 2;\n\n\t\tlet minRadius = $utils.relativeToValue(this.get(\"minRadius\", 1), size);\n\t\tlet maxRadius = $utils.relativeToValue(this.get(\"maxRadius\", 5), size);\n\n\t\tlet valueWorking = dataItem.get(\"sum\");\n\n\t\tlet radius = maxRadius;\n\n\t\tconst min = this.getPrivate(\"valueLow\", 0);\n\t\tconst max = this.getPrivate(\"valueHigh\", 0);\n\n\t\tif (max > 0) {\n\t\t\tradius = minRadius + (valueWorking - min) / (max - min) * (maxRadius - minRadius);\n\t\t}\n\n\t\tif (!$type.isNumber(radius)) {\n\t\t\tradius = minRadius;\n\t\t}\n\n\t\tconst duration = this.get(\"animationDuration\", 0);\n\t\tconst easing = this.get(\"animationEasing\");\n\n\t\tdataItem.get(\"circle\").animate({ key: \"radius\", to: radius, duration: duration, easing: easing });\n\t}\n\n\tprotected _processLink(link: HierarchyLink, source: DataItem<this[\"_dataItemSettings\"]>, target: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst d3Link = { link: link, source: source.get(\"d3ForceNode\").index, target: target.get(\"d3ForceNode\").index, sourceDataItem: source, targetDataItem: target };\n\t\tthis._links.push(d3Link);\n\t\tlink.setPrivate(\"d3Link\", d3Link);\n\n\t\tthis.linkForce = d3Force.forceLink(this._links);\n\t\tthis.d3forceSimulation.force(\"link\", this.linkForce);\n\t\tthis.restartSimulation(0.5);\n\t}\n\n\tprotected _disposeLink(link: HierarchyLink) {\n\t\tsuper._disposeLink(link);\n\t\t$array.remove(this._links, link.getPrivate(\"d3Link\"));\n\t}\n\n\tprotected _handleUnlink() {\n\t\tthis.restartSimulation(0.5);\n\t}\n\n\tprotected _onDataClear() {\n\n\t\tsuper._onDataClear();\n\n\t\tthis._nodes = [];\n\t\tthis._links = [];\n\t}\n}\n"]}
|
|
@@ -4,6 +4,7 @@ import type { Bullet } from "../../core/render/Bullet";
|
|
|
4
4
|
import type { Root } from "../../core/Root";
|
|
5
5
|
import type { List } from "../../core/util/List";
|
|
6
6
|
import type { LinkedHierarchy } from "./LinkedHierarchy";
|
|
7
|
+
import type { IDisposer } from "../../core/util/Disposer";
|
|
7
8
|
import { Graphics, IGraphicsSettings, IGraphicsPrivate } from "../../core/render/Graphics";
|
|
8
9
|
export interface IHierarchyLinkSettings extends IGraphicsSettings {
|
|
9
10
|
/**
|
|
@@ -36,6 +37,8 @@ export declare class HierarchyLink extends Graphics {
|
|
|
36
37
|
static classNames: Array<string>;
|
|
37
38
|
bullets: Array<Bullet>;
|
|
38
39
|
series?: LinkedHierarchy;
|
|
40
|
+
protected _sourceDp?: IDisposer;
|
|
41
|
+
protected _targetDp?: IDisposer;
|
|
39
42
|
_handleBullets(bullets: List<(<D extends DataItem<IHierarchyDataItem>>(root: Root, source: D, target: D) => Bullet | undefined)>): void;
|
|
40
43
|
_changed(): void;
|
|
41
44
|
hide(duration?: number): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchyLink.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/HierarchyLink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"HierarchyLink.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/HierarchyLink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAI3F,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAEhE;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAEtC;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAElB;AAED,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC9D,MAAM,EAAE,GAAG,CAAC;CACZ;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IAC3B,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IAEvD,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAyD;IAEzF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAE5B,MAAM,CAAC,EAAE,eAAe,CAAC;IAEhC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAEzB,cAAc,CAAC,OAAO,EAAC,IAAI,EAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAC,CAAC,KAAK,MAAM,GAAG,SAAS,EAAC;IA2B5H,QAAQ;IA4CR,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM;IAYtB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM;IAYtB,cAAc;IA+BrB,SAAS,CAAC,QAAQ;CAOlB"}
|