diff --git a/.eslintignore b/.eslintignore
index 012f471e24af..d68a243969c0 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -23,3 +23,6 @@ public/locales/**/*.js
# Auto-generated icon file
packages/grafana-ui/src/components/Icon/iconBundle.ts
+
+# Sankey chart module.js
+public/app/plugins/panel/sankey-panel-0.5.0/module.js
diff --git a/public/app/features/plugins/built_in_plugins.ts b/public/app/features/plugins/built_in_plugins.ts
index 4c28f0d7551c..ac23be169b4e 100644
--- a/public/app/features/plugins/built_in_plugins.ts
+++ b/public/app/features/plugins/built_in_plugins.ts
@@ -56,11 +56,11 @@ import * as gettingStartedPanel from 'app/plugins/panel/gettingstarted/module';
import * as histogramPanel from 'app/plugins/panel/histogram/module';
import * as livePanel from 'app/plugins/panel/live/module';
import * as logsPanel from 'app/plugins/panel/logs/module';
-//@ts-ignore
-import * as sankeyPanel from 'app/plugins/panel/netsage-sankey-panel/module';
import * as newsPanel from 'app/plugins/panel/news/module';
import * as nodeGraph from 'app/plugins/panel/nodeGraph/module';
import * as pieChartPanel from 'app/plugins/panel/piechart/module';
+//@ts-ignore
+import * as sankeyPanel from 'app/plugins/panel/sankey-panel-0.5.0/module';
import * as statPanel from 'app/plugins/panel/stat/module';
import * as stateTimelinePanel from 'app/plugins/panel/state-timeline/module';
import * as statusHistoryPanel from 'app/plugins/panel/status-history/module';
@@ -149,7 +149,7 @@ const builtInPlugins: any = {
'app/plugins/panel/nodeGraph/module': nodeGraph,
'app/plugins/panel/histogram/module': histogramPanel,
'app/plugins/panel/alertGroups/module': alertGroupsPanel,
- 'app/plugins/panel/netsage-sankey-panel/module': sankeyPanel,
+ 'app/plugins/panel/sankey-panel-0.5.0/module': sankeyPanel,
};
export default builtInPlugins;
diff --git a/public/app/plugins/panel/img/logo.svg b/public/app/plugins/panel/img/logo.svg
new file mode 100644
index 000000000000..2d41fa5441e6
--- /dev/null
+++ b/public/app/plugins/panel/img/logo.svg
@@ -0,0 +1,20 @@
+
+
\ No newline at end of file
diff --git a/public/app/plugins/panel/netsage-sankey-panel/CHANGELOG.md b/public/app/plugins/panel/netsage-sankey-panel/CHANGELOG.md
deleted file mode 100644
index 9d63e78d6087..000000000000
--- a/public/app/plugins/panel/netsage-sankey-panel/CHANGELOG.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Changelog
-
-## 1.0.0 (Unreleased)
-
-Initial release.
diff --git a/public/app/plugins/panel/netsage-sankey-panel/LICENSE b/public/app/plugins/panel/netsage-sankey-panel/LICENSE
deleted file mode 100644
index 8dada3edaf50..000000000000
--- a/public/app/plugins/panel/netsage-sankey-panel/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/public/app/plugins/panel/netsage-sankey-panel/MANIFEST.txt b/public/app/plugins/panel/netsage-sankey-panel/MANIFEST.txt
deleted file mode 100644
index df287d00e404..000000000000
--- a/public/app/plugins/panel/netsage-sankey-panel/MANIFEST.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA512
-
-{
- "manifestVersion": "2.0.0",
- "signatureType": "community",
- "signedByOrg": "netsage",
- "signedByOrgName": "netsage",
- "plugin": "netsage-sankey-panel",
- "version": "1.0.6",
- "time": 1638572412631,
- "keyId": "7e4d0c6a708866e7",
- "files": {
- "img/logo.svg": "e1b79c50e08be2be3382fa42850209dc3a7496d56e60a45c4d8a1375a685e633",
- "img/sankey2.png": "99651eceae6c3e99f6b0317f4eec4f7827d3d4c242b4f3a29d166a17f0e71cf8",
- "img/sankey3.png": "9ec6c9fd8df713ce384b96e13f300f123672b293034a448c99ac1f739c54e117",
- "LICENSE": "b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1",
- "CHANGELOG.md": "aaa78be4710ef41d56ddab1edbd180ef9f9adfea2f293109aae925dc33a1b9b3",
- "plugin.json": "473cff9ad4c1a2cb048f49db0b8be00784c95cd35f532f983f068f9510e426da",
- "module.js.LICENSE.txt": "0d8f66cd4afb566cb5b7e1540c68f43b939d3eba12ace290f18abc4f4cb53ed0",
- "module.js": "1f322c0fefd782cd9012cf2924bb6b732fa1231c996de2be1aa46283a9d64ac9",
- "README.md": "d7217302fc453ea1d644fb02b22dbaca242317c8f18ab3ed93ebcef065c1127a",
- "module.js.map": "59de1d9c597bd2e7c95c658bd305190d942e3d2091b42a12906a7fb00828c48a"
- }
-}
------BEGIN PGP SIGNATURE-----
-Version: OpenPGP.js v4.10.1
-Comment: https://openpgpjs.org
-
-wqIEARMKAAYFAmGqoXwACgkQfk0ManCIZueqXQIJAS/RG/Hl7fj5xUdX9uDA
-6lRMnN3+7eqsZ7FV9EdCcmsgZx0EpdofSZkMvXmLy6QwOtLiuMY1ibJMRgzo
-lsYDf2yMAgkBe61G1aW6aqQReVRcSylIvZ/y53ZDX3pCjPQp5OBk6mRVUcQq
-95JtwCqYOyvgCAXRoXPHl1Tfr9GbfNSevI0Iqaw=
-=pSz1
------END PGP SIGNATURE-----
diff --git a/public/app/plugins/panel/netsage-sankey-panel/README.md b/public/app/plugins/panel/netsage-sankey-panel/README.md
deleted file mode 100644
index 8414f4bb4e1e..000000000000
--- a/public/app/plugins/panel/netsage-sankey-panel/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# NetSage Sankey Grafana Plugin
-
-[](https://github.com/netsage-project/netsage-sankey-panel/actions/workflows/ci.yml)
-[](https://github.com/netsage-project/netsage-sankey-panel/actions/workflows/release.yml)
-
-This is a panel plugin for generating Sankey diagrams in Grafana 7.0+. Sankey diagrams are good for visualizing flow data and the width of the flows will be proportionate to the selected metric.
-
-
-
-## How it works
-
-The sankey panel requires at least 2 columns of data, a source and destination for the flows. This means your query should group your data into at least two groups. The screenshot above shows data grouped by source country, then by destination county.
-The panel will draw links from the first column of data points, to the last in order of the query. The thickness of the links will be proportionate to the value as assigned by the metric in the query.
-
-
-
-## Customizing
-
-- **Links:** There are currently two options for link color: multi or single. It is multi-colored by default. To choose a single color for the links, toggle the "Single Link color only" option and choose your color from Grafana's color picker.
-- **Nodes:** You can change the color of the rectangular nodes by changing the "Node color" option
-- **Node Width** The width of the nodes can be adjusted with the "Node Width" slider or entering a number in the input box. This number must be an integer.
-- **Node Padding** The vertical padding between nodes can be adjusted with the "Node Padding" slider or entering a number in the input box. This number must be an integer. If your links are too skinny, try adjusting this number
-- **Headers** The column headers can be changed by using a Display Name override in the editor panel. They will be the same color you choose for Text color
-- **Sankey Layout** The layout of the sankey links can be adjusted slightly using the "Layout iteration" slider. This number must be an integer and is the number of relaxation iterations used to generate the layout.
diff --git a/public/app/plugins/panel/netsage-sankey-panel/img/logo.svg b/public/app/plugins/panel/netsage-sankey-panel/img/logo.svg
deleted file mode 100644
index 4e78141cfa00..000000000000
--- a/public/app/plugins/panel/netsage-sankey-panel/img/logo.svg
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
diff --git a/public/app/plugins/panel/netsage-sankey-panel/img/sankey2.png b/public/app/plugins/panel/netsage-sankey-panel/img/sankey2.png
deleted file mode 100644
index 5a3a97aba0e0..000000000000
Binary files a/public/app/plugins/panel/netsage-sankey-panel/img/sankey2.png and /dev/null differ
diff --git a/public/app/plugins/panel/netsage-sankey-panel/img/sankey3.png b/public/app/plugins/panel/netsage-sankey-panel/img/sankey3.png
deleted file mode 100644
index 57a7e98d5d89..000000000000
Binary files a/public/app/plugins/panel/netsage-sankey-panel/img/sankey3.png and /dev/null differ
diff --git a/public/app/plugins/panel/netsage-sankey-panel/module.js b/public/app/plugins/panel/netsage-sankey-panel/module.js
deleted file mode 100644
index 0629e54bb6bb..000000000000
--- a/public/app/plugins/panel/netsage-sankey-panel/module.js
+++ /dev/null
@@ -1,1153 +0,0 @@
-/*! For license information please see module.js.LICENSE.txt */
-/* eslint-disable */
-define(['d3', 'react', '@grafana/data', '@grafana/ui'], function (t, e, n, r) {
- return (function (t) {
- var e = {};
- function n(r) {
- if (e[r]) return e[r].exports;
- var o = (e[r] = { i: r, l: !1, exports: {} });
- return t[r].call(o.exports, o, o.exports, n), (o.l = !0), o.exports;
- }
- return (
- (n.m = t),
- (n.c = e),
- (n.d = function (t, e, r) {
- n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: r });
- }),
- (n.r = function (t) {
- 'undefined' != typeof Symbol &&
- Symbol.toStringTag &&
- Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' }),
- Object.defineProperty(t, '__esModule', { value: !0 });
- }),
- (n.t = function (t, e) {
- if ((1 & e && (t = n(t)), 8 & e)) return t;
- if (4 & e && 'object' == typeof t && t && t.__esModule) return t;
- var r = Object.create(null);
- if ((n.r(r), Object.defineProperty(r, 'default', { enumerable: !0, value: t }), 2 & e && 'string' != typeof t))
- for (var o in t)
- n.d(
- r,
- o,
- function (e) {
- return t[e];
- }.bind(null, o)
- );
- return r;
- }),
- (n.n = function (t) {
- var e =
- t && t.__esModule
- ? function () {
- return t.default;
- }
- : function () {
- return t;
- };
- return n.d(e, 'a', e), e;
- }),
- (n.o = function (t, e) {
- return Object.prototype.hasOwnProperty.call(t, e);
- }),
- (n.p = '/'),
- n((n.s = 5))
- );
- })([
- function (e, n) {
- e.exports = t;
- },
- function (t, n) {
- t.exports = e;
- },
- function (t, e) {
- t.exports = n;
- },
- function (t, e) {
- t.exports = r;
- },
- ,
- function (t, e, n) {
- 'use strict';
- n.r(e);
- var r = n(2);
- var o = function () {
- return (o =
- Object.assign ||
- function (t) {
- for (var e, n = 1, r = arguments.length; n < r; n++)
- for (var o in (e = arguments[n])) Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
- return t;
- }).apply(this, arguments);
- };
- Object.create;
- function i(t, e) {
- var n = 'function' == typeof Symbol && t[Symbol.iterator];
- if (!n) return t;
- var r,
- o,
- i = n.call(t),
- a = [];
- try {
- for (; (void 0 === e || e-- > 0) && !(r = i.next()).done; ) a.push(r.value);
- } catch (t) {
- o = { error: t };
- } finally {
- try {
- r && !r.done && (n = i.return) && n.call(i);
- } finally {
- if (o) throw o.error;
- }
- }
- return a;
- }
- Object.create;
- var a = n(1),
- s = n.n(a);
- function l(t, e) {
- let n = 0;
- if (void 0 === e) for (let e of t) (e = +e) && (n += e);
- else {
- let r = -1;
- for (let o of t) (o = +e(o, ++r, t)) && (n += o);
- }
- return n;
- }
- function u(t, e) {
- let n;
- if (void 0 === e) for (const e of t) null != e && (n < e || (void 0 === n && e >= e)) && (n = e);
- else {
- let r = -1;
- for (let o of t) null != (o = e(o, ++r, t)) && (n < o || (void 0 === n && o >= o)) && (n = o);
- }
- return n;
- }
- function c(t, e) {
- let n;
- if (void 0 === e) for (const e of t) null != e && (n > e || (void 0 === n && e >= e)) && (n = e);
- else {
- let r = -1;
- for (let o of t) null != (o = e(o, ++r, t)) && (n > o || (void 0 === n && o >= o)) && (n = o);
- }
- return n;
- }
- function f(t, e) {
- return t.sourceLinks.length ? t.depth : e - 1;
- }
- function d(t) {
- return function () {
- return t;
- };
- }
- function h(t, e) {
- return y(t.source, e.source) || t.index - e.index;
- }
- function p(t, e) {
- return y(t.target, e.target) || t.index - e.index;
- }
- function y(t, e) {
- return t.y0 - e.y0;
- }
- function g(t) {
- return t.value;
- }
- function m(t) {
- return t.index;
- }
- function b(t) {
- return t.nodes;
- }
- function x(t) {
- return t.links;
- }
- function v(t, e) {
- const n = t.get(e);
- if (!n) throw new Error('missing: ' + e);
- return n;
- }
- function k({ nodes: t }) {
- for (const e of t) {
- let t = e.y0,
- n = t;
- for (const n of e.sourceLinks) (n.y0 = t + n.width / 2), (t += n.width);
- for (const t of e.targetLinks) (t.y1 = n + t.width / 2), (n += t.width);
- }
- }
- function w() {
- let t,
- e,
- n,
- r = 0,
- o = 0,
- i = 1,
- a = 1,
- s = 24,
- w = 8,
- _ = m,
- L = f,
- M = b,
- C = x,
- E = 6;
- function S() {
- const t = { nodes: M.apply(null, arguments), links: C.apply(null, arguments) };
- return A(t), P(t), O(t), j(t), N(t), k(t), t;
- }
- function A({ nodes: t, links: e }) {
- for (const [e, n] of t.entries()) (n.index = e), (n.sourceLinks = []), (n.targetLinks = []);
- const r = new Map(t.map((e, n) => [_(e, n, t), e]));
- for (const [t, n] of e.entries()) {
- n.index = t;
- let { source: e, target: o } = n;
- 'object' != typeof e && (e = n.source = v(r, e)),
- 'object' != typeof o && (o = n.target = v(r, o)),
- e.sourceLinks.push(n),
- o.targetLinks.push(n);
- }
- if (null != n) for (const { sourceLinks: e, targetLinks: r } of t) e.sort(n), r.sort(n);
- }
- function P({ nodes: t }) {
- for (const e of t)
- e.value = void 0 === e.fixedValue ? Math.max(l(e.sourceLinks, g), l(e.targetLinks, g)) : e.fixedValue;
- }
- function O({ nodes: t }) {
- const e = t.length;
- let n = new Set(t),
- r = new Set(),
- o = 0;
- for (; n.size; ) {
- for (const t of n) {
- t.depth = o;
- for (const { target: e } of t.sourceLinks) r.add(e);
- }
- if (++o > e) throw new Error('circular link');
- (n = r), (r = new Set());
- }
- }
- function j({ nodes: t }) {
- const e = t.length;
- let n = new Set(t),
- r = new Set(),
- o = 0;
- for (; n.size; ) {
- for (const t of n) {
- t.height = o;
- for (const { source: e } of t.targetLinks) r.add(e);
- }
- if (++o > e) throw new Error('circular link');
- (n = r), (r = new Set());
- }
- }
- function N(n) {
- const f = (function ({ nodes: t }) {
- const n = u(t, (t) => t.depth) + 1,
- o = (i - r - s) / (n - 1),
- a = new Array(n);
- for (const e of t) {
- const t = Math.max(0, Math.min(n - 1, Math.floor(L.call(null, e, n))));
- (e.layer = t), (e.x0 = r + t * o), (e.x1 = e.x0 + s), a[t] ? a[t].push(e) : (a[t] = [e]);
- }
- if (e) for (const t of a) t.sort(e);
- return a;
- })(n);
- (t = Math.min(w, (a - o) / (u(f, (t) => t.length) - 1))),
- (function (e) {
- const n = c(e, (e) => (a - o - (e.length - 1) * t) / l(e, g));
- for (const r of e) {
- let e = o;
- for (const o of r) {
- (o.y0 = e), (o.y1 = e + o.value * n), (e = o.y1 + t);
- for (const t of o.sourceLinks) t.width = t.value * n;
- }
- e = (a - e + t) / (r.length + 1);
- for (let t = 0; t < r.length; ++t) {
- const n = r[t];
- (n.y0 += e * (t + 1)), (n.y1 += e * (t + 1));
- }
- B(r);
- }
- })(f);
- for (let t = 0; t < E; ++t) {
- const e = Math.pow(0.99, t),
- n = Math.max(1 - e, (t + 1) / E);
- V(f, e, n), I(f, e, n);
- }
- }
- function I(t, n, r) {
- for (let o = 1, i = t.length; o < i; ++o) {
- const i = t[o];
- for (const t of i) {
- let e = 0,
- r = 0;
- for (const { source: n, value: o } of t.targetLinks) {
- let i = o * (t.layer - n.layer);
- (e += W(n, t) * i), (r += i);
- }
- if (!(r > 0)) continue;
- let o = (e / r - t.y0) * n;
- (t.y0 += o), (t.y1 += o), z(t);
- }
- void 0 === e && i.sort(y), T(i, r);
- }
- }
- function V(t, n, r) {
- for (let o = t.length - 2; o >= 0; --o) {
- const i = t[o];
- for (const t of i) {
- let e = 0,
- r = 0;
- for (const { target: n, value: o } of t.sourceLinks) {
- let i = o * (n.layer - t.layer);
- (e += X(t, n) * i), (r += i);
- }
- if (!(r > 0)) continue;
- let o = (e / r - t.y0) * n;
- (t.y0 += o), (t.y1 += o), z(t);
- }
- void 0 === e && i.sort(y), T(i, r);
- }
- }
- function T(e, n) {
- const r = e.length >> 1,
- i = e[r];
- F(e, i.y0 - t, r - 1, n), D(e, i.y1 + t, r + 1, n), F(e, a, e.length - 1, n), D(e, o, 0, n);
- }
- function D(e, n, r, o) {
- for (; r < e.length; ++r) {
- const i = e[r],
- a = (n - i.y0) * o;
- a > 1e-6 && ((i.y0 += a), (i.y1 += a)), (n = i.y1 + t);
- }
- }
- function F(e, n, r, o) {
- for (; r >= 0; --r) {
- const i = e[r],
- a = (i.y1 - n) * o;
- a > 1e-6 && ((i.y0 -= a), (i.y1 -= a)), (n = i.y0 - t);
- }
- }
- function z({ sourceLinks: t, targetLinks: e }) {
- if (void 0 === n) {
- for (const {
- source: { sourceLinks: t },
- } of e)
- t.sort(p);
- for (const {
- target: { targetLinks: e },
- } of t)
- e.sort(h);
- }
- }
- function B(t) {
- if (void 0 === n) for (const { sourceLinks: e, targetLinks: n } of t) e.sort(p), n.sort(h);
- }
- function W(e, n) {
- let r = e.y0 - ((e.sourceLinks.length - 1) * t) / 2;
- for (const { target: o, width: i } of e.sourceLinks) {
- if (o === n) break;
- r += i + t;
- }
- for (const { source: t, width: o } of n.targetLinks) {
- if (t === e) break;
- r -= o;
- }
- return r;
- }
- function X(e, n) {
- let r = n.y0 - ((n.targetLinks.length - 1) * t) / 2;
- for (const { source: o, width: i } of n.targetLinks) {
- if (o === e) break;
- r += i + t;
- }
- for (const { target: t, width: o } of e.sourceLinks) {
- if (t === n) break;
- r -= o;
- }
- return r;
- }
- return (
- (S.update = function (t) {
- return k(t), t;
- }),
- (S.nodeId = function (t) {
- return arguments.length ? ((_ = 'function' == typeof t ? t : d(t)), S) : _;
- }),
- (S.nodeAlign = function (t) {
- return arguments.length ? ((L = 'function' == typeof t ? t : d(t)), S) : L;
- }),
- (S.nodeSort = function (t) {
- return arguments.length ? ((e = t), S) : e;
- }),
- (S.nodeWidth = function (t) {
- return arguments.length ? ((s = +t), S) : s;
- }),
- (S.nodePadding = function (e) {
- return arguments.length ? ((w = t = +e), S) : w;
- }),
- (S.nodes = function (t) {
- return arguments.length ? ((M = 'function' == typeof t ? t : d(t)), S) : M;
- }),
- (S.links = function (t) {
- return arguments.length ? ((C = 'function' == typeof t ? t : d(t)), S) : C;
- }),
- (S.linkSort = function (t) {
- return arguments.length ? ((n = t), S) : n;
- }),
- (S.size = function (t) {
- return arguments.length ? ((r = o = 0), (i = +t[0]), (a = +t[1]), S) : [i - r, a - o];
- }),
- (S.extent = function (t) {
- return arguments.length
- ? ((r = +t[0][0]), (i = +t[1][0]), (o = +t[0][1]), (a = +t[1][1]), S)
- : [
- [r, o],
- [i, a],
- ];
- }),
- (S.iterations = function (t) {
- return arguments.length ? ((E = +t), S) : E;
- }),
- S
- );
- }
- var _ = Math.PI,
- L = 2 * _,
- M = L - 1e-6;
- function C() {
- (this._x0 = this._y0 = this._x1 = this._y1 = null), (this._ = '');
- }
- function E() {
- return new C();
- }
- C.prototype = E.prototype = {
- constructor: C,
- moveTo: function (t, e) {
- this._ += 'M' + (this._x0 = this._x1 = +t) + ',' + (this._y0 = this._y1 = +e);
- },
- closePath: function () {
- null !== this._x1 && ((this._x1 = this._x0), (this._y1 = this._y0), (this._ += 'Z'));
- },
- lineTo: function (t, e) {
- this._ += 'L' + (this._x1 = +t) + ',' + (this._y1 = +e);
- },
- quadraticCurveTo: function (t, e, n, r) {
- this._ += 'Q' + +t + ',' + +e + ',' + (this._x1 = +n) + ',' + (this._y1 = +r);
- },
- bezierCurveTo: function (t, e, n, r, o, i) {
- this._ += 'C' + +t + ',' + +e + ',' + +n + ',' + +r + ',' + (this._x1 = +o) + ',' + (this._y1 = +i);
- },
- arcTo: function (t, e, n, r, o) {
- (t = +t), (e = +e), (n = +n), (r = +r), (o = +o);
- var i = this._x1,
- a = this._y1,
- s = n - t,
- l = r - e,
- u = i - t,
- c = a - e,
- f = u * u + c * c;
- if (o < 0) throw new Error('negative radius: ' + o);
- if (null === this._x1) this._ += 'M' + (this._x1 = t) + ',' + (this._y1 = e);
- else if (f > 1e-6)
- if (Math.abs(c * s - l * u) > 1e-6 && o) {
- var d = n - i,
- h = r - a,
- p = s * s + l * l,
- y = d * d + h * h,
- g = Math.sqrt(p),
- m = Math.sqrt(f),
- b = o * Math.tan((_ - Math.acos((p + f - y) / (2 * g * m))) / 2),
- x = b / m,
- v = b / g;
- Math.abs(x - 1) > 1e-6 && (this._ += 'L' + (t + x * u) + ',' + (e + x * c)),
- (this._ +=
- 'A' +
- o +
- ',' +
- o +
- ',0,0,' +
- +(c * d > u * h) +
- ',' +
- (this._x1 = t + v * s) +
- ',' +
- (this._y1 = e + v * l));
- } else this._ += 'L' + (this._x1 = t) + ',' + (this._y1 = e);
- else;
- },
- arc: function (t, e, n, r, o, i) {
- (t = +t), (e = +e), (i = !!i);
- var a = (n = +n) * Math.cos(r),
- s = n * Math.sin(r),
- l = t + a,
- u = e + s,
- c = 1 ^ i,
- f = i ? r - o : o - r;
- if (n < 0) throw new Error('negative radius: ' + n);
- null === this._x1
- ? (this._ += 'M' + l + ',' + u)
- : (Math.abs(this._x1 - l) > 1e-6 || Math.abs(this._y1 - u) > 1e-6) && (this._ += 'L' + l + ',' + u),
- n &&
- (f < 0 && (f = (f % L) + L),
- f > M
- ? (this._ +=
- 'A' +
- n +
- ',' +
- n +
- ',0,1,' +
- c +
- ',' +
- (t - a) +
- ',' +
- (e - s) +
- 'A' +
- n +
- ',' +
- n +
- ',0,1,' +
- c +
- ',' +
- (this._x1 = l) +
- ',' +
- (this._y1 = u))
- : f > 1e-6 &&
- (this._ +=
- 'A' +
- n +
- ',' +
- n +
- ',0,' +
- +(f >= _) +
- ',' +
- c +
- ',' +
- (this._x1 = t + n * Math.cos(o)) +
- ',' +
- (this._y1 = e + n * Math.sin(o))));
- },
- rect: function (t, e, n, r) {
- this._ +=
- 'M' + (this._x0 = this._x1 = +t) + ',' + (this._y0 = this._y1 = +e) + 'h' + +n + 'v' + +r + 'h' + -n + 'Z';
- },
- toString: function () {
- return this._;
- },
- };
- var S = E,
- A = Array.prototype.slice,
- P = function (t) {
- return function () {
- return t;
- };
- };
- function O(t) {
- return t[0];
- }
- function j(t) {
- return t[1];
- }
- function N(t) {
- return t.source;
- }
- function I(t) {
- return t.target;
- }
- function V(t) {
- var e = N,
- n = I,
- r = O,
- o = j,
- i = null;
- function a() {
- var a,
- s = A.call(arguments),
- l = e.apply(this, s),
- u = n.apply(this, s);
- if (
- (i || (i = a = S()),
- t(
- i,
- +r.apply(this, ((s[0] = l), s)),
- +o.apply(this, s),
- +r.apply(this, ((s[0] = u), s)),
- +o.apply(this, s)
- ),
- a)
- )
- return (i = null), a + '' || null;
- }
- return (
- (a.source = function (t) {
- return arguments.length ? ((e = t), a) : e;
- }),
- (a.target = function (t) {
- return arguments.length ? ((n = t), a) : n;
- }),
- (a.x = function (t) {
- return arguments.length ? ((r = 'function' == typeof t ? t : P(+t)), a) : r;
- }),
- (a.y = function (t) {
- return arguments.length ? ((o = 'function' == typeof t ? t : P(+t)), a) : o;
- }),
- (a.context = function (t) {
- return arguments.length ? ((i = null == t ? null : t), a) : i;
- }),
- a
- );
- }
- function T(t, e, n, r, o) {
- t.moveTo(e, n), t.bezierCurveTo((e = (e + r) / 2), n, e, o, r, o);
- }
- function D(t) {
- return [t.source.x1, t.y0];
- }
- function F(t) {
- return [t.target.x0, t.y1];
- }
- var z,
- B = function () {
- return V(T).source(D).target(F);
- },
- W = function (t) {
- var e = t.data,
- n = t.panelId,
- r = B(),
- o = e.color,
- i = n + '-' + e.id,
- a = 'sankey-path' + n;
- return s.a.createElement(
- s.a.Fragment,
- null,
- s.a.createElement('path', {
- d: r(e),
- fill: 'none',
- stroke: o,
- strokeOpacity: 0.8,
- opacity: 0.7,
- strokeWidth: e.width,
- id: i,
- display: e.displayValue,
- className: a,
- })
- );
- },
- X = n(3),
- Y = function (t) {
- var e = t.data,
- n = t.textColor,
- r = t.nodeColor,
- o = t.panelId,
- i = Object(X.useTheme2)(),
- a = e.x0,
- l = e.x1,
- u = e.y0,
- c = e.y1,
- f = e.index,
- d = e.name,
- h = e.value,
- p = l - a,
- y = i.typography.fontSize,
- g = 'sankey-node' + o;
- return s.a.createElement(
- s.a.Fragment,
- null,
- s.a.createElement('rect', {
- x: a,
- y: u,
- rx: 5,
- ry: 5,
- width: p,
- height: c - u,
- stroke: 'black',
- fill: r,
- 'data-index': f,
- id: o + ',' + e.id,
- d: h,
- name: d,
- className: g,
- }),
- s.a.createElement(
- 'text',
- {
- x: a < p / 2 ? l + 6 : a - 6,
- y: (c + u) / 2,
- style: {
- fill: n,
- alignmentBaseline: 'middle',
- fontSize: y,
- textAnchor: a < p / 2 ? 'start' : 'end',
- pointerEvents: 'none',
- userSelect: 'none',
- },
- },
- d
- )
- );
- },
- q = n(0),
- Z = function (t) {
- var e = t.rowNames,
- n = t.field,
- r = t.panelId,
- o = i(Object(a.useState)({ mouseX: 100, mouseY: 100 }), 2),
- s = o[0],
- l = o[1],
- u = function (t) {
- l({ mouseX: t.clientX, mouseY: t.clientY });
- };
- return (
- Object(a.useEffect)(function () {
- window.addEventListener('mousemove', u);
- var t = '.sankey-path' + r;
- q.selectAll(t)
- .on('mouseover', function (n, r) {
- var o = this,
- i = q.select(this).attr('id'),
- a = i.split('-'),
- l = e.find(function (t) {
- return t.name === a[1];
- }).display;
- q.selectAll(t).each(function (t) {
- var e = q.select(this).attr('id'),
- n = i === e;
- q.select(this).attr('opacity', n ? 1 : 0.4);
- });
- var u = q.select(this).attr('id');
- q.select('body')
- .append('div')
- .attr('class', 'tooltip-' + u)
- .html(function () {
- var t = q.select(o).attr('display');
- return l + ' \n
' + t + '';
- })
- .style('padding', '10px 15px')
- .style('background', 'black')
- .style('color', 'white')
- .style('border', '#A8A8A8 solid 5px')
- .style('border-radius', '5px')
- .style('left', s.mouseX + 'px')
- .style('top', s.mouseY + 'px')
- .style('opacity', 0)
- .style('position', 'absolute')
- .transition()
- .duration(200)
- .style('opacity', 0.8);
- })
- .on('mouseout', function (e) {
- var n = q.select(this).attr('id');
- q
- .selectAll('.tooltip-' + n)
- .transition()
- .duration(300)
- .remove(),
- q.selectAll(t).attr('opacity', 0.7);
- });
- var o = '.sankey-node' + r;
- return (
- q
- .selectAll(o)
- .on('mouseover', function (e, r) {
- var o = this,
- i = q.select(this).attr('id').split(','),
- a = i[0],
- l = [];
- i.forEach(function (t) {
- l.push(a + '-' + t);
- }),
- q.selectAll(t).each(function (t) {
- var e = q.select(this).attr('id'),
- n = l.find(function (t) {
- return t === e;
- });
- q.select(this).attr('opacity', n ? 1 : 0.2);
- });
- var u = q.select(this).attr('data-index');
- q.select('body')
- .append('div')
- .attr('class', 'tooltip-node' + u)
- .html(function () {
- var t = n.display(q.select(o).attr('d')),
- e = q.select(o).attr('name');
- return t.suffix
- ? e + ': ' + t.text + ' ' + t.suffix + ''
- : e + ': ' + t.text + '';
- })
- .style('padding', '10px 15px')
- .style('background', 'black')
- .style('color', 'white')
- .style('border', '#A8A8A8 solid 5px')
- .style('border-radius', '5px')
- .style('left', s.mouseX + 'px')
- .style('top', s.mouseY + 'px')
- .style('opacity', 0)
- .style('position', 'absolute')
- .transition()
- .duration(200)
- .style('opacity', 0.8);
- })
- .on('mouseout', function (e) {
- var n = q.select(this).attr('data-index');
- q
- .selectAll('.tooltip-node' + n)
- .transition()
- .duration(300)
- .remove(),
- q.selectAll(t).attr('opacity', 0.7);
- }),
- function () {
- window.removeEventListener('mousemove', u);
- }
- );
- }),
- null
- );
- },
- Q = function (t) {
- var e = t.displayNames,
- n = t.width,
- r = t.id,
- o = t.topMargin,
- i = t.textColor;
- return (
- Object(a.useEffect)(function () {
- q.select('#' + r)
- .selectAll('.header-text')
- .remove();
- var t = q
- .select('#' + r)
- .append('g')
- .attr('id', r + ' header'),
- a = 20,
- s = o / 2;
- if (
- (t
- .append('text')
- .attr('class', 'header-text')
- .attr('transform', 'translate(' + a + ',' + s + ')')
- .attr('font-size', '14pt')
- .attr('font-weight', '500')
- .attr('text-anchor', 'start')
- .text(e[0])
- .attr('fill', i),
- t
- .append('text')
- .attr('class', 'header-text')
- .attr('transform', 'translate(' + (n + a) + ',' + s + ')')
- .attr('font-size', '14pt')
- .attr('font-weight', '500')
- .attr('text-anchor', 'end')
- .text(e[e.length - 2])
- .attr('fill', i),
- e.length > 3)
- )
- for (var l = n / (e.length - 2), u = 1; u < e.length - 2; u++) {
- var c = l * u + a;
- t.append('text')
- .attr('class', 'header-text')
- .attr('transform', 'translate(' + c + ',' + s + ')')
- .attr('font-size', '14pt')
- .attr('font-weight', '500')
- .attr('text-anchor', 'middle')
- .text(e[u])
- .attr('fill', i);
- }
- }),
- null
- );
- },
- G = function (t) {
- var e = t.data,
- n = t.width,
- r = t.height,
- o = t.displayNames,
- i = t.rowDisplayNames,
- a = t.id,
- l = t.textColor,
- u = t.nodeColor,
- c = t.field,
- f = t.nodeWidth,
- d = t.nodePadding,
- h = t.iteration,
- p = 75,
- y = 20,
- g = n - y - 20,
- m = r - p - 50,
- b = w()
- .iterations(h)
- .nodeWidth(f)
- .nodePadding(d)
- .extent([
- [0, 0],
- [g, m],
- ]);
- if (e) {
- var x = b(e),
- v = x.links,
- k = x.nodes;
- return s.a.createElement(
- 'svg',
- { id: 'Chart_' + a, width: n, height: r },
- s.a.createElement(Q, { displayNames: o, width: g, id: 'Chart_' + a, topMargin: p, textColor: l }),
- s.a.createElement(Z, { rowNames: i, field: c, panelId: a }),
- s.a.createElement(
- 'g',
- { transform: 'translate(' + y + ', ' + p + ')' },
- v.map(function (t, e) {
- return s.a.createElement(W, { key: e, data: t, panelId: a });
- })
- ),
- s.a.createElement(
- 'g',
- { transform: 'translate(' + y + ', ' + p + ')' },
- k.map(function (t, e) {
- return s.a.createElement(Y, { data: t, key: e, textColor: l, nodeColor: u, panelId: a });
- })
- )
- );
- }
- return s.a.createElement('div', { id: 'Chart_' + a, style: { height: r, width: n } });
- };
- n.d(e, 'plugin', function () {
- return H;
- });
- var H = new r.PanelPlugin(function (t) {
- var e = t.options,
- n = t.data,
- i = t.width,
- a = t.height,
- l = t.id,
- u = o({}, e),
- c = Object(X.useTheme2)(),
- f = [];
- try {
- f = (function (t, e, n, o) {
- var i = e.valueFieldName;
- function a(t) {
- switch (t) {
- case 'dark-green':
- t = '#1A7311';
- break;
- case 'semi-dark-green':
- t = '#36872D';
- break;
- case 'light-green':
- t = '#73BF68';
- break;
- case 'super-light-green':
- t = '#96D88C';
- break;
- case 'dark-yellow':
- t = 'rgb(207, 159, 0)';
- break;
- case 'semi-dark-yellow':
- t = 'rgb(224, 180, 0)';
- break;
- case 'light-yellow':
- t = 'rgb(250, 222, 42)';
- break;
- case 'super-light-yellow':
- t = 'rgb(255, 238, 82)';
- break;
- case 'dark-red':
- t = 'rgb(173, 3, 23)';
- break;
- case 'semi-dark-red':
- t = 'rgb(196, 22, 42)';
- break;
- case 'light-red':
- t = 'rgb(242, 73, 92)';
- break;
- case 'super-light-red':
- t = 'rgb(255, 115, 131)';
- break;
- case 'dark-blue':
- t = 'rgb(18, 80, 176)';
- break;
- case 'semi-dark-blue':
- t = 'rgb(31, 96, 196)';
- break;
- case 'light-blue':
- t = 'rgb(87, 148, 242)';
- break;
- case 'super-light-blue':
- t = 'rgb(138, 184, 255)';
- break;
- case 'dark-orange':
- t = 'rgb(229, 84, 0)';
- break;
- case 'semi-dark-orange':
- t = 'rgb(250, 100, 0)';
- break;
- case 'light-orange':
- t = 'rgb(255, 152, 48)';
- break;
- case 'super-light-orange':
- t = 'rgb(255, 179, 87)';
- break;
- case 'dark-purple':
- t = 'rgb(124, 46, 163)';
- break;
- case 'semi-dark-purple':
- t = 'rgb(143, 59, 184)';
- break;
- case 'light-purple':
- t = 'rgb(184, 119, 217)';
- break;
- case 'super-light-purple':
- t = 'rgb(202, 149, 229)';
- }
- return t;
- }
- var s = [];
- n
- ? s.push(a(o))
- : (s.push('#018EDB'), s.push('#DB8500'), s.push('#7C00DB'), s.push('#DB0600'), s.push('#00DB57'));
- var l = t.series[0].fields,
- u = l.length - 1,
- c = [];
- l.forEach(function (t) {
- c.push(Object(r.getFieldDisplayName)(t));
- });
- var f = i
- ? t.series.map(function (t) {
- return t.fields.find(function (t) {
- return t.name === i;
- });
- })
- : t.series.map(function (t) {
- return t.fields.find(function (t) {
- return 'number' === t.type;
- });
- }),
- d = [];
- f[0].values.buffer.map(function (t) {
- d.push([t, f[0].display(t), f[0].name]);
- });
- var h,
- p = t.series[0],
- y = new r.DataFrameView(p),
- g = [],
- m = [],
- b = [],
- x = [],
- v = 0;
- return (
- y.forEach(function (t) {
- for (
- var e,
- n = [],
- r = function (e) {
- var r = t[e],
- o = m.findIndex(function (t) {
- return t.name === r && t.colId === e;
- });
- -1 === o
- ? ((o = m.push({ name: r, id: ['row' + v], colId: e }) - 1),
- 0 === e && ((h = s[b.length % s.length]), b.push({ name: r, index: o, color: h })))
- : m[o].id.push('row' + v),
- n.push(o);
- },
- o = 0;
- o < u;
- o++
- )
- r(o);
- var i =
- null ===
- (e = b.find(function (t) {
- return t.index === n[0];
- })) || void 0 === e
- ? void 0
- : e.color,
- a = '' + m[n[0]].name;
- for (o = 0; o < n.length - 1; o++) {
- var l,
- c = f[0].display(t[u]);
- (l = c.suffix ? c.text + ' ' + c.suffix : '' + c.text),
- g.push({
- source: n[o],
- target: n[o + 1],
- value: t[u],
- displayValue: l,
- id: 'row' + v,
- color: i,
- node0: n[0],
- }),
- (a = a.concat(' -> ' + m[n[o + 1]].name));
- }
- x.push({ name: 'row' + v, display: a }), v++;
- }),
- [{ links: g, nodes: m }, c, x, f[0], a]
- );
- })(n, e, u.monochrome, u.color);
- } catch (t) {}
- var d = f[1],
- h = f[0],
- p = f[2],
- y = f[3],
- g = f[4],
- m = c.colors.text.primary,
- b = g(u.nodeColor);
- return s.a.createElement(
- 'g',
- null,
- s.a.createElement(G, {
- data: h,
- displayNames: d,
- rowDisplayNames: p,
- width: i,
- height: a,
- id: l,
- textColor: m,
- nodeColor: b,
- field: y,
- nodeWidth: u.nodeWidth,
- nodePadding: u.nodePadding,
- iteration: u.iteration,
- })
- );
- })
- .setPanelOptions(function (t) {
- var e;
- t.addBooleanSwitch({ path: 'monochrome', name: 'Single Link color only', defaultValue: !1 })
- .addColorPicker({
- path: 'color',
- name: 'Link Color',
- showIf:
- ((e = !0),
- function (t) {
- return t.monochrome === e;
- }),
- defaultValue: 'blue',
- })
- .addColorPicker({ path: 'nodeColor', name: 'Node color', defaultValue: 'grey' })
- .addSliderInput({
- path: 'nodeWidth',
- name: 'Node width',
- defaultValue: 30,
- settings: { min: 5, max: 100, step: 1 },
- })
- .addSliderInput({
- path: 'nodePadding',
- name: 'Node padding',
- defaultValue: 30,
- settings: { min: 1, max: 100, step: 1 },
- })
- .addSliderInput({
- path: 'iteration',
- name: 'Layout iterations',
- defaultValue: 7,
- settings: { min: 1, max: 30, step: 1 },
- });
- })
- .useFieldConfig({
- disableStandardOptions: [r.FieldConfigProperty.NoValue, r.FieldConfigProperty.Max, r.FieldConfigProperty.Min],
- standardOptions:
- ((z = {}),
- (z[r.FieldConfigProperty.Color] = {
- settings: { byValueSupport: !0, bySeriesSupport: !0, preferThresholdsMode: !0 },
- }),
- z),
- });
- },
- ]);
-});
-//# sourceMappingURL=module.js.map
-/* eslint-enable */
diff --git a/public/app/plugins/panel/netsage-sankey-panel/module.js.map b/public/app/plugins/panel/netsage-sankey-panel/module.js.map
deleted file mode 100644
index 91646d921cb7..000000000000
--- a/public/app/plugins/panel/netsage-sankey-panel/module.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"d3\"","webpack:///external \"react\"","webpack:///external \"@grafana/data\"","webpack:///external \"@grafana/ui\"","webpack:///../node_modules/tslib/tslib.es6.js","webpack:///../node_modules/d3-sankey/node_modules/d3-array/src/sum.js","webpack:///../node_modules/d3-sankey/node_modules/d3-array/src/max.js","webpack:///../node_modules/d3-sankey/node_modules/d3-array/src/min.js","webpack:///../node_modules/d3-sankey/src/align.js","webpack:///../node_modules/d3-sankey/src/constant.js","webpack:///../node_modules/d3-sankey/src/sankey.js","webpack:///../node_modules/d3-path/src/path.js","webpack:///../node_modules/d3-shape/src/array.js","webpack:///../node_modules/d3-shape/src/constant.js","webpack:///../node_modules/d3-shape/src/point.js","webpack:///../node_modules/d3-shape/src/link/index.js","webpack:///../node_modules/d3-sankey/src/sankeyLinkHorizontal.js","webpack:///./components/Link.tsx","webpack:///./components/Node.tsx","webpack:///./components/Tooltip.tsx","webpack:///./components/Headers.tsx","webpack:///./components/Sankey.tsx","webpack:///./module.ts","webpack:///./SankeyPanel.tsx","webpack:///./dataParser.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__1__","__WEBPACK_EXTERNAL_MODULE__2__","__WEBPACK_EXTERNAL_MODULE__3__","__assign","assign","arguments","length","apply","this","__read","iterator","e","ar","next","done","push","error","sum","values","valueof","undefined","index","max","min","justify","node","sourceLinks","depth","constant","x","ascendingSourceBreadth","a","b","ascendingBreadth","source","ascendingTargetBreadth","target","y0","defaultId","defaultNodes","graph","nodes","defaultLinks","links","find","nodeById","id","Error","computeLinkBreadths","y1","link","width","targetLinks","py","sort","linkSort","x0","x1","dx","dy","align","iterations","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeHeights","computeNodeBreadths","entries","Map","map","fixedValue","Math","current","Set","size","add","height","columns","kx","Array","floor","layer","column","computeNodeLayers","ky","y","reorderLinks","initializeNodeBreadths","alpha","pow","beta","relaxRightToLeft","relaxLeftToRight","w","v","targetTop","reorderNodeLinks","resolveCollisions","sourceTop","subject","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","update","nodeId","_","nodeAlign","nodeSort","nodeWidth","nodePadding","extent","pi","PI","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","path","constructor","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","x2","y2","arcTo","x21","y21","x01","y01","l01_2","abs","x20","y20","l21_2","l20_2","l21","sqrt","l01","tan","acos","t01","t21","arc","a0","a1","ccw","cos","sin","cw","da","rect","h","toString","slice","linkSource","linkTarget","curve","context","buffer","argv","curveHorizontal","horizontalSource","horizontalTarget","data","panelId","strokeColor","color","className","fill","stroke","strokeOpacity","opacity","strokeWidth","display","displayValue","textColor","nodeColor","theme","fontSize","typography","rx","ry","style","alignmentBaseline","textAnchor","pointerEvents","userSelect","rowNames","field","mouseX","mouseY","mousePosition","setMousePosition","updateMousePosition","clientX","clientY","window","addEventListener","pathClass","on","event","attr","row","split","each","thisId","dark","append","html","textVal","transition","duration","remove","nodeClass","rowList","forEach","found","thisNode","suffix","text","removeEventListener","displayNames","topMargin","selectAll","head","MARGIN","translateY","colWidth","translateX","rowDisplayNames","iteration","graphWidth","graphHeight","transform","options","graphOptions","parsedData","monochrome","valueFieldName","fixColor","colorArray","allData","series","fields","numFields","valueField","type","currentColor","frame","pluginDataLinks","pluginDataNodes","col0","rowId","currentLink","findIndex","colId","rowColor","rowDisplay","fieldValues","node0","concat","parseData","pluginData","colors","primary","setPanelOptions","builder","addBooleanSwitch","defaultValue","addColorPicker","showIf","config","addSliderInput","settings","step","useFieldConfig","disableStandardOptions","NoValue","Max","Min","standardOptions","Color","byValueSupport","bySeriesSupport","preferThresholdsMode"],"mappings":"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","file":"module.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import {min} from \"d3-array\";\n\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\nexport function left(node) {\n return node.depth;\n}\n\nexport function right(node, n) {\n return n - 1 - node.height;\n}\n\nexport function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\nexport function center(node) {\n return node.targetLinks.length ? node.depth\n : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1\n : 0;\n}\n","export default function constant(x) {\n return function() {\n return x;\n };\n}\n","import {max, min, sum} from \"d3-array\";\nimport {justify} from \"./align.js\";\nimport constant from \"./constant.js\";\n\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\nfunction ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n}\n\nfunction value(d) {\n return d.value;\n}\n\nfunction defaultId(d) {\n return d.index;\n}\n\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\nfunction find(nodeById, id) {\n const node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n}\n\nfunction computeLinkBreadths({nodes}) {\n for (const node of nodes) {\n let y0 = node.y0;\n let y1 = y0;\n for (const link of node.sourceLinks) {\n link.y0 = y0 + link.width / 2;\n y0 += link.width;\n }\n for (const link of node.targetLinks) {\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n }\n }\n}\n\nexport default function Sankey() {\n let x0 = 0, y0 = 0, x1 = 1, y1 = 1; // extent\n let dx = 24; // nodeWidth\n let dy = 8, py; // nodePadding\n let id = defaultId;\n let align = justify;\n let sort;\n let linkSort;\n let nodes = defaultNodes;\n let links = defaultLinks;\n let iterations = 6;\n\n function sankey() {\n const graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeHeights(graph);\n computeNodeBreadths(graph);\n computeLinkBreadths(graph);\n return graph;\n }\n\n sankey.update = function(graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n\n sankey.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n };\n\n sankey.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n };\n\n sankey.nodeSort = function(_) {\n return arguments.length ? (sort = _, sankey) : sort;\n };\n\n sankey.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankey) : dx;\n };\n\n sankey.nodePadding = function(_) {\n return arguments.length ? (dy = py = +_, sankey) : dy;\n };\n\n sankey.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n };\n\n sankey.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n };\n\n sankey.linkSort = function(_) {\n return arguments.length ? (linkSort = _, sankey) : linkSort;\n };\n\n sankey.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n };\n\n sankey.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];\n };\n\n sankey.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankey) : iterations;\n };\n\n function computeNodeLinks({nodes, links}) {\n for (const [i, node] of nodes.entries()) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n }\n const nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d]));\n for (const [i, link] of links.entries()) {\n link.index = i;\n let {source, target} = link;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n }\n if (linkSort != null) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(linkSort);\n targetLinks.sort(linkSort);\n }\n }\n }\n\n function computeNodeValues({nodes}) {\n for (const node of nodes) {\n node.value = node.fixedValue === undefined\n ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value))\n : node.fixedValue;\n }\n }\n\n function computeNodeDepths({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.depth = x;\n for (const {target} of node.sourceLinks) {\n next.add(target);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeHeights({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.height = x;\n for (const {source} of node.targetLinks) {\n next.add(source);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeLayers({nodes}) {\n const x = max(nodes, d => d.depth) + 1;\n const kx = (x1 - x0 - dx) / (x - 1);\n const columns = new Array(x);\n for (const node of nodes) {\n const i = Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x))));\n node.layer = i;\n node.x0 = x0 + i * kx;\n node.x1 = node.x0 + dx;\n if (columns[i]) columns[i].push(node);\n else columns[i] = [node];\n }\n if (sort) for (const column of columns) {\n column.sort(sort);\n }\n return columns;\n }\n\n function initializeNodeBreadths(columns) {\n const ky = min(columns, c => (y1 - y0 - (c.length - 1) * py) / sum(c, value));\n for (const nodes of columns) {\n let y = y0;\n for (const node of nodes) {\n node.y0 = y;\n node.y1 = y + node.value * ky;\n y = node.y1 + py;\n for (const link of node.sourceLinks) {\n link.width = link.value * ky;\n }\n }\n y = (y1 - y + py) / (nodes.length + 1);\n for (let i = 0; i < nodes.length; ++i) {\n const node = nodes[i];\n node.y0 += y * (i + 1);\n node.y1 += y * (i + 1);\n }\n reorderLinks(nodes);\n }\n }\n\n function computeNodeBreadths(graph) {\n const columns = computeNodeLayers(graph);\n py = Math.min(dy, (y1 - y0) / (max(columns, c => c.length) - 1));\n initializeNodeBreadths(columns);\n for (let i = 0; i < iterations; ++i) {\n const alpha = Math.pow(0.99, i);\n const beta = Math.max(1 - alpha, (i + 1) / iterations);\n relaxRightToLeft(columns, alpha, beta);\n relaxLeftToRight(columns, alpha, beta);\n }\n }\n\n // Reposition each node based on its incoming (target) links.\n function relaxLeftToRight(columns, alpha, beta) {\n for (let i = 1, n = columns.length; i < n; ++i) {\n const column = columns[i];\n for (const target of column) {\n let y = 0;\n let w = 0;\n for (const {source, value} of target.targetLinks) {\n let v = value * (target.layer - source.layer);\n y += targetTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - target.y0) * alpha;\n target.y0 += dy;\n target.y1 += dy;\n reorderNodeLinks(target);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n // Reposition each node based on its outgoing (source) links.\n function relaxRightToLeft(columns, alpha, beta) {\n for (let n = columns.length, i = n - 2; i >= 0; --i) {\n const column = columns[i];\n for (const source of column) {\n let y = 0;\n let w = 0;\n for (const {target, value} of source.sourceLinks) {\n let v = value * (target.layer - source.layer);\n y += sourceTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - source.y0) * alpha;\n source.y0 += dy;\n source.y1 += dy;\n reorderNodeLinks(source);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n function resolveCollisions(nodes, alpha) {\n const i = nodes.length >> 1;\n const subject = nodes[i];\n resolveCollisionsBottomToTop(nodes, subject.y0 - py, i - 1, alpha);\n resolveCollisionsTopToBottom(nodes, subject.y1 + py, i + 1, alpha);\n resolveCollisionsBottomToTop(nodes, y1, nodes.length - 1, alpha);\n resolveCollisionsTopToBottom(nodes, y0, 0, alpha);\n }\n\n // Push any overlapping nodes down.\n function resolveCollisionsTopToBottom(nodes, y, i, alpha) {\n for (; i < nodes.length; ++i) {\n const node = nodes[i];\n const dy = (y - node.y0) * alpha;\n if (dy > 1e-6) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n }\n\n // Push any overlapping nodes up.\n function resolveCollisionsBottomToTop(nodes, y, i, alpha) {\n for (; i >= 0; --i) {\n const node = nodes[i];\n const dy = (node.y1 - y) * alpha;\n if (dy > 1e-6) node.y0 -= dy, node.y1 -= dy;\n y = node.y0 - py;\n }\n }\n\n function reorderNodeLinks({sourceLinks, targetLinks}) {\n if (linkSort === undefined) {\n for (const {source: {sourceLinks}} of targetLinks) {\n sourceLinks.sort(ascendingTargetBreadth);\n }\n for (const {target: {targetLinks}} of sourceLinks) {\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n function reorderLinks(nodes) {\n if (linkSort === undefined) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(ascendingTargetBreadth);\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n // Returns the target.y0 that would produce an ideal link from source to target.\n function targetTop(source, target) {\n let y = source.y0 - (source.sourceLinks.length - 1) * py / 2;\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y += width + py;\n }\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y -= width;\n }\n return y;\n }\n\n // Returns the source.y0 that would produce an ideal link from source to target.\n function sourceTop(source, target) {\n let y = target.y0 - (target.targetLinks.length - 1) * py / 2;\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y += width + py;\n }\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y -= width;\n }\n return y;\n }\n\n return sankey;\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {linkHorizontal} from \"d3-shape\";\n\nfunction horizontalSource(d) {\n return [d.source.x1, d.y0];\n}\n\nfunction horizontalTarget(d) {\n return [d.target.x0, d.y1];\n}\n\nexport default function() {\n return linkHorizontal()\n .source(horizontalSource)\n .target(horizontalTarget);\n}\n","// import * as d3 from 'd3';\nimport React from 'react';\nimport * as d3Sankey from 'd3-sankey';\n\ninterface LinkProps {\n data: any;\n panelId: any;\n}\n\n/**\n * Create Sankey links\n *\n * @param data is the link data produced by calling the d3-sankey function\n * @return {*} the sankey link\n */\nexport const Link: React.FC
${textVal}`;\n return text;\n })\n .style('padding', '10px 15px')\n .style('background', 'black')\n .style('color', 'white')\n .style('border', '#A8A8A8 solid 5px')\n .style('border-radius', '5px')\n .style('left', mousePosition.mouseX + 'px')\n .style('top', mousePosition.mouseY + 'px')\n .style('opacity', 0)\n .style('position', 'absolute');\n div.transition().duration(200).style('opacity', 0.8);\n })\n .on('mouseout', function (d) {\n var thisId = d3.select(this).attr('id');\n d3.selectAll(`.tooltip-${thisId}`).transition().duration(300).remove();\n d3.selectAll(pathClass).attr('opacity', 0.7);\n });\n\n // Nodes Tooltip\n const nodeClass = `.sankey-node${panelId}`;\n d3.selectAll(nodeClass)\n .on('mouseover', function (event: any, d: any) {\n let id = d3.select(this).attr('id').split(',');\n let panelId = id[0];\n let rowList: string[] = [];\n id.forEach((e) => {\n rowList.push(`${panelId}-${e}`);\n });\n d3.selectAll(pathClass).each(function (d) {\n var thisId = d3.select(this).attr('id');\n var found = rowList.find((e) => e === thisId);\n d3.select(this).attr('opacity', found ? 1 : 0.2);\n });\n\n var thisNode = d3.select(this).attr('data-index');\n var div = d3\n .select('body')\n .append('div')\n .attr('class', `tooltip-node${thisNode}`)\n .html(() => {\n var textVal = field.display(d3.select(this).attr('d'));\n var name = d3.select(this).attr('name');\n var text;\n if (textVal.suffix) {\n text = `${name}: ${textVal.text} ${textVal.suffix}`;\n } else {\n text = `${name}: ${textVal.text}`;\n }\n return text;\n })\n .style('padding', '10px 15px')\n .style('background', 'black')\n .style('color', 'white')\n .style('border', '#A8A8A8 solid 5px')\n .style('border-radius', '5px')\n .style('left', mousePosition.mouseX + 'px')\n .style('top', mousePosition.mouseY + 'px')\n .style('opacity', 0)\n .style('position', 'absolute');\n div.transition().duration(200).style('opacity', 0.8);\n })\n .on('mouseout', function (d) {\n var thisNode = d3.select(this).attr('data-index');\n d3.selectAll(`.tooltip-node${thisNode}`).transition().duration(300).remove();\n d3.selectAll(pathClass).attr('opacity', 0.7);\n });\n\n return () => {\n window.removeEventListener('mousemove', updateMousePosition);\n };\n });\n return null;\n};\n","import React, { useEffect } from 'react';\nimport * as d3 from 'd3';\n\ninterface HeaderProps {\n displayNames: any;\n width: any;\n id: any;\n topMargin: number;\n textColor: string;\n}\n\nexport const Headers: React.FC