@amcharts/amcharts5 5.1.4 → 5.1.7
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/Chord.d.ts.map +1 -1
- package/.internal/charts/flow/Chord.js +7 -0
- package/.internal/charts/flow/Chord.js.map +1 -1
- package/.internal/charts/flow/Flow.d.ts +11 -0
- package/.internal/charts/flow/Flow.d.ts.map +1 -1
- package/.internal/charts/flow/Flow.js +17 -5
- package/.internal/charts/flow/Flow.js.map +1 -1
- package/.internal/charts/flow/SankeyLink.d.ts +2 -0
- package/.internal/charts/flow/SankeyLink.d.ts.map +1 -1
- package/.internal/charts/flow/SankeyLink.js +8 -0
- package/.internal/charts/flow/SankeyLink.js.map +1 -1
- package/.internal/charts/hierarchy/ForceDirected.d.ts.map +1 -1
- package/.internal/charts/hierarchy/ForceDirected.js +1 -2
- package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
- package/.internal/charts/map/MapSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapSeries.js +7 -1
- package/.internal/charts/map/MapSeries.js.map +1 -1
- package/.internal/charts/radar/RadarCursor.d.ts.map +1 -1
- package/.internal/charts/radar/RadarCursor.js +6 -0
- package/.internal/charts/radar/RadarCursor.js.map +1 -1
- package/.internal/charts/xy/XYChart.d.ts +2 -2
- package/.internal/charts/xy/XYChart.d.ts.map +1 -1
- package/.internal/charts/xy/XYChart.js +29 -24
- package/.internal/charts/xy/XYChart.js.map +1 -1
- package/.internal/charts/xy/XYCursor.d.ts +7 -1
- package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
- package/.internal/charts/xy/XYCursor.js +7 -1
- package/.internal/charts/xy/XYCursor.js.map +1 -1
- package/.internal/charts/xy/axes/Axis.d.ts +3 -1
- package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/Axis.js +27 -6
- package/.internal/charts/xy/axes/Axis.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +19 -13
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +1 -0
- package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.js +21 -39
- package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/XYSeries.js +1 -0
- package/.internal/charts/xy/series/XYSeries.js.map +1 -1
- package/.internal/core/render/Scrollbar.d.ts +2 -0
- package/.internal/core/render/Scrollbar.d.ts.map +1 -1
- package/.internal/core/render/Scrollbar.js +10 -1
- package/.internal/core/render/Scrollbar.js.map +1 -1
- package/.internal/core/render/Sprite.d.ts.map +1 -1
- package/.internal/core/render/Sprite.js +2 -1
- package/.internal/core/render/Sprite.js.map +1 -1
- package/.internal/core/render/Tooltip.d.ts.map +1 -1
- package/.internal/core/render/Tooltip.js +14 -4
- package/.internal/core/render/Tooltip.js.map +1 -1
- package/.internal/core/util/DateFormatter.js +1 -1
- package/.internal/core/util/DateFormatter.js.map +1 -1
- package/.internal/core/util/Modal.d.ts.map +1 -1
- package/.internal/core/util/Modal.js +5 -3
- package/.internal/core/util/Modal.js.map +1 -1
- package/CHANGELOG.md +51 -11
- package/LICENSE +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/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/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/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/index.js +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/index.js +1 -1
- package/examples/javascript/xy-stock-comparing/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/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/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/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/index.ts +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/index.ts +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/locales/nb_NO.js +6 -6
- package/locales/nb_NO.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chord.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/Chord.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACvF,OAAO,EAAiB,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAa,MAAM,yBAAyB,CAAC;AAO7D,MAAM,WAAW,cAAe,SAAQ,aAAa;IAEpD;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC;IAEhB;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAEtC;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;CAEtC;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IAEpD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,MAAM,CAAA;CAE1C;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;CAClD;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;CAChD;AAED;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,IAAI;IAE9B,OAAc,SAAS,EAAE,MAAM,CAAW;IAC1C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA6C;IAEpF;;;;OAIG;IACH,SAAgB,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,CAG5C;IAEF;;;;OAIG;IACH,SAAgB,KAAK,EAAE,UAAU,CAAsD;IAExE,SAAS,EAAE,cAAc,CAAC;IAC1B,gBAAgB,EAAE,aAAa,CAAC;IAChC,iBAAiB,EAAE,cAAc,CAAC;IAClC,OAAO,EAAE,YAAY,CAAC;IAE9B,QAAQ,iCAAW;IACnB,YAAY,EAAE;QAAE,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE,CAAM;IACxL,OAAO,+CAAY;IAE1B,SAAS,CAAC,SAAS;IAOnB,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC;IAUzE;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,SAAS;IAUzE,SAAS,CAAC,WAAW,IAAI,MAAM,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"Chord.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/Chord.ts"],"names":[],"mappings":"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"}
|
|
@@ -122,6 +122,13 @@ var Chord = /** @class */ (function (_super) {
|
|
|
122
122
|
if (outgoingLink.get("target") === targetDataItem) {
|
|
123
123
|
value = outgoingLink.get("valueWorking");
|
|
124
124
|
}
|
|
125
|
+
var valueSum = _this.getPrivate("valueSum", 0);
|
|
126
|
+
var minSize = _this.get("minSize", 0);
|
|
127
|
+
if (value > 0 && minSize > 0) {
|
|
128
|
+
if (value < valueSum * minSize) {
|
|
129
|
+
value = valueSum * minSize;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
125
132
|
});
|
|
126
133
|
}
|
|
127
134
|
group.push(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chord.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/Chord.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { RadialLabel } from \"../../core/render/RadialLabel\";\n\nimport { Flow, IFlowSettings, IFlowDataItem, IFlowPrivate, IFlowEvents } from \"./Flow\";\nimport { chord, ribbon, RibbonGenerator, RibbonSubgroup, Ribbon } from \"d3-chord\";\nimport { ascending, descending } from \"d3\";\nimport { Template } from \"../../core/util/Template\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport { ChordNodes, IChordNodesDataItem } from \"./ChordNodes\";\nimport { ChordLink } from \"./ChordLink\";\nimport { Percent, p100, p50 } from \"../../core/util/Percent\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $utils from \"../../core/util/Utils\";\nimport * as $math from \"../../core/util/Math\";\n\n\nexport interface IChordDataItem extends IFlowDataItem {\n\n\t/**\n\t * A link element.\n\t */\n\tlink: ChordLink;\n\n\t/**\n\t * A label element.\n\t */\n\tlabel: RadialLabel;\n\n\t/**\n\t * Source node data item.\n\t */\n\tsource: DataItem<IChordNodesDataItem>;\n\n\t/**\n\t * Target node data item.\n\t */\n\ttarget: DataItem<IChordNodesDataItem>;\n\n}\n\nexport interface IChordSettings extends IFlowSettings {\n\n\t/**\n\t * Angle of a gap between each node, in degrees.\n\t *\n\t * @default 1\n\t */\n\tpadAngle?: number;\n\n\t/**\n\t * Radius of the diagram in percent or pixels.\n\t *\n\t * If set in percent, it will be relative to the whole area available for\n\t * the series.\n\t *\n\t * @default 90%\n\t */\n\tradius?: number | Percent;\n\n\t/**\n\t * The thickness of node strip in pixels.\n\t *\n\t * @default 10\n\t */\n\tnodeWidth?: number;\n\n\t/**\n\t * Starting angle in degrees.\n\t *\n\t * @default 0\n\t */\n\tstartAngle?: number;\n\n\t/**\n\t * How to sort nodes by their value.\n\t *\n\t * @default \"descending\"\n\t */\n\tsort?: \"ascending\" | \"descending\" | \"none\"\n\n}\n\nexport interface IChordPrivate extends IFlowPrivate {\n}\n\nexport interface IChordEvents extends IFlowEvents {\n}\n\n/**\n * Regular chord series.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more information\n * @important\n */\nexport class Chord extends Flow {\n\n\tpublic static className: string = \"Chord\";\n\tpublic static classNames: Array<string> = Flow.classNames.concat([Chord.className]);\n\n\t/**\n\t * List of link elements.\n\t *\n\t * @default new ListTemplate<ChordLink>\n\t */\n\tpublic readonly links: ListTemplate<ChordLink> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => ChordLink._new(this._root, { themeTags: [\"link\", \"shape\"] }, [this.links.template])\n\t);\n\n\t/**\n\t * A series for all chord nodes.\n\t *\n\t * @default ChordNodes.new()\n\t */\n\tpublic readonly nodes: ChordNodes = this.children.push(ChordNodes.new(this._root, {}));\n\n\tdeclare public _settings: IChordSettings;\n\tdeclare public _privateSettings: IChordPrivate;\n\tdeclare public _dataItemSettings: IChordDataItem;\n\tdeclare public _events: IChordEvents;\n\n\tpublic _d3chord = chord();\n\tpublic _chordLayout: { source: { index: number, startAngle: number, endAngle: number, value: number }, target: { index: number, startAngle: number, endAngle: number, value: number } }[] = [];\n\tpublic _ribbon = ribbon();\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"chord\"]);\n\t\tthis.linksContainer.setAll({ x: p50, y: p50 })\n\t\tthis.bulletsContainer.setAll({ x: p50, y: p50 });\n\t\tsuper._afterNew();\n\t}\n\n\tprotected _fixRibbon(ribbon: RibbonGenerator<any, Ribbon, RibbonSubgroup>) {\n\t\tribbon.startAngle((d) => {\n\t\t\treturn d.startAngle + this.get(\"startAngle\", 0) * $math.RADIANS + Math.PI / 2;\n\t\t})\n\n\t\tribbon.endAngle((d) => {\n\t\t\treturn d.endAngle + this.get(\"startAngle\", 0) * $math.RADIANS + Math.PI / 2;\n\t\t})\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeLink(dataItem: DataItem<this[\"_dataItemSettings\"]>): ChordLink {\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\t\tlink.series = this;\n\t\treturn link;\n\t}\n\n\tprotected _makeMatrix(): number[][] {\n\t\tconst matrix: number[][] = [];\n\t\t$array.each(this.nodes.dataItems, (sourceDataItem) => {\n\t\t\tconst group: number[] = [];\n\t\t\tmatrix.push(group);\n\t\t\tlet outgoing = sourceDataItem.get(\"outgoingLinks\");\n\n\t\t\t$array.each(this.nodes.dataItems, (targetDataItem) => {\n\t\t\t\tlet value = 0;\n\t\t\t\tif (outgoing) {\n\t\t\t\t\t$array.each(outgoing, (outgoingLink) => {\n\t\t\t\t\t\tif (outgoingLink.get(\"target\") === targetDataItem) {\n\t\t\t\t\t\t\tvalue = outgoingLink.get(\"valueWorking\");\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tgroup.push(value);\n\t\t\t})\n\t\t})\n\t\treturn matrix;\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tthis._fixRibbon(this._ribbon);\n\n\t\tlet chordChanged = false;\n\n\t\tif (this._valuesDirty || this._sizeDirty || this.isDirty(\"padAngle\") || this.isDirty(\"startAngle\")) {\n\n\t\t\tconst matrix = this._makeMatrix();\n\n\t\t\tthis._d3chord.padAngle(this.get(\"padAngle\", 0) * $math.RADIANS);\n\t\t\tconst sort = this.get(\"sort\");\n\n\t\t\tif (sort === \"ascending\") {\n\t\t\t\tthis._d3chord.sortGroups(ascending);\n\t\t\t}\n\t\t\telse if (sort === \"descending\") {\n\t\t\t\tthis._d3chord.sortGroups(descending);\n\t\t\t}\n/*\n\t\t\tthis._d3chord.sortSubgroups((a, b)=>{\n\t\t\t\tif (a != Math.round(a)) return false\n\t\t\t\tif (b != Math.round(b)) return true\n\t\t\t\treturn b < a ? -1 : b > a ? 1 : 0;\n\t\t\t})\n*/\n\t\t\tthis._chordLayout = this._d3chord(matrix);\n\n\t\t\tchordChanged = true;\n\t\t}\n\n\t\tif (chordChanged || this.isDirty(\"radius\") || this.isDirty(\"nodeWidth\")) {\n\t\t\tlet radius = $utils.relativeToValue(this.get(\"radius\", 0), Math.min(this.innerWidth(), this.innerHeight())) / 2;\n\n\t\t\tlet i = 0;\n\n\t\t\tconst chordStartAngle = this.get(\"startAngle\", 0);\n\t\t\tconst nodeWidth = this.get(\"nodeWidth\", 0);\n\n\t\t\t$array.each(this.nodes.dataItems, (dataItem) => {\n\t\t\t\tconst slice = dataItem.get(\"slice\");\n\t\t\t\tconst chordGroup = (this._chordLayout as any).groups[i];\n\t\t\t\tconst startAngle = chordGroup.startAngle * $math.DEGREES + chordStartAngle;\n\t\t\t\tconst endAngle = chordGroup.endAngle * $math.DEGREES + chordStartAngle;\n\t\t\t\tslice.setAll({ radius: radius, innerRadius: radius - nodeWidth, startAngle: startAngle as number, arc: endAngle - startAngle })\n\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tlabel.setAll({ labelAngle: startAngle + (endAngle - startAngle) / 2 });\n\t\t\t\tlabel.setPrivate(\"radius\", radius);\n\t\t\t\tlabel.setPrivate(\"innerRadius\", 0.1);\n\t\t\t\ti++;\n\t\t\t})\n\n\t\t\tconst linkRadius = radius - this.get(\"nodeWidth\", 0);\n\n\t\t\t$array.each(this._chordLayout, (chord) => {\n\n\t\t\t\tlet dataItem = this._linksByIndex[chord.source.index + \"_\" + chord.target.index];\n\n\t\t\t\tif (!dataItem) {\n\t\t\t\t\tdataItem = this._linksByIndex[chord.target.index + \"_\" + chord.source.index];\n\t\t\t\t}\n\n\t\t\t\tif (dataItem) {\n\t\t\t\t\tconst link = dataItem.get(\"link\");\n\t\t\t\t\tthis._getLinkPoints(link, linkRadius, chord);\n\t\t\t\t\tthis._updateLink(this._ribbon, link, linkRadius, chord);\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _getLinkPoints(link: ChordLink, linkRadius: number, chordLayoutItem: any) {\n\t\tconst source = chordLayoutItem.source;\n\t\tconst target = chordLayoutItem.target;\n\n\t\tconst chordStartAngle = this.get(\"startAngle\", 0) * $math.RADIANS;\n\n\t\tif (source && target) {\n\t\t\tconst startAngle0 = source.startAngle;\n\t\t\tconst endAngle0 = source.endAngle\n\t\t\tconst angle0 = startAngle0 + (endAngle0 - startAngle0) / 2 + chordStartAngle;\n\n\t\t\tconst startAngle1 = target.startAngle;\n\t\t\tconst endAngle1 = target.endAngle\n\t\t\tconst angle1 = startAngle1 + (endAngle1 - startAngle1) / 2 + chordStartAngle;\n\n\t\t\tlink._p0 = { x: linkRadius * Math.cos(angle0), y: linkRadius * Math.sin(angle0) };\n\t\t\tlink._p1 = { x: linkRadius * Math.cos(angle1), y: linkRadius * Math.sin(angle1) };\n\t\t}\n\t}\n\n\tprotected _updateLink(ribbon: RibbonGenerator<any, Ribbon, RibbonSubgroup>, link: ChordLink, linkRadius: number, chordLayoutItem: any) {\n\t\tif (chordLayoutItem) {\n\t\t\tribbon.sourceRadius($utils.relativeToValue(link.get(\"sourceRadius\", p100), linkRadius));\n\t\t\tribbon.targetRadius($utils.relativeToValue(link.get(\"targetRadius\", p100), linkRadius));\n\n\t\t\tlink.set(\"draw\", (display) => {\n\t\t\t\tribbon.context(display as any);\n\t\t\t\tribbon(chordLayoutItem);\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.disposeDataItem(dataItem);\n\t\tlet label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tlabel.dispose();\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Chord.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/Chord.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { RadialLabel } from \"../../core/render/RadialLabel\";\n\nimport { Flow, IFlowSettings, IFlowDataItem, IFlowPrivate, IFlowEvents } from \"./Flow\";\nimport { chord, ribbon, RibbonGenerator, RibbonSubgroup, Ribbon } from \"d3-chord\";\nimport { ascending, descending } from \"d3\";\nimport { Template } from \"../../core/util/Template\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport { ChordNodes, IChordNodesDataItem } from \"./ChordNodes\";\nimport { ChordLink } from \"./ChordLink\";\nimport { Percent, p100, p50 } from \"../../core/util/Percent\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $utils from \"../../core/util/Utils\";\nimport * as $math from \"../../core/util/Math\";\n\n\nexport interface IChordDataItem extends IFlowDataItem {\n\n\t/**\n\t * A link element.\n\t */\n\tlink: ChordLink;\n\n\t/**\n\t * A label element.\n\t */\n\tlabel: RadialLabel;\n\n\t/**\n\t * Source node data item.\n\t */\n\tsource: DataItem<IChordNodesDataItem>;\n\n\t/**\n\t * Target node data item.\n\t */\n\ttarget: DataItem<IChordNodesDataItem>;\n\n}\n\nexport interface IChordSettings extends IFlowSettings {\n\n\t/**\n\t * Angle of a gap between each node, in degrees.\n\t *\n\t * @default 1\n\t */\n\tpadAngle?: number;\n\n\t/**\n\t * Radius of the diagram in percent or pixels.\n\t *\n\t * If set in percent, it will be relative to the whole area available for\n\t * the series.\n\t *\n\t * @default 90%\n\t */\n\tradius?: number | Percent;\n\n\t/**\n\t * The thickness of node strip in pixels.\n\t *\n\t * @default 10\n\t */\n\tnodeWidth?: number;\n\n\t/**\n\t * Starting angle in degrees.\n\t *\n\t * @default 0\n\t */\n\tstartAngle?: number;\n\n\t/**\n\t * How to sort nodes by their value.\n\t *\n\t * @default \"descending\"\n\t */\n\tsort?: \"ascending\" | \"descending\" | \"none\"\n\n}\n\nexport interface IChordPrivate extends IFlowPrivate {\n}\n\nexport interface IChordEvents extends IFlowEvents {\n}\n\n/**\n * Regular chord series.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more information\n * @important\n */\nexport class Chord extends Flow {\n\n\tpublic static className: string = \"Chord\";\n\tpublic static classNames: Array<string> = Flow.classNames.concat([Chord.className]);\n\n\t/**\n\t * List of link elements.\n\t *\n\t * @default new ListTemplate<ChordLink>\n\t */\n\tpublic readonly links: ListTemplate<ChordLink> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => ChordLink._new(this._root, { themeTags: [\"link\", \"shape\"] }, [this.links.template])\n\t);\n\n\t/**\n\t * A series for all chord nodes.\n\t *\n\t * @default ChordNodes.new()\n\t */\n\tpublic readonly nodes: ChordNodes = this.children.push(ChordNodes.new(this._root, {}));\n\n\tdeclare public _settings: IChordSettings;\n\tdeclare public _privateSettings: IChordPrivate;\n\tdeclare public _dataItemSettings: IChordDataItem;\n\tdeclare public _events: IChordEvents;\n\n\tpublic _d3chord = chord();\n\tpublic _chordLayout: { source: { index: number, startAngle: number, endAngle: number, value: number }, target: { index: number, startAngle: number, endAngle: number, value: number } }[] = [];\n\tpublic _ribbon = ribbon();\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"chord\"]);\n\t\tthis.linksContainer.setAll({ x: p50, y: p50 })\n\t\tthis.bulletsContainer.setAll({ x: p50, y: p50 });\n\t\tsuper._afterNew();\n\t}\n\n\tprotected _fixRibbon(ribbon: RibbonGenerator<any, Ribbon, RibbonSubgroup>) {\n\t\tribbon.startAngle((d) => {\n\t\t\treturn d.startAngle + this.get(\"startAngle\", 0) * $math.RADIANS + Math.PI / 2;\n\t\t})\n\n\t\tribbon.endAngle((d) => {\n\t\t\treturn d.endAngle + this.get(\"startAngle\", 0) * $math.RADIANS + Math.PI / 2;\n\t\t})\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeLink(dataItem: DataItem<this[\"_dataItemSettings\"]>): ChordLink {\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\t\tlink.series = this;\n\t\treturn link;\n\t}\n\n\tprotected _makeMatrix(): number[][] {\n\t\tconst matrix: number[][] = [];\n\t\t$array.each(this.nodes.dataItems, (sourceDataItem) => {\n\t\t\tconst group: number[] = [];\n\t\t\tmatrix.push(group);\n\t\t\tlet outgoing = sourceDataItem.get(\"outgoingLinks\");\n\n\t\t\t$array.each(this.nodes.dataItems, (targetDataItem) => {\n\t\t\t\tlet value = 0;\n\t\t\t\tif (outgoing) {\n\t\t\t\t\t$array.each(outgoing, (outgoingLink) => {\n\t\t\t\t\t\tif (outgoingLink.get(\"target\") === targetDataItem) {\n\t\t\t\t\t\t\tvalue = outgoingLink.get(\"valueWorking\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet valueSum = this.getPrivate(\"valueSum\", 0);\n\t\t\t\t\t\tlet minSize = this.get(\"minSize\", 0);\n\t\t\t\t\t\tif(value > 0 && minSize > 0){\n\t\t\t\t\t\t\tif(value < valueSum * minSize){\n\t\t\t\t\t\t\t\tvalue = valueSum * minSize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\t\t\t\t\t\t\t\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tgroup.push(value);\n\t\t\t})\n\t\t})\n\t\treturn matrix;\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tthis._fixRibbon(this._ribbon);\n\n\t\tlet chordChanged = false;\n\n\t\tif (this._valuesDirty || this._sizeDirty || this.isDirty(\"padAngle\") || this.isDirty(\"startAngle\")) {\n\n\t\t\tconst matrix = this._makeMatrix();\n\n\t\t\tthis._d3chord.padAngle(this.get(\"padAngle\", 0) * $math.RADIANS);\n\t\t\tconst sort = this.get(\"sort\");\n\n\t\t\tif (sort === \"ascending\") {\n\t\t\t\tthis._d3chord.sortGroups(ascending);\n\t\t\t}\n\t\t\telse if (sort === \"descending\") {\n\t\t\t\tthis._d3chord.sortGroups(descending);\n\t\t\t}\n/*\n\t\t\tthis._d3chord.sortSubgroups((a, b)=>{\n\t\t\t\tif (a != Math.round(a)) return false\n\t\t\t\tif (b != Math.round(b)) return true\n\t\t\t\treturn b < a ? -1 : b > a ? 1 : 0;\n\t\t\t})\n*/\n\t\t\tthis._chordLayout = this._d3chord(matrix);\n\n\t\t\tchordChanged = true;\n\t\t}\n\n\t\tif (chordChanged || this.isDirty(\"radius\") || this.isDirty(\"nodeWidth\")) {\n\t\t\tlet radius = $utils.relativeToValue(this.get(\"radius\", 0), Math.min(this.innerWidth(), this.innerHeight())) / 2;\n\n\t\t\tlet i = 0;\n\n\t\t\tconst chordStartAngle = this.get(\"startAngle\", 0);\n\t\t\tconst nodeWidth = this.get(\"nodeWidth\", 0);\n\n\t\t\t$array.each(this.nodes.dataItems, (dataItem) => {\n\t\t\t\tconst slice = dataItem.get(\"slice\");\n\t\t\t\tconst chordGroup = (this._chordLayout as any).groups[i];\n\t\t\t\tconst startAngle = chordGroup.startAngle * $math.DEGREES + chordStartAngle;\n\t\t\t\tconst endAngle = chordGroup.endAngle * $math.DEGREES + chordStartAngle;\n\t\t\t\tslice.setAll({ radius: radius, innerRadius: radius - nodeWidth, startAngle: startAngle as number, arc: endAngle - startAngle })\n\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tlabel.setAll({ labelAngle: startAngle + (endAngle - startAngle) / 2 });\n\t\t\t\tlabel.setPrivate(\"radius\", radius);\n\t\t\t\tlabel.setPrivate(\"innerRadius\", 0.1);\n\t\t\t\ti++;\n\t\t\t})\n\n\t\t\tconst linkRadius = radius - this.get(\"nodeWidth\", 0);\n\n\t\t\t$array.each(this._chordLayout, (chord) => {\n\n\t\t\t\tlet dataItem = this._linksByIndex[chord.source.index + \"_\" + chord.target.index];\n\n\t\t\t\tif (!dataItem) {\n\t\t\t\t\tdataItem = this._linksByIndex[chord.target.index + \"_\" + chord.source.index];\n\t\t\t\t}\n\n\t\t\t\tif (dataItem) {\n\t\t\t\t\tconst link = dataItem.get(\"link\");\n\t\t\t\t\tthis._getLinkPoints(link, linkRadius, chord);\n\t\t\t\t\tthis._updateLink(this._ribbon, link, linkRadius, chord);\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _getLinkPoints(link: ChordLink, linkRadius: number, chordLayoutItem: any) {\n\t\tconst source = chordLayoutItem.source;\n\t\tconst target = chordLayoutItem.target;\n\n\t\tconst chordStartAngle = this.get(\"startAngle\", 0) * $math.RADIANS;\n\n\t\tif (source && target) {\n\t\t\tconst startAngle0 = source.startAngle;\n\t\t\tconst endAngle0 = source.endAngle\n\t\t\tconst angle0 = startAngle0 + (endAngle0 - startAngle0) / 2 + chordStartAngle;\n\n\t\t\tconst startAngle1 = target.startAngle;\n\t\t\tconst endAngle1 = target.endAngle\n\t\t\tconst angle1 = startAngle1 + (endAngle1 - startAngle1) / 2 + chordStartAngle;\n\n\t\t\tlink._p0 = { x: linkRadius * Math.cos(angle0), y: linkRadius * Math.sin(angle0) };\n\t\t\tlink._p1 = { x: linkRadius * Math.cos(angle1), y: linkRadius * Math.sin(angle1) };\n\t\t}\n\t}\n\n\tprotected _updateLink(ribbon: RibbonGenerator<any, Ribbon, RibbonSubgroup>, link: ChordLink, linkRadius: number, chordLayoutItem: any) {\n\t\tif (chordLayoutItem) {\n\t\t\tribbon.sourceRadius($utils.relativeToValue(link.get(\"sourceRadius\", p100), linkRadius));\n\t\t\tribbon.targetRadius($utils.relativeToValue(link.get(\"targetRadius\", p100), linkRadius));\n\n\t\t\tlink.set(\"draw\", (display) => {\n\t\t\t\tribbon.context(display as any);\n\t\t\t\tribbon(chordLayoutItem);\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.disposeDataItem(dataItem);\n\t\tlet label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tlabel.dispose();\n\t\t}\n\t}\n}\n"]}
|
|
@@ -66,6 +66,17 @@ export interface IFlowSettings extends ISeriesSettings {
|
|
|
66
66
|
* @default 10
|
|
67
67
|
*/
|
|
68
68
|
nodePadding?: number;
|
|
69
|
+
/**
|
|
70
|
+
* Minimum size of the node/link.
|
|
71
|
+
*
|
|
72
|
+
* It's a relative value to the sum of all values in the series. If set,
|
|
73
|
+
* this relative value will be used for small value nodes when calculating
|
|
74
|
+
* their size. For example, if it's set to `0.01`, small nodes will be
|
|
75
|
+
* sized like their value is 1% of the total sum of all values in series.
|
|
76
|
+
*
|
|
77
|
+
* @since 5.1.5
|
|
78
|
+
*/
|
|
79
|
+
minSize?: number;
|
|
69
80
|
}
|
|
70
81
|
export interface IFlowPrivate extends ISeriesPrivate {
|
|
71
82
|
valueSum?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Flow.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/Flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,KAAK,QAAQ,MAAM,WAAW,CAAC;AAG3C,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAMxD,MAAM,WAAW,aAAc,SAAQ,eAAe;IAErD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC;IAEZ;;OAEG;IACH,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAElG;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAErC;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAErC;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IAErD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Flow.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/Flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -146,7 +146,8 @@ var Flow = /** @class */ (function (_super) {
|
|
|
146
146
|
var nodes_1 = this.nodes;
|
|
147
147
|
if (nodes_1) {
|
|
148
148
|
$array.each(nodes_1.dataItems, function (dataItem) {
|
|
149
|
-
|
|
149
|
+
var d3SankeyNode = dataItem.get("d3SankeyNode");
|
|
150
|
+
_this._nodesData.push(d3SankeyNode);
|
|
150
151
|
var incoming = dataItem.get("incomingLinks");
|
|
151
152
|
var sumIncoming = 0;
|
|
152
153
|
var sumIncomingWorking = 0;
|
|
@@ -182,10 +183,6 @@ var Flow = /** @class */ (function (_super) {
|
|
|
182
183
|
$array.each(this.dataItems, function (dataItem) {
|
|
183
184
|
var value = dataItem.get("value");
|
|
184
185
|
if ($type.isNumber(value)) {
|
|
185
|
-
var valueWorking = dataItem.get("valueWorking");
|
|
186
|
-
var d3SankeyLink = { source: dataItem.get("source").get("d3SankeyNode"), target: dataItem.get("target").get("d3SankeyNode"), value: valueWorking };
|
|
187
|
-
dataItem.setRaw("d3SankeyLink", d3SankeyLink);
|
|
188
|
-
_this._linksData.push(d3SankeyLink);
|
|
189
186
|
if (value < valueLow) {
|
|
190
187
|
valueLow = value;
|
|
191
188
|
}
|
|
@@ -193,6 +190,21 @@ var Flow = /** @class */ (function (_super) {
|
|
|
193
190
|
valueHigh = value;
|
|
194
191
|
}
|
|
195
192
|
valueSum += value;
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
$array.each(this.dataItems, function (dataItem) {
|
|
196
|
+
var value = dataItem.get("value");
|
|
197
|
+
if ($type.isNumber(value)) {
|
|
198
|
+
var valueWorking = dataItem.get("valueWorking");
|
|
199
|
+
var minSize = _this.get("minSize", 0);
|
|
200
|
+
if (minSize > 0) {
|
|
201
|
+
if (valueWorking < minSize * valueSum) {
|
|
202
|
+
valueWorking = minSize * valueSum;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
var d3SankeyLink = { source: dataItem.get("source").get("d3SankeyNode"), target: dataItem.get("target").get("d3SankeyNode"), value: valueWorking };
|
|
206
|
+
dataItem.setRaw("d3SankeyLink", d3SankeyLink);
|
|
207
|
+
_this._linksData.push(d3SankeyLink);
|
|
196
208
|
_this.updateLegendValue(dataItem);
|
|
197
209
|
}
|
|
198
210
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Flow.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/Flow.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { Color } from \"../../core/util/Color\";\nimport type { FlowLink } from \"./FlowLink\";\nimport type { FlowNodes, IFlowNodesDataItem } from \"./FlowNodes\";\nimport type { ListTemplate } from \"../../core/util/List\";\nimport type { Bullet } from \"../../core/render/Bullet\";\nimport type * as d3sankey from \"d3-sankey\";\n\nimport { FlowDefaultTheme } from \"./FlowDefaultTheme\";\nimport { Series, ISeriesSettings, ISeriesDataItem, ISeriesPrivate, ISeriesEvents } from \"../../core/render/Series\";\nimport { Container } from \"../../core/render/Container\";\nimport { LinearGradient } from \"../../core/render/gradients/LinearGradient\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\n\nexport interface IFlowDataItem extends ISeriesDataItem {\n\n\t/**\n\t * Link value.\n\t */\n\tvalue: number;\n\n\t/**\n\t * @ignore\n\t */\n\tvalueWorking: number;\n\n\t/**\n\t * Associated link element.\n\t */\n\tlink: FlowLink;\n\n\t/**\n\t * Link's color.\n\t */\n\tfill: Color;\n\n\t/**\n\t * @ignore\n\t */\n\td3SankeyLink: d3sankey.SankeyLink<d3sankey.SankeyExtraProperties, d3sankey.SankeyExtraProperties>;\n\n\t/**\n\t * An ID of the target node.\n\t */\n\ttargetId: string;\n\n\t/**\n\t * An ID of the source node.\n\t */\n\tsourceId: string;\n\n\t/**\n\t * A data item of the source node.\n\t */\n\tsource: DataItem<IFlowNodesDataItem>;\n\n\t/**\n\t * A data item of the target node.\n\t */\n\ttarget: DataItem<IFlowNodesDataItem>;\n\n}\n\nexport interface IFlowSettings extends ISeriesSettings {\n\n\t/**\n\t * A field in data which holds source node ID.\n\t */\n\tsourceIdField?: string;\n\n\t/**\n\t * A field in data which holds target node ID.\n\t */\n\ttargetIdField?: string;\n\n\t/**\n\t * The thickness of node strip in pixels.\n\t *\n\t * @default 10\n\t */\n\tnodeWidth?: number;\n\n\t/**\n\t * Minimum gap between adjacent nodes.\n\t *\n\t * @default 10\n\t */\n\tnodePadding?: number;\n\n}\n\nexport interface IFlowPrivate extends ISeriesPrivate {\n\tvalueSum?: number;\n\tvalueLow?: number;\n\tvalueHigh?: number;\n}\n\nexport interface IFlowEvents extends ISeriesEvents {\n}\n\n/**\n * A base class for all flow type series: [[Sankey]] and [[Chord]].\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more info\n */\nexport abstract class Flow extends Series {\n\tpublic static className: string = \"Flow\";\n\tpublic static classNames: Array<string> = Series.classNames.concat([Flow.className]);\n\n\tdeclare public _settings: IFlowSettings;\n\tdeclare public _privateSettings: IFlowPrivate;\n\tdeclare public _dataItemSettings: IFlowDataItem;\n\tdeclare public _events: IFlowEvents;\n\n\t/**\n\t * @ignore\n\t */\n\tdeclare public readonly nodes: FlowNodes;\n\n\t/**\n\t * Container series will place their links in.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly linksContainer = this.children.push(Container.new(this._root, {}));\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract readonly links: ListTemplate<FlowLink>;\n\n\tprotected _nodesData: d3sankey.SankeyNodeMinimal<{}, {}>[] = [];\n\tprotected _linksData: { source: d3sankey.SankeyNodeMinimal<{}, {}>, target: d3sankey.SankeyNodeMinimal<{}, {}>, value: number }[] = [];\n\tprotected _index = 0;\n\n\tprotected _linksByIndex: { [index: string]: any } = {};\n\tprotected _afterNew() {\n\t\tthis._defaultThemes.push(FlowDefaultTheme.new(this._root));\n\n\t\tthis.fields.push(\"disabled\", \"sourceId\", \"targetId\");\n\n\t\tif (this.nodes) {\n\t\t\tthis.nodes.flow = this;\n\t\t}\n\n\t\tsuper._afterNew();\n\n\t\tthis.children.push(this.bulletsContainer);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract makeLink(dataItem: DataItem<this[\"_dataItemSettings\"]>): FlowLink;\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.processDataItem(dataItem);\n\n\t\tconst nodes = this.nodes;\n\t\tif (nodes) {\n\t\t\tlet unknown = false;\n\t\t\tlet sourceId = dataItem.get(\"sourceId\");\n\t\t\tlet sourceDataItem = nodes.getDataItemById(sourceId);\n\n\t\t\tif (!sourceDataItem) {\n\t\t\t\tif (sourceId == null) {\n\t\t\t\t\tsourceId = \"undefined\" + this._index;\n\t\t\t\t\tthis._index++;\n\t\t\t\t\tunknown = true;\n\t\t\t\t}\n\t\t\t\tnodes.data.push({ id: sourceId, unknown: unknown });\n\t\t\t\tsourceDataItem = nodes.getDataItemById(sourceId)!;\n\t\t\t\tif (!unknown) {\n\t\t\t\t\tsourceDataItem.set(\"name\", sourceId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tunknown = false;\n\t\t\tlet targetId = dataItem.get(\"targetId\");\n\n\t\t\tlet targetDataItem = nodes.getDataItemById(targetId);\n\t\t\tif (!targetDataItem) {\n\t\t\t\tif (targetId == null) {\n\t\t\t\t\ttargetId = \"undefined\" + this._index;\n\t\t\t\t\tthis._index++;\n\t\t\t\t\tunknown = true;\n\t\t\t\t}\n\n\t\t\t\tnodes.data.push({ id: targetId, unknown: unknown });\n\t\t\t\ttargetDataItem = nodes.getDataItemById(targetId)!;\n\t\t\t\tif (!unknown) {\n\t\t\t\t\ttargetDataItem.set(\"name\", targetId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (sourceDataItem) {\n\t\t\t\tdataItem.set(\"source\", sourceDataItem);\n\t\t\t\tnodes.addOutgoingLink(sourceDataItem, dataItem);\n\t\t\t}\n\n\t\t\tif (targetDataItem) {\n\t\t\t\tdataItem.set(\"target\", targetDataItem);\n\t\t\t\tnodes.addincomingLink(targetDataItem, dataItem);\n\t\t\t}\n\n\t\t\tdataItem.set(\"link\", this.makeLink(dataItem));\n\n\t\t\tconst sourceIndex = this.nodes.dataItems.indexOf(sourceDataItem);\n\t\t\tconst targetIndex = this.nodes.dataItems.indexOf(targetDataItem);\n\n\t\t\tthis._linksByIndex[sourceIndex + \"_\" + targetIndex] = dataItem;\n\n\t\t\tif (sourceDataItem.get(\"unknown\")) {\n\t\t\t\tif (targetDataItem) {\n\t\t\t\t\tsourceDataItem.set(\"fill\", targetDataItem.get(\"fill\"));\n\t\t\t\t}\n\n\t\t\t\tdataItem.get(\"link\").set(\"fillStyle\", \"gradient\");\n\t\t\t}\n\n\n\t\t\tif (targetDataItem.get(\"unknown\")) {\n\t\t\t\tif (sourceDataItem) {\n\t\t\t\t\ttargetDataItem.set(\"fill\", sourceDataItem.get(\"fill\"));\n\t\t\t\t}\n\n\t\t\t\tdataItem.get(\"link\").set(\"fillStyle\", \"gradient\");\n\t\t\t}\n\n\t\t\tthis._updateLinkColor(dataItem);\n\t\t}\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tlet valueLow = Infinity;\n\t\tlet valueHigh = -Infinity;\n\t\tlet valueSum = 0;\n\n\t\tif (this._valuesDirty) {\n\t\t\tthis._nodesData = [];\n\t\t\tconst nodes = this.nodes;\n\t\t\tif (nodes) {\n\t\t\t\t$array.each(nodes.dataItems, (dataItem) => {\n\t\t\t\t\tthis._nodesData.push(dataItem.get(\"d3SankeyNode\"));\n\n\t\t\t\t\tconst incoming = dataItem.get(\"incomingLinks\")\n\n\t\t\t\t\tlet sumIncoming = 0;\n\t\t\t\t\tlet sumIncomingWorking = 0;\n\t\t\t\t\tif (incoming) {\n\t\t\t\t\t\t$array.each(incoming, (link) => {\n\t\t\t\t\t\t\tconst value = link.get(\"value\");\n\t\t\t\t\t\t\tconst workingValue = link.get(\"valueWorking\");\n\t\t\t\t\t\t\tsumIncoming += value;\n\t\t\t\t\t\t\tsumIncomingWorking += workingValue;\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\tdataItem.set(\"sumIncoming\", sumIncoming);\n\t\t\t\t\tdataItem.set(\"sumIncomingWorking\", sumIncomingWorking);\n\n\t\t\t\t\tconst outgoing = dataItem.get(\"outgoingLinks\")\n\t\t\t\t\tlet sumOutgoing = 0;\n\t\t\t\t\tlet sumOutgoingWorking = 0;\n\t\t\t\t\tif (outgoing) {\n\t\t\t\t\t\t$array.each(outgoing, (link) => {\n\t\t\t\t\t\t\tconst value = link.get(\"value\");\n\t\t\t\t\t\t\tconst workingValue = link.get(\"valueWorking\");\n\t\t\t\t\t\t\tsumOutgoing += value;\n\t\t\t\t\t\t\tsumOutgoingWorking += workingValue;\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\tdataItem.set(\"sumOutgoing\", sumOutgoing);\n\t\t\t\t\tdataItem.set(\"sumOutgoingWorking\", sumOutgoingWorking);\n\n\t\t\t\t\tdataItem.set(\"sum\", sumIncoming + sumOutgoing);\n\t\t\t\t\tdataItem.set(\"sumWorking\", sumIncomingWorking + sumOutgoingWorking);\n\n\t\t\t\t\tnodes.updateLegendValue(dataItem);\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis._linksData = [];\n\t\t\t$array.each(this.dataItems, (dataItem) => {\n\t\t\t\tlet value = dataItem.get(\"value\");\n\t\t\t\tif ($type.isNumber(value)) {\n\t\t\t\t\tlet valueWorking = dataItem.get(\"valueWorking\");\n\t\t\t\t\tlet d3SankeyLink = { source: dataItem.get(\"source\").get(\"d3SankeyNode\"), target: dataItem.get(\"target\").get(\"d3SankeyNode\"), value: valueWorking };\n\t\t\t\t\tdataItem.setRaw(\"d3SankeyLink\", d3SankeyLink);\n\t\t\t\t\tthis._linksData.push(d3SankeyLink);\n\n\t\t\t\t\tif (value < valueLow) {\n\t\t\t\t\t\tvalueLow = value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (value > valueHigh) {\n\t\t\t\t\t\tvalueHigh = value;\n\t\t\t\t\t}\n\n\t\t\t\t\tvalueSum += value;\n\n\t\t\t\t\tthis.updateLegendValue(dataItem);\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tthis.setPrivateRaw(\"valueHigh\", valueHigh);\n\t\t\tthis.setPrivateRaw(\"valueLow\", valueLow);\n\t\t\tthis.setPrivateRaw(\"valueSum\", valueSum);\n\t\t}\n\t}\n\n\tpublic _updateLinkColor(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst link = dataItem.get(\"link\");\n\n\t\tconst fillStyle = link.get(\"fillStyle\");\n\t\tconst strokeStyle = link.get(\"strokeStyle\");\n\t\tconst source = dataItem.get(\"source\");\n\t\tconst target = dataItem.get(\"target\");\n\t\tconst sourceFill = source.get(\"fill\");\n\t\tconst targetFill = target.get(\"fill\");\n\t\tlink.remove(\"fillGradient\");\n\t\tlink.remove(\"strokeGradient\");\n\n\t\tswitch (fillStyle) {\n\n\t\t\tcase \"solid\":\n\t\t\t\tlink._applyTemplates();\n\t\t\t\tbreak;\n\t\t\tcase \"source\":\n\t\t\t\tlink.set(\"fill\", sourceFill);\n\t\t\t\tbreak;\n\n\t\t\tcase \"target\":\n\t\t\t\tlink.set(\"fill\", targetFill);\n\t\t\t\tbreak;\n\n\t\t\tcase \"gradient\":\n\t\t\t\tlet gradient = link._fillGradient;\n\t\t\t\tif (!gradient) {\n\t\t\t\t\tgradient = LinearGradient.new(this._root, {});\n\t\t\t\t\tconst sourceStop: any = { color: sourceFill }\n\t\t\t\t\tif (source.get(\"unknown\")) {\n\t\t\t\t\t\tsourceStop.opacity = 0;\n\t\t\t\t\t}\n\t\t\t\t\tconst targetStop: any = { color: targetFill };\n\t\t\t\t\tif (target.get(\"unknown\")) {\n\t\t\t\t\t\ttargetStop.opacity = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tgradient.set(\"stops\", [sourceStop, targetStop]);\n\t\t\t\t\tlink._fillGradient = gradient;\n\t\t\t\t}\n\t\t\t\tlink.set(\"fillGradient\", gradient);\n\t\t\t\tbreak;\n\t\t\tcase \"none\":\n\t\t\t\tlink.set(\"fill\", undefined); // do not use remove!\n\t\t\t\tbreak;\n\t\t}\n\n\t\tswitch (strokeStyle) {\n\t\t\tcase \"solid\":\n\t\t\t\tlink._applyTemplates();\n\t\t\t\tbreak;\n\n\t\t\tcase \"source\":\n\t\t\t\tlink.set(\"stroke\", sourceFill);\n\t\t\t\tbreak;\n\n\t\t\tcase \"target\":\n\t\t\t\tlink.set(\"stroke\", targetFill);\n\n\t\t\tcase \"gradient\":\n\t\t\t\tlet gradient = link._strokeGradient;\n\t\t\t\tif (!gradient) {\n\t\t\t\t\tgradient = LinearGradient.new(this._root, {});\n\t\t\t\t\tconst sourceStop: any = { color: sourceFill }\n\t\t\t\t\tif (source.get(\"unknown\")) {\n\t\t\t\t\t\tsourceStop.opacity = 0;\n\t\t\t\t\t}\n\t\t\t\t\tconst targetStop: any = { color: targetFill };\n\t\t\t\t\tif (target.get(\"unknown\")) {\n\t\t\t\t\t\ttargetStop.opacity = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tgradient.set(\"stops\", [sourceStop, targetStop]);\n\t\t\t\t\tlink._strokeGradient = gradient;\n\t\t\t\t}\n\t\t\t\tlink.set(\"strokeGradient\", gradient);\n\t\t\t\tbreak;\n\n\t\t\tcase \"none\":\n\t\t\t\tlink.remove(\"stroke\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.disposeDataItem(dataItem);\n\t\tlet link = dataItem.get(\"link\");\n\t\tif (link) {\n\t\t\tthis.links.removeValue(link);\n\t\t\tlink.dispose();\n\t\t}\n\t}\n\n\t/**\n\t * Shows diagram's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async hideDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, duration?: number): Promise<void> {\n\t\tconst promises = [super.hideDataItem(dataItem, duration)];\n\t\tconst hiddenState = this.states.create(\"hidden\", {})\n\n\t\tconst stateAnimationDuration = \"stateAnimationDuration\";\n\t\tconst stateAnimationEasing = \"stateAnimationEasing\";\n\n\t\tif (!$type.isNumber(duration)) {\n\t\t\tduration = hiddenState.get(stateAnimationDuration, this.get(stateAnimationDuration, 0));\n\t\t}\n\n\t\tconst easing = hiddenState.get(stateAnimationEasing, this.get(stateAnimationEasing));\n\n\t\tpromises.push(dataItem.animate({ key: \"valueWorking\" as any, to: 0, duration: duration, easing: easing }).waitForStop());\n\n\t\tconst linkGraphics = dataItem.get(\"link\");\n\t\tlinkGraphics.hide();\n\n\t\tawait Promise.all(promises);\n\t}\n\n\t/**\n\t * Shows diagram's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async showDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, duration?: number): Promise<void> {\n\t\tconst promises = [super.showDataItem(dataItem, duration)];\n\n\t\tif (!$type.isNumber(duration)) {\n\t\t\tduration = this.get(\"stateAnimationDuration\", 0);\n\t\t}\n\n\t\tconst easing = this.get(\"stateAnimationEasing\");\n\n\t\tpromises.push(dataItem.animate({ key: \"valueWorking\" as any, to: dataItem.get(\"value\"), duration: duration, easing: easing }).waitForStop());\n\n\t\tconst linkGraphics = dataItem.get(\"link\");\n\t\tlinkGraphics.show();\n\n\t\tawait Promise.all(promises);\n\t}\n\n\tpublic _positionBullet(bullet: Bullet) {\n\t\tconst sprite = bullet.get(\"sprite\");\n\n\t\tif (sprite) {\n\t\t\tconst dataItem = sprite.dataItem as DataItem<this[\"_dataItemSettings\"]>;\n\t\t\tif (dataItem) {\n\t\t\t\tconst link = dataItem.get(\"link\");\n\t\t\t\tconst sprite = bullet.get(\"sprite\");\n\n\t\t\t\tif (sprite) {\n\t\t\t\t\tconst point = link.getPoint(this._getBulletLocation(bullet));\n\t\t\t\t\tsprite.setAll({ x: point.x, y: point.y });\n\n\t\t\t\t\tif (bullet.get(\"autoRotate\")) {\n\t\t\t\t\t\tsprite.set(\"rotation\", point.angle + bullet.get(\"autoRotateAngle\", 0));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _getBulletLocation(bullet: Bullet): number {\n\t\treturn bullet.get(\"locationY\", 0);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Flow.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/Flow.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { Color } from \"../../core/util/Color\";\nimport type { FlowLink } from \"./FlowLink\";\nimport type { FlowNodes, IFlowNodesDataItem } from \"./FlowNodes\";\nimport type { ListTemplate } from \"../../core/util/List\";\nimport type { Bullet } from \"../../core/render/Bullet\";\nimport type * as d3sankey from \"d3-sankey\";\n\nimport { FlowDefaultTheme } from \"./FlowDefaultTheme\";\nimport { Series, ISeriesSettings, ISeriesDataItem, ISeriesPrivate, ISeriesEvents } from \"../../core/render/Series\";\nimport { Container } from \"../../core/render/Container\";\nimport { LinearGradient } from \"../../core/render/gradients/LinearGradient\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\n\nexport interface IFlowDataItem extends ISeriesDataItem {\n\n\t/**\n\t * Link value.\n\t */\n\tvalue: number;\n\n\t/**\n\t * @ignore\n\t */\n\tvalueWorking: number;\n\n\t/**\n\t * Associated link element.\n\t */\n\tlink: FlowLink;\n\n\t/**\n\t * Link's color.\n\t */\n\tfill: Color;\n\n\t/**\n\t * @ignore\n\t */\n\td3SankeyLink: d3sankey.SankeyLink<d3sankey.SankeyExtraProperties, d3sankey.SankeyExtraProperties>;\n\n\t/**\n\t * An ID of the target node.\n\t */\n\ttargetId: string;\n\n\t/**\n\t * An ID of the source node.\n\t */\n\tsourceId: string;\n\n\t/**\n\t * A data item of the source node.\n\t */\n\tsource: DataItem<IFlowNodesDataItem>;\n\n\t/**\n\t * A data item of the target node.\n\t */\n\ttarget: DataItem<IFlowNodesDataItem>;\n\n}\n\nexport interface IFlowSettings extends ISeriesSettings {\n\n\t/**\n\t * A field in data which holds source node ID.\n\t */\n\tsourceIdField?: string;\n\n\t/**\n\t * A field in data which holds target node ID.\n\t */\n\ttargetIdField?: string;\n\n\t/**\n\t * The thickness of node strip in pixels.\n\t *\n\t * @default 10\n\t */\n\tnodeWidth?: number;\n\n\t/**\n\t * Minimum gap between adjacent nodes.\n\t *\n\t * @default 10\n\t */\n\tnodePadding?: number;\n\n\t/**\n\t * Minimum size of the node/link.\n\t * \n\t * It's a relative value to the sum of all values in the series. If set,\n\t * this relative value will be used for small value nodes when calculating\n\t * their size. For example, if it's set to `0.01`, small nodes will be\n\t * sized like their value is 1% of the total sum of all values in series.\n\t *\n\t * @since 5.1.5\n\t */\n\tminSize?: number;\n\n}\n\nexport interface IFlowPrivate extends ISeriesPrivate {\n\tvalueSum?: number;\n\tvalueLow?: number;\n\tvalueHigh?: number;\n}\n\nexport interface IFlowEvents extends ISeriesEvents {\n}\n\n/**\n * A base class for all flow type series: [[Sankey]] and [[Chord]].\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more info\n */\nexport abstract class Flow extends Series {\n\tpublic static className: string = \"Flow\";\n\tpublic static classNames: Array<string> = Series.classNames.concat([Flow.className]);\n\n\tdeclare public _settings: IFlowSettings;\n\tdeclare public _privateSettings: IFlowPrivate;\n\tdeclare public _dataItemSettings: IFlowDataItem;\n\tdeclare public _events: IFlowEvents;\n\n\t/**\n\t * @ignore\n\t */\n\tdeclare public readonly nodes: FlowNodes;\n\n\t/**\n\t * Container series will place their links in.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly linksContainer = this.children.push(Container.new(this._root, {}));\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract readonly links: ListTemplate<FlowLink>;\n\n\tprotected _nodesData: d3sankey.SankeyNodeMinimal<{}, {}>[] = [];\n\tprotected _linksData: { source: d3sankey.SankeyNodeMinimal<{}, {}>, target: d3sankey.SankeyNodeMinimal<{}, {}>, value: number }[] = [];\n\tprotected _index = 0;\n\n\tprotected _linksByIndex: { [index: string]: any } = {};\n\tprotected _afterNew() {\n\t\tthis._defaultThemes.push(FlowDefaultTheme.new(this._root));\n\n\t\tthis.fields.push(\"disabled\", \"sourceId\", \"targetId\");\n\n\t\tif (this.nodes) {\n\t\t\tthis.nodes.flow = this;\n\t\t}\n\n\t\tsuper._afterNew();\n\n\t\tthis.children.push(this.bulletsContainer);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract makeLink(dataItem: DataItem<this[\"_dataItemSettings\"]>): FlowLink;\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.processDataItem(dataItem);\n\n\t\tconst nodes = this.nodes;\n\t\tif (nodes) {\n\t\t\tlet unknown = false;\n\t\t\tlet sourceId = dataItem.get(\"sourceId\");\n\t\t\tlet sourceDataItem = nodes.getDataItemById(sourceId);\n\n\t\t\tif (!sourceDataItem) {\n\t\t\t\tif (sourceId == null) {\n\t\t\t\t\tsourceId = \"undefined\" + this._index;\n\t\t\t\t\tthis._index++;\n\t\t\t\t\tunknown = true;\n\t\t\t\t}\n\t\t\t\tnodes.data.push({ id: sourceId, unknown: unknown });\n\t\t\t\tsourceDataItem = nodes.getDataItemById(sourceId)!;\n\t\t\t\tif (!unknown) {\n\t\t\t\t\tsourceDataItem.set(\"name\", sourceId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tunknown = false;\n\t\t\tlet targetId = dataItem.get(\"targetId\");\n\n\t\t\tlet targetDataItem = nodes.getDataItemById(targetId);\n\t\t\tif (!targetDataItem) {\n\t\t\t\tif (targetId == null) {\n\t\t\t\t\ttargetId = \"undefined\" + this._index;\n\t\t\t\t\tthis._index++;\n\t\t\t\t\tunknown = true;\n\t\t\t\t}\n\n\t\t\t\tnodes.data.push({ id: targetId, unknown: unknown });\n\t\t\t\ttargetDataItem = nodes.getDataItemById(targetId)!;\n\t\t\t\tif (!unknown) {\n\t\t\t\t\ttargetDataItem.set(\"name\", targetId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (sourceDataItem) {\n\t\t\t\tdataItem.set(\"source\", sourceDataItem);\n\t\t\t\tnodes.addOutgoingLink(sourceDataItem, dataItem);\n\t\t\t}\n\n\t\t\tif (targetDataItem) {\n\t\t\t\tdataItem.set(\"target\", targetDataItem);\n\t\t\t\tnodes.addincomingLink(targetDataItem, dataItem);\n\t\t\t}\n\n\t\t\tdataItem.set(\"link\", this.makeLink(dataItem));\n\n\t\t\tconst sourceIndex = this.nodes.dataItems.indexOf(sourceDataItem);\n\t\t\tconst targetIndex = this.nodes.dataItems.indexOf(targetDataItem);\n\n\t\t\tthis._linksByIndex[sourceIndex + \"_\" + targetIndex] = dataItem;\n\n\t\t\tif (sourceDataItem.get(\"unknown\")) {\n\t\t\t\tif (targetDataItem) {\n\t\t\t\t\tsourceDataItem.set(\"fill\", targetDataItem.get(\"fill\"));\n\t\t\t\t}\n\n\t\t\t\tdataItem.get(\"link\").set(\"fillStyle\", \"gradient\");\n\t\t\t}\n\n\n\t\t\tif (targetDataItem.get(\"unknown\")) {\n\t\t\t\tif (sourceDataItem) {\n\t\t\t\t\ttargetDataItem.set(\"fill\", sourceDataItem.get(\"fill\"));\n\t\t\t\t}\n\n\t\t\t\tdataItem.get(\"link\").set(\"fillStyle\", \"gradient\");\n\t\t\t}\n\n\t\t\tthis._updateLinkColor(dataItem);\n\t\t}\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tlet valueLow = Infinity;\n\t\tlet valueHigh = -Infinity;\n\t\tlet valueSum = 0;\n\n\t\tif (this._valuesDirty) {\n\t\t\tthis._nodesData = [];\n\t\t\tconst nodes = this.nodes;\n\t\t\tif (nodes) {\n\t\t\t\t$array.each(nodes.dataItems, (dataItem) => {\n\t\t\t\t\tconst d3SankeyNode = dataItem.get(\"d3SankeyNode\");\n\t\t\t\t\tthis._nodesData.push(d3SankeyNode);\n\n\t\t\t\t\tconst incoming = dataItem.get(\"incomingLinks\")\n\n\t\t\t\t\tlet sumIncoming = 0;\n\t\t\t\t\tlet sumIncomingWorking = 0;\n\t\t\t\t\tif (incoming) {\n\t\t\t\t\t\t$array.each(incoming, (link) => {\n\t\t\t\t\t\t\tconst value = link.get(\"value\");\n\t\t\t\t\t\t\tconst workingValue = link.get(\"valueWorking\");\n\t\t\t\t\t\t\tsumIncoming += value;\n\t\t\t\t\t\t\tsumIncomingWorking += workingValue;\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\tdataItem.set(\"sumIncoming\", sumIncoming);\n\t\t\t\t\tdataItem.set(\"sumIncomingWorking\", sumIncomingWorking);\n\n\t\t\t\t\tconst outgoing = dataItem.get(\"outgoingLinks\")\n\t\t\t\t\tlet sumOutgoing = 0;\n\t\t\t\t\tlet sumOutgoingWorking = 0;\n\t\t\t\t\tif (outgoing) {\n\t\t\t\t\t\t$array.each(outgoing, (link) => {\n\t\t\t\t\t\t\tconst value = link.get(\"value\");\n\t\t\t\t\t\t\tconst workingValue = link.get(\"valueWorking\");\n\t\t\t\t\t\t\tsumOutgoing += value;\n\t\t\t\t\t\t\tsumOutgoingWorking += workingValue;\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\tdataItem.set(\"sumOutgoing\", sumOutgoing);\n\t\t\t\t\tdataItem.set(\"sumOutgoingWorking\", sumOutgoingWorking);\n\n\t\t\t\t\tdataItem.set(\"sum\", sumIncoming + sumOutgoing);\n\t\t\t\t\tdataItem.set(\"sumWorking\", sumIncomingWorking + sumOutgoingWorking);\n\n\t\t\t\t\tnodes.updateLegendValue(dataItem);\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis._linksData = [];\n\n\t\t\t$array.each(this.dataItems, (dataItem) => {\n\t\t\t\tlet value = dataItem.get(\"value\");\n\t\t\t\tif ($type.isNumber(value)) {\n\t\t\t\t\tif (value < valueLow) {\n\t\t\t\t\t\tvalueLow = value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (value > valueHigh) {\n\t\t\t\t\t\tvalueHigh = value;\n\t\t\t\t\t}\n\t\t\t\t\tvalueSum += value;\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t$array.each(this.dataItems, (dataItem) => {\n\t\t\t\tlet value = dataItem.get(\"value\");\n\t\t\t\tif ($type.isNumber(value)) {\n\t\t\t\t\tlet valueWorking = dataItem.get(\"valueWorking\");\n\t\t\t\t\tlet minSize = this.get(\"minSize\", 0);\n\t\t\t\t\tif (minSize > 0) {\n\t\t\t\t\t\tif (valueWorking < minSize * valueSum) {\n\t\t\t\t\t\t\tvalueWorking = minSize * valueSum;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet d3SankeyLink = { source: dataItem.get(\"source\").get(\"d3SankeyNode\"), target: dataItem.get(\"target\").get(\"d3SankeyNode\"), value: valueWorking };\n\t\t\t\t\tdataItem.setRaw(\"d3SankeyLink\", d3SankeyLink);\n\t\t\t\t\tthis._linksData.push(d3SankeyLink);\n\t\t\t\t\tthis.updateLegendValue(dataItem);\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tthis.setPrivateRaw(\"valueHigh\", valueHigh);\n\t\t\tthis.setPrivateRaw(\"valueLow\", valueLow);\n\t\t\tthis.setPrivateRaw(\"valueSum\", valueSum);\n\t\t}\n\t}\n\n\tpublic _updateLinkColor(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst link = dataItem.get(\"link\");\n\n\t\tconst fillStyle = link.get(\"fillStyle\");\n\t\tconst strokeStyle = link.get(\"strokeStyle\");\n\t\tconst source = dataItem.get(\"source\");\n\t\tconst target = dataItem.get(\"target\");\n\t\tconst sourceFill = source.get(\"fill\");\n\t\tconst targetFill = target.get(\"fill\");\n\t\tlink.remove(\"fillGradient\");\n\t\tlink.remove(\"strokeGradient\");\n\n\t\tswitch (fillStyle) {\n\n\t\t\tcase \"solid\":\n\t\t\t\tlink._applyTemplates();\n\t\t\t\tbreak;\n\t\t\tcase \"source\":\n\t\t\t\tlink.set(\"fill\", sourceFill);\n\t\t\t\tbreak;\n\n\t\t\tcase \"target\":\n\t\t\t\tlink.set(\"fill\", targetFill);\n\t\t\t\tbreak;\n\n\t\t\tcase \"gradient\":\n\t\t\t\tlet gradient = link._fillGradient;\n\t\t\t\tif (!gradient) {\n\t\t\t\t\tgradient = LinearGradient.new(this._root, {});\n\t\t\t\t\tconst sourceStop: any = { color: sourceFill }\n\t\t\t\t\tif (source.get(\"unknown\")) {\n\t\t\t\t\t\tsourceStop.opacity = 0;\n\t\t\t\t\t}\n\t\t\t\t\tconst targetStop: any = { color: targetFill };\n\t\t\t\t\tif (target.get(\"unknown\")) {\n\t\t\t\t\t\ttargetStop.opacity = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tgradient.set(\"stops\", [sourceStop, targetStop]);\n\t\t\t\t\tlink._fillGradient = gradient;\n\t\t\t\t}\n\t\t\t\tlink.set(\"fillGradient\", gradient);\n\t\t\t\tbreak;\n\t\t\tcase \"none\":\n\t\t\t\tlink.set(\"fill\", undefined); // do not use remove!\n\t\t\t\tbreak;\n\t\t}\n\n\t\tswitch (strokeStyle) {\n\t\t\tcase \"solid\":\n\t\t\t\tlink._applyTemplates();\n\t\t\t\tbreak;\n\n\t\t\tcase \"source\":\n\t\t\t\tlink.set(\"stroke\", sourceFill);\n\t\t\t\tbreak;\n\n\t\t\tcase \"target\":\n\t\t\t\tlink.set(\"stroke\", targetFill);\n\n\t\t\tcase \"gradient\":\n\t\t\t\tlet gradient = link._strokeGradient;\n\t\t\t\tif (!gradient) {\n\t\t\t\t\tgradient = LinearGradient.new(this._root, {});\n\t\t\t\t\tconst sourceStop: any = { color: sourceFill }\n\t\t\t\t\tif (source.get(\"unknown\")) {\n\t\t\t\t\t\tsourceStop.opacity = 0;\n\t\t\t\t\t}\n\t\t\t\t\tconst targetStop: any = { color: targetFill };\n\t\t\t\t\tif (target.get(\"unknown\")) {\n\t\t\t\t\t\ttargetStop.opacity = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tgradient.set(\"stops\", [sourceStop, targetStop]);\n\t\t\t\t\tlink._strokeGradient = gradient;\n\t\t\t\t}\n\t\t\t\tlink.set(\"strokeGradient\", gradient);\n\t\t\t\tbreak;\n\n\t\t\tcase \"none\":\n\t\t\t\tlink.remove(\"stroke\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.disposeDataItem(dataItem);\n\t\tlet link = dataItem.get(\"link\");\n\t\tif (link) {\n\t\t\tthis.links.removeValue(link);\n\t\t\tlink.dispose();\n\t\t}\n\t}\n\n\t/**\n\t * Shows diagram's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async hideDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, duration?: number): Promise<void> {\n\t\tconst promises = [super.hideDataItem(dataItem, duration)];\n\t\tconst hiddenState = this.states.create(\"hidden\", {})\n\n\t\tconst stateAnimationDuration = \"stateAnimationDuration\";\n\t\tconst stateAnimationEasing = \"stateAnimationEasing\";\n\n\t\tif (!$type.isNumber(duration)) {\n\t\t\tduration = hiddenState.get(stateAnimationDuration, this.get(stateAnimationDuration, 0));\n\t\t}\n\n\t\tconst easing = hiddenState.get(stateAnimationEasing, this.get(stateAnimationEasing));\n\n\t\tpromises.push(dataItem.animate({ key: \"valueWorking\" as any, to: 0, duration: duration, easing: easing }).waitForStop());\n\n\t\tconst linkGraphics = dataItem.get(\"link\");\n\t\tlinkGraphics.hide();\n\n\t\tawait Promise.all(promises);\n\t}\n\n\t/**\n\t * Shows diagram's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async showDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, duration?: number): Promise<void> {\n\t\tconst promises = [super.showDataItem(dataItem, duration)];\n\n\t\tif (!$type.isNumber(duration)) {\n\t\t\tduration = this.get(\"stateAnimationDuration\", 0);\n\t\t}\n\n\t\tconst easing = this.get(\"stateAnimationEasing\");\n\n\t\tpromises.push(dataItem.animate({ key: \"valueWorking\" as any, to: dataItem.get(\"value\"), duration: duration, easing: easing }).waitForStop());\n\n\t\tconst linkGraphics = dataItem.get(\"link\");\n\t\tlinkGraphics.show();\n\n\t\tawait Promise.all(promises);\n\t}\n\n\tpublic _positionBullet(bullet: Bullet) {\n\t\tconst sprite = bullet.get(\"sprite\");\n\n\t\tif (sprite) {\n\t\t\tconst dataItem = sprite.dataItem as DataItem<this[\"_dataItemSettings\"]>;\n\t\t\tif (dataItem) {\n\t\t\t\tconst link = dataItem.get(\"link\");\n\t\t\t\tconst sprite = bullet.get(\"sprite\");\n\n\t\t\t\tif (sprite) {\n\t\t\t\t\tconst point = link.getPoint(this._getBulletLocation(bullet));\n\t\t\t\t\tsprite.setAll({ x: point.x, y: point.y });\n\n\t\t\t\t\tif (bullet.get(\"autoRotate\")) {\n\t\t\t\t\t\tsprite.set(\"rotation\", point.angle + bullet.get(\"autoRotateAngle\", 0));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _getBulletLocation(bullet: Bullet): number {\n\t\treturn bullet.get(\"locationY\", 0);\n\t}\n}\n"]}
|
|
@@ -3,6 +3,7 @@ import type { Sankey, ISankeyDataItem } from "./Sankey";
|
|
|
3
3
|
import type { ISankeyNodesDataItem } from "./SankeyNodes";
|
|
4
4
|
import type { IOrientationPoint } from "../../core/util/IPoint";
|
|
5
5
|
import { FlowLink, IFlowLinkPrivate, IFlowLinkSettings } from "./FlowLink";
|
|
6
|
+
import type { IPoint } from "../../core/util/IPoint";
|
|
6
7
|
export interface ISankeyLinkSettings extends IFlowLinkSettings {
|
|
7
8
|
/**
|
|
8
9
|
* Source node data item.
|
|
@@ -44,5 +45,6 @@ export declare class SankeyLink extends FlowLink {
|
|
|
44
45
|
protected _totalLength: number;
|
|
45
46
|
_beforeChanged(): void;
|
|
46
47
|
getPoint(location: number): IOrientationPoint;
|
|
48
|
+
_getTooltipPoint(): IPoint;
|
|
47
49
|
}
|
|
48
50
|
//# sourceMappingURL=SankeyLink.d.ts.map
|
|
@@ -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;AAEhE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,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;AAEhE,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;IAG5B,cAAc;IAiQd,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;IAY7C,gBAAgB,IAAI,MAAM;CAGjC"}
|
|
@@ -235,6 +235,14 @@ var SankeyLink = /** @class */ (function (_super) {
|
|
|
235
235
|
return { x: 0, y: 0, angle: 0 };
|
|
236
236
|
}
|
|
237
237
|
});
|
|
238
|
+
Object.defineProperty(SankeyLink.prototype, "_getTooltipPoint", {
|
|
239
|
+
enumerable: false,
|
|
240
|
+
configurable: true,
|
|
241
|
+
writable: true,
|
|
242
|
+
value: function () {
|
|
243
|
+
return this.toLocal(_super.prototype._getTooltipPoint.call(this));
|
|
244
|
+
}
|
|
245
|
+
});
|
|
238
246
|
Object.defineProperty(SankeyLink, "className", {
|
|
239
247
|
enumerable: true,
|
|
240
248
|
configurable: true,
|
|
@@ -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\";\n\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 * Source 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();\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();\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\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();\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();\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\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"]}
|
|
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 * Source 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();\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();\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\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();\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();\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\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":"ForceDirected.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/ForceDirected.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ForceDirected.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/ForceDirected.ts"],"names":[],"mappings":"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"}
|
|
@@ -146,8 +146,7 @@ var ForceDirected = /** @class */ (function (_super) {
|
|
|
146
146
|
_super.prototype.processDataItem.call(this, dataItem);
|
|
147
147
|
var node = dataItem.get("node");
|
|
148
148
|
node.on("scale", function () {
|
|
149
|
-
_this.
|
|
150
|
-
_this.markDirty();
|
|
149
|
+
_this._updateForces();
|
|
151
150
|
});
|
|
152
151
|
node.events.on("dragged", function () {
|
|
153
152
|
d3ForceNode.fx = node.x();
|