snice 4.8.0 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/react/camera-annotate.d.ts +27 -0
- package/adapters/react/camera-annotate.d.ts.map +1 -0
- package/adapters/react/camera-annotate.js +24 -0
- package/adapters/react/camera-annotate.js.map +1 -0
- package/adapters/react/camera-annotate.tsx +35 -0
- package/adapters/react/candlestick.d.ts +34 -0
- package/adapters/react/candlestick.d.ts.map +1 -0
- package/adapters/react/candlestick.js +24 -0
- package/adapters/react/candlestick.js.map +1 -0
- package/adapters/react/candlestick.tsx +42 -0
- package/adapters/react/components.d.ts +14 -0
- package/adapters/react/components.d.ts.map +1 -1
- package/adapters/react/components.js +7 -0
- package/adapters/react/components.js.map +1 -1
- package/adapters/react/components.ts +14 -0
- package/adapters/react/funnel.d.ts +31 -0
- package/adapters/react/funnel.d.ts.map +1 -0
- package/adapters/react/funnel.js +24 -0
- package/adapters/react/funnel.js.map +1 -0
- package/adapters/react/funnel.tsx +39 -0
- package/adapters/react/network-graph.d.ts +32 -0
- package/adapters/react/network-graph.d.ts.map +1 -0
- package/adapters/react/network-graph.js +24 -0
- package/adapters/react/network-graph.js.map +1 -0
- package/adapters/react/network-graph.tsx +40 -0
- package/adapters/react/sankey.d.ts +31 -0
- package/adapters/react/sankey.d.ts.map +1 -0
- package/adapters/react/sankey.js +24 -0
- package/adapters/react/sankey.js.map +1 -0
- package/adapters/react/sankey.tsx +39 -0
- package/adapters/react/time-range-picker.d.ts +33 -0
- package/adapters/react/time-range-picker.d.ts.map +1 -0
- package/adapters/react/time-range-picker.js +24 -0
- package/adapters/react/time-range-picker.js.map +1 -0
- package/adapters/react/time-range-picker.tsx +41 -0
- package/adapters/react/treemap.d.ts +30 -0
- package/adapters/react/treemap.d.ts.map +1 -0
- package/adapters/react/treemap.js +24 -0
- package/adapters/react/treemap.js.map +1 -0
- package/adapters/react/treemap.tsx +38 -0
- package/adapters/react/virtual-scroller.d.ts +1 -0
- package/adapters/react/virtual-scroller.d.ts.map +1 -1
- package/adapters/react/virtual-scroller.js +1 -1
- package/adapters/react/virtual-scroller.js.map +1 -1
- package/adapters/react/virtual-scroller.tsx +2 -1
- package/dist/cdn/accordion/snice-accordion.js +1 -1
- package/dist/cdn/accordion/snice-accordion.min.js +1 -1
- package/dist/cdn/alert/snice-alert.js +1 -1
- package/dist/cdn/alert/snice-alert.min.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
- package/dist/cdn/avatar/snice-avatar.js +1 -1
- package/dist/cdn/avatar/snice-avatar.min.js +1 -1
- package/dist/cdn/badge/snice-badge.js +1 -1
- package/dist/cdn/badge/snice-badge.min.js +1 -1
- package/dist/cdn/banner/snice-banner.js +1 -1
- package/dist/cdn/banner/snice-banner.min.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +2 -2
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.js.map +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +13 -13
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js.map +1 -1
- package/dist/cdn/button/snice-button.js +1 -1
- package/dist/cdn/button/snice-button.min.js +1 -1
- package/dist/cdn/calendar/snice-calendar.js +1 -1
- package/dist/cdn/calendar/snice-calendar.min.js +1 -1
- package/dist/cdn/camera/snice-camera.js +1 -1
- package/dist/cdn/camera/snice-camera.min.js +1 -1
- package/dist/cdn/camera-annotate/README.md +27 -0
- package/dist/cdn/camera-annotate/snice-camera-annotate.js +730 -0
- package/dist/cdn/camera-annotate/snice-camera-annotate.js.map +1 -0
- package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +144 -0
- package/dist/cdn/camera-annotate/snice-camera-annotate.min.js.map +1 -0
- package/dist/cdn/candlestick/README.md +27 -0
- package/dist/cdn/candlestick/snice-candlestick.js +717 -0
- package/dist/cdn/candlestick/snice-candlestick.js.map +1 -0
- package/dist/cdn/candlestick/snice-candlestick.min.js +22 -0
- package/dist/cdn/candlestick/snice-candlestick.min.js.map +1 -0
- package/dist/cdn/card/snice-card.js +1 -1
- package/dist/cdn/card/snice-card.min.js +1 -1
- package/dist/cdn/carousel/snice-carousel.js +1 -1
- package/dist/cdn/carousel/snice-carousel.min.js +1 -1
- package/dist/cdn/chart/snice-chart.js +1 -1
- package/dist/cdn/chart/snice-chart.min.js +1 -1
- package/dist/cdn/chat/snice-chat.js +1 -1
- package/dist/cdn/chat/snice-chat.min.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
- package/dist/cdn/chip/snice-chip.js +1 -1
- package/dist/cdn/chip/snice-chip.min.js +1 -1
- package/dist/cdn/code-block/snice-code-block.js +1 -1
- package/dist/cdn/code-block/snice-code-block.min.js +1 -1
- package/dist/cdn/color-display/snice-color-display.js +1 -1
- package/dist/cdn/color-display/snice-color-display.min.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
- package/dist/cdn/divider/snice-divider.js +1 -1
- package/dist/cdn/divider/snice-divider.min.js +1 -1
- package/dist/cdn/doc/snice-doc.js +1 -1
- package/dist/cdn/doc/snice-doc.min.js +1 -1
- package/dist/cdn/draw/snice-draw.js +1 -1
- package/dist/cdn/draw/snice-draw.min.js +1 -1
- package/dist/cdn/drawer/snice-drawer.js +1 -1
- package/dist/cdn/drawer/snice-drawer.min.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
- package/dist/cdn/funnel/README.md +27 -0
- package/dist/cdn/funnel/snice-funnel.js +424 -0
- package/dist/cdn/funnel/snice-funnel.js.map +1 -0
- package/dist/cdn/funnel/snice-funnel.min.js +20 -0
- package/dist/cdn/funnel/snice-funnel.min.js.map +1 -0
- package/dist/cdn/gauge/snice-gauge.js +1 -1
- package/dist/cdn/gauge/snice-gauge.min.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
- package/dist/cdn/image/snice-image.js +1 -1
- package/dist/cdn/image/snice-image.min.js +1 -1
- package/dist/cdn/input/snice-input.js +1 -1
- package/dist/cdn/input/snice-input.min.js +1 -1
- package/dist/cdn/kanban/snice-kanban.js +1 -1
- package/dist/cdn/kanban/snice-kanban.min.js +1 -1
- package/dist/cdn/kpi/snice-kpi.js +1 -1
- package/dist/cdn/kpi/snice-kpi.min.js +1 -1
- package/dist/cdn/layout/README.md +2 -2
- package/dist/cdn/layout/snice-layout.js +23 -6
- package/dist/cdn/layout/snice-layout.js.map +1 -1
- package/dist/cdn/layout/snice-layout.min.js +2 -2
- package/dist/cdn/layout/snice-layout.min.js.map +1 -1
- package/dist/cdn/link/snice-link.js +1 -1
- package/dist/cdn/link/snice-link.min.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
- package/dist/cdn/list/README.md +6 -2
- package/dist/cdn/list/snice-list.js +87 -10
- package/dist/cdn/list/snice-list.js.map +1 -1
- package/dist/cdn/list/snice-list.min.js +20 -6
- package/dist/cdn/list/snice-list.min.js.map +1 -1
- package/dist/cdn/location/snice-location.js +1 -1
- package/dist/cdn/location/snice-location.min.js +1 -1
- package/dist/cdn/login/snice-login.js +1 -1
- package/dist/cdn/login/snice-login.min.js +1 -1
- package/dist/cdn/masonry/snice-masonry.js +1 -1
- package/dist/cdn/masonry/snice-masonry.min.js +1 -1
- package/dist/cdn/menu/snice-menu.js +1 -1
- package/dist/cdn/menu/snice-menu.min.js +1 -1
- package/dist/cdn/modal/snice-modal.js +1 -1
- package/dist/cdn/modal/snice-modal.min.js +1 -1
- package/dist/cdn/music-player/snice-music-player.js +1 -1
- package/dist/cdn/music-player/snice-music-player.min.js +1 -1
- package/dist/cdn/nav/README.md +2 -2
- package/dist/cdn/nav/snice-nav.js +23 -6
- package/dist/cdn/nav/snice-nav.js.map +1 -1
- package/dist/cdn/nav/snice-nav.min.js +2 -2
- package/dist/cdn/nav/snice-nav.min.js.map +1 -1
- package/dist/cdn/network-graph/README.md +27 -0
- package/dist/cdn/network-graph/snice-network-graph.js +788 -0
- package/dist/cdn/network-graph/snice-network-graph.js.map +1 -0
- package/dist/cdn/network-graph/snice-network-graph.min.js +13 -0
- package/dist/cdn/network-graph/snice-network-graph.min.js.map +1 -0
- package/dist/cdn/pagination/README.md +2 -2
- package/dist/cdn/pagination/snice-pagination.js +13 -13
- package/dist/cdn/pagination/snice-pagination.js.map +1 -1
- package/dist/cdn/pagination/snice-pagination.min.js +14 -14
- package/dist/cdn/pagination/snice-pagination.min.js.map +1 -1
- package/dist/cdn/paint/snice-paint.js +1 -1
- package/dist/cdn/paint/snice-paint.min.js +1 -1
- package/dist/cdn/progress/snice-progress.js +1 -1
- package/dist/cdn/progress/snice-progress.min.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
- package/dist/cdn/radio/snice-radio.js +1 -1
- package/dist/cdn/radio/snice-radio.min.js +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.js +3 -3
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +3 -3
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +3 -3
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +3 -3
- package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
- package/dist/cdn/sankey/README.md +27 -0
- package/dist/cdn/sankey/snice-sankey.js +679 -0
- package/dist/cdn/sankey/snice-sankey.js.map +1 -0
- package/dist/cdn/sankey/snice-sankey.min.js +21 -0
- package/dist/cdn/sankey/snice-sankey.min.js.map +1 -0
- package/dist/cdn/select/snice-select.js +1 -1
- package/dist/cdn/select/snice-select.min.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
- package/dist/cdn/slider/snice-slider.js +1 -1
- package/dist/cdn/slider/snice-slider.min.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
- package/dist/cdn/spinner/snice-spinner.js +1 -1
- package/dist/cdn/spinner/snice-spinner.min.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
- package/dist/cdn/stepper/README.md +6 -2
- package/dist/cdn/stepper/snice-stepper.js +77 -10
- package/dist/cdn/stepper/snice-stepper.js.map +1 -1
- package/dist/cdn/stepper/snice-stepper.min.js +13 -9
- package/dist/cdn/stepper/snice-stepper.min.js.map +1 -1
- package/dist/cdn/switch/snice-switch.js +1 -1
- package/dist/cdn/switch/snice-switch.min.js +1 -1
- package/dist/cdn/table/snice-table.js +1 -1
- package/dist/cdn/table/snice-table.min.js +1 -1
- package/dist/cdn/tabs/snice-tabs.js +1 -1
- package/dist/cdn/tabs/snice-tabs.min.js +1 -1
- package/dist/cdn/terminal/snice-terminal.js +1 -1
- package/dist/cdn/terminal/snice-terminal.min.js +1 -1
- package/dist/cdn/textarea/snice-textarea.js +1 -1
- package/dist/cdn/textarea/snice-textarea.min.js +1 -1
- package/dist/cdn/time-range-picker/README.md +27 -0
- package/dist/cdn/time-range-picker/snice-time-range-picker.js +635 -0
- package/dist/cdn/time-range-picker/snice-time-range-picker.js.map +1 -0
- package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +34 -0
- package/dist/cdn/time-range-picker/snice-time-range-picker.min.js.map +1 -0
- package/dist/cdn/timeline/snice-timeline.js +1 -1
- package/dist/cdn/timeline/snice-timeline.min.js +1 -1
- package/dist/cdn/timer/snice-timer.js +1 -1
- package/dist/cdn/timer/snice-timer.min.js +1 -1
- package/dist/cdn/toast/snice-toast.js +1 -1
- package/dist/cdn/toast/snice-toast.min.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
- package/dist/cdn/tree/README.md +5 -1
- package/dist/cdn/tree/snice-tree.js +4 -8
- package/dist/cdn/tree/snice-tree.js.map +1 -1
- package/dist/cdn/tree/snice-tree.min.js +5 -5
- package/dist/cdn/tree/snice-tree.min.js.map +1 -1
- package/dist/cdn/treemap/README.md +27 -0
- package/dist/cdn/treemap/snice-treemap.js +522 -0
- package/dist/cdn/treemap/snice-treemap.js.map +1 -0
- package/dist/cdn/treemap/snice-treemap.min.js +14 -0
- package/dist/cdn/treemap/snice-treemap.min.js.map +1 -0
- package/dist/cdn/virtual-scroller/README.md +2 -2
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +47 -16
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.js.map +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +9 -9
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js.map +1 -1
- package/dist/components/breadcrumbs/snice-breadcrumbs.js +1 -1
- package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
- package/dist/components/camera-annotate/snice-camera-annotate.d.ts +68 -0
- package/dist/components/camera-annotate/snice-camera-annotate.js +663 -0
- package/dist/components/camera-annotate/snice-camera-annotate.js.map +1 -0
- package/dist/components/camera-annotate/snice-camera-annotate.types.d.ts +50 -0
- package/dist/components/candlestick/snice-candlestick.d.ts +78 -0
- package/dist/components/candlestick/snice-candlestick.js +650 -0
- package/dist/components/candlestick/snice-candlestick.js.map +1 -0
- package/dist/components/candlestick/snice-candlestick.types.d.ts +40 -0
- package/dist/components/funnel/snice-funnel.d.ts +37 -0
- package/dist/components/funnel/snice-funnel.js +357 -0
- package/dist/components/funnel/snice-funnel.js.map +1 -0
- package/dist/components/funnel/snice-funnel.types.d.ts +28 -0
- package/dist/components/list/snice-list-item.d.ts +2 -0
- package/dist/components/list/snice-list-item.js +20 -2
- package/dist/components/list/snice-list-item.js.map +1 -1
- package/dist/components/nav/snice-nav.js +22 -5
- package/dist/components/nav/snice-nav.js.map +1 -1
- package/dist/components/network-graph/snice-network-graph.d.ts +80 -0
- package/dist/components/network-graph/snice-network-graph.js +721 -0
- package/dist/components/network-graph/snice-network-graph.js.map +1 -0
- package/dist/components/network-graph/snice-network-graph.types.d.ts +49 -0
- package/dist/components/pagination/snice-pagination.js +12 -12
- package/dist/components/sankey/snice-sankey.d.ts +46 -0
- package/dist/components/sankey/snice-sankey.js +612 -0
- package/dist/components/sankey/snice-sankey.js.map +1 -0
- package/dist/components/sankey/snice-sankey.types.d.ts +59 -0
- package/dist/components/stepper/snice-stepper.js +9 -3
- package/dist/components/stepper/snice-stepper.js.map +1 -1
- package/dist/components/time-range-picker/snice-time-range-picker.d.ts +67 -0
- package/dist/components/time-range-picker/snice-time-range-picker.js +568 -0
- package/dist/components/time-range-picker/snice-time-range-picker.js.map +1 -0
- package/dist/components/time-range-picker/snice-time-range-picker.types.d.ts +39 -0
- package/dist/components/treemap/snice-treemap.d.ts +49 -0
- package/dist/components/treemap/snice-treemap.js +455 -0
- package/dist/components/treemap/snice-treemap.js.map +1 -0
- package/dist/components/treemap/snice-treemap.types.d.ts +42 -0
- package/dist/components/virtual-scroller/snice-virtual-scroller.d.ts +5 -0
- package/dist/components/virtual-scroller/snice-virtual-scroller.js +47 -16
- package/dist/components/virtual-scroller/snice-virtual-scroller.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +1 -1
- package/dist/index.iife.js.map +1 -1
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/ai/components/camera-annotate.md +82 -0
- package/docs/ai/components/candlestick.md +79 -0
- package/docs/ai/components/funnel.md +86 -0
- package/docs/ai/components/network-graph.md +87 -0
- package/docs/ai/components/sankey.md +63 -0
- package/docs/ai/components/time-range-picker.md +78 -0
- package/docs/ai/components/treemap.md +78 -0
- package/docs/components/camera-annotate.md +186 -0
- package/docs/components/candlestick.md +196 -0
- package/docs/components/funnel.md +191 -0
- package/docs/components/network-graph.md +215 -0
- package/docs/components/sankey.md +201 -0
- package/docs/components/time-range-picker.md +213 -0
- package/docs/components/treemap.md +198 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snice-sankey.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/sankey/snice-sankey.js"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, query, dispatch, ready, watch, render, styles, dispose, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint;width:100%}.sankey{position:relative;width:100%;min-height:12.5rem}.sankey__svg{display:block;width:100%;height:100%}.sankey__node{cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms) ease}.sankey__node rect{stroke:var(--snice-color-background,rgb(255 255 255));stroke-width:1px}.sankey__node:hover rect{filter:brightness(1.1)}.sankey__link{cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms) ease}.sankey__link path{fill:none;stroke-opacity:0.35;transition:stroke-opacity var(--snice-transition-fast, 150ms) ease}.sankey__link:hover path{stroke-opacity:0.6}.sankey--dimmed .sankey__node:not(.sankey__node--highlighted){opacity:.2}.sankey--dimmed .sankey__link:not(.sankey__link--highlighted) path{stroke-opacity:0.08}.sankey__label{font-size:var(--snice-font-size-sm, .75rem);fill:var(--snice-color-text,rgb(23 23 23));pointer-events:none;dominant-baseline:central}.sankey__value{font-size:var(--snice-font-size-xs, .625rem);fill:var(--snice-color-text-secondary,rgb(82 82 82));pointer-events:none;dominant-baseline:central}.sankey__tooltip{position:absolute;pointer-events:none;background:var(--snice-color-background,rgb(255 255 255));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);font-size:var(--snice-font-size-sm, .75rem);color:var(--snice-color-text,rgb(23 23 23));box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1));white-space:nowrap;z-index:10;opacity:0;transition:opacity var(--snice-transition-fast, 150ms) ease}.sankey__tooltip--visible{opacity:1}.sankey__tooltip-label{font-weight:var(--snice-font-weight-semibold,600)}.sankey__tooltip-value{color:var(--snice-color-text-secondary,rgb(82 82 82));margin-top:var(--snice-spacing-3xs,.125rem)}@keyframes sankey-fade-in{from{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}:host([animation]) .sankey__node{animation:sankey-fade-in var(--snice-transition-medium,250ms) ease both}:host([animation]) .sankey__link path{stroke-dasharray:1000;stroke-dashoffset:1000;animation:.8s forwards sankey-link-draw}@keyframes sankey-link-draw{to{stroke-dashoffset:0}}\";\n\nconst DEFAULT_COLORS = [\n '#2196f3', '#4caf50', '#ff9800', '#f44336', '#9c27b0',\n '#00bcd4', '#8bc34a', '#ffc107', '#e91e63', '#673ab7'\n];\nfunction escapeHTML(str) {\n return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"');\n}\nlet SniceSankey = (() => {\n let _classDecorators = [element('snice-sankey')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _data_decorators;\n let _data_initializers = [];\n let _data_extraInitializers = [];\n let _nodeWidth_decorators;\n let _nodeWidth_initializers = [];\n let _nodeWidth_extraInitializers = [];\n let _nodePadding_decorators;\n let _nodePadding_initializers = [];\n let _nodePadding_extraInitializers = [];\n let _alignment_decorators;\n let _alignment_initializers = [];\n let _alignment_extraInitializers = [];\n let _showLabels_decorators;\n let _showLabels_initializers = [];\n let _showLabels_extraInitializers = [];\n let _showValues_decorators;\n let _showValues_initializers = [];\n let _showValues_extraInitializers = [];\n let _animation_decorators;\n let _animation_initializers = [];\n let _animation_extraInitializers = [];\n let _chartEl_decorators;\n let _chartEl_initializers = [];\n let _chartEl_extraInitializers = [];\n let _tooltipEl_decorators;\n let _tooltipEl_initializers = [];\n let _tooltipEl_extraInitializers = [];\n let _emitNodeClick_decorators;\n let _emitLinkClick_decorators;\n let _emitHover_decorators;\n let _init_decorators;\n let _onDataChange_decorators;\n let _onDisplayChange_decorators;\n let _renderContent_decorators;\n let _componentStyles_decorators;\n let _cleanup_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.data = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _data_initializers, { nodes: [], links: [] }));\n this.nodeWidth = (__runInitializers(this, _data_extraInitializers), __runInitializers(this, _nodeWidth_initializers, 20));\n this.nodePadding = (__runInitializers(this, _nodeWidth_extraInitializers), __runInitializers(this, _nodePadding_initializers, 10));\n this.alignment = (__runInitializers(this, _nodePadding_extraInitializers), __runInitializers(this, _alignment_initializers, 'justify'));\n this.showLabels = (__runInitializers(this, _alignment_extraInitializers), __runInitializers(this, _showLabels_initializers, true));\n this.showValues = (__runInitializers(this, _showLabels_extraInitializers), __runInitializers(this, _showValues_initializers, true));\n this.animation = (__runInitializers(this, _showValues_extraInitializers), __runInitializers(this, _animation_initializers, false));\n this.chartEl = (__runInitializers(this, _animation_extraInitializers), __runInitializers(this, _chartEl_initializers, void 0));\n this.tooltipEl = (__runInitializers(this, _chartEl_extraInitializers), __runInitializers(this, _tooltipEl_initializers, void 0));\n this.cachedData = (__runInitializers(this, _tooltipEl_extraInitializers), { nodes: [], links: [] });\n this.layoutNodes = [];\n this.layoutLinks = [];\n this.hoveredNodeId = null;\n this.hoveredLinkIndex = null;\n this.chartWidth = 600;\n this.chartHeight = 400;\n this.resizeObserver = null;\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _data_decorators = [property({ type: Object, attribute: false })];\n _nodeWidth_decorators = [property({ type: Number, attribute: 'node-width' })];\n _nodePadding_decorators = [property({ type: Number, attribute: 'node-padding' })];\n _alignment_decorators = [property()];\n _showLabels_decorators = [property({ type: Boolean, attribute: 'show-labels' })];\n _showValues_decorators = [property({ type: Boolean, attribute: 'show-values' })];\n _animation_decorators = [property({ type: Boolean })];\n _chartEl_decorators = [query('.sankey__chart')];\n _tooltipEl_decorators = [query('.sankey__tooltip')];\n _emitNodeClick_decorators = [dispatch('sankey-node-click', { bubbles: true, composed: true })];\n _emitLinkClick_decorators = [dispatch('sankey-link-click', { bubbles: true, composed: true })];\n _emitHover_decorators = [dispatch('sankey-hover', { bubbles: true, composed: true })];\n _init_decorators = [ready()];\n _onDataChange_decorators = [watch('data')];\n _onDisplayChange_decorators = [watch('showLabels', 'showValues', 'animation', 'alignment')];\n _renderContent_decorators = [render({ once: true })];\n _componentStyles_decorators = [styles()];\n _cleanup_decorators = [dispose()];\n __esDecorate(this, null, _emitNodeClick_decorators, { kind: \"method\", name: \"emitNodeClick\", static: false, private: false, access: { has: obj => \"emitNodeClick\" in obj, get: obj => obj.emitNodeClick }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitLinkClick_decorators, { kind: \"method\", name: \"emitLinkClick\", static: false, private: false, access: { has: obj => \"emitLinkClick\" in obj, get: obj => obj.emitLinkClick }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitHover_decorators, { kind: \"method\", name: \"emitHover\", static: false, private: false, access: { has: obj => \"emitHover\" in obj, get: obj => obj.emitHover }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _init_decorators, { kind: \"method\", name: \"init\", static: false, private: false, access: { has: obj => \"init\" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onDataChange_decorators, { kind: \"method\", name: \"onDataChange\", static: false, private: false, access: { has: obj => \"onDataChange\" in obj, get: obj => obj.onDataChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onDisplayChange_decorators, { kind: \"method\", name: \"onDisplayChange\", static: false, private: false, access: { has: obj => \"onDisplayChange\" in obj, get: obj => obj.onDisplayChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _renderContent_decorators, { kind: \"method\", name: \"renderContent\", static: false, private: false, access: { has: obj => \"renderContent\" in obj, get: obj => obj.renderContent }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _componentStyles_decorators, { kind: \"method\", name: \"componentStyles\", static: false, private: false, access: { has: obj => \"componentStyles\" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _cleanup_decorators, { kind: \"method\", name: \"cleanup\", static: false, private: false, access: { has: obj => \"cleanup\" in obj, get: obj => obj.cleanup }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _data_decorators, { kind: \"field\", name: \"data\", static: false, private: false, access: { has: obj => \"data\" in obj, get: obj => obj.data, set: (obj, value) => { obj.data = value; } }, metadata: _metadata }, _data_initializers, _data_extraInitializers);\n __esDecorate(null, null, _nodeWidth_decorators, { kind: \"field\", name: \"nodeWidth\", static: false, private: false, access: { has: obj => \"nodeWidth\" in obj, get: obj => obj.nodeWidth, set: (obj, value) => { obj.nodeWidth = value; } }, metadata: _metadata }, _nodeWidth_initializers, _nodeWidth_extraInitializers);\n __esDecorate(null, null, _nodePadding_decorators, { kind: \"field\", name: \"nodePadding\", static: false, private: false, access: { has: obj => \"nodePadding\" in obj, get: obj => obj.nodePadding, set: (obj, value) => { obj.nodePadding = value; } }, metadata: _metadata }, _nodePadding_initializers, _nodePadding_extraInitializers);\n __esDecorate(null, null, _alignment_decorators, { kind: \"field\", name: \"alignment\", static: false, private: false, access: { has: obj => \"alignment\" in obj, get: obj => obj.alignment, set: (obj, value) => { obj.alignment = value; } }, metadata: _metadata }, _alignment_initializers, _alignment_extraInitializers);\n __esDecorate(null, null, _showLabels_decorators, { kind: \"field\", name: \"showLabels\", static: false, private: false, access: { has: obj => \"showLabels\" in obj, get: obj => obj.showLabels, set: (obj, value) => { obj.showLabels = value; } }, metadata: _metadata }, _showLabels_initializers, _showLabels_extraInitializers);\n __esDecorate(null, null, _showValues_decorators, { kind: \"field\", name: \"showValues\", static: false, private: false, access: { has: obj => \"showValues\" in obj, get: obj => obj.showValues, set: (obj, value) => { obj.showValues = value; } }, metadata: _metadata }, _showValues_initializers, _showValues_extraInitializers);\n __esDecorate(null, null, _animation_decorators, { kind: \"field\", name: \"animation\", static: false, private: false, access: { has: obj => \"animation\" in obj, get: obj => obj.animation, set: (obj, value) => { obj.animation = value; } }, metadata: _metadata }, _animation_initializers, _animation_extraInitializers);\n __esDecorate(null, null, _chartEl_decorators, { kind: \"field\", name: \"chartEl\", static: false, private: false, access: { has: obj => \"chartEl\" in obj, get: obj => obj.chartEl, set: (obj, value) => { obj.chartEl = value; } }, metadata: _metadata }, _chartEl_initializers, _chartEl_extraInitializers);\n __esDecorate(null, null, _tooltipEl_decorators, { kind: \"field\", name: \"tooltipEl\", static: false, private: false, access: { has: obj => \"tooltipEl\" in obj, get: obj => obj.tooltipEl, set: (obj, value) => { obj.tooltipEl = value; } }, metadata: _metadata }, _tooltipEl_initializers, _tooltipEl_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n emitNodeClick(node) {\n return { node };\n }\n emitLinkClick(link) {\n return { link };\n }\n emitHover(detail) {\n return detail;\n }\n init() {\n const rect = this.getBoundingClientRect();\n if (rect.width > 0)\n this.chartWidth = rect.width;\n if (rect.height > 0)\n this.chartHeight = rect.height;\n if (this.cachedData.nodes.length === 0 && this.data.nodes.length > 0) {\n this.cachedData = this.data;\n }\n this.computeLayout();\n this.rebuildChart();\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n const { width, height } = entry.contentRect;\n if (width > 0 && height > 0) {\n this.chartWidth = width;\n this.chartHeight = height;\n this.computeLayout();\n this.rebuildChart();\n }\n }\n });\n this.resizeObserver.observe(this);\n }\n }\n onDataChange() {\n this.cachedData = this.data;\n this.computeLayout();\n this.rebuildChart();\n }\n onDisplayChange() {\n this.computeLayout();\n this.rebuildChart();\n }\n computeLayout() {\n const data = this.cachedData;\n if (!data || !data.nodes.length || !data.links.length) {\n this.layoutNodes = [];\n this.layoutLinks = [];\n return;\n }\n const padding = 40;\n const labelSpace = this.showLabels ? 80 : 0;\n const width = this.chartWidth - labelSpace * 2;\n const height = this.chartHeight - padding * 2;\n if (width <= 0 || height <= 0)\n return;\n // Build node map\n const nodeMap = new Map();\n data.nodes.forEach((n, i) => {\n nodeMap.set(n.id, {\n id: n.id,\n label: n.label || n.id,\n color: n.color || DEFAULT_COLORS[i % DEFAULT_COLORS.length],\n x: 0, y: 0,\n width: this.nodeWidth,\n height: 0,\n value: 0,\n depth: 0,\n sourceLinks: [],\n targetLinks: []\n });\n });\n // Build links\n const links = data.links.map(l => ({\n source: nodeMap.get(l.source),\n target: nodeMap.get(l.target),\n value: l.value,\n color: l.color || nodeMap.get(l.source)?.color || DEFAULT_COLORS[0],\n width: 0,\n sy: 0,\n ty: 0\n })).filter(l => l.source && l.target);\n // Assign links to nodes\n links.forEach(link => {\n link.source.sourceLinks.push(link);\n link.target.targetLinks.push(link);\n });\n // Calculate node values\n nodeMap.forEach(node => {\n const sourceTotal = node.sourceLinks.reduce((s, l) => s + l.value, 0);\n const targetTotal = node.targetLinks.reduce((s, l) => s + l.value, 0);\n node.value = Math.max(sourceTotal, targetTotal);\n });\n // Compute depths using BFS\n this.computeDepths(nodeMap);\n const nodes = Array.from(nodeMap.values());\n const maxDepth = Math.max(...nodes.map(n => n.depth));\n // X positions\n const xScale = maxDepth > 0 ? (width - this.nodeWidth) / maxDepth : 0;\n nodes.forEach(node => {\n node.x = labelSpace + node.depth * xScale;\n });\n // Apply alignment\n this.applyAlignment(nodes, maxDepth, width, labelSpace);\n // Y positions - compute node heights and stack within each column\n const columns = this.getColumns(nodes);\n columns.forEach(column => {\n const colTotalValue = column.reduce((s, n) => s + n.value, 0);\n const availableHeight = height - (column.length - 1) * this.nodePadding;\n const scale = colTotalValue > 0 ? availableHeight / colTotalValue : 0;\n let y = padding;\n column.forEach(node => {\n node.y = y;\n node.height = Math.max(node.value * scale, 2);\n y += node.height + this.nodePadding;\n });\n });\n // Iterative relaxation for better node positioning\n for (let i = 0; i < 32; i++) {\n this.relaxColumns(columns, height, padding);\n }\n // Compute link positions\n links.forEach(link => {\n link.width = Math.max(1, (link.value / link.source.value) * link.source.height);\n });\n // Sort and position source links\n nodes.forEach(node => {\n node.sourceLinks.sort((a, b) => a.target.y - b.target.y);\n let sy = 0;\n node.sourceLinks.forEach(link => {\n link.sy = node.y + sy;\n sy += link.width;\n });\n node.targetLinks.sort((a, b) => a.source.y - b.source.y);\n let ty = 0;\n node.targetLinks.forEach(link => {\n link.width = Math.max(1, (link.value / link.target.value) * link.target.height);\n link.ty = node.y + ty;\n ty += link.width;\n });\n });\n this.layoutNodes = nodes;\n this.layoutLinks = links;\n }\n computeDepths(nodeMap) {\n const remaining = new Set(nodeMap.values());\n let depth = 0;\n while (remaining.size > 0) {\n const nextLevel = [];\n remaining.forEach(node => {\n if (node.targetLinks.every(l => !remaining.has(l.source))) {\n node.depth = depth;\n nextLevel.push(node);\n }\n });\n if (nextLevel.length === 0) {\n // Break cycles - assign remaining to current depth\n remaining.forEach(node => {\n node.depth = depth;\n });\n break;\n }\n nextLevel.forEach(n => remaining.delete(n));\n depth++;\n }\n }\n getColumns(nodes) {\n const maxDepth = Math.max(...nodes.map(n => n.depth), 0);\n const columns = [];\n for (let i = 0; i <= maxDepth; i++) {\n columns.push(nodes.filter(n => n.depth === i));\n }\n return columns;\n }\n applyAlignment(nodes, maxDepth, width, labelSpace) {\n if (this.alignment === 'right') {\n nodes.forEach(node => {\n if (node.sourceLinks.length === 0) {\n node.depth = maxDepth;\n node.x = labelSpace + maxDepth * ((width - this.nodeWidth) / Math.max(maxDepth, 1));\n }\n });\n }\n else if (this.alignment === 'center') {\n nodes.forEach(node => {\n if (node.targetLinks.length === 0 && node.sourceLinks.length === 0) {\n node.depth = Math.floor(maxDepth / 2);\n node.x = labelSpace + node.depth * ((width - this.nodeWidth) / Math.max(maxDepth, 1));\n }\n });\n }\n else if (this.alignment === 'justify') {\n nodes.forEach(node => {\n if (node.sourceLinks.length === 0 && maxDepth > 0) {\n node.depth = maxDepth;\n node.x = labelSpace + maxDepth * ((width - this.nodeWidth) / maxDepth);\n }\n });\n }\n }\n relaxColumns(columns, height, padding) {\n // Forward pass - push nodes based on sources\n columns.forEach(column => {\n column.forEach(node => {\n if (node.targetLinks.length > 0) {\n const avg = node.targetLinks.reduce((s, l) => s + l.source.y, 0) / node.targetLinks.length;\n const delta = (avg - node.y) * 0.5;\n node.y += delta;\n }\n });\n this.resolveOverlaps(column, height, padding);\n });\n // Backward pass - push nodes based on targets\n for (let i = columns.length - 1; i >= 0; i--) {\n columns[i].forEach(node => {\n if (node.sourceLinks.length > 0) {\n const avg = node.sourceLinks.reduce((s, l) => s + l.target.y, 0) / node.sourceLinks.length;\n const delta = (avg - node.y) * 0.5;\n node.y += delta;\n }\n });\n this.resolveOverlaps(columns[i], height, padding);\n }\n }\n resolveOverlaps(column, height, padding) {\n column.sort((a, b) => a.y - b.y);\n let y0 = padding;\n column.forEach(node => {\n if (node.y < y0) {\n node.y = y0;\n }\n y0 = node.y + node.height + this.nodePadding;\n });\n // Push up if exceeding bottom\n const lastNode = column[column.length - 1];\n if (lastNode) {\n const overflow = lastNode.y + lastNode.height - (height + padding);\n if (overflow > 0) {\n lastNode.y -= overflow;\n for (let i = column.length - 2; i >= 0; i--) {\n const maxY = column[i + 1].y - column[i].height - this.nodePadding;\n if (column[i].y > maxY) {\n column[i].y = maxY;\n }\n }\n }\n }\n }\n getLinkPath(link) {\n const x0 = link.source.x + link.source.width;\n const x1 = link.target.x;\n const xi = (x0 + x1) / 2;\n const y0 = link.sy + link.width / 2;\n const y1 = link.ty + link.width / 2;\n return `M${x0},${y0} C${xi},${y0} ${xi},${y1} ${x1},${y1}`;\n }\n handleSvgClick(e) {\n const target = e.target;\n const el = target.closest('[data-node-id]');\n const linkEl = target.closest('[data-link-index]');\n if (el) {\n const nodeId = el.dataset.nodeId;\n const originalNode = this.cachedData.nodes.find(n => n.id === nodeId);\n if (originalNode)\n this.emitNodeClick(originalNode);\n }\n else if (linkEl) {\n const index = parseInt(linkEl.dataset.linkIndex, 10);\n const originalLink = this.cachedData.links[index];\n if (originalLink)\n this.emitLinkClick(originalLink);\n }\n }\n handleSvgMouseMove(e) {\n const target = e.target;\n const nodeEl = target.closest('[data-node-id]');\n const linkEl = target.closest('[data-link-index]');\n const tooltip = this.tooltipEl;\n this.chartEl;\n if (nodeEl) {\n const nodeId = nodeEl.dataset.nodeId;\n const node = this.layoutNodes.find(n => n.id === nodeId);\n if (!node)\n return;\n // Update hover highlight\n if (this.hoveredNodeId !== nodeId || this.hoveredLinkIndex !== null) {\n this.hoveredNodeId = nodeId;\n this.hoveredLinkIndex = null;\n this.applyHoverClasses();\n }\n // Update tooltip\n if (tooltip) {\n tooltip.querySelector('.sankey__tooltip-label').textContent = node.label;\n tooltip.querySelector('.sankey__tooltip-value').textContent = `Value: ${node.value.toLocaleString()}`;\n this.positionTooltip(e);\n tooltip.classList.add('sankey__tooltip--visible');\n }\n const originalNode = this.cachedData.nodes.find(n => n.id === nodeId);\n if (originalNode)\n this.emitHover({ type: 'node', item: originalNode });\n }\n else if (linkEl) {\n const index = parseInt(linkEl.dataset.linkIndex, 10);\n const link = this.layoutLinks[index];\n if (!link)\n return;\n // Update hover highlight\n if (this.hoveredLinkIndex !== index || this.hoveredNodeId !== null) {\n this.hoveredLinkIndex = index;\n this.hoveredNodeId = null;\n this.applyHoverClasses();\n }\n // Update tooltip\n if (tooltip) {\n tooltip.querySelector('.sankey__tooltip-label').textContent = `${link.source.label} \\u2192 ${link.target.label}`;\n tooltip.querySelector('.sankey__tooltip-value').textContent = `Value: ${link.value.toLocaleString()}`;\n this.positionTooltip(e);\n tooltip.classList.add('sankey__tooltip--visible');\n }\n const originalLink = this.cachedData.links[index];\n if (originalLink)\n this.emitHover({ type: 'link', item: originalLink });\n }\n else {\n this.clearHover();\n }\n }\n handleSvgMouseLeave() {\n this.clearHover();\n }\n clearHover() {\n if (this.hoveredNodeId !== null || this.hoveredLinkIndex !== null) {\n this.hoveredNodeId = null;\n this.hoveredLinkIndex = null;\n this.applyHoverClasses();\n this.emitHover(null);\n }\n const tooltip = this.tooltipEl;\n if (tooltip)\n tooltip.classList.remove('sankey__tooltip--visible');\n }\n positionTooltip(e) {\n const tooltip = this.tooltipEl;\n if (!tooltip)\n return;\n const rect = this.getBoundingClientRect();\n tooltip.style.left = `${e.clientX - rect.left + 10}px`;\n tooltip.style.top = `${e.clientY - rect.top - 10}px`;\n }\n applyHoverClasses() {\n const chart = this.chartEl;\n if (!chart)\n return;\n const svg = chart.querySelector('svg');\n if (!svg)\n return;\n const isDimmed = this.hoveredNodeId !== null || this.hoveredLinkIndex !== null;\n const container = svg.closest('.sankey');\n if (container) {\n container.classList.toggle('sankey--dimmed', isDimmed);\n }\n // Update node highlights\n const nodeGroups = svg.querySelectorAll('[data-node-id]');\n nodeGroups.forEach(g => {\n const nodeId = g.dataset.nodeId;\n const highlighted = this.isNodeHighlighted(nodeId);\n g.classList.toggle('sankey__node--highlighted', highlighted);\n });\n // Update link highlights\n const linkGroups = svg.querySelectorAll('[data-link-index]');\n linkGroups.forEach(g => {\n const index = parseInt(g.dataset.linkIndex, 10);\n const highlighted = this.isLinkHighlighted(index);\n g.classList.toggle('sankey__link--highlighted', highlighted);\n });\n }\n isNodeHighlighted(nodeId) {\n if (this.hoveredNodeId === null && this.hoveredLinkIndex === null)\n return false;\n if (this.hoveredNodeId === nodeId)\n return true;\n if (this.hoveredLinkIndex !== null) {\n const link = this.layoutLinks[this.hoveredLinkIndex];\n return link?.source.id === nodeId || link?.target.id === nodeId;\n }\n if (this.hoveredNodeId) {\n return this.layoutLinks.some(l => (l.source.id === this.hoveredNodeId && l.target.id === nodeId) ||\n (l.target.id === this.hoveredNodeId && l.source.id === nodeId));\n }\n return false;\n }\n isLinkHighlighted(index) {\n if (this.hoveredNodeId === null && this.hoveredLinkIndex === null)\n return false;\n if (this.hoveredLinkIndex === index)\n return true;\n if (this.hoveredNodeId) {\n const link = this.layoutLinks[index];\n return link?.source.id === this.hoveredNodeId || link?.target.id === this.hoveredNodeId;\n }\n return false;\n }\n rebuildChart() {\n const chart = this.chartEl;\n if (!chart) {\n requestAnimationFrame(() => this.rebuildChart());\n return;\n }\n const hasData = this.layoutNodes.length > 0;\n if (!hasData) {\n chart.innerHTML = '';\n return;\n }\n chart.innerHTML = this.buildSVG();\n }\n buildSVG() {\n const nodes = this.layoutNodes;\n const links = this.layoutLinks;\n let svg = `<svg class=\"sankey__svg\" viewBox=\"0 0 ${this.chartWidth} ${this.chartHeight}\" preserveAspectRatio=\"xMidYMid meet\" role=\"img\" aria-label=\"Sankey diagram\">`;\n // Links\n svg += `<g class=\"sankey__links\">`;\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const path = escapeHTML(this.getLinkPath(link));\n const color = escapeHTML(link.color);\n svg += `<g class=\"sankey__link\" data-link-index=\"${i}\">`;\n svg += `<path d=\"${path}\" stroke=\"${color}\" stroke-width=\"${Math.max(1, link.width)}\"/>`;\n svg += `</g>`;\n }\n svg += `</g>`;\n // Nodes\n svg += `<g class=\"sankey__nodes\">`;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const color = escapeHTML(node.color);\n const nodeId = escapeHTML(node.id);\n svg += `<g class=\"sankey__node\" data-node-id=\"${nodeId}\">`;\n svg += `<rect x=\"${node.x}\" y=\"${node.y}\" width=\"${node.width}\" height=\"${Math.max(node.height, 2)}\" fill=\"${color}\"/>`;\n if (this.showLabels) {\n const label = escapeHTML(node.label);\n if (node.depth === 0) {\n svg += `<text class=\"sankey__label\" x=\"${node.x - 6}\" y=\"${node.y + node.height / 2}\" text-anchor=\"end\">${label}</text>`;\n }\n else {\n svg += `<text class=\"sankey__label\" x=\"${node.x + node.width + 6}\" y=\"${node.y + node.height / 2}\" text-anchor=\"start\">${label}</text>`;\n }\n }\n if (this.showValues && node.height > 12) {\n const value = escapeHTML(node.value.toLocaleString());\n if (node.depth === 0) {\n svg += `<text class=\"sankey__value\" x=\"${node.x - 6}\" y=\"${node.y + node.height / 2 + 12}\" text-anchor=\"end\">${value}</text>`;\n }\n else {\n svg += `<text class=\"sankey__value\" x=\"${node.x + node.width + 6}\" y=\"${node.y + node.height / 2 + 12}\" text-anchor=\"start\">${value}</text>`;\n }\n }\n svg += `</g>`;\n }\n svg += `</g>`;\n svg += `</svg>`;\n return svg;\n }\n renderContent() {\n return html /*html*/ `\n <div class=\"sankey\"\n role=\"img\"\n aria-label=\"Sankey diagram\"\n @click=${(e) => this.handleSvgClick(e)}\n @mousemove=${(e) => this.handleSvgMouseMove(e)}\n @mouseleave=${() => this.handleSvgMouseLeave()}>\n <div class=\"sankey__chart\"></div>\n <div class=\"sankey__tooltip\">\n <div class=\"sankey__tooltip-label\"></div>\n <div class=\"sankey__tooltip-value\"></div>\n </div>\n </div>\n `;\n }\n componentStyles() {\n return css /*css*/ `${cssContent}`;\n }\n cleanup() {\n this.resizeObserver?.disconnect();\n }\n });\n return _classThis;\n})();\n\nexport { SniceSankey };\n//# sourceMappingURL=snice-sankey.js.map\n"],"names":["element","property","query","dispatch","ready","watch","render","styles","dispose","html","css"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* snice v4.8.0
|
|
3
|
+
* Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
|
|
4
|
+
* (c) 2024
|
|
5
|
+
* Released under the MIT License.
|
|
6
|
+
*/
|
|
7
|
+
void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be loaded before snice-sankey.min.js");var SniceSankey=function(e,t){"use strict";function i(e,t,i,s,a,n){function o(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var l,r=s.kind,h="getter"===r?"get":"setter"===r?"set":"value",d=!t&&e?s.static?e:e.prototype:null,c=t||(d?Object.getOwnPropertyDescriptor(d,s.name):{}),u=!1,g=i.length-1;g>=0;g--){var p={};for(var y in s)p[y]="access"===y?{}:s[y];for(var y in s.access)p.access[y]=s.access[y];p.addInitializer=function(e){if(u)throw new TypeError("Cannot add initializers after decoration has completed");n.push(o(e||null))};var k=(0,i[g])("accessor"===r?{get:c.get,set:c.set}:c[h],p);if("accessor"===r){if(void 0===k)continue;if(null===k||"object"!=typeof k)throw new TypeError("Object expected");(l=o(k.get))&&(c.get=l),(l=o(k.set))&&(c.set=l),(l=o(k.init))&&a.unshift(l)}else(l=o(k))&&("field"===r?a.unshift(l):c[h]=l)}d&&Object.defineProperty(d,s.name,c),u=!0}function s(e,t,i){for(var s=arguments.length>2,a=0;a<t.length;a++)i=s?t[a].call(e,i):t[a].call(e);return s?i:void 0}"function"==typeof SuppressedError&&SuppressedError;const a=["#2196f3","#4caf50","#ff9800","#f44336","#9c27b0","#00bcd4","#8bc34a","#ffc107","#e91e63","#673ab7"];function n(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}let o=(()=>{let e,o,l,r,h,d,c,u,g,p,y,k,m,v,f,b,x,_,L,w,C=[t.element("snice-sankey")],E=[],I=HTMLElement,$=[],S=[],N=[],H=[],M=[],D=[],z=[],O=[],W=[],P=[],j=[],q=[],V=[],T=[],A=[],B=[],R=[],Y=[],F=[];return class extends I{static{o=this}constructor(){super(...arguments),this.data=(s(this,$),s(this,S,{nodes:[],links:[]})),this.nodeWidth=(s(this,N),s(this,H,20)),this.nodePadding=(s(this,M),s(this,D,10)),this.alignment=(s(this,z),s(this,O,"justify")),this.showLabels=(s(this,W),s(this,P,!0)),this.showValues=(s(this,j),s(this,q,!0)),this.animation=(s(this,V),s(this,T,!1)),this.chartEl=(s(this,A),s(this,B,void 0)),this.tooltipEl=(s(this,R),s(this,Y,void 0)),this.cachedData=(s(this,F),{nodes:[],links:[]}),this.layoutNodes=[],this.layoutLinks=[],this.hoveredNodeId=null,this.hoveredLinkIndex=null,this.chartWidth=600,this.chartHeight=400,this.resizeObserver=null}static{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(I[Symbol.metadata]??null):void 0;l=[t.property({type:Object,attribute:!1})],r=[t.property({type:Number,attribute:"node-width"})],h=[t.property({type:Number,attribute:"node-padding"})],d=[t.property()],c=[t.property({type:Boolean,attribute:"show-labels"})],u=[t.property({type:Boolean,attribute:"show-values"})],g=[t.property({type:Boolean})],p=[t.query(".sankey__chart")],y=[t.query(".sankey__tooltip")],k=[t.dispatch("sankey-node-click",{bubbles:!0,composed:!0})],m=[t.dispatch("sankey-link-click",{bubbles:!0,composed:!0})],v=[t.dispatch("sankey-hover",{bubbles:!0,composed:!0})],f=[t.ready()],b=[t.watch("data")],x=[t.watch("showLabels","showValues","animation","alignment")],_=[t.render({once:!0})],L=[t.styles()],w=[t.dispose()],i(this,null,k,{kind:"method",name:"emitNodeClick",static:!1,private:!1,access:{has:e=>"emitNodeClick"in e,get:e=>e.emitNodeClick},metadata:a},null,$),i(this,null,m,{kind:"method",name:"emitLinkClick",static:!1,private:!1,access:{has:e=>"emitLinkClick"in e,get:e=>e.emitLinkClick},metadata:a},null,$),i(this,null,v,{kind:"method",name:"emitHover",static:!1,private:!1,access:{has:e=>"emitHover"in e,get:e=>e.emitHover},metadata:a},null,$),i(this,null,f,{kind:"method",name:"init",static:!1,private:!1,access:{has:e=>"init"in e,get:e=>e.init},metadata:a},null,$),i(this,null,b,{kind:"method",name:"onDataChange",static:!1,private:!1,access:{has:e=>"onDataChange"in e,get:e=>e.onDataChange},metadata:a},null,$),i(this,null,x,{kind:"method",name:"onDisplayChange",static:!1,private:!1,access:{has:e=>"onDisplayChange"in e,get:e=>e.onDisplayChange},metadata:a},null,$),i(this,null,_,{kind:"method",name:"renderContent",static:!1,private:!1,access:{has:e=>"renderContent"in e,get:e=>e.renderContent},metadata:a},null,$),i(this,null,L,{kind:"method",name:"componentStyles",static:!1,private:!1,access:{has:e=>"componentStyles"in e,get:e=>e.componentStyles},metadata:a},null,$),i(this,null,w,{kind:"method",name:"cleanup",static:!1,private:!1,access:{has:e=>"cleanup"in e,get:e=>e.cleanup},metadata:a},null,$),i(null,null,l,{kind:"field",name:"data",static:!1,private:!1,access:{has:e=>"data"in e,get:e=>e.data,set:(e,t)=>{e.data=t}},metadata:a},S,N),i(null,null,r,{kind:"field",name:"nodeWidth",static:!1,private:!1,access:{has:e=>"nodeWidth"in e,get:e=>e.nodeWidth,set:(e,t)=>{e.nodeWidth=t}},metadata:a},H,M),i(null,null,h,{kind:"field",name:"nodePadding",static:!1,private:!1,access:{has:e=>"nodePadding"in e,get:e=>e.nodePadding,set:(e,t)=>{e.nodePadding=t}},metadata:a},D,z),i(null,null,d,{kind:"field",name:"alignment",static:!1,private:!1,access:{has:e=>"alignment"in e,get:e=>e.alignment,set:(e,t)=>{e.alignment=t}},metadata:a},O,W),i(null,null,c,{kind:"field",name:"showLabels",static:!1,private:!1,access:{has:e=>"showLabels"in e,get:e=>e.showLabels,set:(e,t)=>{e.showLabels=t}},metadata:a},P,j),i(null,null,u,{kind:"field",name:"showValues",static:!1,private:!1,access:{has:e=>"showValues"in e,get:e=>e.showValues,set:(e,t)=>{e.showValues=t}},metadata:a},q,V),i(null,null,g,{kind:"field",name:"animation",static:!1,private:!1,access:{has:e=>"animation"in e,get:e=>e.animation,set:(e,t)=>{e.animation=t}},metadata:a},T,A),i(null,null,p,{kind:"field",name:"chartEl",static:!1,private:!1,access:{has:e=>"chartEl"in e,get:e=>e.chartEl,set:(e,t)=>{e.chartEl=t}},metadata:a},B,R),i(null,null,y,{kind:"field",name:"tooltipEl",static:!1,private:!1,access:{has:e=>"tooltipEl"in e,get:e=>e.tooltipEl,set:(e,t)=>{e.tooltipEl=t}},metadata:a},Y,F),i(null,e={value:o},C,{kind:"class",name:o.name,metadata:a},null,E),o=e.value,a&&Object.defineProperty(o,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a}),s(o,E)}emitNodeClick(e){return{node:e}}emitLinkClick(e){return{link:e}}emitHover(e){return e}init(){const e=this.getBoundingClientRect();e.width>0&&(this.chartWidth=e.width),e.height>0&&(this.chartHeight=e.height),0===this.cachedData.nodes.length&&this.data.nodes.length>0&&(this.cachedData=this.data),this.computeLayout(),this.rebuildChart(),"undefined"!=typeof ResizeObserver&&(this.resizeObserver=new ResizeObserver(e=>{const t=e[0];if(t){const{width:e,height:i}=t.contentRect;e>0&&i>0&&(this.chartWidth=e,this.chartHeight=i,this.computeLayout(),this.rebuildChart())}}),this.resizeObserver.observe(this))}onDataChange(){this.cachedData=this.data,this.computeLayout(),this.rebuildChart()}onDisplayChange(){this.computeLayout(),this.rebuildChart()}computeLayout(){const e=this.cachedData;if(!e||!e.nodes.length||!e.links.length)return this.layoutNodes=[],void(this.layoutLinks=[]);const t=this.showLabels?80:0,i=this.chartWidth-2*t,s=this.chartHeight-80;if(i<=0||s<=0)return;const n=new Map;e.nodes.forEach((e,t)=>{n.set(e.id,{id:e.id,label:e.label||e.id,color:e.color||a[t%a.length],x:0,y:0,width:this.nodeWidth,height:0,value:0,depth:0,sourceLinks:[],targetLinks:[]})});const o=e.links.map(e=>({source:n.get(e.source),target:n.get(e.target),value:e.value,color:e.color||n.get(e.source)?.color||a[0],width:0,sy:0,ty:0})).filter(e=>e.source&&e.target);o.forEach(e=>{e.source.sourceLinks.push(e),e.target.targetLinks.push(e)}),n.forEach(e=>{const t=e.sourceLinks.reduce((e,t)=>e+t.value,0),i=e.targetLinks.reduce((e,t)=>e+t.value,0);e.value=Math.max(t,i)}),this.computeDepths(n);const l=Array.from(n.values()),r=Math.max(...l.map(e=>e.depth)),h=r>0?(i-this.nodeWidth)/r:0;l.forEach(e=>{e.x=t+e.depth*h}),this.applyAlignment(l,r,i,t);const d=this.getColumns(l);d.forEach(e=>{const t=e.reduce((e,t)=>e+t.value,0),i=s-(e.length-1)*this.nodePadding,a=t>0?i/t:0;let n=40;e.forEach(e=>{e.y=n,e.height=Math.max(e.value*a,2),n+=e.height+this.nodePadding})});for(let e=0;e<32;e++)this.relaxColumns(d,s,40);o.forEach(e=>{e.width=Math.max(1,e.value/e.source.value*e.source.height)}),l.forEach(e=>{e.sourceLinks.sort((e,t)=>e.target.y-t.target.y);let t=0;e.sourceLinks.forEach(i=>{i.sy=e.y+t,t+=i.width}),e.targetLinks.sort((e,t)=>e.source.y-t.source.y);let i=0;e.targetLinks.forEach(t=>{t.width=Math.max(1,t.value/t.target.value*t.target.height),t.ty=e.y+i,i+=t.width})}),this.layoutNodes=l,this.layoutLinks=o}computeDepths(e){const t=new Set(e.values());let i=0;for(;t.size>0;){const e=[];if(t.forEach(s=>{s.targetLinks.every(e=>!t.has(e.source))&&(s.depth=i,e.push(s))}),0===e.length){t.forEach(e=>{e.depth=i});break}e.forEach(e=>t.delete(e)),i++}}getColumns(e){const t=Math.max(...e.map(e=>e.depth),0),i=[];for(let s=0;s<=t;s++)i.push(e.filter(e=>e.depth===s));return i}applyAlignment(e,t,i,s){"right"===this.alignment?e.forEach(e=>{0===e.sourceLinks.length&&(e.depth=t,e.x=s+t*((i-this.nodeWidth)/Math.max(t,1)))}):"center"===this.alignment?e.forEach(e=>{0===e.targetLinks.length&&0===e.sourceLinks.length&&(e.depth=Math.floor(t/2),e.x=s+e.depth*((i-this.nodeWidth)/Math.max(t,1)))}):"justify"===this.alignment&&e.forEach(e=>{0===e.sourceLinks.length&&t>0&&(e.depth=t,e.x=s+t*((i-this.nodeWidth)/t))})}relaxColumns(e,t,i){e.forEach(e=>{e.forEach(e=>{if(e.targetLinks.length>0){const t=.5*(e.targetLinks.reduce((e,t)=>e+t.source.y,0)/e.targetLinks.length-e.y);e.y+=t}}),this.resolveOverlaps(e,t,i)});for(let s=e.length-1;s>=0;s--)e[s].forEach(e=>{if(e.sourceLinks.length>0){const t=.5*(e.sourceLinks.reduce((e,t)=>e+t.target.y,0)/e.sourceLinks.length-e.y);e.y+=t}}),this.resolveOverlaps(e[s],t,i)}resolveOverlaps(e,t,i){e.sort((e,t)=>e.y-t.y);let s=i;e.forEach(e=>{e.y<s&&(e.y=s),s=e.y+e.height+this.nodePadding});const a=e[e.length-1];if(a){const s=a.y+a.height-(t+i);if(s>0){a.y-=s;for(let t=e.length-2;t>=0;t--){const i=e[t+1].y-e[t].height-this.nodePadding;e[t].y>i&&(e[t].y=i)}}}}getLinkPath(e){const t=e.source.x+e.source.width,i=e.target.x,s=(t+i)/2,a=e.sy+e.width/2,n=e.ty+e.width/2;return`M${t},${a} C${s},${a} ${s},${n} ${i},${n}`}handleSvgClick(e){const t=e.target,i=t.closest("[data-node-id]"),s=t.closest("[data-link-index]");if(i){const e=i.dataset.nodeId,t=this.cachedData.nodes.find(t=>t.id===e);t&&this.emitNodeClick(t)}else if(s){const e=parseInt(s.dataset.linkIndex,10),t=this.cachedData.links[e];t&&this.emitLinkClick(t)}}handleSvgMouseMove(e){const t=e.target,i=t.closest("[data-node-id]"),s=t.closest("[data-link-index]"),a=this.tooltipEl;if(this.chartEl,i){const t=i.dataset.nodeId,s=this.layoutNodes.find(e=>e.id===t);if(!s)return;this.hoveredNodeId===t&&null===this.hoveredLinkIndex||(this.hoveredNodeId=t,this.hoveredLinkIndex=null,this.applyHoverClasses()),a&&(a.querySelector(".sankey__tooltip-label").textContent=s.label,a.querySelector(".sankey__tooltip-value").textContent=`Value: ${s.value.toLocaleString()}`,this.positionTooltip(e),a.classList.add("sankey__tooltip--visible"));const n=this.cachedData.nodes.find(e=>e.id===t);n&&this.emitHover({type:"node",item:n})}else if(s){const t=parseInt(s.dataset.linkIndex,10),i=this.layoutLinks[t];if(!i)return;this.hoveredLinkIndex===t&&null===this.hoveredNodeId||(this.hoveredLinkIndex=t,this.hoveredNodeId=null,this.applyHoverClasses()),a&&(a.querySelector(".sankey__tooltip-label").textContent=`${i.source.label} → ${i.target.label}`,a.querySelector(".sankey__tooltip-value").textContent=`Value: ${i.value.toLocaleString()}`,this.positionTooltip(e),a.classList.add("sankey__tooltip--visible"));const n=this.cachedData.links[t];n&&this.emitHover({type:"link",item:n})}else this.clearHover()}handleSvgMouseLeave(){this.clearHover()}clearHover(){null===this.hoveredNodeId&&null===this.hoveredLinkIndex||(this.hoveredNodeId=null,this.hoveredLinkIndex=null,this.applyHoverClasses(),this.emitHover(null));const e=this.tooltipEl;e&&e.classList.remove("sankey__tooltip--visible")}positionTooltip(e){const t=this.tooltipEl;if(!t)return;const i=this.getBoundingClientRect();t.style.left=e.clientX-i.left+10+"px",t.style.top=e.clientY-i.top-10+"px"}applyHoverClasses(){const e=this.chartEl;if(!e)return;const t=e.querySelector("svg");if(!t)return;const i=null!==this.hoveredNodeId||null!==this.hoveredLinkIndex,s=t.closest(".sankey");s&&s.classList.toggle("sankey--dimmed",i);t.querySelectorAll("[data-node-id]").forEach(e=>{const t=e.dataset.nodeId,i=this.isNodeHighlighted(t);e.classList.toggle("sankey__node--highlighted",i)});t.querySelectorAll("[data-link-index]").forEach(e=>{const t=parseInt(e.dataset.linkIndex,10),i=this.isLinkHighlighted(t);e.classList.toggle("sankey__link--highlighted",i)})}isNodeHighlighted(e){if(null===this.hoveredNodeId&&null===this.hoveredLinkIndex)return!1;if(this.hoveredNodeId===e)return!0;if(null!==this.hoveredLinkIndex){const t=this.layoutLinks[this.hoveredLinkIndex];return t?.source.id===e||t?.target.id===e}return!!this.hoveredNodeId&&this.layoutLinks.some(t=>t.source.id===this.hoveredNodeId&&t.target.id===e||t.target.id===this.hoveredNodeId&&t.source.id===e)}isLinkHighlighted(e){if(null===this.hoveredNodeId&&null===this.hoveredLinkIndex)return!1;if(this.hoveredLinkIndex===e)return!0;if(this.hoveredNodeId){const t=this.layoutLinks[e];return t?.source.id===this.hoveredNodeId||t?.target.id===this.hoveredNodeId}return!1}rebuildChart(){const e=this.chartEl;if(!e)return void requestAnimationFrame(()=>this.rebuildChart());this.layoutNodes.length>0?e.innerHTML=this.buildSVG():e.innerHTML=""}buildSVG(){const e=this.layoutNodes,t=this.layoutLinks;let i=`<svg class="sankey__svg" viewBox="0 0 ${this.chartWidth} ${this.chartHeight}" preserveAspectRatio="xMidYMid meet" role="img" aria-label="Sankey diagram">`;i+='<g class="sankey__links">';for(let e=0;e<t.length;e++){const s=t[e];i+=`<g class="sankey__link" data-link-index="${e}">`,i+=`<path d="${n(this.getLinkPath(s))}" stroke="${n(s.color)}" stroke-width="${Math.max(1,s.width)}"/>`,i+="</g>"}i+="</g>",i+='<g class="sankey__nodes">';for(let t=0;t<e.length;t++){const s=e[t],a=n(s.color);if(i+=`<g class="sankey__node" data-node-id="${n(s.id)}">`,i+=`<rect x="${s.x}" y="${s.y}" width="${s.width}" height="${Math.max(s.height,2)}" fill="${a}"/>`,this.showLabels){const e=n(s.label);0===s.depth?i+=`<text class="sankey__label" x="${s.x-6}" y="${s.y+s.height/2}" text-anchor="end">${e}</text>`:i+=`<text class="sankey__label" x="${s.x+s.width+6}" y="${s.y+s.height/2}" text-anchor="start">${e}</text>`}if(this.showValues&&s.height>12){const e=n(s.value.toLocaleString());0===s.depth?i+=`<text class="sankey__value" x="${s.x-6}" y="${s.y+s.height/2+12}" text-anchor="end">${e}</text>`:i+=`<text class="sankey__value" x="${s.x+s.width+6}" y="${s.y+s.height/2+12}" text-anchor="start">${e}</text>`}i+="</g>"}return i+="</g>",i+="</svg>",i}renderContent(){return t.html`
|
|
8
|
+
<div class="sankey"
|
|
9
|
+
role="img"
|
|
10
|
+
aria-label="Sankey diagram"
|
|
11
|
+
@click=${e=>this.handleSvgClick(e)}
|
|
12
|
+
@mousemove=${e=>this.handleSvgMouseMove(e)}
|
|
13
|
+
@mouseleave=${()=>this.handleSvgMouseLeave()}>
|
|
14
|
+
<div class="sankey__chart"></div>
|
|
15
|
+
<div class="sankey__tooltip">
|
|
16
|
+
<div class="sankey__tooltip-label"></div>
|
|
17
|
+
<div class="sankey__tooltip-value"></div>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
`}componentStyles(){return t.css`${":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint;width:100%}.sankey{position:relative;width:100%;min-height:12.5rem}.sankey__svg{display:block;width:100%;height:100%}.sankey__node{cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms) ease}.sankey__node rect{stroke:var(--snice-color-background,rgb(255 255 255));stroke-width:1px}.sankey__node:hover rect{filter:brightness(1.1)}.sankey__link{cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms) ease}.sankey__link path{fill:none;stroke-opacity:0.35;transition:stroke-opacity var(--snice-transition-fast, 150ms) ease}.sankey__link:hover path{stroke-opacity:0.6}.sankey--dimmed .sankey__node:not(.sankey__node--highlighted){opacity:.2}.sankey--dimmed .sankey__link:not(.sankey__link--highlighted) path{stroke-opacity:0.08}.sankey__label{font-size:var(--snice-font-size-sm, .75rem);fill:var(--snice-color-text,rgb(23 23 23));pointer-events:none;dominant-baseline:central}.sankey__value{font-size:var(--snice-font-size-xs, .625rem);fill:var(--snice-color-text-secondary,rgb(82 82 82));pointer-events:none;dominant-baseline:central}.sankey__tooltip{position:absolute;pointer-events:none;background:var(--snice-color-background,rgb(255 255 255));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);font-size:var(--snice-font-size-sm, .75rem);color:var(--snice-color-text,rgb(23 23 23));box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1));white-space:nowrap;z-index:10;opacity:0;transition:opacity var(--snice-transition-fast, 150ms) ease}.sankey__tooltip--visible{opacity:1}.sankey__tooltip-label{font-weight:var(--snice-font-weight-semibold,600)}.sankey__tooltip-value{color:var(--snice-color-text-secondary,rgb(82 82 82));margin-top:var(--snice-spacing-3xs,.125rem)}@keyframes sankey-fade-in{from{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}:host([animation]) .sankey__node{animation:sankey-fade-in var(--snice-transition-medium,250ms) ease both}:host([animation]) .sankey__link path{stroke-dasharray:1000;stroke-dashoffset:1000;animation:.8s forwards sankey-link-draw}@keyframes sankey-link-draw{to{stroke-dashoffset:0}}"}`}cleanup(){this.resizeObserver?.disconnect()}},o})();return e.SniceSankey=o,e}({},Snice);
|
|
21
|
+
//# sourceMappingURL=snice-sankey.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snice-sankey.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/sankey/snice-sankey.js"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, query, dispatch, ready, watch, render, styles, dispose, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint;width:100%}.sankey{position:relative;width:100%;min-height:12.5rem}.sankey__svg{display:block;width:100%;height:100%}.sankey__node{cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms) ease}.sankey__node rect{stroke:var(--snice-color-background,rgb(255 255 255));stroke-width:1px}.sankey__node:hover rect{filter:brightness(1.1)}.sankey__link{cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms) ease}.sankey__link path{fill:none;stroke-opacity:0.35;transition:stroke-opacity var(--snice-transition-fast, 150ms) ease}.sankey__link:hover path{stroke-opacity:0.6}.sankey--dimmed .sankey__node:not(.sankey__node--highlighted){opacity:.2}.sankey--dimmed .sankey__link:not(.sankey__link--highlighted) path{stroke-opacity:0.08}.sankey__label{font-size:var(--snice-font-size-sm, .75rem);fill:var(--snice-color-text,rgb(23 23 23));pointer-events:none;dominant-baseline:central}.sankey__value{font-size:var(--snice-font-size-xs, .625rem);fill:var(--snice-color-text-secondary,rgb(82 82 82));pointer-events:none;dominant-baseline:central}.sankey__tooltip{position:absolute;pointer-events:none;background:var(--snice-color-background,rgb(255 255 255));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);font-size:var(--snice-font-size-sm, .75rem);color:var(--snice-color-text,rgb(23 23 23));box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1));white-space:nowrap;z-index:10;opacity:0;transition:opacity var(--snice-transition-fast, 150ms) ease}.sankey__tooltip--visible{opacity:1}.sankey__tooltip-label{font-weight:var(--snice-font-weight-semibold,600)}.sankey__tooltip-value{color:var(--snice-color-text-secondary,rgb(82 82 82));margin-top:var(--snice-spacing-3xs,.125rem)}@keyframes sankey-fade-in{from{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}:host([animation]) .sankey__node{animation:sankey-fade-in var(--snice-transition-medium,250ms) ease both}:host([animation]) .sankey__link path{stroke-dasharray:1000;stroke-dashoffset:1000;animation:.8s forwards sankey-link-draw}@keyframes sankey-link-draw{to{stroke-dashoffset:0}}\";\n\nconst DEFAULT_COLORS = [\n '#2196f3', '#4caf50', '#ff9800', '#f44336', '#9c27b0',\n '#00bcd4', '#8bc34a', '#ffc107', '#e91e63', '#673ab7'\n];\nfunction escapeHTML(str) {\n return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"');\n}\nlet SniceSankey = (() => {\n let _classDecorators = [element('snice-sankey')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _data_decorators;\n let _data_initializers = [];\n let _data_extraInitializers = [];\n let _nodeWidth_decorators;\n let _nodeWidth_initializers = [];\n let _nodeWidth_extraInitializers = [];\n let _nodePadding_decorators;\n let _nodePadding_initializers = [];\n let _nodePadding_extraInitializers = [];\n let _alignment_decorators;\n let _alignment_initializers = [];\n let _alignment_extraInitializers = [];\n let _showLabels_decorators;\n let _showLabels_initializers = [];\n let _showLabels_extraInitializers = [];\n let _showValues_decorators;\n let _showValues_initializers = [];\n let _showValues_extraInitializers = [];\n let _animation_decorators;\n let _animation_initializers = [];\n let _animation_extraInitializers = [];\n let _chartEl_decorators;\n let _chartEl_initializers = [];\n let _chartEl_extraInitializers = [];\n let _tooltipEl_decorators;\n let _tooltipEl_initializers = [];\n let _tooltipEl_extraInitializers = [];\n let _emitNodeClick_decorators;\n let _emitLinkClick_decorators;\n let _emitHover_decorators;\n let _init_decorators;\n let _onDataChange_decorators;\n let _onDisplayChange_decorators;\n let _renderContent_decorators;\n let _componentStyles_decorators;\n let _cleanup_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.data = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _data_initializers, { nodes: [], links: [] }));\n this.nodeWidth = (__runInitializers(this, _data_extraInitializers), __runInitializers(this, _nodeWidth_initializers, 20));\n this.nodePadding = (__runInitializers(this, _nodeWidth_extraInitializers), __runInitializers(this, _nodePadding_initializers, 10));\n this.alignment = (__runInitializers(this, _nodePadding_extraInitializers), __runInitializers(this, _alignment_initializers, 'justify'));\n this.showLabels = (__runInitializers(this, _alignment_extraInitializers), __runInitializers(this, _showLabels_initializers, true));\n this.showValues = (__runInitializers(this, _showLabels_extraInitializers), __runInitializers(this, _showValues_initializers, true));\n this.animation = (__runInitializers(this, _showValues_extraInitializers), __runInitializers(this, _animation_initializers, false));\n this.chartEl = (__runInitializers(this, _animation_extraInitializers), __runInitializers(this, _chartEl_initializers, void 0));\n this.tooltipEl = (__runInitializers(this, _chartEl_extraInitializers), __runInitializers(this, _tooltipEl_initializers, void 0));\n this.cachedData = (__runInitializers(this, _tooltipEl_extraInitializers), { nodes: [], links: [] });\n this.layoutNodes = [];\n this.layoutLinks = [];\n this.hoveredNodeId = null;\n this.hoveredLinkIndex = null;\n this.chartWidth = 600;\n this.chartHeight = 400;\n this.resizeObserver = null;\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _data_decorators = [property({ type: Object, attribute: false })];\n _nodeWidth_decorators = [property({ type: Number, attribute: 'node-width' })];\n _nodePadding_decorators = [property({ type: Number, attribute: 'node-padding' })];\n _alignment_decorators = [property()];\n _showLabels_decorators = [property({ type: Boolean, attribute: 'show-labels' })];\n _showValues_decorators = [property({ type: Boolean, attribute: 'show-values' })];\n _animation_decorators = [property({ type: Boolean })];\n _chartEl_decorators = [query('.sankey__chart')];\n _tooltipEl_decorators = [query('.sankey__tooltip')];\n _emitNodeClick_decorators = [dispatch('sankey-node-click', { bubbles: true, composed: true })];\n _emitLinkClick_decorators = [dispatch('sankey-link-click', { bubbles: true, composed: true })];\n _emitHover_decorators = [dispatch('sankey-hover', { bubbles: true, composed: true })];\n _init_decorators = [ready()];\n _onDataChange_decorators = [watch('data')];\n _onDisplayChange_decorators = [watch('showLabels', 'showValues', 'animation', 'alignment')];\n _renderContent_decorators = [render({ once: true })];\n _componentStyles_decorators = [styles()];\n _cleanup_decorators = [dispose()];\n __esDecorate(this, null, _emitNodeClick_decorators, { kind: \"method\", name: \"emitNodeClick\", static: false, private: false, access: { has: obj => \"emitNodeClick\" in obj, get: obj => obj.emitNodeClick }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitLinkClick_decorators, { kind: \"method\", name: \"emitLinkClick\", static: false, private: false, access: { has: obj => \"emitLinkClick\" in obj, get: obj => obj.emitLinkClick }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitHover_decorators, { kind: \"method\", name: \"emitHover\", static: false, private: false, access: { has: obj => \"emitHover\" in obj, get: obj => obj.emitHover }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _init_decorators, { kind: \"method\", name: \"init\", static: false, private: false, access: { has: obj => \"init\" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onDataChange_decorators, { kind: \"method\", name: \"onDataChange\", static: false, private: false, access: { has: obj => \"onDataChange\" in obj, get: obj => obj.onDataChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onDisplayChange_decorators, { kind: \"method\", name: \"onDisplayChange\", static: false, private: false, access: { has: obj => \"onDisplayChange\" in obj, get: obj => obj.onDisplayChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _renderContent_decorators, { kind: \"method\", name: \"renderContent\", static: false, private: false, access: { has: obj => \"renderContent\" in obj, get: obj => obj.renderContent }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _componentStyles_decorators, { kind: \"method\", name: \"componentStyles\", static: false, private: false, access: { has: obj => \"componentStyles\" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _cleanup_decorators, { kind: \"method\", name: \"cleanup\", static: false, private: false, access: { has: obj => \"cleanup\" in obj, get: obj => obj.cleanup }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _data_decorators, { kind: \"field\", name: \"data\", static: false, private: false, access: { has: obj => \"data\" in obj, get: obj => obj.data, set: (obj, value) => { obj.data = value; } }, metadata: _metadata }, _data_initializers, _data_extraInitializers);\n __esDecorate(null, null, _nodeWidth_decorators, { kind: \"field\", name: \"nodeWidth\", static: false, private: false, access: { has: obj => \"nodeWidth\" in obj, get: obj => obj.nodeWidth, set: (obj, value) => { obj.nodeWidth = value; } }, metadata: _metadata }, _nodeWidth_initializers, _nodeWidth_extraInitializers);\n __esDecorate(null, null, _nodePadding_decorators, { kind: \"field\", name: \"nodePadding\", static: false, private: false, access: { has: obj => \"nodePadding\" in obj, get: obj => obj.nodePadding, set: (obj, value) => { obj.nodePadding = value; } }, metadata: _metadata }, _nodePadding_initializers, _nodePadding_extraInitializers);\n __esDecorate(null, null, _alignment_decorators, { kind: \"field\", name: \"alignment\", static: false, private: false, access: { has: obj => \"alignment\" in obj, get: obj => obj.alignment, set: (obj, value) => { obj.alignment = value; } }, metadata: _metadata }, _alignment_initializers, _alignment_extraInitializers);\n __esDecorate(null, null, _showLabels_decorators, { kind: \"field\", name: \"showLabels\", static: false, private: false, access: { has: obj => \"showLabels\" in obj, get: obj => obj.showLabels, set: (obj, value) => { obj.showLabels = value; } }, metadata: _metadata }, _showLabels_initializers, _showLabels_extraInitializers);\n __esDecorate(null, null, _showValues_decorators, { kind: \"field\", name: \"showValues\", static: false, private: false, access: { has: obj => \"showValues\" in obj, get: obj => obj.showValues, set: (obj, value) => { obj.showValues = value; } }, metadata: _metadata }, _showValues_initializers, _showValues_extraInitializers);\n __esDecorate(null, null, _animation_decorators, { kind: \"field\", name: \"animation\", static: false, private: false, access: { has: obj => \"animation\" in obj, get: obj => obj.animation, set: (obj, value) => { obj.animation = value; } }, metadata: _metadata }, _animation_initializers, _animation_extraInitializers);\n __esDecorate(null, null, _chartEl_decorators, { kind: \"field\", name: \"chartEl\", static: false, private: false, access: { has: obj => \"chartEl\" in obj, get: obj => obj.chartEl, set: (obj, value) => { obj.chartEl = value; } }, metadata: _metadata }, _chartEl_initializers, _chartEl_extraInitializers);\n __esDecorate(null, null, _tooltipEl_decorators, { kind: \"field\", name: \"tooltipEl\", static: false, private: false, access: { has: obj => \"tooltipEl\" in obj, get: obj => obj.tooltipEl, set: (obj, value) => { obj.tooltipEl = value; } }, metadata: _metadata }, _tooltipEl_initializers, _tooltipEl_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n emitNodeClick(node) {\n return { node };\n }\n emitLinkClick(link) {\n return { link };\n }\n emitHover(detail) {\n return detail;\n }\n init() {\n const rect = this.getBoundingClientRect();\n if (rect.width > 0)\n this.chartWidth = rect.width;\n if (rect.height > 0)\n this.chartHeight = rect.height;\n if (this.cachedData.nodes.length === 0 && this.data.nodes.length > 0) {\n this.cachedData = this.data;\n }\n this.computeLayout();\n this.rebuildChart();\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n const { width, height } = entry.contentRect;\n if (width > 0 && height > 0) {\n this.chartWidth = width;\n this.chartHeight = height;\n this.computeLayout();\n this.rebuildChart();\n }\n }\n });\n this.resizeObserver.observe(this);\n }\n }\n onDataChange() {\n this.cachedData = this.data;\n this.computeLayout();\n this.rebuildChart();\n }\n onDisplayChange() {\n this.computeLayout();\n this.rebuildChart();\n }\n computeLayout() {\n const data = this.cachedData;\n if (!data || !data.nodes.length || !data.links.length) {\n this.layoutNodes = [];\n this.layoutLinks = [];\n return;\n }\n const padding = 40;\n const labelSpace = this.showLabels ? 80 : 0;\n const width = this.chartWidth - labelSpace * 2;\n const height = this.chartHeight - padding * 2;\n if (width <= 0 || height <= 0)\n return;\n // Build node map\n const nodeMap = new Map();\n data.nodes.forEach((n, i) => {\n nodeMap.set(n.id, {\n id: n.id,\n label: n.label || n.id,\n color: n.color || DEFAULT_COLORS[i % DEFAULT_COLORS.length],\n x: 0, y: 0,\n width: this.nodeWidth,\n height: 0,\n value: 0,\n depth: 0,\n sourceLinks: [],\n targetLinks: []\n });\n });\n // Build links\n const links = data.links.map(l => ({\n source: nodeMap.get(l.source),\n target: nodeMap.get(l.target),\n value: l.value,\n color: l.color || nodeMap.get(l.source)?.color || DEFAULT_COLORS[0],\n width: 0,\n sy: 0,\n ty: 0\n })).filter(l => l.source && l.target);\n // Assign links to nodes\n links.forEach(link => {\n link.source.sourceLinks.push(link);\n link.target.targetLinks.push(link);\n });\n // Calculate node values\n nodeMap.forEach(node => {\n const sourceTotal = node.sourceLinks.reduce((s, l) => s + l.value, 0);\n const targetTotal = node.targetLinks.reduce((s, l) => s + l.value, 0);\n node.value = Math.max(sourceTotal, targetTotal);\n });\n // Compute depths using BFS\n this.computeDepths(nodeMap);\n const nodes = Array.from(nodeMap.values());\n const maxDepth = Math.max(...nodes.map(n => n.depth));\n // X positions\n const xScale = maxDepth > 0 ? (width - this.nodeWidth) / maxDepth : 0;\n nodes.forEach(node => {\n node.x = labelSpace + node.depth * xScale;\n });\n // Apply alignment\n this.applyAlignment(nodes, maxDepth, width, labelSpace);\n // Y positions - compute node heights and stack within each column\n const columns = this.getColumns(nodes);\n columns.forEach(column => {\n const colTotalValue = column.reduce((s, n) => s + n.value, 0);\n const availableHeight = height - (column.length - 1) * this.nodePadding;\n const scale = colTotalValue > 0 ? availableHeight / colTotalValue : 0;\n let y = padding;\n column.forEach(node => {\n node.y = y;\n node.height = Math.max(node.value * scale, 2);\n y += node.height + this.nodePadding;\n });\n });\n // Iterative relaxation for better node positioning\n for (let i = 0; i < 32; i++) {\n this.relaxColumns(columns, height, padding);\n }\n // Compute link positions\n links.forEach(link => {\n link.width = Math.max(1, (link.value / link.source.value) * link.source.height);\n });\n // Sort and position source links\n nodes.forEach(node => {\n node.sourceLinks.sort((a, b) => a.target.y - b.target.y);\n let sy = 0;\n node.sourceLinks.forEach(link => {\n link.sy = node.y + sy;\n sy += link.width;\n });\n node.targetLinks.sort((a, b) => a.source.y - b.source.y);\n let ty = 0;\n node.targetLinks.forEach(link => {\n link.width = Math.max(1, (link.value / link.target.value) * link.target.height);\n link.ty = node.y + ty;\n ty += link.width;\n });\n });\n this.layoutNodes = nodes;\n this.layoutLinks = links;\n }\n computeDepths(nodeMap) {\n const remaining = new Set(nodeMap.values());\n let depth = 0;\n while (remaining.size > 0) {\n const nextLevel = [];\n remaining.forEach(node => {\n if (node.targetLinks.every(l => !remaining.has(l.source))) {\n node.depth = depth;\n nextLevel.push(node);\n }\n });\n if (nextLevel.length === 0) {\n // Break cycles - assign remaining to current depth\n remaining.forEach(node => {\n node.depth = depth;\n });\n break;\n }\n nextLevel.forEach(n => remaining.delete(n));\n depth++;\n }\n }\n getColumns(nodes) {\n const maxDepth = Math.max(...nodes.map(n => n.depth), 0);\n const columns = [];\n for (let i = 0; i <= maxDepth; i++) {\n columns.push(nodes.filter(n => n.depth === i));\n }\n return columns;\n }\n applyAlignment(nodes, maxDepth, width, labelSpace) {\n if (this.alignment === 'right') {\n nodes.forEach(node => {\n if (node.sourceLinks.length === 0) {\n node.depth = maxDepth;\n node.x = labelSpace + maxDepth * ((width - this.nodeWidth) / Math.max(maxDepth, 1));\n }\n });\n }\n else if (this.alignment === 'center') {\n nodes.forEach(node => {\n if (node.targetLinks.length === 0 && node.sourceLinks.length === 0) {\n node.depth = Math.floor(maxDepth / 2);\n node.x = labelSpace + node.depth * ((width - this.nodeWidth) / Math.max(maxDepth, 1));\n }\n });\n }\n else if (this.alignment === 'justify') {\n nodes.forEach(node => {\n if (node.sourceLinks.length === 0 && maxDepth > 0) {\n node.depth = maxDepth;\n node.x = labelSpace + maxDepth * ((width - this.nodeWidth) / maxDepth);\n }\n });\n }\n }\n relaxColumns(columns, height, padding) {\n // Forward pass - push nodes based on sources\n columns.forEach(column => {\n column.forEach(node => {\n if (node.targetLinks.length > 0) {\n const avg = node.targetLinks.reduce((s, l) => s + l.source.y, 0) / node.targetLinks.length;\n const delta = (avg - node.y) * 0.5;\n node.y += delta;\n }\n });\n this.resolveOverlaps(column, height, padding);\n });\n // Backward pass - push nodes based on targets\n for (let i = columns.length - 1; i >= 0; i--) {\n columns[i].forEach(node => {\n if (node.sourceLinks.length > 0) {\n const avg = node.sourceLinks.reduce((s, l) => s + l.target.y, 0) / node.sourceLinks.length;\n const delta = (avg - node.y) * 0.5;\n node.y += delta;\n }\n });\n this.resolveOverlaps(columns[i], height, padding);\n }\n }\n resolveOverlaps(column, height, padding) {\n column.sort((a, b) => a.y - b.y);\n let y0 = padding;\n column.forEach(node => {\n if (node.y < y0) {\n node.y = y0;\n }\n y0 = node.y + node.height + this.nodePadding;\n });\n // Push up if exceeding bottom\n const lastNode = column[column.length - 1];\n if (lastNode) {\n const overflow = lastNode.y + lastNode.height - (height + padding);\n if (overflow > 0) {\n lastNode.y -= overflow;\n for (let i = column.length - 2; i >= 0; i--) {\n const maxY = column[i + 1].y - column[i].height - this.nodePadding;\n if (column[i].y > maxY) {\n column[i].y = maxY;\n }\n }\n }\n }\n }\n getLinkPath(link) {\n const x0 = link.source.x + link.source.width;\n const x1 = link.target.x;\n const xi = (x0 + x1) / 2;\n const y0 = link.sy + link.width / 2;\n const y1 = link.ty + link.width / 2;\n return `M${x0},${y0} C${xi},${y0} ${xi},${y1} ${x1},${y1}`;\n }\n handleSvgClick(e) {\n const target = e.target;\n const el = target.closest('[data-node-id]');\n const linkEl = target.closest('[data-link-index]');\n if (el) {\n const nodeId = el.dataset.nodeId;\n const originalNode = this.cachedData.nodes.find(n => n.id === nodeId);\n if (originalNode)\n this.emitNodeClick(originalNode);\n }\n else if (linkEl) {\n const index = parseInt(linkEl.dataset.linkIndex, 10);\n const originalLink = this.cachedData.links[index];\n if (originalLink)\n this.emitLinkClick(originalLink);\n }\n }\n handleSvgMouseMove(e) {\n const target = e.target;\n const nodeEl = target.closest('[data-node-id]');\n const linkEl = target.closest('[data-link-index]');\n const tooltip = this.tooltipEl;\n this.chartEl;\n if (nodeEl) {\n const nodeId = nodeEl.dataset.nodeId;\n const node = this.layoutNodes.find(n => n.id === nodeId);\n if (!node)\n return;\n // Update hover highlight\n if (this.hoveredNodeId !== nodeId || this.hoveredLinkIndex !== null) {\n this.hoveredNodeId = nodeId;\n this.hoveredLinkIndex = null;\n this.applyHoverClasses();\n }\n // Update tooltip\n if (tooltip) {\n tooltip.querySelector('.sankey__tooltip-label').textContent = node.label;\n tooltip.querySelector('.sankey__tooltip-value').textContent = `Value: ${node.value.toLocaleString()}`;\n this.positionTooltip(e);\n tooltip.classList.add('sankey__tooltip--visible');\n }\n const originalNode = this.cachedData.nodes.find(n => n.id === nodeId);\n if (originalNode)\n this.emitHover({ type: 'node', item: originalNode });\n }\n else if (linkEl) {\n const index = parseInt(linkEl.dataset.linkIndex, 10);\n const link = this.layoutLinks[index];\n if (!link)\n return;\n // Update hover highlight\n if (this.hoveredLinkIndex !== index || this.hoveredNodeId !== null) {\n this.hoveredLinkIndex = index;\n this.hoveredNodeId = null;\n this.applyHoverClasses();\n }\n // Update tooltip\n if (tooltip) {\n tooltip.querySelector('.sankey__tooltip-label').textContent = `${link.source.label} \\u2192 ${link.target.label}`;\n tooltip.querySelector('.sankey__tooltip-value').textContent = `Value: ${link.value.toLocaleString()}`;\n this.positionTooltip(e);\n tooltip.classList.add('sankey__tooltip--visible');\n }\n const originalLink = this.cachedData.links[index];\n if (originalLink)\n this.emitHover({ type: 'link', item: originalLink });\n }\n else {\n this.clearHover();\n }\n }\n handleSvgMouseLeave() {\n this.clearHover();\n }\n clearHover() {\n if (this.hoveredNodeId !== null || this.hoveredLinkIndex !== null) {\n this.hoveredNodeId = null;\n this.hoveredLinkIndex = null;\n this.applyHoverClasses();\n this.emitHover(null);\n }\n const tooltip = this.tooltipEl;\n if (tooltip)\n tooltip.classList.remove('sankey__tooltip--visible');\n }\n positionTooltip(e) {\n const tooltip = this.tooltipEl;\n if (!tooltip)\n return;\n const rect = this.getBoundingClientRect();\n tooltip.style.left = `${e.clientX - rect.left + 10}px`;\n tooltip.style.top = `${e.clientY - rect.top - 10}px`;\n }\n applyHoverClasses() {\n const chart = this.chartEl;\n if (!chart)\n return;\n const svg = chart.querySelector('svg');\n if (!svg)\n return;\n const isDimmed = this.hoveredNodeId !== null || this.hoveredLinkIndex !== null;\n const container = svg.closest('.sankey');\n if (container) {\n container.classList.toggle('sankey--dimmed', isDimmed);\n }\n // Update node highlights\n const nodeGroups = svg.querySelectorAll('[data-node-id]');\n nodeGroups.forEach(g => {\n const nodeId = g.dataset.nodeId;\n const highlighted = this.isNodeHighlighted(nodeId);\n g.classList.toggle('sankey__node--highlighted', highlighted);\n });\n // Update link highlights\n const linkGroups = svg.querySelectorAll('[data-link-index]');\n linkGroups.forEach(g => {\n const index = parseInt(g.dataset.linkIndex, 10);\n const highlighted = this.isLinkHighlighted(index);\n g.classList.toggle('sankey__link--highlighted', highlighted);\n });\n }\n isNodeHighlighted(nodeId) {\n if (this.hoveredNodeId === null && this.hoveredLinkIndex === null)\n return false;\n if (this.hoveredNodeId === nodeId)\n return true;\n if (this.hoveredLinkIndex !== null) {\n const link = this.layoutLinks[this.hoveredLinkIndex];\n return link?.source.id === nodeId || link?.target.id === nodeId;\n }\n if (this.hoveredNodeId) {\n return this.layoutLinks.some(l => (l.source.id === this.hoveredNodeId && l.target.id === nodeId) ||\n (l.target.id === this.hoveredNodeId && l.source.id === nodeId));\n }\n return false;\n }\n isLinkHighlighted(index) {\n if (this.hoveredNodeId === null && this.hoveredLinkIndex === null)\n return false;\n if (this.hoveredLinkIndex === index)\n return true;\n if (this.hoveredNodeId) {\n const link = this.layoutLinks[index];\n return link?.source.id === this.hoveredNodeId || link?.target.id === this.hoveredNodeId;\n }\n return false;\n }\n rebuildChart() {\n const chart = this.chartEl;\n if (!chart) {\n requestAnimationFrame(() => this.rebuildChart());\n return;\n }\n const hasData = this.layoutNodes.length > 0;\n if (!hasData) {\n chart.innerHTML = '';\n return;\n }\n chart.innerHTML = this.buildSVG();\n }\n buildSVG() {\n const nodes = this.layoutNodes;\n const links = this.layoutLinks;\n let svg = `<svg class=\"sankey__svg\" viewBox=\"0 0 ${this.chartWidth} ${this.chartHeight}\" preserveAspectRatio=\"xMidYMid meet\" role=\"img\" aria-label=\"Sankey diagram\">`;\n // Links\n svg += `<g class=\"sankey__links\">`;\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const path = escapeHTML(this.getLinkPath(link));\n const color = escapeHTML(link.color);\n svg += `<g class=\"sankey__link\" data-link-index=\"${i}\">`;\n svg += `<path d=\"${path}\" stroke=\"${color}\" stroke-width=\"${Math.max(1, link.width)}\"/>`;\n svg += `</g>`;\n }\n svg += `</g>`;\n // Nodes\n svg += `<g class=\"sankey__nodes\">`;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const color = escapeHTML(node.color);\n const nodeId = escapeHTML(node.id);\n svg += `<g class=\"sankey__node\" data-node-id=\"${nodeId}\">`;\n svg += `<rect x=\"${node.x}\" y=\"${node.y}\" width=\"${node.width}\" height=\"${Math.max(node.height, 2)}\" fill=\"${color}\"/>`;\n if (this.showLabels) {\n const label = escapeHTML(node.label);\n if (node.depth === 0) {\n svg += `<text class=\"sankey__label\" x=\"${node.x - 6}\" y=\"${node.y + node.height / 2}\" text-anchor=\"end\">${label}</text>`;\n }\n else {\n svg += `<text class=\"sankey__label\" x=\"${node.x + node.width + 6}\" y=\"${node.y + node.height / 2}\" text-anchor=\"start\">${label}</text>`;\n }\n }\n if (this.showValues && node.height > 12) {\n const value = escapeHTML(node.value.toLocaleString());\n if (node.depth === 0) {\n svg += `<text class=\"sankey__value\" x=\"${node.x - 6}\" y=\"${node.y + node.height / 2 + 12}\" text-anchor=\"end\">${value}</text>`;\n }\n else {\n svg += `<text class=\"sankey__value\" x=\"${node.x + node.width + 6}\" y=\"${node.y + node.height / 2 + 12}\" text-anchor=\"start\">${value}</text>`;\n }\n }\n svg += `</g>`;\n }\n svg += `</g>`;\n svg += `</svg>`;\n return svg;\n }\n renderContent() {\n return html /*html*/ `\n <div class=\"sankey\"\n role=\"img\"\n aria-label=\"Sankey diagram\"\n @click=${(e) => this.handleSvgClick(e)}\n @mousemove=${(e) => this.handleSvgMouseMove(e)}\n @mouseleave=${() => this.handleSvgMouseLeave()}>\n <div class=\"sankey__chart\"></div>\n <div class=\"sankey__tooltip\">\n <div class=\"sankey__tooltip-label\"></div>\n <div class=\"sankey__tooltip-value\"></div>\n </div>\n </div>\n `;\n }\n componentStyles() {\n return css /*css*/ `${cssContent}`;\n }\n cleanup() {\n this.resizeObserver?.disconnect();\n }\n });\n return _classThis;\n})();\n\nexport { SniceSankey };\n//# sourceMappingURL=snice-sankey.js.map\n"],"names":["__esDecorate","ctor","descriptorIn","decorators","contextIn","initializers","extraInitializers","accept","f","TypeError","_","kind","key","target","prototype","descriptor","Object","getOwnPropertyDescriptor","name","done","i","length","context","p","access","addInitializer","push","result","get","set","init","unshift","defineProperty","__runInitializers","thisArg","value","useValue","arguments","call","SuppressedError","DEFAULT_COLORS","escapeHTML","str","replace","SniceSankey","_classDescriptor","_classThis","_data_decorators","_nodeWidth_decorators","_nodePadding_decorators","_alignment_decorators","_showLabels_decorators","_showValues_decorators","_animation_decorators","_chartEl_decorators","_tooltipEl_decorators","_emitNodeClick_decorators","_emitLinkClick_decorators","_emitHover_decorators","_init_decorators","_onDataChange_decorators","_onDisplayChange_decorators","_renderContent_decorators","_componentStyles_decorators","_cleanup_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_data_initializers","_data_extraInitializers","_nodeWidth_initializers","_nodeWidth_extraInitializers","_nodePadding_initializers","_nodePadding_extraInitializers","_alignment_initializers","_alignment_extraInitializers","_showLabels_initializers","_showLabels_extraInitializers","_showValues_initializers","_showValues_extraInitializers","_animation_initializers","_animation_extraInitializers","_chartEl_initializers","_chartEl_extraInitializers","_tooltipEl_initializers","_tooltipEl_extraInitializers","this","constructor","super","data","nodes","links","nodeWidth","nodePadding","alignment","showLabels","showValues","animation","chartEl","tooltipEl","cachedData","layoutNodes","layoutLinks","hoveredNodeId","hoveredLinkIndex","chartWidth","chartHeight","resizeObserver","_metadata","Symbol","metadata","create","property","type","attribute","Number","Boolean","query","dispatch","bubbles","composed","ready","watch","render","once","styles","dispose","static","private","has","obj","emitNodeClick","emitLinkClick","emitHover","onDataChange","onDisplayChange","renderContent","componentStyles","cleanup","enumerable","configurable","writable","node","link","detail","rect","getBoundingClientRect","width","height","computeLayout","rebuildChart","ResizeObserver","entries","entry","contentRect","observe","labelSpace","padding","nodeMap","Map","forEach","n","id","label","color","x","y","depth","sourceLinks","targetLinks","map","l","source","sy","ty","filter","sourceTotal","reduce","s","targetTotal","Math","max","computeDepths","Array","from","values","maxDepth","xScale","applyAlignment","columns","getColumns","column","colTotalValue","availableHeight","scale","relaxColumns","sort","a","b","remaining","Set","size","nextLevel","every","delete","floor","delta","resolveOverlaps","y0","lastNode","overflow","maxY","getLinkPath","x0","x1","xi","y1","handleSvgClick","e","el","closest","linkEl","nodeId","dataset","originalNode","find","index","parseInt","linkIndex","originalLink","handleSvgMouseMove","nodeEl","tooltip","applyHoverClasses","querySelector","textContent","toLocaleString","positionTooltip","classList","add","item","clearHover","handleSvgMouseLeave","remove","style","left","clientX","top","clientY","chart","svg","isDimmed","container","toggle","querySelectorAll","g","highlighted","isNodeHighlighted","isLinkHighlighted","some","requestAnimationFrame","innerHTML","buildSVG","html","css","disconnect"],"mappings":";;;;;;6JAiEO,SAASA,EAAaC,EAAMC,EAAcC,EAAYC,EAAWC,EAAcC,GACpF,SAASC,EAAOC,GAAK,QAAU,IAANA,GAA6B,mBAANA,EAAkB,MAAM,IAAIC,UAAU,qBAAsB,OAAOD,CAAG,CAKtH,IAJA,IAGIE,EAHAC,EAAOP,EAAUO,KAAMC,EAAe,WAATD,EAAoB,MAAiB,WAATA,EAAoB,MAAQ,QACrFE,GAAUX,GAAgBD,EAAOG,EAAkB,OAAIH,EAAOA,EAAKa,UAAY,KAC/EC,EAAab,IAAiBW,EAASG,OAAOC,yBAAyBJ,EAAQT,EAAUc,MAAQ,IAC9FC,GAAO,EACLC,EAAIjB,EAAWkB,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC7C,IAAIE,EAAU,CAAA,EACd,IAAK,IAAIC,KAAKnB,EAAWkB,EAAQC,GAAW,WAANA,EAAiB,CAAA,EAAKnB,EAAUmB,GACtE,IAAK,IAAIA,KAAKnB,EAAUoB,OAAQF,EAAQE,OAAOD,GAAKnB,EAAUoB,OAAOD,GACrED,EAAQG,eAAiB,SAAUjB,GAAK,GAAIW,EAAM,MAAM,IAAIV,UAAU,0DAA2DH,EAAkBoB,KAAKnB,EAAOC,GAAK,MAAQ,EAC5K,IAAImB,GAAS,EAAIxB,EAAWiB,IAAa,aAATT,EAAsB,CAAEiB,IAAKb,EAAWa,IAAKC,IAAKd,EAAWc,KAAQd,EAAWH,GAAMU,GACtH,GAAa,aAATX,EAAqB,CACrB,QAAe,IAAXgB,EAAmB,SACvB,GAAe,OAAXA,GAAqC,iBAAXA,EAAqB,MAAM,IAAIlB,UAAU,oBACnEC,EAAIH,EAAOoB,EAAOC,QAAMb,EAAWa,IAAMlB,IACzCA,EAAIH,EAAOoB,EAAOE,QAAMd,EAAWc,IAAMnB,IACzCA,EAAIH,EAAOoB,EAAOG,QAAOzB,EAAa0B,QAAQrB,EACtD,MACSA,EAAIH,EAAOoB,MACH,UAAThB,EAAkBN,EAAa0B,QAAQrB,GACtCK,EAAWH,GAAOF,EAE/B,CACIG,GAAQG,OAAOgB,eAAenB,EAAQT,EAAUc,KAAMH,GAC1DI,GAAO,CACT,CAEO,SAASc,EAAkBC,EAAS7B,EAAc8B,GAEvD,IADA,IAAIC,EAAWC,UAAUhB,OAAS,EACzBD,EAAI,EAAGA,EAAIf,EAAagB,OAAQD,IACrCe,EAAQC,EAAW/B,EAAae,GAAGkB,KAAKJ,EAASC,GAAS9B,EAAae,GAAGkB,KAAKJ,GAEnF,OAAOE,EAAWD,OAAQ,CAC5B,CAoOkD,mBAApBI,iBAAiCA,gBClU/D,MAAMC,EAAiB,CACnB,UAAW,UAAW,UAAW,UAAW,UAC5C,UAAW,UAAW,UAAW,UAAW,WAEhD,SAASC,EAAWC,GAChB,OAAOA,EAAIC,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,SAChG,CACG,IAACC,EAAc,MACd,IACIC,EAEAC,EAGAC,EAGAC,EAGAC,EAGAC,EAGAC,EAGAC,EAGAC,EAGAC,EAGAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAzCAC,EAAmB,CAACC,UAAQ,iBAE5BC,EAA0B,GAE1BC,EAAcC,YACdC,EAA6B,GAE7BC,EAAqB,GACrBC,EAA0B,GAE1BC,EAA0B,GAC1BC,EAA+B,GAE/BC,EAA4B,GAC5BC,EAAiC,GAEjCC,EAA0B,GAC1BC,EAA+B,GAE/BC,EAA2B,GAC3BC,EAAgC,GAEhCC,EAA2B,GAC3BC,EAAgC,GAEhCC,EAA0B,GAC1BC,EAA+B,GAE/BC,EAAwB,GACxBC,EAA6B,GAE7BC,EAA0B,GAC1BC,EAA+B,GAkjBnC,OAxiBA,cAAepB,SACFtB,EAAa2C,IAAK,CAC3B,WAAAC,GACIC,SAAStD,WACToD,KAAKG,MAAQ3D,EAAkBwD,KAAMnB,GAA6BrC,EAAkBwD,KAAMlB,EAAoB,CAAEsB,MAAO,GAAIC,MAAO,MAClIL,KAAKM,WAAa9D,EAAkBwD,KAAMjB,GAA0BvC,EAAkBwD,KAAMhB,EAAyB,KACrHgB,KAAKO,aAAe/D,EAAkBwD,KAAMf,GAA+BzC,EAAkBwD,KAAMd,EAA2B,KAC9Hc,KAAKQ,WAAahE,EAAkBwD,KAAMb,GAAiC3C,EAAkBwD,KAAMZ,EAAyB,YAC5HY,KAAKS,YAAcjE,EAAkBwD,KAAMX,GAA+B7C,EAAkBwD,KAAMV,GAA0B,IAC5HU,KAAKU,YAAclE,EAAkBwD,KAAMT,GAAgC/C,EAAkBwD,KAAMR,GAA0B,IAC7HQ,KAAKW,WAAanE,EAAkBwD,KAAMP,GAAgCjD,EAAkBwD,KAAMN,GAAyB,IAC3HM,KAAKY,SAAWpE,EAAkBwD,KAAML,GAA+BnD,EAAkBwD,KAAMJ,OAAuB,IACtHI,KAAKa,WAAarE,EAAkBwD,KAAMH,GAA6BrD,EAAkBwD,KAAMF,OAAyB,IACxHE,KAAKc,YAActE,EAAkBwD,KAAMD,GAA+B,CAAEK,MAAO,GAAIC,MAAO,KAC9FL,KAAKe,YAAc,GACnBf,KAAKgB,YAAc,GACnBhB,KAAKiB,cAAgB,KACrBjB,KAAKkB,iBAAmB,KACxBlB,KAAKmB,WAAa,IAClBnB,KAAKoB,YAAc,IACnBpB,KAAKqB,eAAiB,IAC1B,QAEI,MAAMC,EAA8B,mBAAXC,QAAyBA,OAAOC,SAAWjG,OAAOkG,OAAO9C,EAAY4C,OAAOC,WAAa,WAAQ,EAC1HlE,EAAmB,CAACoE,EAAAA,SAAS,CAAEC,KAAMpG,OAAQqG,WAAW,KACxDrE,EAAwB,CAACmE,EAAAA,SAAS,CAAEC,KAAME,OAAQD,UAAW,gBAC7DpE,EAA0B,CAACkE,EAAAA,SAAS,CAAEC,KAAME,OAAQD,UAAW,kBAC/DnE,EAAwB,CAACiE,EAAAA,YACzBhE,EAAyB,CAACgE,EAAAA,SAAS,CAAEC,KAAMG,QAASF,UAAW,iBAC/DjE,EAAyB,CAAC+D,EAAAA,SAAS,CAAEC,KAAMG,QAASF,UAAW,iBAC/DhE,EAAwB,CAAC8D,EAAAA,SAAS,CAAEC,KAAMG,WAC1CjE,EAAsB,CAACkE,QAAM,mBAC7BjE,EAAwB,CAACiE,QAAM,qBAC/BhE,EAA4B,CAACiE,EAAAA,SAAS,oBAAqB,CAAEC,SAAS,EAAMC,UAAU,KACtFlE,EAA4B,CAACgE,EAAAA,SAAS,oBAAqB,CAAEC,SAAS,EAAMC,UAAU,KACtFjE,EAAwB,CAAC+D,EAAAA,SAAS,eAAgB,CAAEC,SAAS,EAAMC,UAAU,KAC7EhE,EAAmB,CAACiE,EAAAA,SACpBhE,EAA2B,CAACiE,QAAM,SAClChE,EAA8B,CAACgE,EAAAA,MAAM,aAAc,aAAc,YAAa,cAC9E/D,EAA4B,CAACgE,EAAAA,OAAO,CAAEC,MAAM,KAC5ChE,EAA8B,CAACiE,EAAAA,UAC/BhE,EAAsB,CAACiE,EAAAA,WACvBjI,EAAayF,KAAM,KAAMjC,EAA2B,CAAE7C,KAAM,SAAUO,KAAM,gBAAiBgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,kBAAmBA,EAAKzG,IAAKyG,GAAOA,EAAIC,eAAiBrB,SAAUF,GAAa,KAAMzC,GACxOtE,EAAayF,KAAM,KAAMhC,EAA2B,CAAE9C,KAAM,SAAUO,KAAM,gBAAiBgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,kBAAmBA,EAAKzG,IAAKyG,GAAOA,EAAIE,eAAiBtB,SAAUF,GAAa,KAAMzC,GACxOtE,EAAayF,KAAM,KAAM/B,EAAuB,CAAE/C,KAAM,SAAUO,KAAM,YAAagH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,cAAeA,EAAKzG,IAAKyG,GAAOA,EAAIG,WAAavB,SAAUF,GAAa,KAAMzC,GACxNtE,EAAayF,KAAM,KAAM9B,EAAkB,CAAEhD,KAAM,SAAUO,KAAM,OAAQgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,SAAUA,EAAKzG,IAAKyG,GAAOA,EAAIvG,MAAQmF,SAAUF,GAAa,KAAMzC,GACpMtE,EAAayF,KAAM,KAAM7B,EAA0B,CAAEjD,KAAM,SAAUO,KAAM,eAAgBgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,iBAAkBA,EAAKzG,IAAKyG,GAAOA,EAAII,cAAgBxB,SAAUF,GAAa,KAAMzC,GACpOtE,EAAayF,KAAM,KAAM5B,EAA6B,CAAElD,KAAM,SAAUO,KAAM,kBAAmBgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,oBAAqBA,EAAKzG,IAAKyG,GAAOA,EAAIK,iBAAmBzB,SAAUF,GAAa,KAAMzC,GAChPtE,EAAayF,KAAM,KAAM3B,EAA2B,CAAEnD,KAAM,SAAUO,KAAM,gBAAiBgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,kBAAmBA,EAAKzG,IAAKyG,GAAOA,EAAIM,eAAiB1B,SAAUF,GAAa,KAAMzC,GACxOtE,EAAayF,KAAM,KAAM1B,EAA6B,CAAEpD,KAAM,SAAUO,KAAM,kBAAmBgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,oBAAqBA,EAAKzG,IAAKyG,GAAOA,EAAIO,iBAAmB3B,SAAUF,GAAa,KAAMzC,GAChPtE,EAAayF,KAAM,KAAMzB,EAAqB,CAAErD,KAAM,SAAUO,KAAM,UAAWgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,YAAaA,EAAKzG,IAAKyG,GAAOA,EAAIQ,SAAW5B,SAAUF,GAAa,KAAMzC,GAChNtE,EAAa,KAAM,KAAM+C,EAAkB,CAAEpC,KAAM,QAASO,KAAM,OAAQgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,SAAUA,EAAKzG,IAAKyG,GAAOA,EAAIzC,KAAM/D,IAAK,CAACwG,EAAKlG,KAAYkG,EAAIzC,KAAOzD,IAAY8E,SAAUF,GAAaxC,EAAoBC,GAC7PxE,EAAa,KAAM,KAAMgD,EAAuB,CAAErC,KAAM,QAASO,KAAM,YAAagH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,cAAeA,EAAKzG,IAAKyG,GAAOA,EAAItC,UAAWlE,IAAK,CAACwG,EAAKlG,KAAYkG,EAAItC,UAAY5D,IAAY8E,SAAUF,GAAatC,EAAyBC,GAC3R1E,EAAa,KAAM,KAAMiD,EAAyB,CAAEtC,KAAM,QAASO,KAAM,cAAegH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,gBAAiBA,EAAKzG,IAAKyG,GAAOA,EAAIrC,YAAanE,IAAK,CAACwG,EAAKlG,KAAYkG,EAAIrC,YAAc7D,IAAY8E,SAAUF,GAAapC,EAA2BC,GACvS5E,EAAa,KAAM,KAAMkD,EAAuB,CAAEvC,KAAM,QAASO,KAAM,YAAagH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,cAAeA,EAAKzG,IAAKyG,GAAOA,EAAIpC,UAAWpE,IAAK,CAACwG,EAAKlG,KAAYkG,EAAIpC,UAAY9D,IAAY8E,SAAUF,GAAalC,EAAyBC,GAC3R9E,EAAa,KAAM,KAAMmD,EAAwB,CAAExC,KAAM,QAASO,KAAM,aAAcgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,eAAgBA,EAAKzG,IAAKyG,GAAOA,EAAInC,WAAYrE,IAAK,CAACwG,EAAKlG,KAAYkG,EAAInC,WAAa/D,IAAY8E,SAAUF,GAAahC,EAA0BC,GACjShF,EAAa,KAAM,KAAMoD,EAAwB,CAAEzC,KAAM,QAASO,KAAM,aAAcgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,eAAgBA,EAAKzG,IAAKyG,GAAOA,EAAIlC,WAAYtE,IAAK,CAACwG,EAAKlG,KAAYkG,EAAIlC,WAAahE,IAAY8E,SAAUF,GAAa9B,EAA0BC,GACjSlF,EAAa,KAAM,KAAMqD,EAAuB,CAAE1C,KAAM,QAASO,KAAM,YAAagH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,cAAeA,EAAKzG,IAAKyG,GAAOA,EAAIjC,UAAWvE,IAAK,CAACwG,EAAKlG,KAAYkG,EAAIjC,UAAYjE,IAAY8E,SAAUF,GAAa5B,EAAyBC,GAC3RpF,EAAa,KAAM,KAAMsD,EAAqB,CAAE3C,KAAM,QAASO,KAAM,UAAWgH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,YAAaA,EAAKzG,IAAKyG,GAAOA,EAAIhC,QAASxE,IAAK,CAACwG,EAAKlG,KAAYkG,EAAIhC,QAAUlE,IAAY8E,SAAUF,GAAa1B,EAAuBC,GAC/QtF,EAAa,KAAM,KAAMuD,EAAuB,CAAE5C,KAAM,QAASO,KAAM,YAAagH,QAAQ,EAAOC,SAAS,EAAO3G,OAAQ,CAAE4G,IAAKC,GAAO,cAAeA,EAAKzG,IAAKyG,GAAOA,EAAI/B,UAAWzE,IAAK,CAACwG,EAAKlG,KAAYkG,EAAI/B,UAAYnE,IAAY8E,SAAUF,GAAaxB,EAAyBC,GAC3RxF,EAAa,KAAM6C,EAAmB,CAAEV,MAAOW,GAAcmB,EAAkB,CAAEtD,KAAM,QAASO,KAAM4B,EAAW5B,KAAM+F,SAAUF,GAAa,KAAM5C,GACpJrB,EAAaD,EAAiBV,MAC1B4E,GAAW/F,OAAOgB,eAAec,EAAYkE,OAAOC,SAAU,CAAE6B,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAM7G,MAAO4E,IACjI9E,EAAkBa,EAAYqB,EAC1C,CACQ,aAAAmE,CAAcW,GACV,MAAO,CAAEA,OACb,CACA,aAAAV,CAAcW,GACV,MAAO,CAAEA,OACb,CACA,SAAAV,CAAUW,GACN,OAAOA,CACX,CACA,IAAArH,GACI,MAAMsH,EAAO3D,KAAK4D,wBACdD,EAAKE,MAAQ,IACb7D,KAAKmB,WAAawC,EAAKE,OACvBF,EAAKG,OAAS,IACd9D,KAAKoB,YAAcuC,EAAKG,QACS,IAAjC9D,KAAKc,WAAWV,MAAMxE,QAAgBoE,KAAKG,KAAKC,MAAMxE,OAAS,IAC/DoE,KAAKc,WAAad,KAAKG,MAE3BH,KAAK+D,gBACL/D,KAAKgE,eACyB,oBAAnBC,iBACPjE,KAAKqB,eAAiB,IAAI4C,eAAgBC,IACtC,MAAMC,EAAQD,EAAQ,GACtB,GAAIC,EAAO,CACP,MAAMN,MAAEA,EAAKC,OAAEA,GAAWK,EAAMC,YAC5BP,EAAQ,GAAKC,EAAS,IACtB9D,KAAKmB,WAAa0C,EAClB7D,KAAKoB,YAAc0C,EACnB9D,KAAK+D,gBACL/D,KAAKgE,eAEb,IAEJhE,KAAKqB,eAAegD,QAAQrE,MAEpC,CACA,YAAAgD,GACIhD,KAAKc,WAAad,KAAKG,KACvBH,KAAK+D,gBACL/D,KAAKgE,cACT,CACA,eAAAf,GACIjD,KAAK+D,gBACL/D,KAAKgE,cACT,CACA,aAAAD,GACI,MAAM5D,EAAOH,KAAKc,WAClB,IAAKX,IAASA,EAAKC,MAAMxE,SAAWuE,EAAKE,MAAMzE,OAG3C,OAFAoE,KAAKe,YAAc,QACnBf,KAAKgB,YAAc,IAGvB,MACMsD,EAAatE,KAAKS,WAAa,GAAK,EACpCoD,EAAQ7D,KAAKmB,WAA0B,EAAbmD,EAC1BR,EAAS9D,KAAKoB,YAAcmD,GAClC,GAAIV,GAAS,GAAKC,GAAU,EACxB,OAEJ,MAAMU,EAAU,IAAIC,IACpBtE,EAAKC,MAAMsE,QAAQ,CAACC,EAAGhJ,KACnB6I,EAAQpI,IAAIuI,EAAEC,GAAI,CACdA,GAAID,EAAEC,GACNC,MAAOF,EAAEE,OAASF,EAAEC,GACpBE,MAAOH,EAAEG,OAAS/H,EAAepB,EAAIoB,EAAenB,QACpDmJ,EAAG,EAAGC,EAAG,EACTnB,MAAO7D,KAAKM,UACZwD,OAAQ,EACRpH,MAAO,EACPuI,MAAO,EACPC,YAAa,GACbC,YAAa,OAIrB,MAAM9E,EAAQF,EAAKE,MAAM+E,IAAIC,IAAC,CAC1BC,OAAQd,EAAQrI,IAAIkJ,EAAEC,QACtBlK,OAAQoJ,EAAQrI,IAAIkJ,EAAEjK,QACtBsB,MAAO2I,EAAE3I,MACToI,MAAOO,EAAEP,OAASN,EAAQrI,IAAIkJ,EAAEC,SAASR,OAAS/H,EAAe,GACjE8G,MAAO,EACP0B,GAAI,EACJC,GAAI,KACJC,OAAOJ,GAAKA,EAAEC,QAAUD,EAAEjK,QAE9BiF,EAAMqE,QAAQjB,IACVA,EAAK6B,OAAOJ,YAAYjJ,KAAKwH,GAC7BA,EAAKrI,OAAO+J,YAAYlJ,KAAKwH,KAGjCe,EAAQE,QAAQlB,IACZ,MAAMkC,EAAclC,EAAK0B,YAAYS,OAAO,CAACC,EAAGP,IAAMO,EAAIP,EAAE3I,MAAO,GAC7DmJ,EAAcrC,EAAK2B,YAAYQ,OAAO,CAACC,EAAGP,IAAMO,EAAIP,EAAE3I,MAAO,GACnE8G,EAAK9G,MAAQoJ,KAAKC,IAAIL,EAAaG,KAGvC7F,KAAKgG,cAAcxB,GACnB,MAAMpE,EAAQ6F,MAAMC,KAAK1B,EAAQ2B,UAC3BC,EAAWN,KAAKC,OAAO3F,EAAMgF,IAAIT,GAAKA,EAAEM,QAExCoB,EAASD,EAAW,GAAKvC,EAAQ7D,KAAKM,WAAa8F,EAAW,EACpEhG,EAAMsE,QAAQlB,IACVA,EAAKuB,EAAIT,EAAad,EAAKyB,MAAQoB,IAGvCrG,KAAKsG,eAAelG,EAAOgG,EAAUvC,EAAOS,GAE5C,MAAMiC,EAAUvG,KAAKwG,WAAWpG,GAChCmG,EAAQ7B,QAAQ+B,IACZ,MAAMC,EAAgBD,EAAOd,OAAO,CAACC,EAAGjB,IAAMiB,EAAIjB,EAAEjI,MAAO,GACrDiK,EAAkB7C,GAAU2C,EAAO7K,OAAS,GAAKoE,KAAKO,YACtDqG,EAAQF,EAAgB,EAAIC,EAAkBD,EAAgB,EACpE,IAAI1B,EA5DQ,GA6DZyB,EAAO/B,QAAQlB,IACXA,EAAKwB,EAAIA,EACTxB,EAAKM,OAASgC,KAAKC,IAAIvC,EAAK9G,MAAQkK,EAAO,GAC3C5B,GAAKxB,EAAKM,OAAS9D,KAAKO,gBAIhC,IAAK,IAAI5E,EAAI,EAAGA,EAAI,GAAIA,IACpBqE,KAAK6G,aAAaN,EAASzC,EArEf,IAwEhBzD,EAAMqE,QAAQjB,IACVA,EAAKI,MAAQiC,KAAKC,IAAI,EAAItC,EAAK/G,MAAQ+G,EAAK6B,OAAO5I,MAAS+G,EAAK6B,OAAOxB,UAG5E1D,EAAMsE,QAAQlB,IACVA,EAAK0B,YAAY4B,KAAK,CAACC,EAAGC,IAAMD,EAAE3L,OAAO4J,EAAIgC,EAAE5L,OAAO4J,GACtD,IAAIO,EAAK,EACT/B,EAAK0B,YAAYR,QAAQjB,IACrBA,EAAK8B,GAAK/B,EAAKwB,EAAIO,EACnBA,GAAM9B,EAAKI,QAEfL,EAAK2B,YAAY2B,KAAK,CAACC,EAAGC,IAAMD,EAAEzB,OAAON,EAAIgC,EAAE1B,OAAON,GACtD,IAAIQ,EAAK,EACThC,EAAK2B,YAAYT,QAAQjB,IACrBA,EAAKI,MAAQiC,KAAKC,IAAI,EAAItC,EAAK/G,MAAQ+G,EAAKrI,OAAOsB,MAAS+G,EAAKrI,OAAO0I,QACxEL,EAAK+B,GAAKhC,EAAKwB,EAAIQ,EACnBA,GAAM/B,EAAKI,UAGnB7D,KAAKe,YAAcX,EACnBJ,KAAKgB,YAAcX,CACvB,CACA,aAAA2F,CAAcxB,GACV,MAAMyC,EAAY,IAAIC,IAAI1C,EAAQ2B,UAClC,IAAIlB,EAAQ,EACZ,KAAOgC,EAAUE,KAAO,GAAG,CACvB,MAAMC,EAAY,GAOlB,GANAH,EAAUvC,QAAQlB,IACVA,EAAK2B,YAAYkC,MAAMhC,IAAM4B,EAAUtE,IAAI0C,EAAEC,WAC7C9B,EAAKyB,MAAQA,EACbmC,EAAUnL,KAAKuH,MAGE,IAArB4D,EAAUxL,OAAc,CAExBqL,EAAUvC,QAAQlB,IACdA,EAAKyB,MAAQA,IAEjB,KACJ,CACAmC,EAAU1C,QAAQC,GAAKsC,EAAUK,OAAO3C,IACxCM,GACJ,CACJ,CACA,UAAAuB,CAAWpG,GACP,MAAMgG,EAAWN,KAAKC,OAAO3F,EAAMgF,IAAIT,GAAKA,EAAEM,OAAQ,GAChDsB,EAAU,GAChB,IAAK,IAAI5K,EAAI,EAAGA,GAAKyK,EAAUzK,IAC3B4K,EAAQtK,KAAKmE,EAAMqF,OAAOd,GAAKA,EAAEM,QAAUtJ,IAE/C,OAAO4K,CACX,CACA,cAAAD,CAAelG,EAAOgG,EAAUvC,EAAOS,GACZ,UAAnBtE,KAAKQ,UACLJ,EAAMsE,QAAQlB,IACsB,IAA5BA,EAAK0B,YAAYtJ,SACjB4H,EAAKyB,MAAQmB,EACb5C,EAAKuB,EAAIT,EAAa8B,IAAavC,EAAQ7D,KAAKM,WAAawF,KAAKC,IAAIK,EAAU,OAIhE,WAAnBpG,KAAKQ,UACVJ,EAAMsE,QAAQlB,IACsB,IAA5BA,EAAK2B,YAAYvJ,QAA4C,IAA5B4H,EAAK0B,YAAYtJ,SAClD4H,EAAKyB,MAAQa,KAAKyB,MAAMnB,EAAW,GACnC5C,EAAKuB,EAAIT,EAAad,EAAKyB,QAAUpB,EAAQ7D,KAAKM,WAAawF,KAAKC,IAAIK,EAAU,OAIlE,YAAnBpG,KAAKQ,WACVJ,EAAMsE,QAAQlB,IACsB,IAA5BA,EAAK0B,YAAYtJ,QAAgBwK,EAAW,IAC5C5C,EAAKyB,MAAQmB,EACb5C,EAAKuB,EAAIT,EAAa8B,IAAavC,EAAQ7D,KAAKM,WAAa8F,KAI7E,CACA,YAAAS,CAAaN,EAASzC,EAAQS,GAE1BgC,EAAQ7B,QAAQ+B,IACZA,EAAO/B,QAAQlB,IACX,GAAIA,EAAK2B,YAAYvJ,OAAS,EAAG,CAC7B,MACM4L,EAAyB,IADnBhE,EAAK2B,YAAYQ,OAAO,CAACC,EAAGP,IAAMO,EAAIP,EAAEC,OAAON,EAAG,GAAKxB,EAAK2B,YAAYvJ,OAC/D4H,EAAKwB,GAC1BxB,EAAKwB,GAAKwC,CACd,IAEJxH,KAAKyH,gBAAgBhB,EAAQ3C,EAAQS,KAGzC,IAAK,IAAI5I,EAAI4K,EAAQ3K,OAAS,EAAGD,GAAK,EAAGA,IACrC4K,EAAQ5K,GAAG+I,QAAQlB,IACf,GAAIA,EAAK0B,YAAYtJ,OAAS,EAAG,CAC7B,MACM4L,EAAyB,IADnBhE,EAAK0B,YAAYS,OAAO,CAACC,EAAGP,IAAMO,EAAIP,EAAEjK,OAAO4J,EAAG,GAAKxB,EAAK0B,YAAYtJ,OAC/D4H,EAAKwB,GAC1BxB,EAAKwB,GAAKwC,CACd,IAEJxH,KAAKyH,gBAAgBlB,EAAQ5K,GAAImI,EAAQS,EAEjD,CACA,eAAAkD,CAAgBhB,EAAQ3C,EAAQS,GAC5BkC,EAAOK,KAAK,CAACC,EAAGC,IAAMD,EAAE/B,EAAIgC,EAAEhC,GAC9B,IAAI0C,EAAKnD,EACTkC,EAAO/B,QAAQlB,IACPA,EAAKwB,EAAI0C,IACTlE,EAAKwB,EAAI0C,GAEbA,EAAKlE,EAAKwB,EAAIxB,EAAKM,OAAS9D,KAAKO,cAGrC,MAAMoH,EAAWlB,EAAOA,EAAO7K,OAAS,GACxC,GAAI+L,EAAU,CACV,MAAMC,EAAWD,EAAS3C,EAAI2C,EAAS7D,QAAUA,EAASS,GAC1D,GAAIqD,EAAW,EAAG,CACdD,EAAS3C,GAAK4C,EACd,IAAK,IAAIjM,EAAI8K,EAAO7K,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACzC,MAAMkM,EAAOpB,EAAO9K,EAAI,GAAGqJ,EAAIyB,EAAO9K,GAAGmI,OAAS9D,KAAKO,YACnDkG,EAAO9K,GAAGqJ,EAAI6C,IACdpB,EAAO9K,GAAGqJ,EAAI6C,EAEtB,CACJ,CACJ,CACJ,CACA,WAAAC,CAAYrE,GACR,MAAMsE,EAAKtE,EAAK6B,OAAOP,EAAItB,EAAK6B,OAAOzB,MACjCmE,EAAKvE,EAAKrI,OAAO2J,EACjBkD,GAAMF,EAAKC,GAAM,EACjBN,EAAKjE,EAAK8B,GAAK9B,EAAKI,MAAQ,EAC5BqE,EAAKzE,EAAK+B,GAAK/B,EAAKI,MAAQ,EAClC,MAAO,IAAIkE,KAAML,MAAOO,KAAMP,KAAMO,KAAMC,KAAMF,KAAME,GAC1D,CACA,cAAAC,CAAeC,GACX,MAAMhN,EAASgN,EAAEhN,OACXiN,EAAKjN,EAAOkN,QAAQ,kBACpBC,EAASnN,EAAOkN,QAAQ,qBAC9B,GAAID,EAAI,CACJ,MAAMG,EAASH,EAAGI,QAAQD,OACpBE,EAAe1I,KAAKc,WAAWV,MAAMuI,KAAKhE,GAAKA,EAAEC,KAAO4D,GAC1DE,GACA1I,KAAK6C,cAAc6F,EAC3B,MACK,GAAIH,EAAQ,CACb,MAAMK,EAAQC,SAASN,EAAOE,QAAQK,UAAW,IAC3CC,EAAe/I,KAAKc,WAAWT,MAAMuI,GACvCG,GACA/I,KAAK8C,cAAciG,EAC3B,CACJ,CACA,kBAAAC,CAAmBZ,GACf,MAAMhN,EAASgN,EAAEhN,OACX6N,EAAS7N,EAAOkN,QAAQ,kBACxBC,EAASnN,EAAOkN,QAAQ,qBACxBY,EAAUlJ,KAAKa,UAErB,GADAb,KAAKY,QACDqI,EAAQ,CACR,MAAMT,EAASS,EAAOR,QAAQD,OACxBhF,EAAOxD,KAAKe,YAAY4H,KAAKhE,GAAKA,EAAEC,KAAO4D,GACjD,IAAKhF,EACD,OAEAxD,KAAKiB,gBAAkBuH,GAAoC,OAA1BxI,KAAKkB,mBACtClB,KAAKiB,cAAgBuH,EACrBxI,KAAKkB,iBAAmB,KACxBlB,KAAKmJ,qBAGLD,IACAA,EAAQE,cAAc,0BAA0BC,YAAc7F,EAAKqB,MACnEqE,EAAQE,cAAc,0BAA0BC,YAAc,UAAU7F,EAAK9G,MAAM4M,mBACnFtJ,KAAKuJ,gBAAgBnB,GACrBc,EAAQM,UAAUC,IAAI,6BAE1B,MAAMf,EAAe1I,KAAKc,WAAWV,MAAMuI,KAAKhE,GAAKA,EAAEC,KAAO4D,GAC1DE,GACA1I,KAAK+C,UAAU,CAAEpB,KAAM,OAAQ+H,KAAMhB,GAC7C,MACK,GAAIH,EAAQ,CACb,MAAMK,EAAQC,SAASN,EAAOE,QAAQK,UAAW,IAC3CrF,EAAOzD,KAAKgB,YAAY4H,GAC9B,IAAKnF,EACD,OAEAzD,KAAKkB,mBAAqB0H,GAAgC,OAAvB5I,KAAKiB,gBACxCjB,KAAKkB,iBAAmB0H,EACxB5I,KAAKiB,cAAgB,KACrBjB,KAAKmJ,qBAGLD,IACAA,EAAQE,cAAc,0BAA0BC,YAAc,GAAG5F,EAAK6B,OAAOT,WAAgBpB,EAAKrI,OAAOyJ,QACzGqE,EAAQE,cAAc,0BAA0BC,YAAc,UAAU5F,EAAK/G,MAAM4M,mBACnFtJ,KAAKuJ,gBAAgBnB,GACrBc,EAAQM,UAAUC,IAAI,6BAE1B,MAAMV,EAAe/I,KAAKc,WAAWT,MAAMuI,GACvCG,GACA/I,KAAK+C,UAAU,CAAEpB,KAAM,OAAQ+H,KAAMX,GAC7C,MAEI/I,KAAK2J,YAEb,CACA,mBAAAC,GACI5J,KAAK2J,YACT,CACA,UAAAA,GAC+B,OAAvB3J,KAAKiB,eAAoD,OAA1BjB,KAAKkB,mBACpClB,KAAKiB,cAAgB,KACrBjB,KAAKkB,iBAAmB,KACxBlB,KAAKmJ,oBACLnJ,KAAK+C,UAAU,OAEnB,MAAMmG,EAAUlJ,KAAKa,UACjBqI,GACAA,EAAQM,UAAUK,OAAO,2BACjC,CACA,eAAAN,CAAgBnB,GACZ,MAAMc,EAAUlJ,KAAKa,UACrB,IAAKqI,EACD,OACJ,MAAMvF,EAAO3D,KAAK4D,wBAClBsF,EAAQY,MAAMC,KAAU3B,EAAE4B,QAAUrG,EAAKoG,KAAO,GAA3B,KACrBb,EAAQY,MAAMG,IAAS7B,EAAE8B,QAAUvG,EAAKsG,IAAM,GAA1B,IACxB,CACA,iBAAAd,GACI,MAAMgB,EAAQnK,KAAKY,QACnB,IAAKuJ,EACD,OACJ,MAAMC,EAAMD,EAAMf,cAAc,OAChC,IAAKgB,EACD,OACJ,MAAMC,EAAkC,OAAvBrK,KAAKiB,eAAoD,OAA1BjB,KAAKkB,iBAC/CoJ,EAAYF,EAAI9B,QAAQ,WAC1BgC,GACAA,EAAUd,UAAUe,OAAO,iBAAkBF,GAG9BD,EAAII,iBAAiB,kBAC7B9F,QAAQ+F,IACf,MAAMjC,EAASiC,EAAEhC,QAAQD,OACnBkC,EAAc1K,KAAK2K,kBAAkBnC,GAC3CiC,EAAEjB,UAAUe,OAAO,4BAA6BG,KAGjCN,EAAII,iBAAiB,qBAC7B9F,QAAQ+F,IACf,MAAM7B,EAAQC,SAAS4B,EAAEhC,QAAQK,UAAW,IACtC4B,EAAc1K,KAAK4K,kBAAkBhC,GAC3C6B,EAAEjB,UAAUe,OAAO,4BAA6BG,IAExD,CACA,iBAAAC,CAAkBnC,GACd,GAA2B,OAAvBxI,KAAKiB,eAAoD,OAA1BjB,KAAKkB,iBACpC,OAAO,EACX,GAAIlB,KAAKiB,gBAAkBuH,EACvB,OAAO,EACX,GAA8B,OAA1BxI,KAAKkB,iBAA2B,CAChC,MAAMuC,EAAOzD,KAAKgB,YAAYhB,KAAKkB,kBACnC,OAAOuC,GAAM6B,OAAOV,KAAO4D,GAAU/E,GAAMrI,OAAOwJ,KAAO4D,CAC7D,CACA,QAAIxI,KAAKiB,eACEjB,KAAKgB,YAAY6J,KAAKxF,GAAMA,EAAEC,OAAOV,KAAO5E,KAAKiB,eAAiBoE,EAAEjK,OAAOwJ,KAAO4D,GACpFnD,EAAEjK,OAAOwJ,KAAO5E,KAAKiB,eAAiBoE,EAAEC,OAAOV,KAAO4D,EAGnE,CACA,iBAAAoC,CAAkBhC,GACd,GAA2B,OAAvB5I,KAAKiB,eAAoD,OAA1BjB,KAAKkB,iBACpC,OAAO,EACX,GAAIlB,KAAKkB,mBAAqB0H,EAC1B,OAAO,EACX,GAAI5I,KAAKiB,cAAe,CACpB,MAAMwC,EAAOzD,KAAKgB,YAAY4H,GAC9B,OAAOnF,GAAM6B,OAAOV,KAAO5E,KAAKiB,eAAiBwC,GAAMrI,OAAOwJ,KAAO5E,KAAKiB,aAC9E,CACA,OAAO,CACX,CACA,YAAA+C,GACI,MAAMmG,EAAQnK,KAAKY,QACnB,IAAKuJ,EAED,YADAW,sBAAsB,IAAM9K,KAAKgE,gBAGrBhE,KAAKe,YAAYnF,OAAS,EAK1CuO,EAAMY,UAAY/K,KAAKgL,WAHnBb,EAAMY,UAAY,EAI1B,CACA,QAAAC,GACI,MAAM5K,EAAQJ,KAAKe,YACbV,EAAQL,KAAKgB,YACnB,IAAIoJ,EAAM,yCAAyCpK,KAAKmB,cAAcnB,KAAKoB,2FAE3EgJ,GAAO,4BACP,IAAK,IAAIzO,EAAI,EAAGA,EAAI0E,EAAMzE,OAAQD,IAAK,CACnC,MAAM8H,EAAOpD,EAAM1E,GAGnByO,GAAO,4CAA4CzO,MACnDyO,GAAO,YAHMpN,EAAWgD,KAAK8H,YAAYrE,gBAC3BzG,EAAWyG,EAAKqB,yBAE8BgB,KAAKC,IAAI,EAAGtC,EAAKI,YAC7EuG,GAAO,MACX,CACAA,GAAO,OAEPA,GAAO,4BACP,IAAK,IAAIzO,EAAI,EAAGA,EAAIyE,EAAMxE,OAAQD,IAAK,CACnC,MAAM6H,EAAOpD,EAAMzE,GACbmJ,EAAQ9H,EAAWwG,EAAKsB,OAI9B,GAFAsF,GAAO,yCADQpN,EAAWwG,EAAKoB,QAE/BwF,GAAO,YAAY5G,EAAKuB,SAASvB,EAAKwB,aAAaxB,EAAKK,kBAAkBiC,KAAKC,IAAIvC,EAAKM,OAAQ,aAAagB,OACzG9E,KAAKS,WAAY,CACjB,MAAMoE,EAAQ7H,EAAWwG,EAAKqB,OACX,IAAfrB,EAAKyB,MACLmF,GAAO,kCAAkC5G,EAAKuB,EAAI,SAASvB,EAAKwB,EAAIxB,EAAKM,OAAS,wBAAwBe,WAG1GuF,GAAO,kCAAkC5G,EAAKuB,EAAIvB,EAAKK,MAAQ,SAASL,EAAKwB,EAAIxB,EAAKM,OAAS,0BAA0Be,UAEjI,CACA,GAAI7E,KAAKU,YAAc8C,EAAKM,OAAS,GAAI,CACrC,MAAMpH,EAAQM,EAAWwG,EAAK9G,MAAM4M,kBACjB,IAAf9F,EAAKyB,MACLmF,GAAO,kCAAkC5G,EAAKuB,EAAI,SAASvB,EAAKwB,EAAIxB,EAAKM,OAAS,EAAI,yBAAyBpH,WAG/G0N,GAAO,kCAAkC5G,EAAKuB,EAAIvB,EAAKK,MAAQ,SAASL,EAAKwB,EAAIxB,EAAKM,OAAS,EAAI,2BAA2BpH,UAEtI,CACA0N,GAAO,MACX,CAGA,OAFAA,GAAO,OACPA,GAAO,SACAA,CACX,CACA,aAAAlH,GACI,OAAO+H,MAAc;;;;oBAIZ7C,GAAMpI,KAAKmI,eAAeC;wBACtBA,GAAMpI,KAAKgJ,mBAAmBZ;yBAC9B,IAAMpI,KAAK4J;;;;;;;KAQ5B,CACA,eAAAzG,GACI,OAAO+H,EAAAA,GAAY,GAtlBd,01EAulBT,CACA,OAAA9H,GACIpD,KAAKqB,gBAAgB8J,YACzB,GAEG9N,CACV,EAplBiB","x_google_ignoreList":[0]}
|
|
@@ -11,8 +11,12 @@ CDN build of the Snice stepper component. Requires the Snice runtime (`snice-run
|
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## Size
|
|
14
|
-
- Minified: 9
|
|
15
|
-
- Gzipped: 2
|
|
14
|
+
- Minified: 10.9 KB
|
|
15
|
+
- Gzipped: 3.2 KB
|
|
16
|
+
|
|
17
|
+
## Bundled Components
|
|
18
|
+
This CDN build includes the following child components:
|
|
19
|
+
- `snice-stepper-panel`
|
|
16
20
|
|
|
17
21
|
## Theme
|
|
18
22
|
For proper styling, link the Snice theme CSS:
|