{"version":3,"file":"flow.js","mappings":"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","sources":["webpack://@amcharts/amcharts5/./src/.internal/charts/flow/FlowDefaultTheme.ts","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/Flow.ts","webpack://@amcharts/amcharts5/./node_modules/d3-chord/src/math.js","webpack://@amcharts/amcharts5/./node_modules/d3-chord/src/chord.js","webpack://@amcharts/amcharts5/./node_modules/d3-chord/src/array.js","webpack://@amcharts/amcharts5/./node_modules/d3-chord/src/constant.js","webpack://@amcharts/amcharts5/./node_modules/d3-chord/src/ribbon.js","webpack://@amcharts/amcharts5/./node_modules/d3-array/src/ascending.js","webpack://@amcharts/amcharts5/./node_modules/d3-array/src/descending.js","webpack://@amcharts/amcharts5/./node_modules/d3-brush/src/brush.js","webpack://@amcharts/amcharts5/./node_modules/d3-zoom/src/transform.js","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/FlowNode.ts","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/FlowNodes.ts","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/ChordNodes.ts","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/FlowLink.ts","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/ChordLink.ts","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/Chord.ts","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/ChordLinkDirected.ts","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/ChordDirected.ts","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/ChordNonRibbon.ts","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/SankeyNodes.ts","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/SankeyLink.ts","webpack://@amcharts/amcharts5/./node_modules/d3-sankey/node_modules/d3-array/src/sum.js","webpack://@amcharts/amcharts5/./node_modules/d3-sankey/node_modules/d3-array/src/max.js","webpack://@amcharts/amcharts5/./node_modules/d3-sankey/node_modules/d3-array/src/min.js","webpack://@amcharts/amcharts5/./node_modules/d3-sankey/src/align.js","webpack://@amcharts/amcharts5/./node_modules/d3-sankey/src/constant.js","webpack://@amcharts/amcharts5/./node_modules/d3-sankey/src/sankey.js","webpack://@amcharts/amcharts5/./src/.internal/charts/flow/Sankey.ts","webpack://@amcharts/amcharts5/./tmp/webpack/flow.js"],"sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\r\nimport type { IFlowNodesDataItem } from \"../../charts/flow/FlowNodes\";\r\n\r\nimport { Theme } from \"../../core/Theme\";\r\nimport { percent, p100, p50 } from \"../../core/util/Percent\";\r\nimport { ColorSet } from \"../../core/util/ColorSet\";\r\nimport { setColor } from \"../../themes/DefaultTheme\";\r\n\r\nimport * as $array from \"../../core/util/Array\";\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport class FlowDefaultTheme extends Theme {\r\n\tprotected setupDefaultRules() {\r\n\t\tsuper.setupDefaultRules();\r\n\r\n\t\tconst ic = this._root.interfaceColors;\r\n\t\tconst r = this.rule.bind(this);\r\n\t\t/**\r\n\t\t * ========================================================================\r\n\t\t * charts/flow\r\n\t\t * ========================================================================\r\n\t\t */\r\n\r\n\t\tr(\"Flow\").setAll({\r\n\t\t\twidth: p100,\r\n\t\t\theight: p100,\r\n\t\t\tpaddingLeft: 10,\r\n\t\t\tpaddingRight: 10,\r\n\t\t\tpaddingTop: 10,\r\n\t\t\tpaddingBottom: 10\r\n\t\t});\r\n\r\n\t\tr(\"FlowNodes\").setAll({\r\n\t\t\tcolors: ColorSet.new(this._root, {}),\r\n\t\t\tlegendLabelText: \"{name}\",\r\n\t\t\tlegendValueText: \"{sumOutgoing.formatNumber('#.#')}\"\r\n\t\t});\r\n\r\n\t\tr(\"FlowNode\").setAll({\r\n\r\n\t\t});\r\n\r\n\t\tr(\"FlowNode\", [\"unknown\"]).setAll({\r\n\t\t\tdraggable: false,\r\n\t\t\topacity: 0\r\n\t\t});\r\n\r\n\t\tr(\"RadialLabel\", [\"flow\", \"node\"]).setAll({\r\n\t\t\ttext: \"{name}\",\r\n\t\t\tpopulateText: true\r\n\t\t});\r\n\r\n\t\tr(\"FlowLink\").setAll({\r\n\t\t\tfillStyle: \"gradient\",\r\n\t\t\tstrokeStyle: \"gradient\"\r\n\t\t});\r\n\r\n\t\tr(\"FlowLink\", [\"source\", \"unknown\"]).setAll({\r\n\t\t});\r\n\r\n\t\tr(\"FlowLink\", [\"target\", \"unknown\"]).setAll({\r\n\t\t});\r\n\r\n\r\n\t\tr(\"FlowNode\").events.on(\"pointerover\", (e) => {\r\n\t\t\tconst dataItem = e.target.dataItem as DataItem;\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tconst outgoing = dataItem.get(\"outgoingLinks\")\r\n\t\t\t\tif (outgoing) {\r\n\t\t\t\t\t$array.each(outgoing, (linkDataItem) => {\r\n\t\t\t\t\t\tconst link = (linkDataItem as any).get(\"link\");\r\n\t\t\t\t\t\tlink.hover();\r\n\t\t\t\t\t\tlink.hideTooltip();\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\tconst incoming = dataItem.get(\"incomingLinks\")\r\n\t\t\t\tif (incoming) {\r\n\t\t\t\t\t$array.each(incoming, (linkDataItem) => {\r\n\t\t\t\t\t\tconst link = (linkDataItem as any).get(\"link\");\r\n\t\t\t\t\t\tlink.hover();\r\n\t\t\t\t\t\tlink.hideTooltip();\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet rectangle = (dataItem).get(\"slice\") || (dataItem).get(\"rectangle\");\r\n\t\t\tif (rectangle && rectangle.get(\"tooltipText\")) {\r\n\t\t\t\trectangle.showTooltip();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tr(\"FlowNode\").events.on(\"pointerout\", (e) => {\r\n\t\t\tconst dataItem = e.target.dataItem as DataItem;\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tconst outgoing = dataItem.get(\"outgoingLinks\")\r\n\t\t\t\tif (outgoing) {\r\n\t\t\t\t\t$array.each(outgoing, (linkDataItem) => {\r\n\t\t\t\t\t\t(linkDataItem as any).get(\"link\").unhover();\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\tconst incoming = dataItem.get(\"incomingLinks\")\r\n\t\t\t\tif (incoming) {\r\n\t\t\t\t\t$array.each(incoming, (linkDataItem) => {\r\n\t\t\t\t\t\t(linkDataItem as any).get(\"link\").unhover();\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\t/**\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t * charts/flow: Sankey\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\tr(\"Sankey\").setAll({\r\n\t\t\torientation: \"horizontal\",\r\n\t\t\tnodeAlign: \"justify\",\r\n\t\t\tlinkTension: 0.5,\r\n\t\t\tnodePadding: 10,\r\n\t\t\tnodeWidth: 10\r\n\t\t});\r\n\r\n\t\t// Class: RoundedRectangle\r\n\t\tr(\"RoundedRectangle\", [\"sankey\", \"node\", \"shape\"]).setAll({\r\n\t\t\tcornerRadiusTL: 0,\r\n\t\t\tcornerRadiusBL: 0,\r\n\t\t\tcornerRadiusTR: 0,\r\n\t\t\tcornerRadiusBR: 0\r\n\t\t});\r\n\r\n\t\tr(\"SankeyLink\").setAll({\r\n\t\t\tcontrolPointDistance: 0.2\r\n\t\t});\r\n\r\n\t\tr(\"FlowNode\", [\"sankey\"]).setAll({\r\n\t\t\tdraggable: true\r\n\t\t});\r\n\r\n\t\t{\r\n\t\t\tconst rule = r(\"Graphics\", [\"sankey\", \"link\"]);\r\n\r\n\t\t\trule.setAll({\r\n\t\t\t\tfillOpacity: 0.2,\r\n\t\t\t\tstrokeOpacity: 0,\r\n\t\t\t\tinteractive: true,\r\n\t\t\t\ttooltipText: \"{sourceId} - {targetId}: {value}\"\r\n\t\t\t});\r\n\r\n\t\t\tsetColor(rule, \"fill\", ic, \"grid\");\r\n\t\t}\r\n\r\n\t\tr(\"Graphics\", [\"sankey\", \"link\"]).states.create(\"hover\", { fillOpacity: 0.5 });\r\n\r\n\t\tr(\"Label\", [\"sankey\", \"node\"]).setAll({\r\n\t\t\ttext: \"{name}\",\r\n\t\t\tpopulateText: true\r\n\t\t});\r\n\r\n\t\tr(\"Label\", [\"sankey\", \"horizontal\"]).setAll({\r\n\t\t\ty: p50,\r\n\t\t\tcenterY: p50,\r\n\t\t\tpaddingLeft: 15\r\n\t\t});\r\n\r\n\t\tr(\"Label\", [\"sankey\", \"vertical\"]).setAll({\r\n\t\t\tx: p50,\r\n\t\t\tcenterX: p50,\r\n\t\t\tpaddingTop: 15\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t * charts/flow: Chord\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\tr(\"Chord\").setAll({\r\n\t\t\tradius: percent(90),\r\n\t\t\tnodeWidth: 10,\r\n\t\t\tpadAngle: 1,\r\n\t\t\tstartAngle: 0,\r\n\t\t\tsort: \"descending\"\r\n\t\t});\r\n\r\n\t\tr(\"ChordDirected\").setAll({\r\n\t\t\tlinkHeadRadius: 10\r\n\t\t});\r\n\r\n\t\tr(\"ChordNodes\").setAll({\r\n\t\t\tx: p50,\r\n\t\t\ty: p50\r\n\t\t});\r\n\r\n\t\tr(\"FlowNode\", [\"chord\"]).setAll({\r\n\t\t\tdraggable: true\r\n\t\t});\r\n\r\n\t\tr(\"ChordLink\").setAll({\r\n\t\t\tsourceRadius: p100,\r\n\t\t\ttargetRadius: p100,\r\n\t\t\tfillStyle: \"solid\",\r\n\t\t\tstrokeStyle: \"solid\",\r\n\t\t\ttooltipText: \"{sourceId} - {targetId}: {value}\"\r\n\t\t});\r\n\r\n\t\tr(\"Slice\", [\"chord\", \"node\", \"shape\"]).setAll({\r\n\t\t\tcornerRadius: 0\r\n\t\t})\r\n\r\n\t\tr(\"RadialLabel\", [\"chord\", \"node\"]).setAll({\r\n\t\t\tradius: 5,\r\n\t\t\ttextType: \"circular\"\r\n\t\t});\r\n\r\n\t\tr(\"ChordLinkDirected\").setAll({\r\n\t\t\theadRadius: 10\r\n\t\t});\r\n\r\n\t\t// Class: Graphics\r\n\t\t{\r\n\t\t\tconst rule = r(\"Graphics\", [\"chord\", \"link\", \"shape\"]);\r\n\r\n\t\t\trule.setAll({\r\n\t\t\t\tfillOpacity: 0.2,\r\n\t\t\t\tstrokeOpacity: 0,\r\n\t\t\t\tinteractive: true\r\n\t\t\t});\r\n\r\n\t\t\tsetColor(rule, \"fill\", ic, \"grid\");\r\n\t\t\tsetColor(rule, \"stroke\", ic, \"grid\");\r\n\t\t}\r\n\r\n\t\tr(\"Graphics\", [\"chord\", \"link\", \"shape\"]).states.create(\"hover\", { fillOpacity: 0.5 });\r\n\r\n\t\tr(\"ChordNonRibbon\").setAll({\r\n\t\t\tlinkType: \"curve\" // \"line\" | \"curve\"\r\n\t\t})\r\n\r\n\t\tr(\"ChordLink\", [\"basic\"]).setAll({\r\n\t\t\tfillStyle: \"none\",\r\n\t\t\tstrokeStyle: \"source\"\r\n\t\t});\r\n\r\n\t\tr(\"Graphics\", [\"chord\", \"link\", \"shape\", \"basic\"]).setAll({\r\n\t\t\tstrokeOpacity: 0.4\r\n\t\t});\r\n\r\n\t\tr(\"Graphics\", [\"chord\", \"link\", \"shape\", \"basic\"]).states.create(\"hover\", { strokeWidth: 2, strokeOpacity: 1 });\r\n\r\n\t}\r\n}\r\n","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;\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;\n\n\t/**\n\t * A data item of the target node.\n\t */\n\ttarget: DataItem;\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 = 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;\n\n\tprotected _nodesData: d3sankey.SankeyNodeMinimal<{}, {}>[] = [];\n\tprotected _linksData: { source: d3sankey.SankeyNodeMinimal<{}, {}>, target: d3sankey.SankeyNodeMinimal<{}, {}>, value: number }[] = [];\n\tprotected _index = 0;\n\tprotected _nodesDataSet:boolean = false;\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): FlowLink;\n\n\tprotected processDataItem(dataItem: DataItem) {\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\tprotected _onDataClear() {\n\t\tif(!this.nodes._userDataSet){\n\t\t\tthis.nodes.data.setAll([]);\n\t\t\tthis.nodes._userDataSet = false;\n\t\t}\n\n\t}\t\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) {\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) {\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, duration?: number): Promise {\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, duration?: number): Promise {\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;\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","export var abs = Math.abs;\nexport var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\nexport var epsilon = 1e-12;\n","import {max, tau} from \"./math.js\";\n\nfunction range(i, j) {\n return Array.from({length: j - i}, (_, k) => i + k);\n}\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nexport default function() {\n return chord(false, false);\n}\n\nexport function chordTranspose() {\n return chord(false, true);\n}\n\nexport function chordDirected() {\n return chord(true, false);\n}\n\nfunction chord(directed, transpose) {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = new Array(n),\n groupIndex = range(0, n),\n chords = new Array(n * n),\n groups = new Array(n),\n k = 0, dx;\n\n matrix = Float64Array.from({length: n * n}, transpose\n ? (_, i) => matrix[i % n][i / n | 0]\n : (_, i) => matrix[i / n | 0][i % n]);\n\n // Compute the scaling factor from value to angle in [0, 2pi].\n for (let i = 0; i < n; ++i) {\n let x = 0;\n for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i];\n k += groupSums[i] = x;\n }\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n;\n\n // Compute the angles for each group and constituent chord.\n {\n let x = 0;\n if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b]));\n for (const i of groupIndex) {\n const x0 = x;\n if (directed) {\n const subgroupIndex = range(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]);\n if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b]));\n for (const j of subgroupIndex) {\n if (j < 0) {\n const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null});\n chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]};\n } else {\n const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});\n chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n }\n }\n groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};\n } else {\n const subgroupIndex = range(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]);\n if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b]));\n for (const j of subgroupIndex) {\n let chord;\n if (i < j) {\n chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});\n chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n } else {\n chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null});\n chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n if (i === j) chord.source = chord.target;\n }\n if (chord.source && chord.target && chord.source.value < chord.target.value) {\n const source = chord.source;\n chord.source = chord.target;\n chord.target = source;\n }\n }\n groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};\n }\n x += dx;\n }\n }\n\n // Remove empty chords.\n chords = Object.values(chords);\n chords.groups = groups;\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport {abs, cos, epsilon, halfPi, sin} from \"./math.js\";\n\nfunction defaultSource(d) {\n return d.source;\n}\n\nfunction defaultTarget(d) {\n return d.target;\n}\n\nfunction defaultRadius(d) {\n return d.radius;\n}\n\nfunction defaultStartAngle(d) {\n return d.startAngle;\n}\n\nfunction defaultEndAngle(d) {\n return d.endAngle;\n}\n\nfunction defaultPadAngle() {\n return 0;\n}\n\nfunction defaultArrowheadRadius() {\n return 10;\n}\n\nfunction ribbon(headRadius) {\n var source = defaultSource,\n target = defaultTarget,\n sourceRadius = defaultRadius,\n targetRadius = defaultRadius,\n startAngle = defaultStartAngle,\n endAngle = defaultEndAngle,\n padAngle = defaultPadAngle,\n context = null;\n\n function ribbon() {\n var buffer,\n s = source.apply(this, arguments),\n t = target.apply(this, arguments),\n ap = padAngle.apply(this, arguments) / 2,\n argv = slice.call(arguments),\n sr = +sourceRadius.apply(this, (argv[0] = s, argv)),\n sa0 = startAngle.apply(this, argv) - halfPi,\n sa1 = endAngle.apply(this, argv) - halfPi,\n tr = +targetRadius.apply(this, (argv[0] = t, argv)),\n ta0 = startAngle.apply(this, argv) - halfPi,\n ta1 = endAngle.apply(this, argv) - halfPi;\n\n if (!context) context = buffer = path();\n\n if (ap > epsilon) {\n if (abs(sa1 - sa0) > ap * 2 + epsilon) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap);\n else sa0 = sa1 = (sa0 + sa1) / 2;\n if (abs(ta1 - ta0) > ap * 2 + epsilon) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap);\n else ta0 = ta1 = (ta0 + ta1) / 2;\n }\n\n context.moveTo(sr * cos(sa0), sr * sin(sa0));\n context.arc(0, 0, sr, sa0, sa1);\n if (sa0 !== ta0 || sa1 !== ta1) {\n if (headRadius) {\n var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2;\n context.quadraticCurveTo(0, 0, tr2 * cos(ta0), tr2 * sin(ta0));\n context.lineTo(tr * cos(ta2), tr * sin(ta2));\n context.lineTo(tr2 * cos(ta1), tr2 * sin(ta1));\n } else {\n context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));\n context.arc(0, 0, tr, ta0, ta1);\n }\n }\n context.quadraticCurveTo(0, 0, sr * cos(sa0), sr * sin(sa0));\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n if (headRadius) ribbon.headRadius = function(_) {\n return arguments.length ? (headRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : headRadius;\n };\n\n ribbon.radius = function(_) {\n return arguments.length ? (sourceRadius = targetRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : sourceRadius;\n };\n\n ribbon.sourceRadius = function(_) {\n return arguments.length ? (sourceRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : sourceRadius;\n };\n\n ribbon.targetRadius = function(_) {\n return arguments.length ? (targetRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : targetRadius;\n };\n\n ribbon.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : startAngle;\n };\n\n ribbon.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : endAngle;\n };\n\n ribbon.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : padAngle;\n };\n\n ribbon.source = function(_) {\n return arguments.length ? (source = _, ribbon) : source;\n };\n\n ribbon.target = function(_) {\n return arguments.length ? (target = _, ribbon) : target;\n };\n\n ribbon.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;\n };\n\n return ribbon;\n}\n\nexport default function() {\n return ribbon();\n}\n\nexport function ribbonArrow() {\n return ribbon(defaultArrowheadRadius);\n}\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import type { DataItem } from \"../../core/render/Component\";\nimport type { IFlowNodesDataItem, FlowNodes } from \"./FlowNodes\";\n\nimport { Container, IContainerPrivate, IContainerSettings } from \"../../core/render/Container\";\n\nexport interface IFlowNodeSettings extends IContainerSettings {\n}\n\nexport interface IFlowNodePrivate extends IContainerPrivate {\n}\n\n/**\n * Base class for flow chart nodes.\n */\nexport class FlowNode extends Container {\n\n\t/**\n\t * Related series.\n\t */\n\tpublic series: FlowNodes | undefined;\n\n\tdeclare public _settings: IFlowNodeSettings;\n\tdeclare public _privateSettings: IFlowNodePrivate;\n\n\tpublic static className: string = \"FlowNode\";\n\tpublic static classNames: Array = Container.classNames.concat([FlowNode.className]);\n\n\tdeclare protected _dataItem: DataItem | undefined;\n}\n","import type { DataItem } from \"../../core/render/Component\";\nimport type { Color } from \"../../core/util/Color\";\nimport type { Time } from \"../../core/util/Animation\";\nimport type { Flow, IFlowDataItem } from \"./Flow\";\nimport type * as d3sankey from \"d3-sankey\";\n\nimport { Label } from \"../../core/render/Label\";\nimport { Series, ISeriesSettings, ISeriesDataItem, ISeriesPrivate, ISeriesEvents } from \"../../core/render/Series\";\nimport { Template } from \"../../core/util/Template\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport { FlowNode } from \"./FlowNode\";\nimport type { ColorSet } from \"../../core/util/ColorSet\";\n\nimport * as $array from \"../../core/util/Array\";\n\nexport interface IFlowNodesDataItem extends ISeriesDataItem {\n\n\t/**\n\t * Node name.\n\t */\n\tname: string;\n\n\t/**\n\t * An associated node instance.\n\t */\n\tnode: FlowNode;\n\n\t/**\n\t * Node label.\n\t */\n\tlabel: Label;\n\n\t/**\n\t * Node color.\n\t */\n\tfill: Color;\n\n\t/**\n\t * Indicates \"unknown\" node.\n\t */\n\tunknown: boolean;\n\n\t/**\n\t * @ignore\n\t */\n\td3SankeyNode: d3sankey.SankeyNode;\n\n\t/**\n\t * Sum of values of all incoming links.\n\t */\n\tsumIncoming: number;\n\n\t/**\n\t * Sum of values of all outgoing links.\n\t */\n\tsumOutgoing: number;\n\n\t/**\n\t * @ignore\n\t */\n\tsumIncomingWorking: number;\n\n\t/**\n\t * @ignore\n\t */\n\tsumOutgoingWorking: number;\n\n\t/**\n\t * Sum of values of all links: incoming and outgoing.\n\t */\n\tsum: number;\n\n\t/**\n\t * @ignore\n\t */\n\tsumWorking: number;\n\n\t/**\n\t * A list of incoming link data items.\n\t */\n\tincomingLinks: Array>;\n\n\t/**\n\t * A list of outgoing link data items.\n\t */\n\toutgoingLinks: Array>;\n\n\t/**\n\t * Depth of the node.\n\t */\n\tdepth: number;\n\n}\n\nexport interface IFlowNodesSettings extends ISeriesSettings {\n\n\t/**\n\t * A field in data boolean setting if the node is \"unknown\".\n\t *\n\t * @default \"unknown\"\n\t */\n\tunknownField?: string;\n\n\t/**\n\t * A field in data that holds name for the node.\n\t *\n\t * @default \"id\"\n\t */\n\tnameField?: string;\n\n\t/**\n\t * A field in data that holds color used for fills nodes.\n\t *\n\t * @default \"fill\"\n\t */\n\tfillField?: string;\n\n\t/**\n\t * A [[ColorSet]] that series will use to apply to its nodes.\n\t */\n\tcolors?: ColorSet;\n\n\t/**\n\t * Animation duration in ms.\n\t */\n\tanimationDuration?: number;\n\n\t/**\n\t * Easing function to use for node animations.\n\t */\n\tanimationEasing?: (t: Time) => Time;\n}\n\nexport interface IFlowNodesPrivate extends ISeriesPrivate {\n}\n\nexport interface IFlowNodesEvents extends ISeriesEvents {\n}\n\n\n/**\n * Holds instances of nodes for a [[Flow]] series.\n */\nexport abstract class FlowNodes extends Series {\n\tpublic static className: string = \"FlowNodes\";\n\tpublic static classNames: Array = Series.classNames.concat([FlowNodes.className]);\n\n\tdeclare public _settings: IFlowNodesSettings;\n\tdeclare public _privateSettings: IFlowNodesPrivate;\n\tdeclare public _dataItemSettings: IFlowNodesDataItem;\n\tdeclare public _events: IFlowNodesEvents;\n\n\t/**\n\t * List of label elements.\n\t *\n\t * @default new ListTemplate