sankey.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609
  1. "use strict";
  2. var __extends = (this && this.__extends) || (function () {
  3. var extendStatics = Object.setPrototypeOf ||
  4. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  5. function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  6. return function (d, b) {
  7. extendStatics(d, b);
  8. function __() { this.constructor = d; }
  9. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  10. };
  11. })();
  12. /*!
  13. * devextreme-angular
  14. * Version: 19.1.16
  15. * Build date: Tue Oct 18 2022
  16. *
  17. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  18. *
  19. * This software may be modified and distributed under the terms
  20. * of the MIT license. See the LICENSE file in the root of the project for details.
  21. *
  22. * https://github.com/DevExpress/devextreme-angular
  23. */
  24. Object.defineProperty(exports, "__esModule", { value: true });
  25. var platform_browser_1 = require("@angular/platform-browser");
  26. var platform_browser_2 = require("@angular/platform-browser");
  27. var core_1 = require("@angular/core");
  28. var sankey_1 = require("devextreme/viz/sankey");
  29. var component_1 = require("../core/component");
  30. var template_host_1 = require("../core/template-host");
  31. var integration_1 = require("../core/integration");
  32. var template_1 = require("../core/template");
  33. var nested_option_1 = require("../core/nested-option");
  34. var watcher_helper_1 = require("../core/watcher-helper");
  35. var iterable_differ_helper_1 = require("../core/iterable-differ-helper");
  36. var adaptive_layout_1 = require("./nested/adaptive-layout");
  37. var export_1 = require("./nested/export");
  38. var label_1 = require("./nested/label");
  39. var border_1 = require("./nested/border");
  40. var font_1 = require("./nested/font");
  41. var shadow_1 = require("./nested/shadow");
  42. var link_1 = require("./nested/link");
  43. var hover_style_1 = require("./nested/hover-style");
  44. var hatching_1 = require("./nested/hatching");
  45. var loading_indicator_1 = require("./nested/loading-indicator");
  46. var margin_1 = require("./nested/margin");
  47. var node_1 = require("./nested/node");
  48. var size_1 = require("./nested/size");
  49. var title_1 = require("./nested/title");
  50. var subtitle_1 = require("./nested/subtitle");
  51. var tooltip_1 = require("./nested/tooltip");
  52. var format_1 = require("./nested/format");
  53. /**
  54. * The Sankey is a widget that visualizes the flow magnitude between value sets. The values being connected are called nodes; the connections - links. The higher the flow magnitude, the wider the link is.
  55. */
  56. var DxSankeyComponent = (function (_super) {
  57. __extends(DxSankeyComponent, _super);
  58. function DxSankeyComponent(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {
  59. var _this = _super.call(this, elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId) || this;
  60. _this._watcherHelper = _watcherHelper;
  61. _this._idh = _idh;
  62. _this._createEventEmitters([
  63. { subscribe: 'disposing', emit: 'onDisposing' },
  64. { subscribe: 'drawn', emit: 'onDrawn' },
  65. { subscribe: 'exported', emit: 'onExported' },
  66. { subscribe: 'exporting', emit: 'onExporting' },
  67. { subscribe: 'fileSaving', emit: 'onFileSaving' },
  68. { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },
  69. { subscribe: 'initialized', emit: 'onInitialized' },
  70. { subscribe: 'linkClick', emit: 'onLinkClick' },
  71. { subscribe: 'linkHoverChanged', emit: 'onLinkHoverChanged' },
  72. { subscribe: 'nodeClick', emit: 'onNodeClick' },
  73. { subscribe: 'nodeHoverChanged', emit: 'onNodeHoverChanged' },
  74. { subscribe: 'optionChanged', emit: 'onOptionChanged' },
  75. { emit: 'adaptiveLayoutChange' },
  76. { emit: 'alignmentChange' },
  77. { emit: 'dataSourceChange' },
  78. { emit: 'disabledChange' },
  79. { emit: 'elementAttrChange' },
  80. { emit: 'exportChange' },
  81. { emit: 'hoverEnabledChange' },
  82. { emit: 'labelChange' },
  83. { emit: 'linkChange' },
  84. { emit: 'loadingIndicatorChange' },
  85. { emit: 'marginChange' },
  86. { emit: 'nodeChange' },
  87. { emit: 'paletteChange' },
  88. { emit: 'paletteExtensionModeChange' },
  89. { emit: 'pathModifiedChange' },
  90. { emit: 'redrawOnResizeChange' },
  91. { emit: 'rtlEnabledChange' },
  92. { emit: 'sizeChange' },
  93. { emit: 'sortDataChange' },
  94. { emit: 'sourceFieldChange' },
  95. { emit: 'targetFieldChange' },
  96. { emit: 'themeChange' },
  97. { emit: 'titleChange' },
  98. { emit: 'tooltipChange' },
  99. { emit: 'weightFieldChange' }
  100. ]);
  101. _this._idh.setHost(_this);
  102. optionHost.setHost(_this);
  103. return _this;
  104. }
  105. Object.defineProperty(DxSankeyComponent.prototype, "adaptiveLayout", {
  106. get: /**
  107. * Specifies adaptive layout options.
  108. */
  109. function () {
  110. return this._getOption('adaptiveLayout');
  111. },
  112. set: function (value) {
  113. this._setOption('adaptiveLayout', value);
  114. },
  115. enumerable: true,
  116. configurable: true
  117. });
  118. Object.defineProperty(DxSankeyComponent.prototype, "alignment", {
  119. get: /**
  120. * Aligns node columns vertically.
  121. */
  122. function () {
  123. return this._getOption('alignment');
  124. },
  125. set: function (value) {
  126. this._setOption('alignment', value);
  127. },
  128. enumerable: true,
  129. configurable: true
  130. });
  131. Object.defineProperty(DxSankeyComponent.prototype, "dataSource", {
  132. get: /**
  133. * Binds the widget to data.
  134. */
  135. function () {
  136. return this._getOption('dataSource');
  137. },
  138. set: function (value) {
  139. this._setOption('dataSource', value);
  140. },
  141. enumerable: true,
  142. configurable: true
  143. });
  144. Object.defineProperty(DxSankeyComponent.prototype, "disabled", {
  145. get: /**
  146. * Specifies whether the widget responds to the user interaction.
  147. */
  148. function () {
  149. return this._getOption('disabled');
  150. },
  151. set: function (value) {
  152. this._setOption('disabled', value);
  153. },
  154. enumerable: true,
  155. configurable: true
  156. });
  157. Object.defineProperty(DxSankeyComponent.prototype, "elementAttr", {
  158. get: /**
  159. * Specifies the attributes to be attached to the widget's root element.
  160. */
  161. function () {
  162. return this._getOption('elementAttr');
  163. },
  164. set: function (value) {
  165. this._setOption('elementAttr', value);
  166. },
  167. enumerable: true,
  168. configurable: true
  169. });
  170. Object.defineProperty(DxSankeyComponent.prototype, "export", {
  171. get: /**
  172. * Configures the exporting and printing features.
  173. */
  174. function () {
  175. return this._getOption('export');
  176. },
  177. set: function (value) {
  178. this._setOption('export', value);
  179. },
  180. enumerable: true,
  181. configurable: true
  182. });
  183. Object.defineProperty(DxSankeyComponent.prototype, "hoverEnabled", {
  184. get: /**
  185. * Specifies whether nodes and links change their style when they are hovered over or pressed.
  186. */
  187. function () {
  188. return this._getOption('hoverEnabled');
  189. },
  190. set: function (value) {
  191. this._setOption('hoverEnabled', value);
  192. },
  193. enumerable: true,
  194. configurable: true
  195. });
  196. Object.defineProperty(DxSankeyComponent.prototype, "label", {
  197. get: /**
  198. * Configures sankey nodes' labels.
  199. */
  200. function () {
  201. return this._getOption('label');
  202. },
  203. set: function (value) {
  204. this._setOption('label', value);
  205. },
  206. enumerable: true,
  207. configurable: true
  208. });
  209. Object.defineProperty(DxSankeyComponent.prototype, "link", {
  210. get: /**
  211. * Configures sankey links' appearance.
  212. */
  213. function () {
  214. return this._getOption('link');
  215. },
  216. set: function (value) {
  217. this._setOption('link', value);
  218. },
  219. enumerable: true,
  220. configurable: true
  221. });
  222. Object.defineProperty(DxSankeyComponent.prototype, "loadingIndicator", {
  223. get: /**
  224. * Configures the loading indicator.
  225. */
  226. function () {
  227. return this._getOption('loadingIndicator');
  228. },
  229. set: function (value) {
  230. this._setOption('loadingIndicator', value);
  231. },
  232. enumerable: true,
  233. configurable: true
  234. });
  235. Object.defineProperty(DxSankeyComponent.prototype, "margin", {
  236. get: /**
  237. * Generates space around the widget.
  238. */
  239. function () {
  240. return this._getOption('margin');
  241. },
  242. set: function (value) {
  243. this._setOption('margin', value);
  244. },
  245. enumerable: true,
  246. configurable: true
  247. });
  248. Object.defineProperty(DxSankeyComponent.prototype, "node", {
  249. get: /**
  250. * Configures sankey nodes' appearance.
  251. */
  252. function () {
  253. return this._getOption('node');
  254. },
  255. set: function (value) {
  256. this._setOption('node', value);
  257. },
  258. enumerable: true,
  259. configurable: true
  260. });
  261. Object.defineProperty(DxSankeyComponent.prototype, "palette", {
  262. get: /**
  263. * Sets the palette to be used to colorize sankey nodes.
  264. */
  265. function () {
  266. return this._getOption('palette');
  267. },
  268. set: function (value) {
  269. this._setOption('palette', value);
  270. },
  271. enumerable: true,
  272. configurable: true
  273. });
  274. Object.defineProperty(DxSankeyComponent.prototype, "paletteExtensionMode", {
  275. get: /**
  276. * Specifies how to extend the palette when it contains less colors than the number of sankey nodes.
  277. */
  278. function () {
  279. return this._getOption('paletteExtensionMode');
  280. },
  281. set: function (value) {
  282. this._setOption('paletteExtensionMode', value);
  283. },
  284. enumerable: true,
  285. configurable: true
  286. });
  287. Object.defineProperty(DxSankeyComponent.prototype, "pathModified", {
  288. get: /**
  289. * Notifies the widget that it is embedded into an HTML page that uses a tag modifying the path.
  290. */
  291. function () {
  292. return this._getOption('pathModified');
  293. },
  294. set: function (value) {
  295. this._setOption('pathModified', value);
  296. },
  297. enumerable: true,
  298. configurable: true
  299. });
  300. Object.defineProperty(DxSankeyComponent.prototype, "redrawOnResize", {
  301. get: /**
  302. * Specifies whether to redraw the widget when the size of the parent browser window changes or a mobile device rotates.
  303. */
  304. function () {
  305. return this._getOption('redrawOnResize');
  306. },
  307. set: function (value) {
  308. this._setOption('redrawOnResize', value);
  309. },
  310. enumerable: true,
  311. configurable: true
  312. });
  313. Object.defineProperty(DxSankeyComponent.prototype, "rtlEnabled", {
  314. get: /**
  315. * Switches the widget to a right-to-left representation.
  316. */
  317. function () {
  318. return this._getOption('rtlEnabled');
  319. },
  320. set: function (value) {
  321. this._setOption('rtlEnabled', value);
  322. },
  323. enumerable: true,
  324. configurable: true
  325. });
  326. Object.defineProperty(DxSankeyComponent.prototype, "size", {
  327. get: /**
  328. * Specifies the widget's size in pixels.
  329. */
  330. function () {
  331. return this._getOption('size');
  332. },
  333. set: function (value) {
  334. this._setOption('size', value);
  335. },
  336. enumerable: true,
  337. configurable: true
  338. });
  339. Object.defineProperty(DxSankeyComponent.prototype, "sortData", {
  340. get: /**
  341. * Specifies nodes' sorting order in their columns.
  342. */
  343. function () {
  344. return this._getOption('sortData');
  345. },
  346. set: function (value) {
  347. this._setOption('sortData', value);
  348. },
  349. enumerable: true,
  350. configurable: true
  351. });
  352. Object.defineProperty(DxSankeyComponent.prototype, "sourceField", {
  353. get: /**
  354. * Specifies which data source field provides links' source nodes.
  355. */
  356. function () {
  357. return this._getOption('sourceField');
  358. },
  359. set: function (value) {
  360. this._setOption('sourceField', value);
  361. },
  362. enumerable: true,
  363. configurable: true
  364. });
  365. Object.defineProperty(DxSankeyComponent.prototype, "targetField", {
  366. get: /**
  367. * Specifies which data source field provides links' target nodes.
  368. */
  369. function () {
  370. return this._getOption('targetField');
  371. },
  372. set: function (value) {
  373. this._setOption('targetField', value);
  374. },
  375. enumerable: true,
  376. configurable: true
  377. });
  378. Object.defineProperty(DxSankeyComponent.prototype, "theme", {
  379. get: /**
  380. * Sets the name of the theme the widget uses.
  381. */
  382. function () {
  383. return this._getOption('theme');
  384. },
  385. set: function (value) {
  386. this._setOption('theme', value);
  387. },
  388. enumerable: true,
  389. configurable: true
  390. });
  391. Object.defineProperty(DxSankeyComponent.prototype, "title", {
  392. get: /**
  393. * Configures the widget's title.
  394. */
  395. function () {
  396. return this._getOption('title');
  397. },
  398. set: function (value) {
  399. this._setOption('title', value);
  400. },
  401. enumerable: true,
  402. configurable: true
  403. });
  404. Object.defineProperty(DxSankeyComponent.prototype, "tooltip", {
  405. get: /**
  406. * Configures tooltips - small pop-up rectangles that display information about a data-visualizing widget element being pressed or hovered over with the mouse pointer.
  407. */
  408. function () {
  409. return this._getOption('tooltip');
  410. },
  411. set: function (value) {
  412. this._setOption('tooltip', value);
  413. },
  414. enumerable: true,
  415. configurable: true
  416. });
  417. Object.defineProperty(DxSankeyComponent.prototype, "weightField", {
  418. get: /**
  419. * Specifies which data source field provides links' weights.
  420. */
  421. function () {
  422. return this._getOption('weightField');
  423. },
  424. set: function (value) {
  425. this._setOption('weightField', value);
  426. },
  427. enumerable: true,
  428. configurable: true
  429. });
  430. DxSankeyComponent.prototype._createInstance = function (element, options) {
  431. return new sankey_1.default(element, options);
  432. };
  433. DxSankeyComponent.prototype.ngOnDestroy = function () {
  434. this._destroyWidget();
  435. };
  436. DxSankeyComponent.prototype.ngOnChanges = function (changes) {
  437. _super.prototype.ngOnChanges.call(this, changes);
  438. this.setupChanges('alignment', changes);
  439. this.setupChanges('dataSource', changes);
  440. this.setupChanges('palette', changes);
  441. };
  442. DxSankeyComponent.prototype.setupChanges = function (prop, changes) {
  443. if (!(prop in this._optionsToUpdate)) {
  444. this._idh.setup(prop, changes);
  445. }
  446. };
  447. DxSankeyComponent.prototype.ngDoCheck = function () {
  448. this._idh.doCheck('alignment');
  449. this._idh.doCheck('dataSource');
  450. this._idh.doCheck('palette');
  451. this._watcherHelper.checkWatchers();
  452. _super.prototype.ngDoCheck.call(this);
  453. _super.prototype.clearChangedOptions.call(this);
  454. };
  455. DxSankeyComponent.prototype._setOption = function (name, value) {
  456. var isSetup = this._idh.setupSingle(name, value);
  457. var isChanged = this._idh.getChanges(name, value) !== null;
  458. if (isSetup || isChanged) {
  459. _super.prototype._setOption.call(this, name, value);
  460. }
  461. };
  462. DxSankeyComponent.decorators = [
  463. { type: core_1.Component, args: [{
  464. selector: 'dx-sankey',
  465. template: '',
  466. styles: [' :host { display: block; }'],
  467. providers: [
  468. template_host_1.DxTemplateHost,
  469. watcher_helper_1.WatcherHelper,
  470. nested_option_1.NestedOptionHost,
  471. iterable_differ_helper_1.IterableDifferHelper
  472. ]
  473. },] },
  474. ];
  475. /** @nocollapse */
  476. DxSankeyComponent.ctorParameters = function () { return [
  477. { type: core_1.ElementRef, },
  478. { type: core_1.NgZone, },
  479. { type: template_host_1.DxTemplateHost, },
  480. { type: watcher_helper_1.WatcherHelper, },
  481. { type: iterable_differ_helper_1.IterableDifferHelper, },
  482. { type: nested_option_1.NestedOptionHost, },
  483. { type: platform_browser_2.TransferState, },
  484. { type: undefined, decorators: [{ type: core_1.Inject, args: [core_1.PLATFORM_ID,] },] },
  485. ]; };
  486. DxSankeyComponent.propDecorators = {
  487. "adaptiveLayout": [{ type: core_1.Input },],
  488. "alignment": [{ type: core_1.Input },],
  489. "dataSource": [{ type: core_1.Input },],
  490. "disabled": [{ type: core_1.Input },],
  491. "elementAttr": [{ type: core_1.Input },],
  492. "export": [{ type: core_1.Input },],
  493. "hoverEnabled": [{ type: core_1.Input },],
  494. "label": [{ type: core_1.Input },],
  495. "link": [{ type: core_1.Input },],
  496. "loadingIndicator": [{ type: core_1.Input },],
  497. "margin": [{ type: core_1.Input },],
  498. "node": [{ type: core_1.Input },],
  499. "palette": [{ type: core_1.Input },],
  500. "paletteExtensionMode": [{ type: core_1.Input },],
  501. "pathModified": [{ type: core_1.Input },],
  502. "redrawOnResize": [{ type: core_1.Input },],
  503. "rtlEnabled": [{ type: core_1.Input },],
  504. "size": [{ type: core_1.Input },],
  505. "sortData": [{ type: core_1.Input },],
  506. "sourceField": [{ type: core_1.Input },],
  507. "targetField": [{ type: core_1.Input },],
  508. "theme": [{ type: core_1.Input },],
  509. "title": [{ type: core_1.Input },],
  510. "tooltip": [{ type: core_1.Input },],
  511. "weightField": [{ type: core_1.Input },],
  512. "onDisposing": [{ type: core_1.Output },],
  513. "onDrawn": [{ type: core_1.Output },],
  514. "onExported": [{ type: core_1.Output },],
  515. "onExporting": [{ type: core_1.Output },],
  516. "onFileSaving": [{ type: core_1.Output },],
  517. "onIncidentOccurred": [{ type: core_1.Output },],
  518. "onInitialized": [{ type: core_1.Output },],
  519. "onLinkClick": [{ type: core_1.Output },],
  520. "onLinkHoverChanged": [{ type: core_1.Output },],
  521. "onNodeClick": [{ type: core_1.Output },],
  522. "onNodeHoverChanged": [{ type: core_1.Output },],
  523. "onOptionChanged": [{ type: core_1.Output },],
  524. "adaptiveLayoutChange": [{ type: core_1.Output },],
  525. "alignmentChange": [{ type: core_1.Output },],
  526. "dataSourceChange": [{ type: core_1.Output },],
  527. "disabledChange": [{ type: core_1.Output },],
  528. "elementAttrChange": [{ type: core_1.Output },],
  529. "exportChange": [{ type: core_1.Output },],
  530. "hoverEnabledChange": [{ type: core_1.Output },],
  531. "labelChange": [{ type: core_1.Output },],
  532. "linkChange": [{ type: core_1.Output },],
  533. "loadingIndicatorChange": [{ type: core_1.Output },],
  534. "marginChange": [{ type: core_1.Output },],
  535. "nodeChange": [{ type: core_1.Output },],
  536. "paletteChange": [{ type: core_1.Output },],
  537. "paletteExtensionModeChange": [{ type: core_1.Output },],
  538. "pathModifiedChange": [{ type: core_1.Output },],
  539. "redrawOnResizeChange": [{ type: core_1.Output },],
  540. "rtlEnabledChange": [{ type: core_1.Output },],
  541. "sizeChange": [{ type: core_1.Output },],
  542. "sortDataChange": [{ type: core_1.Output },],
  543. "sourceFieldChange": [{ type: core_1.Output },],
  544. "targetFieldChange": [{ type: core_1.Output },],
  545. "themeChange": [{ type: core_1.Output },],
  546. "titleChange": [{ type: core_1.Output },],
  547. "tooltipChange": [{ type: core_1.Output },],
  548. "weightFieldChange": [{ type: core_1.Output },],
  549. };
  550. return DxSankeyComponent;
  551. }(component_1.DxComponent));
  552. exports.DxSankeyComponent = DxSankeyComponent;
  553. var DxSankeyModule = (function () {
  554. function DxSankeyModule() {
  555. }
  556. DxSankeyModule.decorators = [
  557. { type: core_1.NgModule, args: [{
  558. imports: [
  559. adaptive_layout_1.DxoAdaptiveLayoutModule,
  560. export_1.DxoExportModule,
  561. label_1.DxoLabelModule,
  562. border_1.DxoBorderModule,
  563. font_1.DxoFontModule,
  564. shadow_1.DxoShadowModule,
  565. link_1.DxoLinkModule,
  566. hover_style_1.DxoHoverStyleModule,
  567. hatching_1.DxoHatchingModule,
  568. loading_indicator_1.DxoLoadingIndicatorModule,
  569. margin_1.DxoMarginModule,
  570. node_1.DxoNodeModule,
  571. size_1.DxoSizeModule,
  572. title_1.DxoTitleModule,
  573. subtitle_1.DxoSubtitleModule,
  574. tooltip_1.DxoTooltipModule,
  575. format_1.DxoFormatModule,
  576. integration_1.DxIntegrationModule,
  577. template_1.DxTemplateModule,
  578. platform_browser_1.BrowserTransferStateModule
  579. ],
  580. declarations: [
  581. DxSankeyComponent
  582. ],
  583. exports: [
  584. DxSankeyComponent,
  585. adaptive_layout_1.DxoAdaptiveLayoutModule,
  586. export_1.DxoExportModule,
  587. label_1.DxoLabelModule,
  588. border_1.DxoBorderModule,
  589. font_1.DxoFontModule,
  590. shadow_1.DxoShadowModule,
  591. link_1.DxoLinkModule,
  592. hover_style_1.DxoHoverStyleModule,
  593. hatching_1.DxoHatchingModule,
  594. loading_indicator_1.DxoLoadingIndicatorModule,
  595. margin_1.DxoMarginModule,
  596. node_1.DxoNodeModule,
  597. size_1.DxoSizeModule,
  598. title_1.DxoTitleModule,
  599. subtitle_1.DxoSubtitleModule,
  600. tooltip_1.DxoTooltipModule,
  601. format_1.DxoFormatModule,
  602. template_1.DxTemplateModule
  603. ]
  604. },] },
  605. ];
  606. return DxSankeyModule;
  607. }());
  608. exports.DxSankeyModule = DxSankeyModule;
  609. //# sourceMappingURL=sankey.js.map