@carbon/charts-react 1.8.0 → 1.9.0-next.1.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.
Files changed (131) hide show
  1. package/README.md +14 -22
  2. package/dist/charts/AlluvialChart.d.ts +5 -0
  3. package/dist/charts/AreaChart.d.ts +5 -0
  4. package/dist/charts/BaseChart.d.ts +16 -0
  5. package/dist/charts/BoxplotChart.d.ts +5 -0
  6. package/dist/charts/BubbleChart.d.ts +5 -0
  7. package/dist/charts/BulletChart.d.ts +5 -0
  8. package/dist/charts/ChoroplethChart.d.ts +5 -0
  9. package/dist/charts/CirclePackChart.d.ts +5 -0
  10. package/dist/charts/ComboChart.d.ts +5 -0
  11. package/dist/charts/DonutChart.d.ts +5 -0
  12. package/dist/charts/GaugeChart.d.ts +5 -0
  13. package/dist/charts/GroupedBarChart.d.ts +5 -0
  14. package/dist/charts/HeatmapChart.d.ts +5 -0
  15. package/dist/charts/HistogramChart.d.ts +5 -0
  16. package/dist/charts/LineChart.d.ts +5 -0
  17. package/dist/charts/LollipopChart.d.ts +5 -0
  18. package/dist/charts/MeterChart.d.ts +5 -0
  19. package/dist/charts/PieChart.d.ts +5 -0
  20. package/dist/charts/RadarChart.d.ts +5 -0
  21. package/dist/charts/ScatterChart.d.ts +5 -0
  22. package/dist/charts/SimpleBarChart.d.ts +5 -0
  23. package/dist/charts/StackedAreaChart.d.ts +5 -0
  24. package/dist/charts/StackedBarChart.d.ts +5 -0
  25. package/dist/charts/TreeChart.d.ts +5 -0
  26. package/dist/charts/TreemapChart.d.ts +5 -0
  27. package/dist/charts/WordCloudChart.d.ts +5 -0
  28. package/dist/charts/index.d.ts +26 -0
  29. package/dist/diagrams/CardNode.d.ts +12 -0
  30. package/dist/diagrams/CardNodeColumn.d.ts +7 -0
  31. package/dist/diagrams/CardNodeLabel.d.ts +6 -0
  32. package/dist/diagrams/CardNodeSubtitle.d.ts +6 -0
  33. package/dist/diagrams/CardNodeTitle.d.ts +6 -0
  34. package/dist/diagrams/Edge.d.ts +17 -0
  35. package/dist/diagrams/Marker.d.ts +20 -0
  36. package/dist/diagrams/ShapeNode.d.ts +17 -0
  37. package/dist/diagrams/index.d.ts +9 -0
  38. package/{diagrams/configs.d.ts → dist/diagrams/utils.d.ts} +1 -1
  39. package/dist/index.d.ts +2 -0
  40. package/dist/index.js +114 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/index.mjs +23083 -0
  43. package/dist/index.mjs.map +1 -0
  44. package/dist/styles.css +6345 -0
  45. package/dist/styles.css.map +1 -0
  46. package/dist/styles.min.css +1 -0
  47. package/dist/styles.min.css.map +1 -0
  48. package/package.json +100 -58
  49. package/CHANGELOG.md +0 -2120
  50. package/alluvial-chart.d.ts +0 -12
  51. package/alluvial-chart.js +0 -42
  52. package/area-chart-stacked.d.ts +0 -12
  53. package/area-chart-stacked.js +0 -42
  54. package/area-chart.d.ts +0 -12
  55. package/area-chart.js +0 -42
  56. package/bar-chart-grouped.d.ts +0 -12
  57. package/bar-chart-grouped.js +0 -42
  58. package/bar-chart-simple.d.ts +0 -12
  59. package/bar-chart-simple.js +0 -42
  60. package/bar-chart-stacked.d.ts +0 -12
  61. package/bar-chart-stacked.js +0 -42
  62. package/base-chart.d.ts +0 -17
  63. package/base-chart.js +0 -46
  64. package/boxplot-chart.d.ts +0 -12
  65. package/boxplot-chart.js +0 -42
  66. package/bubble-chart.d.ts +0 -12
  67. package/bubble-chart.js +0 -42
  68. package/bullet-chart.d.ts +0 -12
  69. package/bullet-chart.js +0 -42
  70. package/bundle.js +0 -1
  71. package/choropleth-chart.d.ts +0 -12
  72. package/choropleth-chart.js +0 -42
  73. package/circle-pack-chart.d.ts +0 -12
  74. package/circle-pack-chart.js +0 -42
  75. package/combo-chart.d.ts +0 -12
  76. package/combo-chart.js +0 -42
  77. package/diagrams/CardNode/CardNode.d.ts +0 -54
  78. package/diagrams/CardNode/CardNode.js +0 -84
  79. package/diagrams/CardNode/CardNodeColumn.d.ts +0 -19
  80. package/diagrams/CardNode/CardNodeColumn.js +0 -37
  81. package/diagrams/CardNode/CardNodeLabel.d.ts +0 -15
  82. package/diagrams/CardNode/CardNodeLabel.js +0 -32
  83. package/diagrams/CardNode/CardNodeSubtitle.d.ts +0 -15
  84. package/diagrams/CardNode/CardNodeSubtitle.js +0 -32
  85. package/diagrams/CardNode/CardNodeTitle.d.ts +0 -15
  86. package/diagrams/CardNode/CardNodeTitle.js +0 -32
  87. package/diagrams/CardNode/index.d.ts +0 -6
  88. package/diagrams/CardNode/index.js +0 -16
  89. package/diagrams/Edge/Edge.d.ts +0 -65
  90. package/diagrams/Edge/Edge.js +0 -94
  91. package/diagrams/Edge/index.d.ts +0 -2
  92. package/diagrams/Edge/index.js +0 -7
  93. package/diagrams/Marker/Marker.d.ts +0 -66
  94. package/diagrams/Marker/Marker.js +0 -120
  95. package/diagrams/Marker/index.d.ts +0 -1
  96. package/diagrams/Marker/index.js +0 -14
  97. package/diagrams/ShapeNode/ShapeNode.d.ts +0 -68
  98. package/diagrams/ShapeNode/ShapeNode.js +0 -101
  99. package/diagrams/ShapeNode/index.d.ts +0 -2
  100. package/diagrams/ShapeNode/index.js +0 -7
  101. package/diagrams/configs.js +0 -4
  102. package/donut-chart.d.ts +0 -12
  103. package/donut-chart.js +0 -42
  104. package/gauge-chart.d.ts +0 -12
  105. package/gauge-chart.js +0 -42
  106. package/heatmap-chart.d.ts +0 -12
  107. package/heatmap-chart.js +0 -42
  108. package/histogram-chart.d.ts +0 -12
  109. package/histogram-chart.js +0 -42
  110. package/index.d.ts +0 -26
  111. package/index.js +0 -56
  112. package/line-chart.d.ts +0 -12
  113. package/line-chart.js +0 -42
  114. package/lollipop-chart.d.ts +0 -12
  115. package/lollipop-chart.js +0 -42
  116. package/meter-chart.d.ts +0 -12
  117. package/meter-chart.js +0 -42
  118. package/pie-chart.d.ts +0 -12
  119. package/pie-chart.js +0 -42
  120. package/radar-chart.d.ts +0 -12
  121. package/radar-chart.js +0 -42
  122. package/scatter-chart.d.ts +0 -12
  123. package/scatter-chart.js +0 -42
  124. package/tree-chart.d.ts +0 -12
  125. package/tree-chart.js +0 -42
  126. package/treemap-chart.d.ts +0 -12
  127. package/treemap-chart.js +0 -42
  128. package/utils.d.ts +0 -1
  129. package/utils.js +0 -9
  130. package/wordcloud-chart.d.ts +0 -12
  131. package/wordcloud-chart.js +0 -42
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../core/node_modules/d3-array/src/ascending.js","../../core/node_modules/d3-array/src/descending.js","../../core/node_modules/d3-array/src/bisector.js","../../core/node_modules/d3-array/src/number.js","../../core/node_modules/d3-array/src/bisect.js","../../core/node_modules/d3-array/src/count.js","../../core/node_modules/d3-array/src/extent.js","../../core/node_modules/d3-array/src/fsum.js","../../core/node_modules/d3-array/node_modules/internmap/src/index.js","../../core/node_modules/d3-array/src/identity.js","../../core/node_modules/d3-array/src/sort.js","../../core/node_modules/d3-array/src/array.js","../../core/node_modules/d3-array/src/constant.js","../../core/node_modules/d3-array/src/ticks.js","../../core/node_modules/d3-array/src/nice.js","../../core/node_modules/d3-array/src/threshold/sturges.js","../../core/node_modules/d3-array/src/bin.js","../../core/node_modules/d3-array/src/max.js","../../core/node_modules/d3-array/src/min.js","../../core/node_modules/d3-array/src/quickselect.js","../../core/node_modules/d3-array/src/quantile.js","../../core/node_modules/d3-array/src/merge.js","../../core/node_modules/d3-array/src/range.js","../../core/node_modules/d3-axis/src/identity.js","../../core/node_modules/d3-axis/src/axis.js","../../core/node_modules/d3-dispatch/src/dispatch.js","../../core/node_modules/d3-selection/src/namespaces.js","../../core/node_modules/d3-selection/src/namespace.js","../../core/node_modules/d3-selection/src/creator.js","../../core/node_modules/d3-selection/src/selector.js","../../core/node_modules/d3-selection/src/selection/select.js","../../core/node_modules/d3-selection/src/array.js","../../core/node_modules/d3-selection/src/selectorAll.js","../../core/node_modules/d3-selection/src/selection/selectAll.js","../../core/node_modules/d3-selection/src/matcher.js","../../core/node_modules/d3-selection/src/selection/selectChild.js","../../core/node_modules/d3-selection/src/selection/selectChildren.js","../../core/node_modules/d3-selection/src/selection/filter.js","../../core/node_modules/d3-selection/src/selection/sparse.js","../../core/node_modules/d3-selection/src/selection/enter.js","../../core/node_modules/d3-selection/src/constant.js","../../core/node_modules/d3-selection/src/selection/data.js","../../core/node_modules/d3-selection/src/selection/exit.js","../../core/node_modules/d3-selection/src/selection/join.js","../../core/node_modules/d3-selection/src/selection/merge.js","../../core/node_modules/d3-selection/src/selection/order.js","../../core/node_modules/d3-selection/src/selection/sort.js","../../core/node_modules/d3-selection/src/selection/call.js","../../core/node_modules/d3-selection/src/selection/nodes.js","../../core/node_modules/d3-selection/src/selection/node.js","../../core/node_modules/d3-selection/src/selection/size.js","../../core/node_modules/d3-selection/src/selection/empty.js","../../core/node_modules/d3-selection/src/selection/each.js","../../core/node_modules/d3-selection/src/selection/attr.js","../../core/node_modules/d3-selection/src/window.js","../../core/node_modules/d3-selection/src/selection/style.js","../../core/node_modules/d3-selection/src/selection/property.js","../../core/node_modules/d3-selection/src/selection/classed.js","../../core/node_modules/d3-selection/src/selection/text.js","../../core/node_modules/d3-selection/src/selection/html.js","../../core/node_modules/d3-selection/src/selection/raise.js","../../core/node_modules/d3-selection/src/selection/lower.js","../../core/node_modules/d3-selection/src/selection/append.js","../../core/node_modules/d3-selection/src/selection/insert.js","../../core/node_modules/d3-selection/src/selection/remove.js","../../core/node_modules/d3-selection/src/selection/clone.js","../../core/node_modules/d3-selection/src/selection/datum.js","../../core/node_modules/d3-selection/src/selection/on.js","../../core/node_modules/d3-selection/src/selection/dispatch.js","../../core/node_modules/d3-selection/src/selection/iterator.js","../../core/node_modules/d3-selection/src/selection/index.js","../../core/node_modules/d3-selection/src/select.js","../../core/node_modules/d3-selection/src/sourceEvent.js","../../core/node_modules/d3-selection/src/pointer.js","../../core/node_modules/d3-drag/src/noevent.js","../../core/node_modules/d3-drag/src/nodrag.js","../../core/node_modules/d3-color/src/define.js","../../core/node_modules/d3-color/src/color.js","../../core/node_modules/d3-interpolate/src/constant.js","../../core/node_modules/d3-interpolate/src/color.js","../../core/node_modules/d3-interpolate/src/rgb.js","../../core/node_modules/d3-interpolate/src/numberArray.js","../../core/node_modules/d3-interpolate/src/array.js","../../core/node_modules/d3-interpolate/src/date.js","../../core/node_modules/d3-interpolate/src/number.js","../../core/node_modules/d3-interpolate/src/object.js","../../core/node_modules/d3-interpolate/src/string.js","../../core/node_modules/d3-interpolate/src/value.js","../../core/node_modules/d3-interpolate/src/round.js","../../core/node_modules/d3-interpolate/src/transform/decompose.js","../../core/node_modules/d3-interpolate/src/transform/parse.js","../../core/node_modules/d3-interpolate/src/transform/index.js","../../core/node_modules/d3-interpolate/src/quantize.js","../../core/node_modules/d3-timer/src/timer.js","../../core/node_modules/d3-timer/src/timeout.js","../../core/node_modules/d3-transition/src/transition/schedule.js","../../core/node_modules/d3-transition/src/interrupt.js","../../core/node_modules/d3-transition/src/selection/interrupt.js","../../core/node_modules/d3-transition/src/transition/tween.js","../../core/node_modules/d3-transition/src/transition/interpolate.js","../../core/node_modules/d3-transition/src/transition/attr.js","../../core/node_modules/d3-transition/src/transition/attrTween.js","../../core/node_modules/d3-transition/src/transition/delay.js","../../core/node_modules/d3-transition/src/transition/duration.js","../../core/node_modules/d3-transition/src/transition/ease.js","../../core/node_modules/d3-transition/src/transition/easeVarying.js","../../core/node_modules/d3-transition/src/transition/filter.js","../../core/node_modules/d3-transition/src/transition/merge.js","../../core/node_modules/d3-transition/src/transition/on.js","../../core/node_modules/d3-transition/src/transition/remove.js","../../core/node_modules/d3-transition/src/transition/select.js","../../core/node_modules/d3-transition/src/transition/selectAll.js","../../core/node_modules/d3-transition/src/transition/selection.js","../../core/node_modules/d3-transition/src/transition/style.js","../../core/node_modules/d3-transition/src/transition/styleTween.js","../../core/node_modules/d3-transition/src/transition/text.js","../../core/node_modules/d3-transition/src/transition/textTween.js","../../core/node_modules/d3-transition/src/transition/transition.js","../../core/node_modules/d3-transition/src/transition/end.js","../../core/node_modules/d3-transition/src/transition/index.js","../../core/node_modules/d3-ease/src/linear.js","../../core/node_modules/d3-ease/src/cubic.js","../../core/node_modules/d3-transition/src/selection/transition.js","../../core/node_modules/d3-transition/src/selection/index.js","../../core/node_modules/d3-brush/src/constant.js","../../core/node_modules/d3-brush/src/event.js","../../core/node_modules/d3-brush/src/noevent.js","../../core/node_modules/d3-brush/src/brush.js","../../core/node_modules/d3-path/src/path.js","../../core/node_modules/d3-format/src/formatDecimal.js","../../core/node_modules/d3-format/src/exponent.js","../../core/node_modules/d3-format/src/formatGroup.js","../../core/node_modules/d3-format/src/formatNumerals.js","../../core/node_modules/d3-format/src/formatSpecifier.js","../../core/node_modules/d3-format/src/formatTrim.js","../../core/node_modules/d3-format/src/formatPrefixAuto.js","../../core/node_modules/d3-format/src/formatRounded.js","../../core/node_modules/d3-format/src/formatTypes.js","../../core/node_modules/d3-format/src/identity.js","../../core/node_modules/d3-format/src/locale.js","../../core/node_modules/d3-format/src/defaultLocale.js","../../core/node_modules/d3-format/src/precisionFixed.js","../../core/node_modules/d3-format/src/precisionPrefix.js","../../core/node_modules/d3-format/src/precisionRound.js","../../core/node_modules/d3-geo/src/math.js","../../core/node_modules/d3-geo/src/noop.js","../../core/node_modules/d3-geo/src/stream.js","../../core/node_modules/d3-geo/src/cartesian.js","../../core/node_modules/d3-geo/src/compose.js","../../core/node_modules/d3-geo/src/rotation.js","../../core/node_modules/d3-geo/src/circle.js","../../core/node_modules/d3-geo/src/clip/buffer.js","../../core/node_modules/d3-geo/src/pointEqual.js","../../core/node_modules/d3-geo/src/clip/rejoin.js","../../core/node_modules/d3-geo/src/polygonContains.js","../../core/node_modules/d3-geo/src/clip/index.js","../../core/node_modules/d3-geo/src/clip/antimeridian.js","../../core/node_modules/d3-geo/src/clip/circle.js","../../core/node_modules/d3-geo/src/clip/line.js","../../core/node_modules/d3-geo/src/clip/rectangle.js","../../core/node_modules/d3-geo/src/identity.js","../../core/node_modules/d3-geo/src/path/area.js","../../core/node_modules/d3-geo/src/path/bounds.js","../../core/node_modules/d3-geo/src/path/centroid.js","../../core/node_modules/d3-geo/src/path/context.js","../../core/node_modules/d3-geo/src/path/measure.js","../../core/node_modules/d3-geo/src/path/string.js","../../core/node_modules/d3-geo/src/path/index.js","../../core/node_modules/d3-geo/src/transform.js","../../core/node_modules/d3-geo/src/projection/fit.js","../../core/node_modules/d3-geo/src/projection/resample.js","../../core/node_modules/d3-geo/src/projection/index.js","../../core/node_modules/d3-geo/src/projection/conic.js","../../core/node_modules/d3-geo/src/projection/cylindricalEqualArea.js","../../core/node_modules/d3-geo/src/projection/conicEqualArea.js","../../core/node_modules/d3-geo/src/projection/albers.js","../../core/node_modules/d3-geo/src/projection/mercator.js","../../core/node_modules/d3-geo/src/projection/equirectangular.js","../../core/node_modules/d3-geo/src/projection/conicEquidistant.js","../../core/node_modules/d3-geo/src/projection/equalEarth.js","../../core/node_modules/d3-geo/src/projection/naturalEarth1.js","../../core/node_modules/d3-hierarchy/src/cluster.js","../../core/node_modules/d3-hierarchy/src/hierarchy/count.js","../../core/node_modules/d3-hierarchy/src/hierarchy/each.js","../../core/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../core/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../core/node_modules/d3-hierarchy/src/hierarchy/find.js","../../core/node_modules/d3-hierarchy/src/hierarchy/sum.js","../../core/node_modules/d3-hierarchy/src/hierarchy/sort.js","../../core/node_modules/d3-hierarchy/src/hierarchy/path.js","../../core/node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../core/node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../core/node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../core/node_modules/d3-hierarchy/src/hierarchy/links.js","../../core/node_modules/d3-hierarchy/src/hierarchy/iterator.js","../../core/node_modules/d3-hierarchy/src/hierarchy/index.js","../../core/node_modules/d3-hierarchy/src/accessors.js","../../core/node_modules/d3-hierarchy/src/constant.js","../../core/node_modules/d3-hierarchy/src/lcg.js","../../core/node_modules/d3-hierarchy/src/array.js","../../core/node_modules/d3-hierarchy/src/pack/enclose.js","../../core/node_modules/d3-hierarchy/src/pack/siblings.js","../../core/node_modules/d3-hierarchy/src/pack/index.js","../../core/node_modules/d3-hierarchy/src/treemap/round.js","../../core/node_modules/d3-hierarchy/src/treemap/dice.js","../../core/node_modules/d3-hierarchy/src/tree.js","../../core/node_modules/d3-hierarchy/src/treemap/slice.js","../../core/node_modules/d3-hierarchy/src/treemap/squarify.js","../../core/node_modules/d3-hierarchy/src/treemap/index.js","../../core/node_modules/d3-scale/src/init.js","../../core/node_modules/d3-scale/src/ordinal.js","../../core/node_modules/d3-scale/src/band.js","../../core/node_modules/d3-scale/src/constant.js","../../core/node_modules/d3-scale/src/number.js","../../core/node_modules/d3-scale/src/continuous.js","../../core/node_modules/d3-scale/src/tickFormat.js","../../core/node_modules/d3-scale/src/linear.js","../../core/node_modules/d3-scale/src/nice.js","../../core/node_modules/d3-scale/src/log.js","../../core/node_modules/d3-scale/src/quantize.js","../../core/node_modules/d3-time/src/interval.js","../../core/node_modules/d3-time/src/millisecond.js","../../core/node_modules/d3-time/src/duration.js","../../core/node_modules/d3-time/src/second.js","../../core/node_modules/d3-time/src/minute.js","../../core/node_modules/d3-time/src/hour.js","../../core/node_modules/d3-time/src/day.js","../../core/node_modules/d3-time/src/week.js","../../core/node_modules/d3-time/src/month.js","../../core/node_modules/d3-time/src/year.js","../../core/node_modules/d3-time/src/ticks.js","../../core/node_modules/d3-time-format/src/locale.js","../../core/node_modules/d3-time-format/src/defaultLocale.js","../../core/node_modules/d3-scale/src/time.js","../../core/node_modules/d3/node_modules/d3-shape/src/constant.js","../../core/node_modules/d3/node_modules/d3-shape/src/math.js","../../core/node_modules/d3/node_modules/d3-shape/src/path.js","../../core/node_modules/d3/node_modules/d3-shape/src/arc.js","../../core/node_modules/d3/node_modules/d3-shape/src/array.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/linear.js","../../core/node_modules/d3/node_modules/d3-shape/src/point.js","../../core/node_modules/d3/node_modules/d3-shape/src/line.js","../../core/node_modules/d3/node_modules/d3-shape/src/area.js","../../core/node_modules/d3/node_modules/d3-shape/src/descending.js","../../core/node_modules/d3/node_modules/d3-shape/src/identity.js","../../core/node_modules/d3/node_modules/d3-shape/src/pie.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/radial.js","../../core/node_modules/d3/node_modules/d3-shape/src/lineRadial.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/bump.js","../../core/node_modules/d3/node_modules/d3-shape/src/link.js","../../core/node_modules/d3/node_modules/d3-shape/src/noop.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/basis.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/basisClosed.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/basisOpen.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/bundle.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/cardinal.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/cardinalClosed.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/cardinalOpen.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/catmullRom.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/catmullRomClosed.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/catmullRomOpen.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/linearClosed.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/monotone.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/natural.js","../../core/node_modules/d3/node_modules/d3-shape/src/curve/step.js","../../core/node_modules/d3/node_modules/d3-shape/src/offset/none.js","../../core/node_modules/d3/node_modules/d3-shape/src/order/none.js","../../core/node_modules/d3/node_modules/d3-shape/src/stack.js","../../core/node_modules/d3/node_modules/d3-shape/src/offset/diverging.js","../../core/node_modules/d3-zoom/src/transform.js","../../core/dist/enums-a96ef472.mjs","../../core/dist/index-becfb567.mjs","../../core/dist/color-scale-utils-5eb3eeaa.mjs","../../core/dist/a11y-7bad4f48.mjs","../../core/dist/_baseEach-603421de.mjs","../../core/dist/model/index.mjs","../../core/dist/angle-utils-8b6ce998.mjs","../../core/node_modules/d3-sankey/node_modules/d3-array/src/max.js","../../core/node_modules/d3-sankey/node_modules/d3-array/src/min.js","../../core/node_modules/d3-sankey/node_modules/d3-array/src/sum.js","../../core/node_modules/d3-sankey/src/align.js","../../core/node_modules/d3-sankey/src/constant.js","../../core/node_modules/d3-sankey/src/sankey.js","../../core/node_modules/d3-shape/node_modules/d3-path/src/path.js","../../core/node_modules/d3-shape/src/constant.js","../../core/node_modules/d3-shape/src/point.js","../../core/node_modules/d3-shape/src/array.js","../../core/node_modules/d3-shape/src/link/index.js","../../core/node_modules/d3-sankey/src/sankeyLinkHorizontal.js","../../core/node_modules/d3-cloud/node_modules/d3-dispatch/src/dispatch.js","../../core/node_modules/d3-cloud/index.js","../../core/dist/choropleth-f473ea0d.mjs","../../core/dist/index-a266373c.mjs","../../core/dist/index.mjs","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/charts/BaseChart.tsx","../src/charts/AlluvialChart.tsx","../src/charts/AreaChart.tsx","../src/charts/BoxplotChart.tsx","../src/charts/BubbleChart.tsx","../src/charts/BulletChart.tsx","../src/charts/ChoroplethChart.tsx","../src/charts/CirclePackChart.tsx","../src/charts/ComboChart.tsx","../src/charts/DonutChart.tsx","../src/charts/GaugeChart.tsx","../src/charts/GroupedBarChart.tsx","../src/charts/HeatmapChart.tsx","../src/charts/HistogramChart.tsx","../src/charts/LineChart.tsx","../src/charts/LollipopChart.tsx","../src/charts/MeterChart.tsx","../src/charts/PieChart.tsx","../src/charts/RadarChart.tsx","../src/charts/ScatterChart.tsx","../src/charts/SimpleBarChart.tsx","../src/charts/StackedAreaChart.tsx","../src/charts/StackedBarChart.tsx","../src/charts/TreeChart.tsx","../src/charts/TreemapChart.tsx","../src/charts/WordCloudChart.tsx","../node_modules/classnames/index.js","../src/diagrams/utils.ts","../src/diagrams/CardNode.tsx","../src/diagrams/CardNodeColumn.tsx","../src/diagrams/CardNodeLabel.tsx","../src/diagrams/CardNodeSubtitle.tsx","../src/diagrams/CardNodeTitle.tsx","../src/diagrams/Edge.tsx","../src/diagrams/Marker.tsx","../src/diagrams/ShapeNode.tsx"],"sourcesContent":["export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function count(values, valueof) {\n let count = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n ++count;\n }\n }\n }\n return count;\n}\n","export default function extent(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n","// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--n];\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n return hi;\n }\n}\n\nexport function fsum(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n\nexport function fcumsum(values, valueof) {\n const adder = new Adder();\n let index = -1;\n return Float64Array.from(values, valueof === undefined\n ? v => adder.add(+v || 0)\n : v => adder.add(+valueof(v, ++index, values) || 0)\n );\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","export default function identity(x) {\n return x;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function constant(x) {\n return () => x;\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","import {tickIncrement} from \"./ticks.js\";\n\nexport default function nice(start, stop, count) {\n let prestep;\n while (true) {\n const step = tickIncrement(start, stop, count);\n if (step === prestep || step === 0 || !isFinite(step)) {\n return [start, stop];\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n }\n prestep = step;\n }\n}\n","import count from \"../count.js\";\n\nexport default function thresholdSturges(values) {\n return Math.max(1, Math.ceil(Math.log(count(values)) / Math.LN2) + 1);\n}\n","import {slice} from \"./array.js\";\nimport bisect from \"./bisect.js\";\nimport constant from \"./constant.js\";\nimport extent from \"./extent.js\";\nimport identity from \"./identity.js\";\nimport nice from \"./nice.js\";\nimport ticks, {tickIncrement} from \"./ticks.js\";\nimport sturges from \"./threshold/sturges.js\";\n\nexport default function bin() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n\n var i,\n n = data.length,\n x,\n step,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds, and nice the\n // default domain accordingly.\n if (!Array.isArray(tz)) {\n const max = x1, tn = +tz;\n if (domain === extent) [x0, x1] = nice(x0, x1, tn);\n tz = ticks(x0, x1, tn);\n\n // If the domain is aligned with the first tick (which it will by\n // default), then we can use quantization rather than bisection to bin\n // values, which is substantially faster.\n if (tz[0] <= x0) step = tickIncrement(x0, x1, tn);\n\n // If the last threshold is coincident with the domain’s upper bound, the\n // last bin will be zero-width. If the default domain is used, and this\n // last threshold is coincident with the maximum input value, we can\n // extend the niced upper bound by one tick to ensure uniform bin widths;\n // otherwise, we simply remove the last threshold. Note that we don’t\n // coerce values or the domain to numbers, and thus must be careful to\n // compare order (>=) rather than strict equality (===)!\n if (tz[tz.length - 1] >= x1) {\n if (max >= x1 && domain === extent) {\n const step = tickIncrement(x0, x1, tn);\n if (isFinite(step)) {\n if (step > 0) {\n x1 = (Math.floor(x1 / step) + 1) * step;\n } else if (step < 0) {\n x1 = (Math.ceil(x1 * -step) + 1) / -step;\n }\n }\n } else {\n tz.pop();\n }\n }\n }\n\n // Remove any thresholds outside the domain.\n // Be careful not to mutate an array owned by the user!\n var m = tz.length, a = 0, b = m;\n while (tz[a] <= x0) ++a;\n while (tz[b - 1] > x1) --b;\n if (a || b < m) tz = tz.slice(a, b), m = b - a;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n if (isFinite(step)) {\n if (step > 0) {\n for (i = 0; i < n; ++i) {\n if ((x = values[i]) != null && x0 <= x && x <= x1) {\n bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]);\n }\n }\n } else if (step < 0) {\n for (i = 0; i < n; ++i) {\n if ((x = values[i]) != null && x0 <= x && x <= x1) {\n const j = Math.floor((x0 - x) * step);\n bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding\n }\n }\n }\n } else {\n for (i = 0; i < n; ++i) {\n if ((x = values[i]) != null && x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : constant(Array.isArray(_) ? slice.call(_) : _), histogram) : threshold;\n };\n\n return histogram;\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n return i >= 0 ? i : -1;\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export const linear = t => +t;\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","export default x => () => x;\n","export default function BrushEvent(type, {\n sourceEvent,\n target,\n selection,\n mode,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n selection: {value: selection, enumerable: true, configurable: true},\n mode: {value: mode, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var hypot = Math.hypot;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;\n return [lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n lambda += deltaLambda;\n if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;\n return [lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","import {Adder} from \"d3-array\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nfunction longitude(point) {\n return abs(point[0]) <= pi ? point[0] : sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n var sum = new Adder();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","export default x => x;\n","import {Adder} from \"d3-array\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = new Adder(),\n areaRingSum = new Adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum = new Adder();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum = new Adder();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import {Adder} from \"d3-array\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = new Adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum = new Adder();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","// Simple caching for constant-radius points.\nlet cacheDigits, cacheAppend, cacheRadius, cacheCircle;\n\nexport default class PathString {\n constructor(digits) {\n this._append = digits == null ? append : appendRound(digits);\n this._radius = 4.5;\n this._ = \"\";\n }\n pointRadius(_) {\n this._radius = +_;\n return this;\n }\n polygonStart() {\n this._line = 0;\n }\n polygonEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line === 0) this._ += \"Z\";\n this._point = NaN;\n }\n point(x, y) {\n switch (this._point) {\n case 0: {\n this._append`M${x},${y}`;\n this._point = 1;\n break;\n }\n case 1: {\n this._append`L${x},${y}`;\n break;\n }\n default: {\n this._append`M${x},${y}`;\n if (this._radius !== cacheRadius || this._append !== cacheAppend) {\n const r = this._radius;\n const s = this._;\n this._ = \"\"; // stash the old string so we can cache the circle path fragment\n this._append`m0,${r}a${r},${r} 0 1,1 0,${-2 * r}a${r},${r} 0 1,1 0,${2 * r}z`;\n cacheRadius = r;\n cacheAppend = this._append;\n cacheCircle = this._;\n this._ = s;\n }\n this._ += cacheCircle;\n break;\n }\n }\n }\n result() {\n const result = this._;\n this._ = \"\";\n return result.length ? result : null;\n }\n}\n\nfunction append(strings) {\n let i = 1;\n this._ += strings[0];\n for (const j = strings.length; i < j; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n const d = Math.floor(digits);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${digits}`);\n if (d > 15) return append;\n if (d !== cacheDigits) {\n const k = 10 ** d;\n cacheDigits = d;\n cacheAppend = function append(strings) {\n let i = 1;\n this._ += strings[0];\n for (const j = strings.length; i < j; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n }\n return cacheAppend;\n}\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n let digits = 3,\n pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function(object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function(object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function(object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function(_) {\n if (!arguments.length) return projection;\n projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream;\n return path;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString(digits)) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n path.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) digits = null;\n else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n if (context === null) contextStream = new PathString(digits);\n return path;\n };\n\n return path.projection(projection).digits(digits).context(context);\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {degrees, pi, radians} from \"../math.js\";\nimport {projectionMutator} from \"./index.js\";\n\nexport function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function(_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n}\n","import {asin, cos, sin} from \"../math.js\";\n\nexport function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function(x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n}\n","import {abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {cylindricalEqualAreaRaw} from \"./cylindricalEqualArea.js\";\n\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;\n\n // Are the parallels symmetrical around the Equator?\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n\n var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function(x, y) {\n var r0y = r0 - y,\n l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0)\n l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n","import conicEqualArea from \"./conicEqualArea.js\";\n\nexport default function() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","import projection from \"./index.js\";\n\nexport function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\nexport default function() {\n return projection(equirectangularRaw)\n .scale(152.63);\n}\n","import {abs, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {equirectangularRaw} from \"./equirectangular.js\";\n\nexport function conicEquidistantRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),\n g = cy0 / n + y0;\n\n if (abs(n) < epsilon) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y, nx = n * x;\n return [gy * sin(nx), g - gy * cos(nx)];\n }\n\n project.invert = function(x, y) {\n var gy = g - y,\n l = atan2(x, abs(gy)) * sign(gy);\n if (gy * n < 0)\n l -= pi * sign(x) * sign(gy);\n return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEquidistantRaw)\n .scale(131.154)\n .center([0, 13.9389]);\n}\n","import projection from \"./index.js\";\nimport {abs, asin, cos, epsilon2, sin, sqrt} from \"../math.js\";\n\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\n\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n};\n\nexport default function() {\n return projection(equalEarthRaw)\n .scale(177.158);\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n phi\n ];\n};\n\nexport default function() {\n return projection(naturalEarth1Raw)\n .scale(175.295);\n}\n","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport default function() {\n let s = 1;\n return () => (s = (a * s + c) % m) / m;\n}\n","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n\nexport function shuffle(array, random) {\n let m = array.length,\n t,\n i;\n\n while (m) {\n i = random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","import {shuffle} from \"../array.js\";\nimport lcg from \"../lcg.js\";\n\nexport default function(circles) {\n return packEncloseRandom(circles, lcg());\n}\n\nexport function packEncloseRandom(circles, random) {\n var i = 0, n = (circles = shuffle(Array.from(circles), random)).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(Math.abs(A) > 1e-6 ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}\n","import array from \"../array.js\";\nimport lcg from \"../lcg.js\";\nimport {packEncloseRandom} from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packSiblingsRandom(circles, random) {\n if (!(n = (circles = array(circles)).length)) return 0;\n\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = packEncloseRandom(a, random);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packSiblingsRandom(circles, lcg());\n return circles;\n}\n","import {optional} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\nimport lcg from \"../lcg.js\";\nimport {packSiblingsRandom} from \"./siblings.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n const random = lcg();\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildrenRandom(padding, 0.5, random))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildrenRandom(constantZero, 1, random))\n .eachAfter(packChildrenRandom(padding, root.r / Math.min(dx, dy), random))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildrenRandom(padding, k, random) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packSiblingsRandom(children, random);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport {bumpX, bumpY, bumpRadial} from \"./curve/bump.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nexport function link(curve) {\n let source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null,\n output = null,\n path = withPath(link);\n\n function link() {\n let buffer;\n const argv = slice.call(arguments);\n const s = source.apply(this, argv);\n const t = target.apply(this, argv);\n if (context == null) output = curve(buffer = path());\n output.lineStart();\n argv[0] = s, output.point(+x.apply(this, argv), +y.apply(this, argv));\n argv[0] = t, output.point(+x.apply(this, argv), +y.apply(this, argv));\n output.lineEnd();\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link) : context;\n };\n\n return link;\n}\n\nexport function linkHorizontal() {\n return link(bumpX);\n}\n\nexport function linkVertical() {\n return link(bumpY);\n}\n\nexport function linkRadial() {\n const l = link(bumpRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","var r = /* @__PURE__ */ ((E) => (E.RENDER_FINISHED = \"render-finished\", E.RESIZE = \"chart-resize\", E.MOUSEOVER = \"chart-mouseover\", E.MOUSEOUT = \"chart-mouseout\", E))(r || {}), e = /* @__PURE__ */ ((E) => (E.SHOW = \"show-modal\", E.HIDE = \"hide-modal\", E))(e || {}), O = /* @__PURE__ */ ((E) => (E.UPDATE = \"model-update\", E))(O || {}), a = /* @__PURE__ */ ((E) => (E.SHOW_OVERFLOW_MENU = \"show-toolbar-overflow-menu\", E.HIDE_OVERFLOW_MENU = \"hide-toolbar-overflow-menu\", E.BUTTON_CLICK = \"toolbar-button-click\", E))(a || {}), u = /* @__PURE__ */ ((E) => (E.UPDATE = \"zoom-bar-update\", E.SELECTION_START = \"zoom-bar-selection-start\", E.SELECTION_IN_PROGRESS = \"zoom-bar-selection-in-progress\", E.SELECTION_END = \"zoom-bar-selection-end\", E))(u || {}), o = /* @__PURE__ */ ((E) => (E.CHANGE = \"zoom-domain-change\", E))(o || {}), _ = /* @__PURE__ */ ((E) => (E.CANVAS_ZOOM_IN = \"canvas-zoom-in\", E.CANVAS_ZOOM_OUT = \"canvas-zoom-out\", E))(_ || {}), t = /* @__PURE__ */ ((E) => (E.LABEL_MOUSEOVER = \"axis-label-mouseover\", E.LABEL_MOUSEMOVE = \"axis-label-mousemove\", E.LABEL_CLICK = \"axis-label-click\", E.LABEL_MOUSEOUT = \"axis-label-mouseout\", E.LABEL_FOCUS = \"axis-label-focus\", E.LABEL_BLUR = \"axis-label-blur\", E.RENDER_COMPLETE = \"axis-render-complete\", E))(t || {}), R = /* @__PURE__ */ ((E) => (E.POINT_MOUSEOVER = \"scatter-mouseover\", E.POINT_MOUSEMOVE = \"scatter-mousemove\", E.POINT_CLICK = \"scatter-click\", E.POINT_MOUSEOUT = \"scatter-mouseout\", E))(R || {}), s = /* @__PURE__ */ ((E) => (E.WORD_MOUSEOVER = \"wordcloud-word-mouseover\", E.WORD_MOUSEMOVE = \"wordcloud-word-mousemove\", E.WORD_CLICK = \"wordcloud-word-click\", E.WORD_MOUSEOUT = \"wordcloud-word-mouseout\", E))(s || {}), M = /* @__PURE__ */ ((E) => (E.SLICE_MOUSEOVER = \"pie-slice-mouseover\", E.SLICE_MOUSEMOVE = \"pie-slice-mousemove\", E.SLICE_CLICK = \"pie-slice-click\", E.SLICE_MOUSEOUT = \"pie-slice-mouseout\", E))(M || {}), v = /* @__PURE__ */ ((E) => (E.ARC_MOUSEOVER = \"gauge-arc-mouseover\", E.ARC_MOUSEMOVE = \"gauge-arc-mousemove\", E.ARC_CLICK = \"gauge-arc-click\", E.ARC_MOUSEOUT = \"gauge-arc-mouseout\", E))(v || {}), U = /* @__PURE__ */ ((E) => (E.BAR_MOUSEOVER = \"bar-mouseover\", E.BAR_MOUSEMOVE = \"bar-mousemove\", E.BAR_CLICK = \"bar-click\", E.BAR_MOUSEOUT = \"bar-mouseout\", E))(U || {}), S = /* @__PURE__ */ ((E) => (E.BOX_MOUSEOVER = \"box-mouseover\", E.BOX_MOUSEMOVE = \"box-mousemove\", E.BOX_CLICK = \"box-click\", E.BOX_MOUSEOUT = \"box-mouseout\", E.OUTLIER_MOUSEOVER = \"outlier-mouseover\", E.OUTLIER_MOUSEMOVE = \"outlier-mousemove\", E.OUTLIER_CLICK = \"outlier-click\", E.OUTLIER_MOUSEOUT = \"outlier-mouseout\", E))(S || {}), I = /* @__PURE__ */ ((E) => (E.SCATTER_MOUSEOVER = \"scatter-mouseover\", E.SCATTER_MOUSEMOVE = \"scatter-mousemove\", E.SCATTER_CLICK = \"scatter-click\", E.SCATTER_MOUSEOUT = \"scatter-mouseout\", E))(I || {}), m = /* @__PURE__ */ ((E) => (E.POINT_MOUSEOVER = \"scatter-mouseover\", E.POINT_MOUSEMOVE = \"scatter-mousemove\", E.POINT_CLICK = \"scatter-click\", E.POINT_MOUSEOUT = \"scatter-mouseout\", E))(m || {}), l = /* @__PURE__ */ ((E) => (E.X_AXIS_MOUSEOVER = \"radar-x-axis-mouseover\", E.X_AXIS_MOUSEMOVE = \"radar-x-axis-mousemove\", E.X_AXIS_CLICK = \"radar-x-axis-click\", E.X_AXIS_MOUSEOUT = \"radar-x-axis-mouseout\", E))(l || {}), c = /* @__PURE__ */ ((E) => (E.NODE_MOUSEOVER = \"tree-node-mouseover\", E.NODE_CLICK = \"tree-node-click\", E.NODE_MOUSEOUT = \"tree-node-mouseout\", E))(c || {}), L = /* @__PURE__ */ ((E) => (E.LEAF_MOUSEOVER = \"leaf-mouseover\", E.LEAF_MOUSEMOVE = \"leaf-mousemove\", E.LEAF_CLICK = \"leaf-click\", E.LEAF_MOUSEOUT = \"leaf-mouseout\", E))(L || {}), N = /* @__PURE__ */ ((E) => (E.SHOW = \"show-tooltip\", E.MOVE = \"move-tooltip\", E.HIDE = \"hide-tooltip\", E))(N || {}), n = /* @__PURE__ */ ((E) => (E.SHOW = \"show-threshold\", E.HIDE = \"hide-threshold\", E))(n || {}), A = /* @__PURE__ */ ((E) => (E.ITEM_HOVER = \"legend-item-onhover\", E.ITEM_CLICK = \"legend-item-onclick\", E.ITEM_MOUSEOUT = \"legend-item-onmouseout\", E.ITEMS_UPDATE = \"legend-items-update\", E))(A || {}), C = /* @__PURE__ */ ((E) => (E.CIRCLE_MOUSEOVER = \"circle-leaf-mouseover\", E.CIRCLE_CLICK = \"circle-leaf-click\", E.CIRCLE_MOUSEOUT = \"circle-leaf-mouseout\", E.CIRCLE_MOUSEMOVE = \"circle-leaf-mousemove\", E))(C || {}), T = /* @__PURE__ */ ((E) => (E.NODE_MOUSEOVER = \"alluvial-node-mouseover\", E.NODE_CLICK = \"alluvial-node-click\", E.NODE_MOUSEOUT = \"alluvial-node-mouseout\", E.NODE_MOUSEMOVE = \"alluvial-node-mousemove\", E.LINE_MOUSEOVER = \"alluvial-line-mouseover\", E.LINE_CLICK = \"alluvial-line-click\", E.LINE_MOUSEOUT = \"alluvial-line-mouseout\", E.LINE_MOUSEMOVE = \"alluvial-line-mousemove\", E))(T || {}), V = /* @__PURE__ */ ((E) => (E.METER_MOUSEOVER = \"meter-mouseover\", E.METER_CLICK = \"meter-click\", E.METER_MOUSEOUT = \"meter-mouseout\", E.METER_MOUSEMOVE = \"meter-mousemove\", E))(V || {}), i = /* @__PURE__ */ ((E) => (E.HEATMAP_MOUSEOVER = \"heatmap-mouseover\", E.HEATMAP_CLICK = \"heatmap-click\", E.HEATMAP_MOUSEOUT = \"heatmap-mouseout\", E.HEATMAP_MOUSEMOVE = \"hetmap-mousemove\", E))(i || {}), d = /* @__PURE__ */ ((E) => (E.CHOROPLETH_MOUSEOVER = \"choropleth-mouseover\", E.CHOROPLETH_CLICK = \"choropleth-click\", E.CHOROPLETH_MOUSEOUT = \"choropleth-mouseout\", E.CHOROPLETH_MOUSEMOVE = \"choropleth-mousemove\", E))(d || {});\nconst H = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Alluvial: T,\n Area: R,\n Axis: t,\n Bar: U,\n Boxplot: S,\n CanvasZoom: _,\n Chart: r,\n Choropleth: d,\n CirclePack: C,\n Gauge: v,\n Heatmap: i,\n Legend: A,\n Line: m,\n Meter: V,\n Modal: e,\n Model: O,\n Pie: M,\n Radar: l,\n Scatter: I,\n Threshold: n,\n Toolbar: a,\n Tooltip: N,\n Tree: c,\n Treemap: L,\n WordCloud: s,\n ZoomBar: u,\n ZoomDomain: o\n}, Symbol.toStringTag, { value: \"Module\" })), oE = H;\nvar D = /* @__PURE__ */ ((E) => (E.HTML = \"html\", E.SVG = \"svg\", E))(D || {}), g = /* @__PURE__ */ ((E) => (E.WHITE = \"white\", E.G100 = \"g100\", E.G90 = \"g90\", E.G10 = \"g10\", E))(g || {}), b = /* @__PURE__ */ ((E) => (E.BACKGROUND = \"background\", E.FILL = \"fill\", E.STROKE = \"stroke\", E.TOOLTIP = \"tooltip\", E))(b || {}), f = /* @__PURE__ */ ((E) => (E.LEFT = \"left\", E.RIGHT = \"right\", E.TOP = \"top\", E.BOTTOM = \"bottom\", E))(f || {}), K = /* @__PURE__ */ ((E) => (E.GRAPH_VIEW = \"graph_view\", E.SLIDER_VIEW = \"slider_view\", E))(K || {}), h = /* @__PURE__ */ ((E) => (E.END_LINE = \"end_line\", E.MID_LINE = \"mid_line\", E.FRONT_LINE = \"front_line\", E.NONE = \"none\", E))(h || {}), F = /* @__PURE__ */ ((E) => (E.VERTICAL = \"vertical\", E.HORIZONTAL = \"horizontal\", E))(F || {}), w = /* @__PURE__ */ ((E) => (E.TIME = \"time\", E.LINEAR = \"linear\", E.LOG = \"log\", E.LABELS = \"labels\", E.LABELS_RATIO = \"labels-ratio\", E))(w || {}), P = /* @__PURE__ */ ((E) => (E.RIGHT = \"right\", E.LEFT = \"left\", E.TOP = \"top\", E.BOTTOM = \"bottom\", E))(P || {}), k = /* @__PURE__ */ ((E) => (E.LEFT = \"left\", E.CENTER = \"center\", E.RIGHT = \"right\", E))(k || {}), G = /* @__PURE__ */ ((E) => (E.HORIZONTAL = \"horizontal\", E.VERTICAL = \"vertical\", E))(G || {}), X = /* @__PURE__ */ ((E) => (E.TREE = \"tree\", E.DENDROGRAM = \"dendrogram\", E))(X || {}), z = /* @__PURE__ */ ((E) => (E.ROW = \"row\", E.COLUMN = \"column\", E.ROW_REVERSE = \"row-reverse\", E.COLUMN_REVERSE = \"column-reverse\", E))(z || {}), W = /* @__PURE__ */ ((E) => (E.FIXED = \"fixed\", E.PREFERRED = \"preferred\", E.STRETCH = \"stretch\", E))(W || {}), B = /* @__PURE__ */ ((E) => (E.CENTER = \"center\", E))(B || {}), q = /* @__PURE__ */ ((E) => (E.LEFT = \"left\", E.RIGHT = \"right\", E))(q || {}), Z = /* @__PURE__ */ ((E) => (E.GRID = \"grid\", E.VERT_OR_HORIZ = \"vertOrHoriz\", E.PIE = \"pie\", E.DONUT = \"donut\", E))(Z || {}), x = /* @__PURE__ */ ((E) => (E.START = \"start\", E.MIDDLE = \"middle\", E.END = \"end\", E))(x || {}), J = /* @__PURE__ */ ((E) => (E.BASELINE = \"baseline\", E.MIDDLE = \"middle\", E.HANGING = \"hanging\", E))(J || {}), Q = /* @__PURE__ */ ((E) => (E.SEMI = \"semi\", E.FULL = \"full\", E))(Q || {}), Y = /* @__PURE__ */ ((E) => (E.UP = \"up\", E.DOWN = \"down\", E))(Y || {}), $ = /* @__PURE__ */ ((E) => (E.SUCCESS = \"success\", E.WARNING = \"warning\", E.DANGER = \"danger\", E))($ || {}), j = /* @__PURE__ */ ((E) => (E.ALWAYS = \"always\", E.AUTO = \"auto\", E.NEVER = \"never\", E))(j || {}), p = /* @__PURE__ */ ((E) => (E.SCATTER = \"scatter\", E.LINE = \"line\", E.SIMPLE_BAR = \"simple-bar\", E.STACKED_BAR = \"stacked-bar\", E.GROUPED_BAR = \"grouped-bar\", E.AREA = \"area\", E.STACKED_AREA = \"stacked-area\", E))(p || {}), y = /* @__PURE__ */ ((E) => (E.EXPORT_CSV = \"Export as CSV\", E.EXPORT_PNG = \"Export as PNG\", E.EXPORT_JPG = \"Export as JPG\", E.ZOOM_IN = \"Zoom in\", E.ZOOM_OUT = \"Zoom out\", E.RESET_ZOOM = \"Reset zoom\", E.MAKE_FULLSCREEN = \"Make fullscreen\", E.SHOW_AS_DATATABLE = \"Show as data-table\", E.CUSTOM = \"Custom\", E))(y || {}), EE = /* @__PURE__ */ ((E) => (E.LEFT = \"left\", E.RIGHT = \"right\", E))(EE || {}), rE = /* @__PURE__ */ ((E) => (E.CHECKBOX = \"checkbox\", E.RADIUS = \"radius\", E.AREA = \"area\", E.SIZE = \"size\", E.LINE = \"line\", E.QUARTILE = \"quartile\", E.ZOOM = \"zoom\", E))(rE || {}), eE = /* @__PURE__ */ ((E) => (E.LINEAR = \"linear\", E.QUANTIZE = \"quantize\", E))(eE || {}), OE = /* @__PURE__ */ ((E) => (E.ON = \"on\", E.AUTO = \"auto\", E.OFF = \"off\", E))(OE || {}), aE = /* @__PURE__ */ ((E) => (E.DEFAULT = \"default\", E.HOVERABLE = \"hoverable\", E))(aE || {}), uE = /* @__PURE__ */ ((E) => (E.geoEqualEarth = \"geoEqualEarth\", E.geoAlbers = \"geoAlbers\", E.geoConicEqualArea = \"geoConicEqualArea\", E.geoConicEquidistant = \"geoConicEquidistant\", E.geoEquirectangular = \"geoEquirectangular\", E.geoMercator = \"geoMercator\", E.geoNaturalEarth1 = \"geoNaturalEarth1\", E))(uE || {});\nexport {\n d as $,\n k as A,\n U as B,\n q as C,\n OE as D,\n H as E,\n Z as F,\n v as G,\n $ as H,\n n as I,\n j as J,\n y as K,\n B as L,\n e as M,\n N,\n c as O,\n M as P,\n X as Q,\n l as R,\n w as S,\n x as T,\n L as U,\n h as V,\n s as W,\n o as X,\n u as Y,\n K as Z,\n oE as _,\n R as a,\n Y as b,\n t as c,\n aE as d,\n f as e,\n EE as f,\n S as g,\n _ as h,\n F as i,\n r as j,\n g as k,\n p as l,\n b as m,\n eE as n,\n J as o,\n Q as p,\n z as q,\n W as r,\n rE as s,\n G as t,\n P as u,\n m as v,\n O as w,\n uE as x,\n D as y,\n I as z\n};\n//# sourceMappingURL=enums-a96ef472.mjs.map\n","function o(t) {\n return function() {\n var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, a = e.width ? String(e.width) : t.defaultWidth, n = t.formats[a] || t.formats[t.defaultWidth];\n return n;\n };\n}\nfunction b(t) {\n return function(e, a) {\n var n = a != null && a.context ? String(a.context) : \"standalone\", l;\n if (n === \"formatting\" && t.formattingValues) {\n var u = t.defaultFormattingWidth || t.defaultWidth, r = a != null && a.width ? String(a.width) : u;\n l = t.formattingValues[r] || t.formattingValues[u];\n } else {\n var i = t.defaultWidth, v = a != null && a.width ? String(a.width) : t.defaultWidth;\n l = t.values[v] || t.values[i];\n }\n var d = t.argumentCallback ? t.argumentCallback(e) : e;\n return l[d];\n };\n}\nfunction s(t) {\n return function(e) {\n var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = a.width, l = n && t.matchPatterns[n] || t.matchPatterns[t.defaultMatchWidth], u = e.match(l);\n if (!u)\n return null;\n var r = u[0], i = n && t.parsePatterns[n] || t.parsePatterns[t.defaultParseWidth], v = Array.isArray(i) ? m(i, function(c) {\n return c.test(r);\n }) : h(i, function(c) {\n return c.test(r);\n }), d;\n d = t.valueCallback ? t.valueCallback(v) : v, d = a.valueCallback ? a.valueCallback(d) : d;\n var f = e.slice(r.length);\n return {\n value: d,\n rest: f\n };\n };\n}\nfunction h(t, e) {\n for (var a in t)\n if (t.hasOwnProperty(a) && e(t[a]))\n return a;\n}\nfunction m(t, e) {\n for (var a = 0; a < t.length; a++)\n if (e(t[a]))\n return a;\n}\nfunction P(t) {\n return function(e) {\n var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = e.match(t.matchPattern);\n if (!n)\n return null;\n var l = n[0], u = e.match(t.parsePattern);\n if (!u)\n return null;\n var r = t.valueCallback ? t.valueCallback(u[0]) : u[0];\n r = a.valueCallback ? a.valueCallback(r) : r;\n var i = e.slice(l.length);\n return {\n value: r,\n rest: i\n };\n };\n}\nexport {\n b as a,\n o as b,\n P as c,\n s as d\n};\n//# sourceMappingURL=index-becfb567.mjs.map\n","import { easeCubicInOut as Pr, pointer as Er, min as _r, extent as Cr, scaleLinear as Mr, scaleQuantize as $r } from \"d3\";\nimport { Z as mt, s as K, S as Yt, V as Qe, i as Sn, u as Ar, A as Ae, k as Dr, K as De, x as xr, p as Lr, Q as Ir, D as Nr } from \"./enums-a96ef472.mjs\";\nimport { b as ct, a as xe, c as Rr, d as Le } from \"./index-becfb567.mjs\";\nfunction ke(e) {\n \"@babel/helpers - typeof\";\n return ke = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(t) {\n return typeof t;\n } : function(t) {\n return t && typeof Symbol == \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n }, ke(e);\n}\nfunction me(e) {\n if (e === null || e === !0 || e === !1)\n return NaN;\n var t = Number(e);\n return isNaN(t) ? t : t < 0 ? Math.ceil(t) : Math.floor(t);\n}\nfunction B(e, t) {\n if (t.length < e)\n throw new TypeError(e + \" argument\" + (e > 1 ? \"s\" : \"\") + \" required, but only \" + t.length + \" present\");\n}\nfunction Z(e) {\n B(1, arguments);\n var t = Object.prototype.toString.call(e);\n return e instanceof Date || ke(e) === \"object\" && t === \"[object Date]\" ? new Date(e.getTime()) : typeof e == \"number\" || t === \"[object Number]\" ? new Date(e) : ((typeof e == \"string\" || t === \"[object String]\") && typeof console < \"u\" && (console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"), console.warn(new Error().stack)), /* @__PURE__ */ new Date(NaN));\n}\nfunction Fr(e, t) {\n B(2, arguments);\n var n = Z(e).getTime(), r = me(t);\n return new Date(n + r);\n}\nvar Ur = {};\nfunction nt() {\n return Ur;\n}\nfunction jr(e) {\n var t = new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate(), e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds()));\n return t.setUTCFullYear(e.getFullYear()), e.getTime() - t.getTime();\n}\nfunction Wr(e) {\n return B(1, arguments), e instanceof Date || ke(e) === \"object\" && Object.prototype.toString.call(e) === \"[object Date]\";\n}\nfunction Hr(e) {\n if (B(1, arguments), !Wr(e) && typeof e != \"number\")\n return !1;\n var t = Z(e);\n return !isNaN(Number(t));\n}\nfunction Yr(e, t) {\n B(2, arguments);\n var n = me(t);\n return Fr(e, -n);\n}\nvar Br = 864e5;\nfunction Gr(e) {\n B(1, arguments);\n var t = Z(e), n = t.getTime();\n t.setUTCMonth(0, 1), t.setUTCHours(0, 0, 0, 0);\n var r = t.getTime(), a = n - r;\n return Math.floor(a / Br) + 1;\n}\nfunction Ke(e) {\n B(1, arguments);\n var t = 1, n = Z(e), r = n.getUTCDay(), a = (r < t ? 7 : 0) + r - t;\n return n.setUTCDate(n.getUTCDate() - a), n.setUTCHours(0, 0, 0, 0), n;\n}\nfunction On(e) {\n B(1, arguments);\n var t = Z(e), n = t.getUTCFullYear(), r = /* @__PURE__ */ new Date(0);\n r.setUTCFullYear(n + 1, 0, 4), r.setUTCHours(0, 0, 0, 0);\n var a = Ke(r), o = /* @__PURE__ */ new Date(0);\n o.setUTCFullYear(n, 0, 4), o.setUTCHours(0, 0, 0, 0);\n var i = Ke(o);\n return t.getTime() >= a.getTime() ? n + 1 : t.getTime() >= i.getTime() ? n : n - 1;\n}\nfunction qr(e) {\n B(1, arguments);\n var t = On(e), n = /* @__PURE__ */ new Date(0);\n n.setUTCFullYear(t, 0, 4), n.setUTCHours(0, 0, 0, 0);\n var r = Ke(n);\n return r;\n}\nvar Vr = 6048e5;\nfunction zr(e) {\n B(1, arguments);\n var t = Z(e), n = Ke(t).getTime() - qr(t).getTime();\n return Math.round(n / Vr) + 1;\n}\nfunction Je(e, t) {\n var n, r, a, o, i, u, l, g;\n B(1, arguments);\n var f = nt(), m = me((n = (r = (a = (o = t == null ? void 0 : t.weekStartsOn) !== null && o !== void 0 ? o : t == null || (i = t.locale) === null || i === void 0 || (u = i.options) === null || u === void 0 ? void 0 : u.weekStartsOn) !== null && a !== void 0 ? a : f.weekStartsOn) !== null && r !== void 0 ? r : (l = f.locale) === null || l === void 0 || (g = l.options) === null || g === void 0 ? void 0 : g.weekStartsOn) !== null && n !== void 0 ? n : 0);\n if (!(m >= 0 && m <= 6))\n throw new RangeError(\"weekStartsOn must be between 0 and 6 inclusively\");\n var v = Z(e), C = v.getUTCDay(), M = (C < m ? 7 : 0) + C - m;\n return v.setUTCDate(v.getUTCDate() - M), v.setUTCHours(0, 0, 0, 0), v;\n}\nfunction Pn(e, t) {\n var n, r, a, o, i, u, l, g;\n B(1, arguments);\n var f = Z(e), m = f.getUTCFullYear(), v = nt(), C = me((n = (r = (a = (o = t == null ? void 0 : t.firstWeekContainsDate) !== null && o !== void 0 ? o : t == null || (i = t.locale) === null || i === void 0 || (u = i.options) === null || u === void 0 ? void 0 : u.firstWeekContainsDate) !== null && a !== void 0 ? a : v.firstWeekContainsDate) !== null && r !== void 0 ? r : (l = v.locale) === null || l === void 0 || (g = l.options) === null || g === void 0 ? void 0 : g.firstWeekContainsDate) !== null && n !== void 0 ? n : 1);\n if (!(C >= 1 && C <= 7))\n throw new RangeError(\"firstWeekContainsDate must be between 1 and 7 inclusively\");\n var M = /* @__PURE__ */ new Date(0);\n M.setUTCFullYear(m + 1, 0, C), M.setUTCHours(0, 0, 0, 0);\n var x = Je(M, t), P = /* @__PURE__ */ new Date(0);\n P.setUTCFullYear(m, 0, C), P.setUTCHours(0, 0, 0, 0);\n var U = Je(P, t);\n return f.getTime() >= x.getTime() ? m + 1 : f.getTime() >= U.getTime() ? m : m - 1;\n}\nfunction Qr(e, t) {\n var n, r, a, o, i, u, l, g;\n B(1, arguments);\n var f = nt(), m = me((n = (r = (a = (o = t == null ? void 0 : t.firstWeekContainsDate) !== null && o !== void 0 ? o : t == null || (i = t.locale) === null || i === void 0 || (u = i.options) === null || u === void 0 ? void 0 : u.firstWeekContainsDate) !== null && a !== void 0 ? a : f.firstWeekContainsDate) !== null && r !== void 0 ? r : (l = f.locale) === null || l === void 0 || (g = l.options) === null || g === void 0 ? void 0 : g.firstWeekContainsDate) !== null && n !== void 0 ? n : 1), v = Pn(e, t), C = /* @__PURE__ */ new Date(0);\n C.setUTCFullYear(v, 0, m), C.setUTCHours(0, 0, 0, 0);\n var M = Je(C, t);\n return M;\n}\nvar Xr = 6048e5;\nfunction kr(e, t) {\n B(1, arguments);\n var n = Z(e), r = Je(n, t).getTime() - Qr(n, t).getTime();\n return Math.round(r / Xr) + 1;\n}\nfunction A(e, t) {\n for (var n = e < 0 ? \"-\" : \"\", r = Math.abs(e).toString(); r.length < t; )\n r = \"0\" + r;\n return n + r;\n}\nvar Kr = {\n // Year\n y: function(t, n) {\n var r = t.getUTCFullYear(), a = r > 0 ? r : 1 - r;\n return A(n === \"yy\" ? a % 100 : a, n.length);\n },\n // Month\n M: function(t, n) {\n var r = t.getUTCMonth();\n return n === \"M\" ? String(r + 1) : A(r + 1, 2);\n },\n // Day of the month\n d: function(t, n) {\n return A(t.getUTCDate(), n.length);\n },\n // AM or PM\n a: function(t, n) {\n var r = t.getUTCHours() / 12 >= 1 ? \"pm\" : \"am\";\n switch (n) {\n case \"a\":\n case \"aa\":\n return r.toUpperCase();\n case \"aaa\":\n return r;\n case \"aaaaa\":\n return r[0];\n case \"aaaa\":\n default:\n return r === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n // Hour [1-12]\n h: function(t, n) {\n return A(t.getUTCHours() % 12 || 12, n.length);\n },\n // Hour [0-23]\n H: function(t, n) {\n return A(t.getUTCHours(), n.length);\n },\n // Minute\n m: function(t, n) {\n return A(t.getUTCMinutes(), n.length);\n },\n // Second\n s: function(t, n) {\n return A(t.getUTCSeconds(), n.length);\n },\n // Fraction of second\n S: function(t, n) {\n var r = n.length, a = t.getUTCMilliseconds(), o = Math.floor(a * Math.pow(10, r - 3));\n return A(o, n.length);\n }\n};\nconst se = Kr;\nvar Oe = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\"\n}, Jr = {\n // Era\n G: function(t, n, r) {\n var a = t.getUTCFullYear() > 0 ? 1 : 0;\n switch (n) {\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return r.era(a, {\n width: \"abbreviated\"\n });\n case \"GGGGG\":\n return r.era(a, {\n width: \"narrow\"\n });\n case \"GGGG\":\n default:\n return r.era(a, {\n width: \"wide\"\n });\n }\n },\n // Year\n y: function(t, n, r) {\n if (n === \"yo\") {\n var a = t.getUTCFullYear(), o = a > 0 ? a : 1 - a;\n return r.ordinalNumber(o, {\n unit: \"year\"\n });\n }\n return se.y(t, n);\n },\n // Local week-numbering year\n Y: function(t, n, r, a) {\n var o = Pn(t, a), i = o > 0 ? o : 1 - o;\n if (n === \"YY\") {\n var u = i % 100;\n return A(u, 2);\n }\n return n === \"Yo\" ? r.ordinalNumber(i, {\n unit: \"year\"\n }) : A(i, n.length);\n },\n // ISO week-numbering year\n R: function(t, n) {\n var r = On(t);\n return A(r, n.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function(t, n) {\n var r = t.getUTCFullYear();\n return A(r, n.length);\n },\n // Quarter\n Q: function(t, n, r) {\n var a = Math.ceil((t.getUTCMonth() + 1) / 3);\n switch (n) {\n case \"Q\":\n return String(a);\n case \"QQ\":\n return A(a, 2);\n case \"Qo\":\n return r.ordinalNumber(a, {\n unit: \"quarter\"\n });\n case \"QQQ\":\n return r.quarter(a, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"QQQQQ\":\n return r.quarter(a, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"QQQQ\":\n default:\n return r.quarter(a, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // Stand-alone quarter\n q: function(t, n, r) {\n var a = Math.ceil((t.getUTCMonth() + 1) / 3);\n switch (n) {\n case \"q\":\n return String(a);\n case \"qq\":\n return A(a, 2);\n case \"qo\":\n return r.ordinalNumber(a, {\n unit: \"quarter\"\n });\n case \"qqq\":\n return r.quarter(a, {\n width: \"abbreviated\",\n context: \"standalone\"\n });\n case \"qqqqq\":\n return r.quarter(a, {\n width: \"narrow\",\n context: \"standalone\"\n });\n case \"qqqq\":\n default:\n return r.quarter(a, {\n width: \"wide\",\n context: \"standalone\"\n });\n }\n },\n // Month\n M: function(t, n, r) {\n var a = t.getUTCMonth();\n switch (n) {\n case \"M\":\n case \"MM\":\n return se.M(t, n);\n case \"Mo\":\n return r.ordinalNumber(a + 1, {\n unit: \"month\"\n });\n case \"MMM\":\n return r.month(a, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"MMMMM\":\n return r.month(a, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"MMMM\":\n default:\n return r.month(a, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // Stand-alone month\n L: function(t, n, r) {\n var a = t.getUTCMonth();\n switch (n) {\n case \"L\":\n return String(a + 1);\n case \"LL\":\n return A(a + 1, 2);\n case \"Lo\":\n return r.ordinalNumber(a + 1, {\n unit: \"month\"\n });\n case \"LLL\":\n return r.month(a, {\n width: \"abbreviated\",\n context: \"standalone\"\n });\n case \"LLLLL\":\n return r.month(a, {\n width: \"narrow\",\n context: \"standalone\"\n });\n case \"LLLL\":\n default:\n return r.month(a, {\n width: \"wide\",\n context: \"standalone\"\n });\n }\n },\n // Local week of year\n w: function(t, n, r, a) {\n var o = kr(t, a);\n return n === \"wo\" ? r.ordinalNumber(o, {\n unit: \"week\"\n }) : A(o, n.length);\n },\n // ISO week of year\n I: function(t, n, r) {\n var a = zr(t);\n return n === \"Io\" ? r.ordinalNumber(a, {\n unit: \"week\"\n }) : A(a, n.length);\n },\n // Day of the month\n d: function(t, n, r) {\n return n === \"do\" ? r.ordinalNumber(t.getUTCDate(), {\n unit: \"date\"\n }) : se.d(t, n);\n },\n // Day of year\n D: function(t, n, r) {\n var a = Gr(t);\n return n === \"Do\" ? r.ordinalNumber(a, {\n unit: \"dayOfYear\"\n }) : A(a, n.length);\n },\n // Day of week\n E: function(t, n, r) {\n var a = t.getUTCDay();\n switch (n) {\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return r.day(a, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"EEEEE\":\n return r.day(a, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"EEEEEE\":\n return r.day(a, {\n width: \"short\",\n context: \"formatting\"\n });\n case \"EEEE\":\n default:\n return r.day(a, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // Local day of week\n e: function(t, n, r, a) {\n var o = t.getUTCDay(), i = (o - a.weekStartsOn + 8) % 7 || 7;\n switch (n) {\n case \"e\":\n return String(i);\n case \"ee\":\n return A(i, 2);\n case \"eo\":\n return r.ordinalNumber(i, {\n unit: \"day\"\n });\n case \"eee\":\n return r.day(o, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"eeeee\":\n return r.day(o, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"eeeeee\":\n return r.day(o, {\n width: \"short\",\n context: \"formatting\"\n });\n case \"eeee\":\n default:\n return r.day(o, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // Stand-alone local day of week\n c: function(t, n, r, a) {\n var o = t.getUTCDay(), i = (o - a.weekStartsOn + 8) % 7 || 7;\n switch (n) {\n case \"c\":\n return String(i);\n case \"cc\":\n return A(i, n.length);\n case \"co\":\n return r.ordinalNumber(i, {\n unit: \"day\"\n });\n case \"ccc\":\n return r.day(o, {\n width: \"abbreviated\",\n context: \"standalone\"\n });\n case \"ccccc\":\n return r.day(o, {\n width: \"narrow\",\n context: \"standalone\"\n });\n case \"cccccc\":\n return r.day(o, {\n width: \"short\",\n context: \"standalone\"\n });\n case \"cccc\":\n default:\n return r.day(o, {\n width: \"wide\",\n context: \"standalone\"\n });\n }\n },\n // ISO day of week\n i: function(t, n, r) {\n var a = t.getUTCDay(), o = a === 0 ? 7 : a;\n switch (n) {\n case \"i\":\n return String(o);\n case \"ii\":\n return A(o, n.length);\n case \"io\":\n return r.ordinalNumber(o, {\n unit: \"day\"\n });\n case \"iii\":\n return r.day(a, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"iiiii\":\n return r.day(a, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"iiiiii\":\n return r.day(a, {\n width: \"short\",\n context: \"formatting\"\n });\n case \"iiii\":\n default:\n return r.day(a, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // AM or PM\n a: function(t, n, r) {\n var a = t.getUTCHours(), o = a / 12 >= 1 ? \"pm\" : \"am\";\n switch (n) {\n case \"a\":\n case \"aa\":\n return r.dayPeriod(o, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"aaa\":\n return r.dayPeriod(o, {\n width: \"abbreviated\",\n context: \"formatting\"\n }).toLowerCase();\n case \"aaaaa\":\n return r.dayPeriod(o, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"aaaa\":\n default:\n return r.dayPeriod(o, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // AM, PM, midnight, noon\n b: function(t, n, r) {\n var a = t.getUTCHours(), o;\n switch (a === 12 ? o = Oe.noon : a === 0 ? o = Oe.midnight : o = a / 12 >= 1 ? \"pm\" : \"am\", n) {\n case \"b\":\n case \"bb\":\n return r.dayPeriod(o, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"bbb\":\n return r.dayPeriod(o, {\n width: \"abbreviated\",\n context: \"formatting\"\n }).toLowerCase();\n case \"bbbbb\":\n return r.dayPeriod(o, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"bbbb\":\n default:\n return r.dayPeriod(o, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function(t, n, r) {\n var a = t.getUTCHours(), o;\n switch (a >= 17 ? o = Oe.evening : a >= 12 ? o = Oe.afternoon : a >= 4 ? o = Oe.morning : o = Oe.night, n) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return r.dayPeriod(o, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"BBBBB\":\n return r.dayPeriod(o, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"BBBB\":\n default:\n return r.dayPeriod(o, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // Hour [1-12]\n h: function(t, n, r) {\n if (n === \"ho\") {\n var a = t.getUTCHours() % 12;\n return a === 0 && (a = 12), r.ordinalNumber(a, {\n unit: \"hour\"\n });\n }\n return se.h(t, n);\n },\n // Hour [0-23]\n H: function(t, n, r) {\n return n === \"Ho\" ? r.ordinalNumber(t.getUTCHours(), {\n unit: \"hour\"\n }) : se.H(t, n);\n },\n // Hour [0-11]\n K: function(t, n, r) {\n var a = t.getUTCHours() % 12;\n return n === \"Ko\" ? r.ordinalNumber(a, {\n unit: \"hour\"\n }) : A(a, n.length);\n },\n // Hour [1-24]\n k: function(t, n, r) {\n var a = t.getUTCHours();\n return a === 0 && (a = 24), n === \"ko\" ? r.ordinalNumber(a, {\n unit: \"hour\"\n }) : A(a, n.length);\n },\n // Minute\n m: function(t, n, r) {\n return n === \"mo\" ? r.ordinalNumber(t.getUTCMinutes(), {\n unit: \"minute\"\n }) : se.m(t, n);\n },\n // Second\n s: function(t, n, r) {\n return n === \"so\" ? r.ordinalNumber(t.getUTCSeconds(), {\n unit: \"second\"\n }) : se.s(t, n);\n },\n // Fraction of second\n S: function(t, n) {\n return se.S(t, n);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function(t, n, r, a) {\n var o = a._originalDate || t, i = o.getTimezoneOffset();\n if (i === 0)\n return \"Z\";\n switch (n) {\n case \"X\":\n return Gt(i);\n case \"XXXX\":\n case \"XX\":\n return de(i);\n case \"XXXXX\":\n case \"XXX\":\n default:\n return de(i, \":\");\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function(t, n, r, a) {\n var o = a._originalDate || t, i = o.getTimezoneOffset();\n switch (n) {\n case \"x\":\n return Gt(i);\n case \"xxxx\":\n case \"xx\":\n return de(i);\n case \"xxxxx\":\n case \"xxx\":\n default:\n return de(i, \":\");\n }\n },\n // Timezone (GMT)\n O: function(t, n, r, a) {\n var o = a._originalDate || t, i = o.getTimezoneOffset();\n switch (n) {\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + Bt(i, \":\");\n case \"OOOO\":\n default:\n return \"GMT\" + de(i, \":\");\n }\n },\n // Timezone (specific non-location)\n z: function(t, n, r, a) {\n var o = a._originalDate || t, i = o.getTimezoneOffset();\n switch (n) {\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + Bt(i, \":\");\n case \"zzzz\":\n default:\n return \"GMT\" + de(i, \":\");\n }\n },\n // Seconds timestamp\n t: function(t, n, r, a) {\n var o = a._originalDate || t, i = Math.floor(o.getTime() / 1e3);\n return A(i, n.length);\n },\n // Milliseconds timestamp\n T: function(t, n, r, a) {\n var o = a._originalDate || t, i = o.getTime();\n return A(i, n.length);\n }\n};\nfunction Bt(e, t) {\n var n = e > 0 ? \"-\" : \"+\", r = Math.abs(e), a = Math.floor(r / 60), o = r % 60;\n if (o === 0)\n return n + String(a);\n var i = t || \"\";\n return n + String(a) + i + A(o, 2);\n}\nfunction Gt(e, t) {\n if (e % 60 === 0) {\n var n = e > 0 ? \"-\" : \"+\";\n return n + A(Math.abs(e) / 60, 2);\n }\n return de(e, t);\n}\nfunction de(e, t) {\n var n = t || \"\", r = e > 0 ? \"-\" : \"+\", a = Math.abs(e), o = A(Math.floor(a / 60), 2), i = A(a % 60, 2);\n return r + o + n + i;\n}\nconst Zr = Jr;\nvar qt = function(t, n) {\n switch (t) {\n case \"P\":\n return n.date({\n width: \"short\"\n });\n case \"PP\":\n return n.date({\n width: \"medium\"\n });\n case \"PPP\":\n return n.date({\n width: \"long\"\n });\n case \"PPPP\":\n default:\n return n.date({\n width: \"full\"\n });\n }\n}, En = function(t, n) {\n switch (t) {\n case \"p\":\n return n.time({\n width: \"short\"\n });\n case \"pp\":\n return n.time({\n width: \"medium\"\n });\n case \"ppp\":\n return n.time({\n width: \"long\"\n });\n case \"pppp\":\n default:\n return n.time({\n width: \"full\"\n });\n }\n}, ea = function(t, n) {\n var r = t.match(/(P+)(p+)?/) || [], a = r[1], o = r[2];\n if (!o)\n return qt(t, n);\n var i;\n switch (a) {\n case \"P\":\n i = n.dateTime({\n width: \"short\"\n });\n break;\n case \"PP\":\n i = n.dateTime({\n width: \"medium\"\n });\n break;\n case \"PPP\":\n i = n.dateTime({\n width: \"long\"\n });\n break;\n case \"PPPP\":\n default:\n i = n.dateTime({\n width: \"full\"\n });\n break;\n }\n return i.replace(\"{{date}}\", qt(a, n)).replace(\"{{time}}\", En(o, n));\n}, ta = {\n p: En,\n P: ea\n};\nconst na = ta;\nvar ra = [\"D\", \"DD\"], aa = [\"YY\", \"YYYY\"];\nfunction oa(e) {\n return ra.indexOf(e) !== -1;\n}\nfunction ia(e) {\n return aa.indexOf(e) !== -1;\n}\nfunction Vt(e, t, n) {\n if (e === \"YYYY\")\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(t, \"`) for formatting years to the input `\").concat(n, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n if (e === \"YY\")\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(t, \"`) for formatting years to the input `\").concat(n, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n if (e === \"D\")\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(t, \"`) for formatting days of the month to the input `\").concat(n, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n if (e === \"DD\")\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(t, \"`) for formatting days of the month to the input `\").concat(n, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n}\nvar sa = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\"\n },\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\"\n },\n halfAMinute: \"half a minute\",\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\"\n },\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\"\n },\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\"\n },\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\"\n },\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\"\n },\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\"\n },\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\"\n },\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\"\n },\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\"\n },\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\"\n },\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\"\n },\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\"\n },\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\"\n }\n}, ua = function(t, n, r) {\n var a, o = sa[t];\n return typeof o == \"string\" ? a = o : n === 1 ? a = o.one : a = o.other.replace(\"{{count}}\", n.toString()), r != null && r.addSuffix ? r.comparison && r.comparison > 0 ? \"in \" + a : a + \" ago\" : a;\n};\nconst la = ua;\nvar ca = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\"\n}, fa = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\"\n}, da = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\"\n}, ha = {\n date: ct({\n formats: ca,\n defaultWidth: \"full\"\n }),\n time: ct({\n formats: fa,\n defaultWidth: \"full\"\n }),\n dateTime: ct({\n formats: da,\n defaultWidth: \"full\"\n })\n};\nconst ga = ha;\nvar ma = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\"\n}, pa = function(t, n, r, a) {\n return ma[t];\n};\nconst ya = pa;\nvar va = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"]\n}, ba = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"]\n}, wa = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n wide: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\n}, Ta = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\n}, Sa = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\"\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\"\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\"\n }\n}, Oa = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\"\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\"\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\"\n }\n}, Pa = function(t, n) {\n var r = Number(t), a = r % 100;\n if (a > 20 || a < 10)\n switch (a % 10) {\n case 1:\n return r + \"st\";\n case 2:\n return r + \"nd\";\n case 3:\n return r + \"rd\";\n }\n return r + \"th\";\n}, Ea = {\n ordinalNumber: Pa,\n era: xe({\n values: va,\n defaultWidth: \"wide\"\n }),\n quarter: xe({\n values: ba,\n defaultWidth: \"wide\",\n argumentCallback: function(t) {\n return t - 1;\n }\n }),\n month: xe({\n values: wa,\n defaultWidth: \"wide\"\n }),\n day: xe({\n values: Ta,\n defaultWidth: \"wide\"\n }),\n dayPeriod: xe({\n values: Sa,\n defaultWidth: \"wide\",\n formattingValues: Oa,\n defaultFormattingWidth: \"wide\"\n })\n};\nconst _a = Ea;\nvar Ca = /^(\\d+)(th|st|nd|rd)?/i, Ma = /\\d+/i, $a = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n}, Aa = {\n any: [/^b/i, /^(a|c)/i]\n}, Da = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n}, xa = {\n any: [/1/i, /2/i, /3/i, /4/i]\n}, La = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n}, Ia = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n}, Na = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n}, Ra = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n}, Fa = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n}, Ua = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n}, ja = {\n ordinalNumber: Rr({\n matchPattern: Ca,\n parsePattern: Ma,\n valueCallback: function(t) {\n return parseInt(t, 10);\n }\n }),\n era: Le({\n matchPatterns: $a,\n defaultMatchWidth: \"wide\",\n parsePatterns: Aa,\n defaultParseWidth: \"any\"\n }),\n quarter: Le({\n matchPatterns: Da,\n defaultMatchWidth: \"wide\",\n parsePatterns: xa,\n defaultParseWidth: \"any\",\n valueCallback: function(t) {\n return t + 1;\n }\n }),\n month: Le({\n matchPatterns: La,\n defaultMatchWidth: \"wide\",\n parsePatterns: Ia,\n defaultParseWidth: \"any\"\n }),\n day: Le({\n matchPatterns: Na,\n defaultMatchWidth: \"wide\",\n parsePatterns: Ra,\n defaultParseWidth: \"any\"\n }),\n dayPeriod: Le({\n matchPatterns: Fa,\n defaultMatchWidth: \"any\",\n parsePatterns: Ua,\n defaultParseWidth: \"any\"\n })\n};\nconst Wa = ja;\nvar Ha = {\n code: \"en-US\",\n formatDistance: la,\n formatLong: ga,\n formatRelative: ya,\n localize: _a,\n match: Wa,\n options: {\n weekStartsOn: 0,\n firstWeekContainsDate: 1\n }\n};\nconst _n = Ha;\nvar Ya = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g, Ba = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g, Ga = /^'([^]*?)'?$/, qa = /''/g, Va = /[a-zA-Z]/;\nfunction pt(e, t, n) {\n var r, a, o, i, u, l, g, f, m, v, C, M, x, P, U, q, oe, V;\n B(2, arguments);\n var Q = String(t), ue = nt(), w = (r = (a = n == null ? void 0 : n.locale) !== null && a !== void 0 ? a : ue.locale) !== null && r !== void 0 ? r : _n, c = me((o = (i = (u = (l = n == null ? void 0 : n.firstWeekContainsDate) !== null && l !== void 0 ? l : n == null || (g = n.locale) === null || g === void 0 || (f = g.options) === null || f === void 0 ? void 0 : f.firstWeekContainsDate) !== null && u !== void 0 ? u : ue.firstWeekContainsDate) !== null && i !== void 0 ? i : (m = ue.locale) === null || m === void 0 || (v = m.options) === null || v === void 0 ? void 0 : v.firstWeekContainsDate) !== null && o !== void 0 ? o : 1);\n if (!(c >= 1 && c <= 7))\n throw new RangeError(\"firstWeekContainsDate must be between 1 and 7 inclusively\");\n var y = me((C = (M = (x = (P = n == null ? void 0 : n.weekStartsOn) !== null && P !== void 0 ? P : n == null || (U = n.locale) === null || U === void 0 || (q = U.options) === null || q === void 0 ? void 0 : q.weekStartsOn) !== null && x !== void 0 ? x : ue.weekStartsOn) !== null && M !== void 0 ? M : (oe = ue.locale) === null || oe === void 0 || (V = oe.options) === null || V === void 0 ? void 0 : V.weekStartsOn) !== null && C !== void 0 ? C : 0);\n if (!(y >= 0 && y <= 6))\n throw new RangeError(\"weekStartsOn must be between 0 and 6 inclusively\");\n if (!w.localize)\n throw new RangeError(\"locale must contain localize property\");\n if (!w.formatLong)\n throw new RangeError(\"locale must contain formatLong property\");\n var E = Z(e);\n if (!Hr(E))\n throw new RangeError(\"Invalid time value\");\n var T = jr(E), O = Yr(E, T), s = {\n firstWeekContainsDate: c,\n weekStartsOn: y,\n locale: w,\n _originalDate: E\n }, d = Q.match(Ba).map(function(h) {\n var p = h[0];\n if (p === \"p\" || p === \"P\") {\n var S = na[p];\n return S(h, w.formatLong);\n }\n return h;\n }).join(\"\").match(Ya).map(function(h) {\n if (h === \"''\")\n return \"'\";\n var p = h[0];\n if (p === \"'\")\n return za(h);\n var S = Zr[p];\n if (S)\n return !(n != null && n.useAdditionalWeekYearTokens) && ia(h) && Vt(h, t, String(e)), !(n != null && n.useAdditionalDayOfYearTokens) && oa(h) && Vt(h, t, String(e)), S(O, h, w.localize, s);\n if (p.match(Va))\n throw new RangeError(\"Format string contains an unescaped latin alphabet character `\" + p + \"`\");\n return h;\n }).join(\"\");\n return d;\n}\nfunction za(e) {\n var t = e.match(Ga);\n return t ? t[1].replace(qa, \"'\") : e;\n}\nconst Qa = \"cds\", Xa = {\n opacity: {\n unselected: 0.05,\n selected: 0.4\n }\n}, ka = {\n ticks: {\n number: 7,\n rotateIfSmallerThan: 30,\n verticalSpaceRatio: 2.5,\n horizontalSpaceRatio: 3.5\n },\n ratio: {\n reference: \"value\",\n compareTo: \"marker\"\n },\n paddingRatio: 0.1,\n hover: {\n rectanglePadding: 4\n }\n}, Ka = {\n duration: 1e3,\n ease: Pr,\n zoomLevel: 3\n}, Cn = {\n circles: {\n fillOpacity: 0.3,\n hover: {\n stroke: \"#FFF\"\n }\n },\n padding: {\n mainGroup: 4,\n children: 2\n },\n hierarchyLevel: 2\n}, Ja = {\n pairingOptions: {\n \"1-color\": 4,\n \"2-color\": 5,\n \"3-color\": 5,\n \"4-color\": 3,\n \"5-color\": 2,\n \"14-color\": 1\n }\n}, Za = {\n circle: {\n radius: 4,\n opacity: {\n hovered: 1,\n default: 0.3\n }\n },\n box: {\n opacity: {\n hovered: 0.5,\n default: 0.3\n }\n },\n strokeWidth: {\n default: 1,\n thicker: 2\n }\n}, eo = {\n defaultBins: 10\n}, to = {\n items: {\n status: {\n ACTIVE: 1,\n DISABLED: 0\n },\n horizontalSpace: 12,\n verticalSpace: 24,\n textYOffset: 8,\n spaceAfter: 4\n },\n checkbox: {\n radius: 6.5\n },\n radius: {\n iconData: [\n { cx: 7, cy: 7, r: 6.5 },\n { cx: 7, cy: 10, r: 3.5 }\n ],\n fill: null,\n stroke: \"#8c8c8c\"\n },\n line: {\n yPosition: 6,\n width: 24,\n strokeWidth: 1.4,\n fill: null,\n stroke: \"#999999\"\n },\n area: {\n width: 24,\n height: 14,\n fill: \"#6f6f6f\",\n stroke: null\n },\n size: {\n iconData: [\n { width: 23, height: 12 },\n { width: 13, height: 6 }\n ],\n fill: null,\n stroke: \"#8D8D8D\"\n },\n quartile: {\n iconData: [\n { x: 0, y: 0, width: 24, height: 13 },\n { x: 11, y: 4, width: 1, height: 4 }\n ]\n },\n zoom: {\n iconData: [{ x: 0, y: 0, width: 12, height: 12 }],\n color: \"#8D8D8D\"\n },\n color: {\n barWidth: 300,\n barHeight: 8,\n axisYTranslation: 10\n }\n}, no = {\n opacity: {\n unselected: 0.3,\n selected: 1\n },\n weight: {\n selected: 2,\n unselected: 1\n }\n}, ro = {\n statusBar: {\n paddingRight: 5\n },\n status: {\n indicatorSize: 16,\n paddingLeft: 15\n },\n total: {\n paddingLeft: 36,\n paddingRight: 24\n },\n height: {\n default: 8,\n proportional: 16\n },\n dividerWidth: 2\n}, ao = {\n radiusOffset: -15,\n innerRadius: 2,\n padAngle: 7e-3,\n hoverArc: {\n outerRadiusOffset: 3\n },\n xOffset: 30,\n yOffset: 20,\n yOffsetCallout: 10,\n callout: {\n minSliceDegree: 5,\n offsetX: 15,\n offsetY: 12,\n horizontalLineLength: 8,\n textMargin: 2\n }\n}, oo = {\n opacity: {\n unselected: 0.1,\n selected: 0.3\n },\n xLabelPadding: 10,\n yLabelPadding: 8,\n yTicksNumber: 4,\n minRange: 10,\n xAxisRectHeight: 50,\n dotsRadius: 5\n}, io = {\n nodeWidth: 4,\n nodeHoveredWidth: 8,\n minNodePadding: 24,\n opacity: {\n unfocus: 0.3,\n default: 0.8,\n selected: 1\n }\n}, so = {\n minCellDividerDimension: 16,\n // Ensures axes lines are displayed with or without stroke disabled\n chartPadding: 0.5\n}, uo = {\n default: {\n size: 24\n }\n}, lo = {\n horizontalOffset: 10\n}, co = {\n default: {\n duration: 300\n },\n pie_slice_mouseover: {\n duration: 100\n },\n pie_chart_titles: {\n duration: 375\n },\n graph_element_mouseover_fill_update: {\n duration: 100\n },\n graph_element_mouseout_fill_update: {\n duration: 100\n }\n}, fo = {\n buttonSize: 32,\n iconSize: 20,\n height: 32,\n spacerHeight: 10,\n iconPadding: 6\n}, ho = {\n height: {\n [mt.GRAPH_VIEW]: 32,\n [mt.SLIDER_VIEW]: 10\n },\n spacerHeight: 8,\n handleWidth: 5,\n handleBarWidth: 1,\n handleBarHeight: 12\n}, Mn = [\n {\n type: K.RADIUS,\n name: \"Radius\"\n },\n {\n type: K.AREA,\n name: \"Poor area\"\n },\n {\n type: K.AREA,\n name: \"Satisfactory area\"\n },\n {\n type: K.AREA,\n name: \"Great area\"\n },\n {\n type: K.QUARTILE,\n name: \"Quartiles\"\n }\n];\nvar go = typeof global == \"object\" && global && global.Object === Object && global;\nconst $n = go;\nvar mo = typeof self == \"object\" && self && self.Object === Object && self, po = $n || mo || Function(\"return this\")();\nconst ee = po;\nvar yo = ee.Symbol;\nconst z = yo;\nvar An = Object.prototype, vo = An.hasOwnProperty, bo = An.toString, Ie = z ? z.toStringTag : void 0;\nfunction wo(e) {\n var t = vo.call(e, Ie), n = e[Ie];\n try {\n e[Ie] = void 0;\n var r = !0;\n } catch {\n }\n var a = bo.call(e);\n return r && (t ? e[Ie] = n : delete e[Ie]), a;\n}\nvar To = Object.prototype, So = To.toString;\nfunction Oo(e) {\n return So.call(e);\n}\nvar Po = \"[object Null]\", Eo = \"[object Undefined]\", zt = z ? z.toStringTag : void 0;\nfunction ve(e) {\n return e == null ? e === void 0 ? Eo : Po : zt && zt in Object(e) ? wo(e) : Oo(e);\n}\nfunction J(e) {\n return e != null && typeof e == \"object\";\n}\nvar _o = \"[object Symbol]\";\nfunction Pt(e) {\n return typeof e == \"symbol\" || J(e) && ve(e) == _o;\n}\nfunction Co(e, t) {\n for (var n = -1, r = e == null ? 0 : e.length, a = Array(r); ++n < r; )\n a[n] = t(e[n], n, e);\n return a;\n}\nvar Mo = Array.isArray;\nconst G = Mo;\nvar $o = 1 / 0, Qt = z ? z.prototype : void 0, Xt = Qt ? Qt.toString : void 0;\nfunction Dn(e) {\n if (typeof e == \"string\")\n return e;\n if (G(e))\n return Co(e, Dn) + \"\";\n if (Pt(e))\n return Xt ? Xt.call(e) : \"\";\n var t = e + \"\";\n return t == \"0\" && 1 / e == -$o ? \"-0\" : t;\n}\nfunction ne(e) {\n var t = typeof e;\n return e != null && (t == \"object\" || t == \"function\");\n}\nfunction Et(e) {\n return e;\n}\nvar Ao = \"[object AsyncFunction]\", Do = \"[object Function]\", xo = \"[object GeneratorFunction]\", Lo = \"[object Proxy]\";\nfunction _t(e) {\n if (!ne(e))\n return !1;\n var t = ve(e);\n return t == Do || t == xo || t == Ao || t == Lo;\n}\nvar Io = ee[\"__core-js_shared__\"];\nconst ft = Io;\nvar kt = function() {\n var e = /[^.]+$/.exec(ft && ft.keys && ft.keys.IE_PROTO || \"\");\n return e ? \"Symbol(src)_1.\" + e : \"\";\n}();\nfunction No(e) {\n return !!kt && kt in e;\n}\nvar Ro = Function.prototype, Fo = Ro.toString;\nfunction be(e) {\n if (e != null) {\n try {\n return Fo.call(e);\n } catch {\n }\n try {\n return e + \"\";\n } catch {\n }\n }\n return \"\";\n}\nvar Uo = /[\\\\^$.*+?()[\\]{}|]/g, jo = /^\\[object .+?Constructor\\]$/, Wo = Function.prototype, Ho = Object.prototype, Yo = Wo.toString, Bo = Ho.hasOwnProperty, Go = RegExp(\n \"^\" + Yo.call(Bo).replace(Uo, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"\n);\nfunction qo(e) {\n if (!ne(e) || No(e))\n return !1;\n var t = _t(e) ? Go : jo;\n return t.test(be(e));\n}\nfunction Vo(e, t) {\n return e == null ? void 0 : e[t];\n}\nfunction we(e, t) {\n var n = Vo(e, t);\n return qo(n) ? n : void 0;\n}\nvar zo = we(ee, \"WeakMap\");\nconst yt = zo;\nvar Kt = Object.create, Qo = function() {\n function e() {\n }\n return function(t) {\n if (!ne(t))\n return {};\n if (Kt)\n return Kt(t);\n e.prototype = t;\n var n = new e();\n return e.prototype = void 0, n;\n };\n}();\nconst Xo = Qo;\nfunction ko(e, t, n) {\n switch (n.length) {\n case 0:\n return e.call(t);\n case 1:\n return e.call(t, n[0]);\n case 2:\n return e.call(t, n[0], n[1]);\n case 3:\n return e.call(t, n[0], n[1], n[2]);\n }\n return e.apply(t, n);\n}\nfunction Ko() {\n}\nfunction xn(e, t) {\n var n = -1, r = e.length;\n for (t || (t = Array(r)); ++n < r; )\n t[n] = e[n];\n return t;\n}\nvar Jo = 800, Zo = 16, ei = Date.now;\nfunction ti(e) {\n var t = 0, n = 0;\n return function() {\n var r = ei(), a = Zo - (r - n);\n if (n = r, a > 0) {\n if (++t >= Jo)\n return arguments[0];\n } else\n t = 0;\n return e.apply(void 0, arguments);\n };\n}\nfunction ni(e) {\n return function() {\n return e;\n };\n}\nvar ri = function() {\n try {\n var e = we(Object, \"defineProperty\");\n return e({}, \"\", {}), e;\n } catch {\n }\n}();\nconst Ze = ri;\nvar ai = Ze ? function(e, t) {\n return Ze(e, \"toString\", {\n configurable: !0,\n enumerable: !1,\n value: ni(t),\n writable: !0\n });\n} : Et;\nconst oi = ai;\nvar ii = ti(oi);\nconst si = ii;\nfunction ui(e, t) {\n for (var n = -1, r = e == null ? 0 : e.length; ++n < r && t(e[n], n, e) !== !1; )\n ;\n return e;\n}\nfunction li(e, t, n, r) {\n for (var a = e.length, o = n + (r ? 1 : -1); r ? o-- : ++o < a; )\n if (t(e[o], o, e))\n return o;\n return -1;\n}\nfunction ci(e) {\n return e !== e;\n}\nfunction fi(e, t, n) {\n for (var r = n - 1, a = e.length; ++r < a; )\n if (e[r] === t)\n return r;\n return -1;\n}\nfunction di(e, t, n) {\n return t === t ? fi(e, t, n) : li(e, ci, n);\n}\nfunction hi(e, t) {\n var n = e == null ? 0 : e.length;\n return !!n && di(e, t, 0) > -1;\n}\nvar gi = 9007199254740991, mi = /^(?:0|[1-9]\\d*)$/;\nfunction Ct(e, t) {\n var n = typeof e;\n return t = t ?? gi, !!t && (n == \"number\" || n != \"symbol\" && mi.test(e)) && e > -1 && e % 1 == 0 && e < t;\n}\nfunction Mt(e, t, n) {\n t == \"__proto__\" && Ze ? Ze(e, t, {\n configurable: !0,\n enumerable: !0,\n value: n,\n writable: !0\n }) : e[t] = n;\n}\nfunction We(e, t) {\n return e === t || e !== e && t !== t;\n}\nvar pi = Object.prototype, yi = pi.hasOwnProperty;\nfunction Ln(e, t, n) {\n var r = e[t];\n (!(yi.call(e, t) && We(r, n)) || n === void 0 && !(t in e)) && Mt(e, t, n);\n}\nfunction He(e, t, n, r) {\n var a = !n;\n n || (n = {});\n for (var o = -1, i = t.length; ++o < i; ) {\n var u = t[o], l = r ? r(n[u], e[u], u, n, e) : void 0;\n l === void 0 && (l = e[u]), a ? Mt(n, u, l) : Ln(n, u, l);\n }\n return n;\n}\nvar Jt = Math.max;\nfunction vi(e, t, n) {\n return t = Jt(t === void 0 ? e.length - 1 : t, 0), function() {\n for (var r = arguments, a = -1, o = Jt(r.length - t, 0), i = Array(o); ++a < o; )\n i[a] = r[t + a];\n a = -1;\n for (var u = Array(t + 1); ++a < t; )\n u[a] = r[a];\n return u[t] = n(i), ko(e, this, u);\n };\n}\nfunction In(e, t) {\n return si(vi(e, t, Et), e + \"\");\n}\nvar bi = 9007199254740991;\nfunction $t(e) {\n return typeof e == \"number\" && e > -1 && e % 1 == 0 && e <= bi;\n}\nfunction Ye(e) {\n return e != null && $t(e.length) && !_t(e);\n}\nfunction wi(e, t, n) {\n if (!ne(n))\n return !1;\n var r = typeof t;\n return (r == \"number\" ? Ye(n) && Ct(t, n.length) : r == \"string\" && t in n) ? We(n[t], e) : !1;\n}\nfunction Ti(e) {\n return In(function(t, n) {\n var r = -1, a = n.length, o = a > 1 ? n[a - 1] : void 0, i = a > 2 ? n[2] : void 0;\n for (o = e.length > 3 && typeof o == \"function\" ? (a--, o) : void 0, i && wi(n[0], n[1], i) && (o = a < 3 ? void 0 : o, a = 1), t = Object(t); ++r < a; ) {\n var u = n[r];\n u && e(t, u, r, o);\n }\n return t;\n });\n}\nvar Si = Object.prototype;\nfunction rt(e) {\n var t = e && e.constructor, n = typeof t == \"function\" && t.prototype || Si;\n return e === n;\n}\nfunction Oi(e, t) {\n for (var n = -1, r = Array(e); ++n < e; )\n r[n] = t(n);\n return r;\n}\nvar Pi = \"[object Arguments]\";\nfunction Zt(e) {\n return J(e) && ve(e) == Pi;\n}\nvar Nn = Object.prototype, Ei = Nn.hasOwnProperty, _i = Nn.propertyIsEnumerable, Ci = Zt(function() {\n return arguments;\n}()) ? Zt : function(e) {\n return J(e) && Ei.call(e, \"callee\") && !_i.call(e, \"callee\");\n};\nconst _e = Ci;\nfunction Mi() {\n return !1;\n}\nvar Rn = typeof exports == \"object\" && exports && !exports.nodeType && exports, en = Rn && typeof module == \"object\" && module && !module.nodeType && module, $i = en && en.exports === Rn, tn = $i ? ee.Buffer : void 0, Ai = tn ? tn.isBuffer : void 0, Di = Ai || Mi;\nconst Ce = Di;\nvar xi = \"[object Arguments]\", Li = \"[object Array]\", Ii = \"[object Boolean]\", Ni = \"[object Date]\", Ri = \"[object Error]\", Fi = \"[object Function]\", Ui = \"[object Map]\", ji = \"[object Number]\", Wi = \"[object Object]\", Hi = \"[object RegExp]\", Yi = \"[object Set]\", Bi = \"[object String]\", Gi = \"[object WeakMap]\", qi = \"[object ArrayBuffer]\", Vi = \"[object DataView]\", zi = \"[object Float32Array]\", Qi = \"[object Float64Array]\", Xi = \"[object Int8Array]\", ki = \"[object Int16Array]\", Ki = \"[object Int32Array]\", Ji = \"[object Uint8Array]\", Zi = \"[object Uint8ClampedArray]\", es = \"[object Uint16Array]\", ts = \"[object Uint32Array]\", R = {};\nR[zi] = R[Qi] = R[Xi] = R[ki] = R[Ki] = R[Ji] = R[Zi] = R[es] = R[ts] = !0;\nR[xi] = R[Li] = R[qi] = R[Ii] = R[Vi] = R[Ni] = R[Ri] = R[Fi] = R[Ui] = R[ji] = R[Wi] = R[Hi] = R[Yi] = R[Bi] = R[Gi] = !1;\nfunction ns(e) {\n return J(e) && $t(e.length) && !!R[ve(e)];\n}\nfunction At(e) {\n return function(t) {\n return e(t);\n };\n}\nvar Fn = typeof exports == \"object\" && exports && !exports.nodeType && exports, Re = Fn && typeof module == \"object\" && module && !module.nodeType && module, rs = Re && Re.exports === Fn, dt = rs && $n.process, as = function() {\n try {\n var e = Re && Re.require && Re.require(\"util\").types;\n return e || dt && dt.binding && dt.binding(\"util\");\n } catch {\n }\n}();\nconst Me = as;\nvar nn = Me && Me.isTypedArray, os = nn ? At(nn) : ns;\nconst at = os;\nvar is = Object.prototype, ss = is.hasOwnProperty;\nfunction Un(e, t) {\n var n = G(e), r = !n && _e(e), a = !n && !r && Ce(e), o = !n && !r && !a && at(e), i = n || r || a || o, u = i ? Oi(e.length, String) : [], l = u.length;\n for (var g in e)\n (t || ss.call(e, g)) && !(i && // Safari 9 has enumerable `arguments.length` in strict mode.\n (g == \"length\" || // Node.js 0.10 has enumerable non-index properties on buffers.\n a && (g == \"offset\" || g == \"parent\") || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n o && (g == \"buffer\" || g == \"byteLength\" || g == \"byteOffset\") || // Skip index properties.\n Ct(g, l))) && u.push(g);\n return u;\n}\nfunction jn(e, t) {\n return function(n) {\n return e(t(n));\n };\n}\nvar us = jn(Object.keys, Object);\nconst ls = us;\nvar cs = Object.prototype, fs = cs.hasOwnProperty;\nfunction Wn(e) {\n if (!rt(e))\n return ls(e);\n var t = [];\n for (var n in Object(e))\n fs.call(e, n) && n != \"constructor\" && t.push(n);\n return t;\n}\nfunction ot(e) {\n return Ye(e) ? Un(e) : Wn(e);\n}\nfunction ds(e) {\n var t = [];\n if (e != null)\n for (var n in Object(e))\n t.push(n);\n return t;\n}\nvar hs = Object.prototype, gs = hs.hasOwnProperty;\nfunction ms(e) {\n if (!ne(e))\n return ds(e);\n var t = rt(e), n = [];\n for (var r in e)\n r == \"constructor\" && (t || !gs.call(e, r)) || n.push(r);\n return n;\n}\nfunction Be(e) {\n return Ye(e) ? Un(e, !0) : ms(e);\n}\nvar ps = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/, ys = /^\\w*$/;\nfunction Dt(e, t) {\n if (G(e))\n return !1;\n var n = typeof e;\n return n == \"number\" || n == \"symbol\" || n == \"boolean\" || e == null || Pt(e) ? !0 : ys.test(e) || !ps.test(e) || t != null && e in Object(t);\n}\nvar vs = we(Object, \"create\");\nconst Fe = vs;\nfunction bs() {\n this.__data__ = Fe ? Fe(null) : {}, this.size = 0;\n}\nfunction ws(e) {\n var t = this.has(e) && delete this.__data__[e];\n return this.size -= t ? 1 : 0, t;\n}\nvar Ts = \"__lodash_hash_undefined__\", Ss = Object.prototype, Os = Ss.hasOwnProperty;\nfunction Ps(e) {\n var t = this.__data__;\n if (Fe) {\n var n = t[e];\n return n === Ts ? void 0 : n;\n }\n return Os.call(t, e) ? t[e] : void 0;\n}\nvar Es = Object.prototype, _s = Es.hasOwnProperty;\nfunction Cs(e) {\n var t = this.__data__;\n return Fe ? t[e] !== void 0 : _s.call(t, e);\n}\nvar Ms = \"__lodash_hash_undefined__\";\nfunction $s(e, t) {\n var n = this.__data__;\n return this.size += this.has(e) ? 0 : 1, n[e] = Fe && t === void 0 ? Ms : t, this;\n}\nfunction pe(e) {\n var t = -1, n = e == null ? 0 : e.length;\n for (this.clear(); ++t < n; ) {\n var r = e[t];\n this.set(r[0], r[1]);\n }\n}\npe.prototype.clear = bs;\npe.prototype.delete = ws;\npe.prototype.get = Ps;\npe.prototype.has = Cs;\npe.prototype.set = $s;\nfunction As() {\n this.__data__ = [], this.size = 0;\n}\nfunction it(e, t) {\n for (var n = e.length; n--; )\n if (We(e[n][0], t))\n return n;\n return -1;\n}\nvar Ds = Array.prototype, xs = Ds.splice;\nfunction Ls(e) {\n var t = this.__data__, n = it(t, e);\n if (n < 0)\n return !1;\n var r = t.length - 1;\n return n == r ? t.pop() : xs.call(t, n, 1), --this.size, !0;\n}\nfunction Is(e) {\n var t = this.__data__, n = it(t, e);\n return n < 0 ? void 0 : t[n][1];\n}\nfunction Ns(e) {\n return it(this.__data__, e) > -1;\n}\nfunction Rs(e, t) {\n var n = this.__data__, r = it(n, e);\n return r < 0 ? (++this.size, n.push([e, t])) : n[r][1] = t, this;\n}\nfunction re(e) {\n var t = -1, n = e == null ? 0 : e.length;\n for (this.clear(); ++t < n; ) {\n var r = e[t];\n this.set(r[0], r[1]);\n }\n}\nre.prototype.clear = As;\nre.prototype.delete = Ls;\nre.prototype.get = Is;\nre.prototype.has = Ns;\nre.prototype.set = Rs;\nvar Fs = we(ee, \"Map\");\nconst Ue = Fs;\nfunction Us() {\n this.size = 0, this.__data__ = {\n hash: new pe(),\n map: new (Ue || re)(),\n string: new pe()\n };\n}\nfunction js(e) {\n var t = typeof e;\n return t == \"string\" || t == \"number\" || t == \"symbol\" || t == \"boolean\" ? e !== \"__proto__\" : e === null;\n}\nfunction st(e, t) {\n var n = e.__data__;\n return js(t) ? n[typeof t == \"string\" ? \"string\" : \"hash\"] : n.map;\n}\nfunction Ws(e) {\n var t = st(this, e).delete(e);\n return this.size -= t ? 1 : 0, t;\n}\nfunction Hs(e) {\n return st(this, e).get(e);\n}\nfunction Ys(e) {\n return st(this, e).has(e);\n}\nfunction Bs(e, t) {\n var n = st(this, e), r = n.size;\n return n.set(e, t), this.size += n.size == r ? 0 : 1, this;\n}\nfunction ae(e) {\n var t = -1, n = e == null ? 0 : e.length;\n for (this.clear(); ++t < n; ) {\n var r = e[t];\n this.set(r[0], r[1]);\n }\n}\nae.prototype.clear = Us;\nae.prototype.delete = Ws;\nae.prototype.get = Hs;\nae.prototype.has = Ys;\nae.prototype.set = Bs;\nvar Gs = \"Expected a function\";\nfunction xt(e, t) {\n if (typeof e != \"function\" || t != null && typeof t != \"function\")\n throw new TypeError(Gs);\n var n = function() {\n var r = arguments, a = t ? t.apply(this, r) : r[0], o = n.cache;\n if (o.has(a))\n return o.get(a);\n var i = e.apply(this, r);\n return n.cache = o.set(a, i) || o, i;\n };\n return n.cache = new (xt.Cache || ae)(), n;\n}\nxt.Cache = ae;\nvar qs = 500;\nfunction Vs(e) {\n var t = xt(e, function(r) {\n return n.size === qs && n.clear(), r;\n }), n = t.cache;\n return t;\n}\nvar zs = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g, Qs = /\\\\(\\\\)?/g, Xs = Vs(function(e) {\n var t = [];\n return e.charCodeAt(0) === 46 && t.push(\"\"), e.replace(zs, function(n, r, a, o) {\n t.push(a ? o.replace(Qs, \"$1\") : r || n);\n }), t;\n});\nconst ks = Xs;\nfunction Ks(e) {\n return e == null ? \"\" : Dn(e);\n}\nfunction Hn(e, t) {\n return G(e) ? e : Dt(e, t) ? [e] : ks(Ks(e));\n}\nvar Js = 1 / 0;\nfunction ut(e) {\n if (typeof e == \"string\" || Pt(e))\n return e;\n var t = e + \"\";\n return t == \"0\" && 1 / e == -Js ? \"-0\" : t;\n}\nfunction Yn(e, t) {\n t = Hn(t, e);\n for (var n = 0, r = t.length; e != null && n < r; )\n e = e[ut(t[n++])];\n return n && n == r ? e : void 0;\n}\nfunction Zs(e, t, n) {\n var r = e == null ? void 0 : Yn(e, t);\n return r === void 0 ? n : r;\n}\nfunction Lt(e, t) {\n for (var n = -1, r = t.length, a = e.length; ++n < r; )\n e[a + n] = t[n];\n return e;\n}\nvar rn = z ? z.isConcatSpreadable : void 0;\nfunction eu(e) {\n return G(e) || _e(e) || !!(rn && e && e[rn]);\n}\nfunction Bn(e, t, n, r, a) {\n var o = -1, i = e.length;\n for (n || (n = eu), a || (a = []); ++o < i; ) {\n var u = e[o];\n t > 0 && n(u) ? t > 1 ? Bn(u, t - 1, n, r, a) : Lt(a, u) : r || (a[a.length] = u);\n }\n return a;\n}\nvar tu = jn(Object.getPrototypeOf, Object);\nconst It = tu;\nvar nu = \"[object Object]\", ru = Function.prototype, au = Object.prototype, Gn = ru.toString, ou = au.hasOwnProperty, iu = Gn.call(Object);\nfunction su(e) {\n if (!J(e) || ve(e) != nu)\n return !1;\n var t = It(e);\n if (t === null)\n return !0;\n var n = ou.call(t, \"constructor\") && t.constructor;\n return typeof n == \"function\" && n instanceof n && Gn.call(n) == iu;\n}\nfunction uu() {\n this.__data__ = new re(), this.size = 0;\n}\nfunction lu(e) {\n var t = this.__data__, n = t.delete(e);\n return this.size = t.size, n;\n}\nfunction cu(e) {\n return this.__data__.get(e);\n}\nfunction fu(e) {\n return this.__data__.has(e);\n}\nvar du = 200;\nfunction hu(e, t) {\n var n = this.__data__;\n if (n instanceof re) {\n var r = n.__data__;\n if (!Ue || r.length < du - 1)\n return r.push([e, t]), this.size = ++n.size, this;\n n = this.__data__ = new ae(r);\n }\n return n.set(e, t), this.size = n.size, this;\n}\nfunction X(e) {\n var t = this.__data__ = new re(e);\n this.size = t.size;\n}\nX.prototype.clear = uu;\nX.prototype.delete = lu;\nX.prototype.get = cu;\nX.prototype.has = fu;\nX.prototype.set = hu;\nfunction gu(e, t) {\n return e && He(t, ot(t), e);\n}\nfunction mu(e, t) {\n return e && He(t, Be(t), e);\n}\nvar qn = typeof exports == \"object\" && exports && !exports.nodeType && exports, an = qn && typeof module == \"object\" && module && !module.nodeType && module, pu = an && an.exports === qn, on = pu ? ee.Buffer : void 0, sn = on ? on.allocUnsafe : void 0;\nfunction Vn(e, t) {\n if (t)\n return e.slice();\n var n = e.length, r = sn ? sn(n) : new e.constructor(n);\n return e.copy(r), r;\n}\nfunction yu(e, t) {\n for (var n = -1, r = e == null ? 0 : e.length, a = 0, o = []; ++n < r; ) {\n var i = e[n];\n t(i, n, e) && (o[a++] = i);\n }\n return o;\n}\nfunction zn() {\n return [];\n}\nvar vu = Object.prototype, bu = vu.propertyIsEnumerable, un = Object.getOwnPropertySymbols, wu = un ? function(e) {\n return e == null ? [] : (e = Object(e), yu(un(e), function(t) {\n return bu.call(e, t);\n }));\n} : zn;\nconst Nt = wu;\nfunction Tu(e, t) {\n return He(e, Nt(e), t);\n}\nvar Su = Object.getOwnPropertySymbols, Ou = Su ? function(e) {\n for (var t = []; e; )\n Lt(t, Nt(e)), e = It(e);\n return t;\n} : zn;\nconst Qn = Ou;\nfunction Pu(e, t) {\n return He(e, Qn(e), t);\n}\nfunction Xn(e, t, n) {\n var r = t(e);\n return G(e) ? r : Lt(r, n(e));\n}\nfunction vt(e) {\n return Xn(e, ot, Nt);\n}\nfunction Eu(e) {\n return Xn(e, Be, Qn);\n}\nvar _u = we(ee, \"DataView\");\nconst bt = _u;\nvar Cu = we(ee, \"Promise\");\nconst wt = Cu;\nvar Mu = we(ee, \"Set\");\nconst Ee = Mu;\nvar ln = \"[object Map]\", $u = \"[object Object]\", cn = \"[object Promise]\", fn = \"[object Set]\", dn = \"[object WeakMap]\", hn = \"[object DataView]\", Au = be(bt), Du = be(Ue), xu = be(wt), Lu = be(Ee), Iu = be(yt), he = ve;\n(bt && he(new bt(new ArrayBuffer(1))) != hn || Ue && he(new Ue()) != ln || wt && he(wt.resolve()) != cn || Ee && he(new Ee()) != fn || yt && he(new yt()) != dn) && (he = function(e) {\n var t = ve(e), n = t == $u ? e.constructor : void 0, r = n ? be(n) : \"\";\n if (r)\n switch (r) {\n case Au:\n return hn;\n case Du:\n return ln;\n case xu:\n return cn;\n case Lu:\n return fn;\n case Iu:\n return dn;\n }\n return t;\n});\nconst $e = he;\nvar Nu = Object.prototype, Ru = Nu.hasOwnProperty;\nfunction Fu(e) {\n var t = e.length, n = new e.constructor(t);\n return t && typeof e[0] == \"string\" && Ru.call(e, \"index\") && (n.index = e.index, n.input = e.input), n;\n}\nvar Uu = ee.Uint8Array;\nconst et = Uu;\nfunction Rt(e) {\n var t = new e.constructor(e.byteLength);\n return new et(t).set(new et(e)), t;\n}\nfunction ju(e, t) {\n var n = t ? Rt(e.buffer) : e.buffer;\n return new e.constructor(n, e.byteOffset, e.byteLength);\n}\nvar Wu = /\\w*$/;\nfunction Hu(e) {\n var t = new e.constructor(e.source, Wu.exec(e));\n return t.lastIndex = e.lastIndex, t;\n}\nvar gn = z ? z.prototype : void 0, mn = gn ? gn.valueOf : void 0;\nfunction Yu(e) {\n return mn ? Object(mn.call(e)) : {};\n}\nfunction kn(e, t) {\n var n = t ? Rt(e.buffer) : e.buffer;\n return new e.constructor(n, e.byteOffset, e.length);\n}\nvar Bu = \"[object Boolean]\", Gu = \"[object Date]\", qu = \"[object Map]\", Vu = \"[object Number]\", zu = \"[object RegExp]\", Qu = \"[object Set]\", Xu = \"[object String]\", ku = \"[object Symbol]\", Ku = \"[object ArrayBuffer]\", Ju = \"[object DataView]\", Zu = \"[object Float32Array]\", el = \"[object Float64Array]\", tl = \"[object Int8Array]\", nl = \"[object Int16Array]\", rl = \"[object Int32Array]\", al = \"[object Uint8Array]\", ol = \"[object Uint8ClampedArray]\", il = \"[object Uint16Array]\", sl = \"[object Uint32Array]\";\nfunction ul(e, t, n) {\n var r = e.constructor;\n switch (t) {\n case Ku:\n return Rt(e);\n case Bu:\n case Gu:\n return new r(+e);\n case Ju:\n return ju(e, n);\n case Zu:\n case el:\n case tl:\n case nl:\n case rl:\n case al:\n case ol:\n case il:\n case sl:\n return kn(e, n);\n case qu:\n return new r();\n case Vu:\n case Xu:\n return new r(e);\n case zu:\n return Hu(e);\n case Qu:\n return new r();\n case ku:\n return Yu(e);\n }\n}\nfunction Kn(e) {\n return typeof e.constructor == \"function\" && !rt(e) ? Xo(It(e)) : {};\n}\nvar ll = \"[object Map]\";\nfunction cl(e) {\n return J(e) && $e(e) == ll;\n}\nvar pn = Me && Me.isMap, fl = pn ? At(pn) : cl;\nconst dl = fl;\nvar hl = \"[object Set]\";\nfunction gl(e) {\n return J(e) && $e(e) == hl;\n}\nvar yn = Me && Me.isSet, ml = yn ? At(yn) : gl;\nconst pl = ml;\nvar yl = 1, vl = 2, bl = 4, Jn = \"[object Arguments]\", wl = \"[object Array]\", Tl = \"[object Boolean]\", Sl = \"[object Date]\", Ol = \"[object Error]\", Zn = \"[object Function]\", Pl = \"[object GeneratorFunction]\", El = \"[object Map]\", _l = \"[object Number]\", er = \"[object Object]\", Cl = \"[object RegExp]\", Ml = \"[object Set]\", $l = \"[object String]\", Al = \"[object Symbol]\", Dl = \"[object WeakMap]\", xl = \"[object ArrayBuffer]\", Ll = \"[object DataView]\", Il = \"[object Float32Array]\", Nl = \"[object Float64Array]\", Rl = \"[object Int8Array]\", Fl = \"[object Int16Array]\", Ul = \"[object Int32Array]\", jl = \"[object Uint8Array]\", Wl = \"[object Uint8ClampedArray]\", Hl = \"[object Uint16Array]\", Yl = \"[object Uint32Array]\", L = {};\nL[Jn] = L[wl] = L[xl] = L[Ll] = L[Tl] = L[Sl] = L[Il] = L[Nl] = L[Rl] = L[Fl] = L[Ul] = L[El] = L[_l] = L[er] = L[Cl] = L[Ml] = L[$l] = L[Al] = L[jl] = L[Wl] = L[Hl] = L[Yl] = !0;\nL[Ol] = L[Zn] = L[Dl] = !1;\nfunction Xe(e, t, n, r, a, o) {\n var i, u = t & yl, l = t & vl, g = t & bl;\n if (n && (i = a ? n(e, r, a, o) : n(e)), i !== void 0)\n return i;\n if (!ne(e))\n return e;\n var f = G(e);\n if (f) {\n if (i = Fu(e), !u)\n return xn(e, i);\n } else {\n var m = $e(e), v = m == Zn || m == Pl;\n if (Ce(e))\n return Vn(e, u);\n if (m == er || m == Jn || v && !a) {\n if (i = l || v ? {} : Kn(e), !u)\n return l ? Pu(e, mu(i, e)) : Tu(e, gu(i, e));\n } else {\n if (!L[m])\n return a ? e : {};\n i = ul(e, m, u);\n }\n }\n o || (o = new X());\n var C = o.get(e);\n if (C)\n return C;\n o.set(e, i), pl(e) ? e.forEach(function(P) {\n i.add(Xe(P, t, n, P, e, o));\n }) : dl(e) && e.forEach(function(P, U) {\n i.set(U, Xe(P, t, n, U, e, o));\n });\n var M = g ? l ? Eu : vt : l ? Be : ot, x = f ? void 0 : M(e);\n return ui(x || e, function(P, U) {\n x && (U = P, P = e[U]), Ln(i, U, Xe(P, t, n, U, e, o));\n }), i;\n}\nvar Bl = 1, Gl = 4;\nfunction ql(e) {\n return Xe(e, Bl | Gl);\n}\nvar Vl = \"__lodash_hash_undefined__\";\nfunction zl(e) {\n return this.__data__.set(e, Vl), this;\n}\nfunction Ql(e) {\n return this.__data__.has(e);\n}\nfunction je(e) {\n var t = -1, n = e == null ? 0 : e.length;\n for (this.__data__ = new ae(); ++t < n; )\n this.add(e[t]);\n}\nje.prototype.add = je.prototype.push = zl;\nje.prototype.has = Ql;\nfunction Xl(e, t) {\n for (var n = -1, r = e == null ? 0 : e.length; ++n < r; )\n if (t(e[n], n, e))\n return !0;\n return !1;\n}\nfunction tr(e, t) {\n return e.has(t);\n}\nvar kl = 1, Kl = 2;\nfunction nr(e, t, n, r, a, o) {\n var i = n & kl, u = e.length, l = t.length;\n if (u != l && !(i && l > u))\n return !1;\n var g = o.get(e), f = o.get(t);\n if (g && f)\n return g == t && f == e;\n var m = -1, v = !0, C = n & Kl ? new je() : void 0;\n for (o.set(e, t), o.set(t, e); ++m < u; ) {\n var M = e[m], x = t[m];\n if (r)\n var P = i ? r(x, M, m, t, e, o) : r(M, x, m, e, t, o);\n if (P !== void 0) {\n if (P)\n continue;\n v = !1;\n break;\n }\n if (C) {\n if (!Xl(t, function(U, q) {\n if (!tr(C, q) && (M === U || a(M, U, n, r, o)))\n return C.push(q);\n })) {\n v = !1;\n break;\n }\n } else if (!(M === x || a(M, x, n, r, o))) {\n v = !1;\n break;\n }\n }\n return o.delete(e), o.delete(t), v;\n}\nfunction Jl(e) {\n var t = -1, n = Array(e.size);\n return e.forEach(function(r, a) {\n n[++t] = [a, r];\n }), n;\n}\nfunction Ft(e) {\n var t = -1, n = Array(e.size);\n return e.forEach(function(r) {\n n[++t] = r;\n }), n;\n}\nvar Zl = 1, ec = 2, tc = \"[object Boolean]\", nc = \"[object Date]\", rc = \"[object Error]\", ac = \"[object Map]\", oc = \"[object Number]\", ic = \"[object RegExp]\", sc = \"[object Set]\", uc = \"[object String]\", lc = \"[object Symbol]\", cc = \"[object ArrayBuffer]\", fc = \"[object DataView]\", vn = z ? z.prototype : void 0, ht = vn ? vn.valueOf : void 0;\nfunction dc(e, t, n, r, a, o, i) {\n switch (n) {\n case fc:\n if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset)\n return !1;\n e = e.buffer, t = t.buffer;\n case cc:\n return !(e.byteLength != t.byteLength || !o(new et(e), new et(t)));\n case tc:\n case nc:\n case oc:\n return We(+e, +t);\n case rc:\n return e.name == t.name && e.message == t.message;\n case ic:\n case uc:\n return e == t + \"\";\n case ac:\n var u = Jl;\n case sc:\n var l = r & Zl;\n if (u || (u = Ft), e.size != t.size && !l)\n return !1;\n var g = i.get(e);\n if (g)\n return g == t;\n r |= ec, i.set(e, t);\n var f = nr(u(e), u(t), r, a, o, i);\n return i.delete(e), f;\n case lc:\n if (ht)\n return ht.call(e) == ht.call(t);\n }\n return !1;\n}\nvar hc = 1, gc = Object.prototype, mc = gc.hasOwnProperty;\nfunction pc(e, t, n, r, a, o) {\n var i = n & hc, u = vt(e), l = u.length, g = vt(t), f = g.length;\n if (l != f && !i)\n return !1;\n for (var m = l; m--; ) {\n var v = u[m];\n if (!(i ? v in t : mc.call(t, v)))\n return !1;\n }\n var C = o.get(e), M = o.get(t);\n if (C && M)\n return C == t && M == e;\n var x = !0;\n o.set(e, t), o.set(t, e);\n for (var P = i; ++m < l; ) {\n v = u[m];\n var U = e[v], q = t[v];\n if (r)\n var oe = i ? r(q, U, v, t, e, o) : r(U, q, v, e, t, o);\n if (!(oe === void 0 ? U === q || a(U, q, n, r, o) : oe)) {\n x = !1;\n break;\n }\n P || (P = v == \"constructor\");\n }\n if (x && !P) {\n var V = e.constructor, Q = t.constructor;\n V != Q && \"constructor\" in e && \"constructor\" in t && !(typeof V == \"function\" && V instanceof V && typeof Q == \"function\" && Q instanceof Q) && (x = !1);\n }\n return o.delete(e), o.delete(t), x;\n}\nvar yc = 1, bn = \"[object Arguments]\", wn = \"[object Array]\", Ve = \"[object Object]\", vc = Object.prototype, Tn = vc.hasOwnProperty;\nfunction bc(e, t, n, r, a, o) {\n var i = G(e), u = G(t), l = i ? wn : $e(e), g = u ? wn : $e(t);\n l = l == bn ? Ve : l, g = g == bn ? Ve : g;\n var f = l == Ve, m = g == Ve, v = l == g;\n if (v && Ce(e)) {\n if (!Ce(t))\n return !1;\n i = !0, f = !1;\n }\n if (v && !f)\n return o || (o = new X()), i || at(e) ? nr(e, t, n, r, a, o) : dc(e, t, l, n, r, a, o);\n if (!(n & yc)) {\n var C = f && Tn.call(e, \"__wrapped__\"), M = m && Tn.call(t, \"__wrapped__\");\n if (C || M) {\n var x = C ? e.value() : e, P = M ? t.value() : t;\n return o || (o = new X()), a(x, P, n, r, o);\n }\n }\n return v ? (o || (o = new X()), pc(e, t, n, r, a, o)) : !1;\n}\nfunction Ut(e, t, n, r, a) {\n return e === t ? !0 : e == null || t == null || !J(e) && !J(t) ? e !== e && t !== t : bc(e, t, n, r, Ut, a);\n}\nvar wc = 1, Tc = 2;\nfunction Sc(e, t, n, r) {\n var a = n.length, o = a, i = !r;\n if (e == null)\n return !o;\n for (e = Object(e); a--; ) {\n var u = n[a];\n if (i && u[2] ? u[1] !== e[u[0]] : !(u[0] in e))\n return !1;\n }\n for (; ++a < o; ) {\n u = n[a];\n var l = u[0], g = e[l], f = u[1];\n if (i && u[2]) {\n if (g === void 0 && !(l in e))\n return !1;\n } else {\n var m = new X();\n if (r)\n var v = r(g, f, l, e, t, m);\n if (!(v === void 0 ? Ut(f, g, wc | Tc, r, m) : v))\n return !1;\n }\n }\n return !0;\n}\nfunction rr(e) {\n return e === e && !ne(e);\n}\nfunction Oc(e) {\n for (var t = ot(e), n = t.length; n--; ) {\n var r = t[n], a = e[r];\n t[n] = [r, a, rr(a)];\n }\n return t;\n}\nfunction ar(e, t) {\n return function(n) {\n return n == null ? !1 : n[e] === t && (t !== void 0 || e in Object(n));\n };\n}\nfunction Pc(e) {\n var t = Oc(e);\n return t.length == 1 && t[0][2] ? ar(t[0][0], t[0][1]) : function(n) {\n return n === e || Sc(n, e, t);\n };\n}\nfunction Ec(e, t) {\n return e != null && t in Object(e);\n}\nfunction _c(e, t, n) {\n t = Hn(t, e);\n for (var r = -1, a = t.length, o = !1; ++r < a; ) {\n var i = ut(t[r]);\n if (!(o = e != null && n(e, i)))\n break;\n e = e[i];\n }\n return o || ++r != a ? o : (a = e == null ? 0 : e.length, !!a && $t(a) && Ct(i, a) && (G(e) || _e(e)));\n}\nfunction Cc(e, t) {\n return e != null && _c(e, t, Ec);\n}\nvar Mc = 1, $c = 2;\nfunction Ac(e, t) {\n return Dt(e) && rr(t) ? ar(ut(e), t) : function(n) {\n var r = Zs(n, e);\n return r === void 0 && r === t ? Cc(n, e) : Ut(t, r, Mc | $c);\n };\n}\nfunction Dc(e) {\n return function(t) {\n return t == null ? void 0 : t[e];\n };\n}\nfunction xc(e) {\n return function(t) {\n return Yn(t, e);\n };\n}\nfunction Lc(e) {\n return Dt(e) ? Dc(ut(e)) : xc(e);\n}\nfunction Ic(e) {\n return typeof e == \"function\" ? e : e == null ? Et : typeof e == \"object\" ? G(e) ? Ac(e[0], e[1]) : Pc(e) : Lc(e);\n}\nfunction Nc(e) {\n return function(t, n, r) {\n for (var a = -1, o = Object(t), i = r(t), u = i.length; u--; ) {\n var l = i[e ? u : ++a];\n if (n(o[l], l, o) === !1)\n break;\n }\n return t;\n };\n}\nvar Rc = Nc();\nconst Fc = Rc;\nfunction Tt(e, t, n) {\n (n !== void 0 && !We(e[t], n) || n === void 0 && !(t in e)) && Mt(e, t, n);\n}\nfunction St(e) {\n return J(e) && Ye(e);\n}\nfunction Ot(e, t) {\n if (!(t === \"constructor\" && typeof e[t] == \"function\") && t != \"__proto__\")\n return e[t];\n}\nfunction Uc(e) {\n return He(e, Be(e));\n}\nfunction jc(e, t, n, r, a, o, i) {\n var u = Ot(e, n), l = Ot(t, n), g = i.get(l);\n if (g) {\n Tt(e, n, g);\n return;\n }\n var f = o ? o(u, l, n + \"\", e, t, i) : void 0, m = f === void 0;\n if (m) {\n var v = G(l), C = !v && Ce(l), M = !v && !C && at(l);\n f = l, v || C || M ? G(u) ? f = u : St(u) ? f = xn(u) : C ? (m = !1, f = Vn(l, !0)) : M ? (m = !1, f = kn(l, !0)) : f = [] : su(l) || _e(l) ? (f = u, _e(u) ? f = Uc(u) : (!ne(u) || _t(u)) && (f = Kn(l))) : m = !1;\n }\n m && (i.set(l, f), a(f, l, r, o, i), i.delete(l)), Tt(e, n, f);\n}\nfunction or(e, t, n, r, a) {\n e !== t && Fc(t, function(o, i) {\n if (a || (a = new X()), ne(o))\n jc(e, t, i, n, or, r, a);\n else {\n var u = r ? r(Ot(e, i), o, i + \"\", e, t, a) : void 0;\n u === void 0 && (u = o), Tt(e, i, u);\n }\n }, Be);\n}\nfunction Wc(e, t, n) {\n for (var r = -1, a = e == null ? 0 : e.length; ++r < a; )\n if (n(t, e[r]))\n return !0;\n return !1;\n}\nfunction Hc(e) {\n var t = e == null ? 0 : e.length;\n return t ? e[t - 1] : void 0;\n}\nvar Yc = \"[object Map]\", Bc = \"[object Set]\", Gc = Object.prototype, qc = Gc.hasOwnProperty;\nfunction Vc(e) {\n if (e == null)\n return !0;\n if (Ye(e) && (G(e) || typeof e == \"string\" || typeof e.splice == \"function\" || Ce(e) || at(e) || _e(e)))\n return !e.length;\n var t = $e(e);\n if (t == Yc || t == Bc)\n return !e.size;\n if (rt(e))\n return !Wn(e).length;\n for (var n in e)\n if (qc.call(e, n))\n return !1;\n return !0;\n}\nvar zc = Ti(function(e, t, n) {\n or(e, t, n);\n});\nconst _ = zc;\nvar Qc = 1 / 0, Xc = Ee && 1 / Ft(new Ee([, -0]))[1] == Qc ? function(e) {\n return new Ee(e);\n} : Ko;\nconst kc = Xc;\nvar Kc = 200;\nfunction ir(e, t, n) {\n var r = -1, a = hi, o = e.length, i = !0, u = [], l = u;\n if (n)\n i = !1, a = Wc;\n else if (o >= Kc) {\n var g = t ? null : kc(e);\n if (g)\n return Ft(g);\n i = !1, a = tr, l = new je();\n } else\n l = t ? [] : u;\n e:\n for (; ++r < o; ) {\n var f = e[r], m = t ? t(f) : f;\n if (f = n || f !== 0 ? f : 0, i && m === m) {\n for (var v = l.length; v--; )\n if (l[v] === m)\n continue e;\n t && l.push(m), u.push(f);\n } else\n a(l, m, n) || (l !== u && l.push(m), u.push(f));\n }\n return u;\n}\nvar Jc = In(function(e) {\n var t = Hc(e);\n return St(t) && (t = void 0), ir(Bn(e, 1, St, !0), Ic(t));\n});\nconst Zc = Jc;\nfunction ef(e) {\n return e && e.length ? ir(e) : [];\n}\nconst tf = ql, Wf = ef;\nfunction Hf(e, t, n) {\n let r = null;\n return (...a) => {\n const o = this;\n o.mousePosition = Er(a[0], n), clearTimeout(r), r = setTimeout(function() {\n e.apply(o, a);\n }, t);\n };\n}\nfunction Yf(e, t) {\n var a;\n const n = tf(e), r = Object.keys(t.axes || {});\n (a = t == null ? void 0 : t.toolbar) != null && a.controls && delete n.toolbar.controls, r.length === 0 && delete n.axes;\n for (const o in n.axes)\n if (r.includes(o)) {\n const i = t.axes[o];\n (i.primary || i.secondary) && console.warn(\n \"`primary` & `secondary` are no longer needed for axis configurations. Read more here https://carbon-design-system.github.io/carbon-charts/?path=/story/docs-tutorials--tabular-data-format\"\n );\n const u = i.mapsTo;\n if (u == null) {\n const l = i.scaleType;\n l == null ? i.mapsTo = \"value\" : l === Yt.TIME ? i.mapsTo = \"date\" : l === Yt.LABELS && (i.mapsTo = \"key\");\n }\n } else\n delete n.axes[o];\n return nf(n, t), _(n, t);\n}\nfunction Bf(e) {\n if (!e)\n return;\n const t = /translate\\([0-9]+\\.?[0-9]*,[0-9]+\\.?[0-9]*\\)/, n = e.getAttribute(\"transform\").match(t);\n if (!n)\n return null;\n if (n[0]) {\n const r = n[0].replace(/translate\\(/, \"\").replace(/\\)/, \"\").split(\",\");\n return {\n tx: r[0],\n ty: r[1]\n };\n }\n return null;\n}\nfunction Gf(e) {\n const n = /\\(([^)]+)\\)/.exec(e);\n if (n && n.length > 1) {\n const r = n[1].split(\",\");\n if (r.length > 1)\n return {\n x: parseFloat(r[0]),\n y: parseFloat(r[1])\n };\n }\n return { x: 0, y: 0 };\n}\nfunction qf(e, t, n = \"value\") {\n const r = e / t.reduce((a, o) => a + o[n], 0) * 100;\n return r % 1 !== 0 ? parseFloat(r.toFixed(1)) : r;\n}\nfunction Vf(e, t, n) {\n if (n > e.length)\n return e;\n if (t === Qe.MID_LINE)\n return e.substr(0, n / 2) + \"...\" + e.substr(-n / 2);\n if (t === Qe.FRONT_LINE)\n return \"...\" + e.substr(-n);\n if (t === Qe.END_LINE)\n return e.substr(0, n) + \"...\";\n}\nfunction nf(e, t) {\n const n = ge(e, \"legend\", \"additionalItems\"), r = ge(t, \"legend\", \"additionalItems\");\n if (n && r) {\n const a = r.map((u) => u.type), o = n.map((u) => u.type), i = Mn.filter(\n (u) => o.includes(u.type) && !a.includes(u.type)\n );\n e.legend.additionalItems = i, t.legend.additionalItems = Zc(\n i,\n r,\n \"name\"\n );\n }\n}\nconst ge = (e, ...t) => {\n let n = e;\n if (n) {\n for (const r of t)\n if (n[r] !== null && n[r] !== void 0)\n n = n[r];\n else\n return null;\n return n;\n }\n return null;\n}, rf = (e, t) => t === Sn.HORIZONTAL ? {\n y0: e.x0,\n y1: e.x1,\n x0: e.y0,\n x1: e.y1\n} : e, zf = (e, t) => {\n const { x0: n, x1: r, y0: a, y1: o } = rf(e, t);\n return `M${n},${a}L${n},${o}L${r},${o}L${r},${a}L${n},${a}`;\n};\nfunction Qf(e, t, n) {\n return n === Sn.VERTICAL ? [e, t] : [t, e];\n}\nconst Pe = {\n type: Qe.END_LINE,\n threshold: 16,\n numCharacter: 14\n}, af = {\n enabled: !0,\n position: Ar.BOTTOM,\n clickable: !0,\n truncation: Pe,\n alignment: Ae.LEFT,\n order: null,\n additionalItems: []\n}, sr = {\n x: {\n // set enable to false will not draw grid and stroke of grid backdrop\n enabled: !0,\n numberOfTicks: 15,\n alignWithAxisTicks: !1\n },\n y: {\n // set enable to false will not draw grid and stroke of grid backdrop\n enabled: !0,\n numberOfTicks: 5,\n alignWithAxisTicks: !1\n }\n}, ur = {\n // enable or disable ruler\n enabled: !0\n}, jt = {\n enabled: !0,\n showTotal: !0,\n truncation: Pe,\n groupLabel: \"Group\"\n}, lr = {\n top: {\n visible: !0,\n includeZero: !0,\n truncation: Pe\n },\n bottom: {\n visible: !0,\n includeZero: !0,\n truncation: Pe\n },\n left: {\n visible: !0,\n includeZero: !0,\n truncation: Pe\n },\n right: {\n visible: !0,\n includeZero: !0,\n truncation: Pe\n }\n}, Ge = {\n addSpaceOnEdges: 1,\n showDayName: !1,\n localeObject: _n,\n timeIntervalFormats: {\n \"15seconds\": { primary: \"MMM d, pp\", secondary: \"pp\" },\n minute: { primary: \"MMM d, p\", secondary: \"p\" },\n \"30minutes\": { primary: \"MMM d, p\", secondary: \"p\" },\n hourly: { primary: \"MMM d, hh a\", secondary: \"hh a\" },\n daily: { primary: \"MMM d\", secondary: \"d\" },\n weekly: { primary: \"eee, MMM d\", secondary: \"eee\" },\n monthly: { primary: \"MMM yyyy\", secondary: \"MMM\" },\n quarterly: { primary: \"QQQ ''yy\", secondary: \"QQQ\" },\n yearly: { primary: \"yyyy\", secondary: \"yyyy\" }\n }\n}, of = typeof document < \"u\" && (document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled), Y = {\n width: null,\n height: null,\n resizable: !0,\n theme: Dr.WHITE,\n tooltip: jt,\n legend: af,\n style: {\n prefix: \"cc\"\n },\n data: {\n groupMapsTo: \"group\",\n loading: !1,\n selectedGroups: []\n },\n color: {\n scale: null,\n pairing: {\n numberOfVariants: null,\n option: 1\n },\n gradient: {\n enabled: !1\n }\n },\n toolbar: {\n enabled: !0,\n numberOfIcons: 3,\n controls: [\n {\n type: De.SHOW_AS_DATATABLE\n },\n ...of ? [\n {\n type: De.MAKE_FULLSCREEN\n }\n ] : [],\n {\n type: De.EXPORT_CSV\n },\n {\n type: De.EXPORT_PNG\n },\n {\n type: De.EXPORT_JPG\n }\n ]\n }\n}, cr = _({}, Y, {\n thematic: {\n projection: xr.geoNaturalEarth1\n }\n}), qe = _({}, Y, {\n axes: lr,\n timeScale: Ge,\n grid: sr,\n ruler: ur,\n zoomBar: {\n zoomRatio: 0.4,\n minZoomRatio: 0.01,\n top: {\n enabled: !1,\n type: mt.GRAPH_VIEW\n }\n }\n}), ye = _({}, qe, {\n bars: {\n maxWidth: 16,\n spacingFactor: 0.25\n },\n timeScale: _(Ge, {\n addSpaceOnEdges: 1\n })\n}), sf = _({}, ye, {}), uf = _({}, ye, {}), lf = _({}, ye, {\n bars: _({}, ye.bars, {\n dividerSize: 1.5\n })\n}), cf = _({}, ye, {}), Wt = _({}, qe, {\n points: {\n // default point radius to 4\n radius: 4,\n fillOpacity: 0.3,\n filled: !0,\n enabled: !0\n }\n}), ff = Wt, fr = _({}, Wt, {\n points: {\n // default point radius to 3\n radius: 3,\n filled: !1,\n enabled: !0\n }\n}), dr = _({}, fr, {\n timeScale: _(Ge, {\n addSpaceOnEdges: 0\n })\n}), df = dr, hf = _({}, qe, {\n bubble: {\n radiusMapsTo: \"radius\",\n radiusLabel: \"Radius\",\n radiusRange: (e) => {\n const t = Math.min(e.width, e.height);\n return [t * 3 / 400, t * 25 / 400];\n },\n fillOpacity: 0.2,\n enabled: !0\n },\n points: {\n filled: !0\n },\n legend: {\n additionalItems: [\n {\n type: K.RADIUS,\n name: \"Radius\"\n }\n ]\n }\n}), gf = _({}, qe, {\n bullet: {\n performanceAreaTitles: [\"Poor\", \"Satisfactory\", \"Great\"]\n },\n grid: {\n x: {\n enabled: !1\n },\n y: {\n enabled: !1\n }\n },\n legend: {\n additionalItems: [\n {\n type: K.AREA,\n name: \"Poor area\"\n },\n {\n type: K.AREA,\n name: \"Satisfactory area\"\n },\n {\n type: K.AREA,\n name: \"Great area\"\n },\n {\n type: K.QUARTILE,\n name: \"Quartiles\"\n }\n ]\n }\n}), mf = _({}, ye, {\n bars: {\n dividerSize: 1.5\n },\n timeScale: _(Ge, {\n addSpaceOnEdges: 0\n })\n}), pf = _({}, Y, {\n tooltip: _({}, jt, {\n wordLabel: \"Word\",\n valueLabel: \"Value\"\n }),\n wordCloud: {\n fontSizeMapsTo: \"value\",\n fontSizeRange: (e) => {\n const t = Math.min(e.width, e.height);\n return [t * 20 / 400, t * 75 / 400];\n },\n wordMapsTo: \"word\"\n }\n}), hr = _({}, Y, {\n pie: {\n labels: {\n formatter: null,\n enabled: !0\n },\n alignment: Ae.LEFT,\n sortFunction: null,\n valueMapsTo: \"value\"\n }\n}), yf = _({}, Y, {\n legend: {\n enabled: !1\n },\n gauge: {\n type: Lr.SEMI,\n arcWidth: 16,\n deltaArrow: {\n size: (e) => e / 8,\n enabled: !0\n },\n showPercentageSymbol: !0,\n status: null,\n numberSpacing: 10,\n deltaFontSize: (e) => e / 8,\n valueFontSize: (e) => e / 2.5,\n numberFormatter: (e) => Number(e.toFixed(2)) % 1 !== 0 ? e.toFixed(2).toLocaleString() : e.toFixed().toLocaleString(),\n alignment: Ae.LEFT\n }\n}), vf = _({}, hr, {\n donut: {\n center: {\n numberFontSize: (e) => `${Math.min(e / 100 * 24, 24)}px`,\n titleFontSize: (e) => `${Math.min(e / 100 * 15, 15)}px`,\n titleYPosition: (e) => Math.min(e / 80 * 20, 20),\n numberFormatter: (e) => Math.floor(e).toLocaleString()\n },\n alignment: Ae.LEFT\n }\n}), gr = _({}, Y, {\n legend: {\n enabled: !1,\n clickable: !1\n },\n meter: {\n showLabels: !0,\n proportional: null,\n statusBar: {\n percentageIndicator: {\n enabled: !0\n }\n }\n }\n}), bf = _({}, gr, {\n legend: {\n enabled: !0\n }\n}), wf = _({}, Y, {\n radar: {\n axes: {\n angle: \"key\",\n value: \"value\"\n },\n alignment: Ae.LEFT\n },\n tooltip: {\n gridline: {\n enabled: !0\n },\n valueFormatter: (e) => e ?? \"N/A\"\n }\n}), Tf = _({}, ye, {\n comboChartTypes: []\n}), Sf = _(\n {\n tree: {\n type: Ir.TREE\n }\n },\n Y,\n {}\n), Of = _({}, Y, {\n data: _(Y.data, {\n groupMapsTo: \"name\"\n })\n}), Pf = _({}, Y, Cn, {\n data: _(Y.data, {\n groupMapsTo: \"name\"\n })\n}), Ef = _({}, Y, {\n alluvial: {\n data: _(Y.data, {\n groupMapsTo: \"source\"\n }),\n nodeAlignment: Ae.CENTER,\n nodePadding: 24,\n monochrome: !1,\n nodes: []\n }\n}), _f = _({}, Y, {\n axes: lr,\n heatmap: {\n divider: {\n state: Nr.AUTO\n },\n colorLegend: {\n type: \"linear\"\n }\n }\n}), Cf = _({}, cr, {\n choropleth: {\n colorLegend: {\n type: \"linear\"\n }\n }\n}), Mf = {\n alluvialChart: Ef,\n areaChart: dr,\n axisChart: qe,\n boxplotChart: cf,\n bubbleChart: hf,\n bulletChart: gf,\n chart: Y,\n circlePackChart: Pf,\n choroplethChart: Cf,\n comboChart: Tf,\n donutChart: vf,\n gaugeChart: yf,\n groupedBarChart: uf,\n heatmapChart: _f,\n histogramChart: mf,\n lineChart: fr,\n lollipopChart: ff,\n meterChart: gr,\n pieChart: hr,\n proportionalMeterChart: bf,\n radarChart: wf,\n scatterChart: Wt,\n simpleBarChart: sf,\n stackedAreaChart: df,\n stackedBarChart: lf,\n thematicChart: cr,\n treeChart: Sf,\n treemapChart: Of,\n wordCloudChart: pf\n}, Xf = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n alluvial: io,\n area: Xa,\n axis: ka,\n baseTooltip: jt,\n boxplot: Za,\n canvasZoomSettings: Ka,\n carbonPrefix: Qa,\n circlePack: Cn,\n color: Ja,\n defaultLegendAdditionalItems: Mn,\n grid: sr,\n heatmap: so,\n histogram: eo,\n legend: to,\n lines: no,\n meter: ro,\n options: Mf,\n pie: ao,\n radar: oo,\n ruler: ur,\n spacers: uo,\n timeScale: Ge,\n toolbar: fo,\n tooltips: lo,\n transitions: co,\n zoomBar: ho\n}, Symbol.toStringTag, { value: \"Module\" })), gt = [\n [\"15seconds\", 15 * 1e3],\n [\"minute\", 60 * 1e3],\n [\"30minutes\", 30 * 60 * 1e3],\n [\"hourly\", 60 * 60 * 1e3],\n [\"daily\", 24 * 60 * 60 * 1e3],\n [\"monthly\", 30 * 24 * 60 * 60 * 1e3],\n [\"quarterly\", 3 * 30 * 24 * 60 * 60 * 1e3],\n [\"yearly\", 12 * 30 * 24 * 60 * 60 * 1e3]\n];\nfunction $f(e, t, n, r, a) {\n const o = t === 0, i = Number(pt(new Date(e), \"c\")) === 2, u = Number(pt(new Date(e), \"q\")) === 1, l = t !== 0 ? n[t - 1] : null;\n switch (r) {\n case \"15seconds\":\n return o || ze(e) || Ne(e, l) || fe(e);\n case \"minute\":\n return o || ze(e) || Ne(e, l) || fe(e);\n case \"30minutes\":\n return o || ze(e) || Ne(e, l) || fe(e);\n case \"hourly\":\n return o || ze(e) || Ne(e, l) || fe(e);\n case \"daily\":\n return a ? o || i || fe(e) : o || Ne(e, l) || fe(e);\n case \"monthly\":\n return o || fe(e);\n case \"quarterly\":\n return o || u;\n case \"yearly\":\n return !1;\n default:\n throw new Error(`${r} is not a valid time interval.`);\n }\n}\nfunction kf(e, t, n, r, a) {\n const o = a.showDayName, i = r === \"daily\" && o ? \"weekly\" : r, u = new Date(e), l = ge(a, \"timeIntervalFormats\")[i], g = ge(l, \"primary\"), f = ge(l, \"secondary\");\n let m = $f(e, t, n, r, o) ? g : f;\n r === \"15seconds\" && u.getMilliseconds() !== 0 && (m = m.replace(\"pp\", \"h:mm:ss.SSS a\"));\n const v = a.localeObject;\n return pt(u, m, { locale: v });\n}\nfunction tt(e) {\n const t = new Date(e);\n return {\n M: t.getMonth() + 1,\n // month: 1-12\n d: t.getDate(),\n // day of the month: 1-31\n H: t.getHours(),\n // 24-hour clock: 0-23\n m: t.getMinutes(),\n // minute: 0-59\n s: t.getSeconds()\n // seconds: 0-59\n };\n}\nfunction Af(e) {\n if (e)\n return e.slice(1).map((t, n) => t - e[n]);\n}\nfunction Df(e) {\n const t = gt.reduce((n, [, r], a) => {\n const o = gt[n][1], i = Math.abs(o - e), u = Math.abs(r - e);\n return i < u ? n : a;\n }, 0);\n return gt[t][0];\n}\nfunction Kf(e) {\n if (e.length === 1)\n return \"15seconds\";\n const t = Af(e), n = _r(t);\n return Df(n);\n}\nfunction ze(e) {\n const { s: t, m: n, H: r } = tt(e);\n return r === 0 && n === 0 && t === 0;\n}\nfunction Ne(e, t) {\n const n = tt(e).M, r = tt(t).M;\n return n !== r;\n}\nfunction fe(e) {\n const { M: t, d: n, s: r, m: a, H: o } = tt(e);\n return t === 1 && n === 1 && o === 0 && a === 0 && r === 0;\n}\nfunction Jf(e) {\n return e === void 0 ? \"\" : e.toISOString();\n}\nvar xf = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {};\nfunction Lf(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar mr = { exports: {} };\n/*! dom-to-image-more 26-04-2023 */\n(function(e, t) {\n (function(n) {\n const r = function() {\n let w = 0;\n return { escape: function(s) {\n return s.replace(/([.*+?^${}()|[]\\/\\\\])/g, \"\\\\$1\");\n }, isDataUrl: function(s) {\n return s.search(/^(data:)/) !== -1;\n }, canvasToBlob: function(s) {\n return s.toBlob ? new Promise(function(d) {\n s.toBlob(d);\n }) : function(d) {\n return new Promise(function(h) {\n var p = C(d.toDataURL().split(\",\")[1]), S = p.length, j = new Uint8Array(S);\n for (let $ = 0; $ < S; $++)\n j[$] = p.charCodeAt($);\n h(new Blob([j], { type: \"image/png\" }));\n });\n }(s);\n }, resolveUrl: function(s, d) {\n var h = document.implementation.createHTMLDocument(), p = h.createElement(\"base\"), S = (h.head.appendChild(p), h.createElement(\"a\"));\n return h.body.appendChild(S), p.href = d, S.href = s, S.href;\n }, getAndEncode: function(s) {\n let d = f.impl.urlCache.find(function(h) {\n return h.url === s;\n });\n return d || (d = { url: s, promise: null }, f.impl.urlCache.push(d)), d.promise === null && (f.impl.options.cacheBust && (s += (/\\?/.test(s) ? \"&\" : \"?\") + (/* @__PURE__ */ new Date()).getTime()), d.promise = new Promise(function(h) {\n const p = f.impl.options.httpTimeout, S = new XMLHttpRequest();\n S.onreadystatechange = function() {\n if (S.readyState === 4)\n if (S.status !== 200)\n j ? h(j) : F(`cannot fetch resource: ${s}, status: ` + S.status);\n else {\n const I = new FileReader();\n I.onloadend = function() {\n h(I.result);\n }, I.readAsDataURL(S.response);\n }\n }, S.ontimeout = function() {\n j ? h(j) : F(`timeout of ${p}ms occured while fetching resource: ` + s);\n }, S.responseType = \"blob\", S.timeout = p, f.impl.options.useCredentials && (S.withCredentials = !0), S.open(\"GET\", s, !0), S.send();\n let j;\n var $;\n function F(I) {\n console.error(I), h(\"\");\n }\n f.impl.options.imagePlaceholder && ($ = f.impl.options.imagePlaceholder.split(/,/)) && $[1] && (j = $[1]);\n })), d.promise;\n }, uid: function() {\n return \"u\" + (\"0000\" + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4) + w++;\n }, delay: function(s) {\n return function(d) {\n return new Promise(function(h) {\n setTimeout(function() {\n h(d);\n }, s);\n });\n };\n }, asArray: function(s) {\n var d = [], h = s.length;\n for (let p = 0; p < h; p++)\n d.push(s[p]);\n return d;\n }, escapeXhtml: function(s) {\n return s.replace(/%/g, \"%25\").replace(/#/g, \"%23\").replace(/\\n/g, \"%0A\");\n }, makeImage: function(s) {\n return s !== \"data:,\" ? new Promise(function(d, h) {\n const p = new Image();\n f.impl.options.useCredentials && (p.crossOrigin = \"use-credentials\"), p.onload = function() {\n window && window.requestAnimationFrame ? window.requestAnimationFrame(function() {\n d(p);\n }) : d(p);\n }, p.onerror = h, p.src = s;\n }) : Promise.resolve();\n }, width: function(s) {\n var d = O(s, \"width\");\n if (!isNaN(d))\n return d;\n var d = O(s, \"border-left-width\"), h = O(s, \"border-right-width\");\n return s.scrollWidth + d + h;\n }, height: function(s) {\n var d = O(s, \"height\");\n if (!isNaN(d))\n return d;\n var d = O(s, \"border-top-width\"), h = O(s, \"border-bottom-width\");\n return s.scrollHeight + d + h;\n }, getWindow: c, isElement: T, isElementHostForOpenShadowRoot: function(s) {\n return T(s) && s.shadowRoot !== null;\n }, isShadowRoot: y, isInShadowRoot: E, isHTMLElement: function(s) {\n return s instanceof c(s).HTMLElement;\n }, isHTMLCanvasElement: function(s) {\n return s instanceof c(s).HTMLCanvasElement;\n }, isHTMLInputElement: function(s) {\n return s instanceof c(s).HTMLInputElement;\n }, isHTMLImageElement: function(s) {\n return s instanceof c(s).HTMLImageElement;\n }, isHTMLLinkElement: function(s) {\n return s instanceof c(s).HTMLLinkElement;\n }, isHTMLScriptElement: function(s) {\n return s instanceof c(s).HTMLScriptElement;\n }, isHTMLStyleElement: function(s) {\n return s instanceof c(s).HTMLStyleElement;\n }, isHTMLTextAreaElement: function(s) {\n return s instanceof c(s).HTMLTextAreaElement;\n }, isShadowSlotElement: function(s) {\n return E(s) && s instanceof c(s).HTMLSlotElement;\n }, isSVGElement: function(s) {\n return s instanceof c(s).SVGElement;\n }, isSVGRectElement: function(s) {\n return s instanceof c(s).SVGRectElement;\n }, isDimensionMissing: function(s) {\n return isNaN(s) || s <= 0;\n } };\n function c(s) {\n return s = s ? s.ownerDocument : void 0, (s ? s.defaultView : void 0) || n || window;\n }\n function y(s) {\n return s instanceof c(s).ShadowRoot;\n }\n function E(s) {\n return s !== null && Object.prototype.hasOwnProperty.call(s, \"getRootNode\") && y(s.getRootNode());\n }\n function T(s) {\n return s instanceof c(s).Element;\n }\n function O(s, d) {\n if (s.nodeType === m) {\n let h = v(s).getPropertyValue(d);\n if (h.slice(-2) === \"px\")\n return h = h.slice(0, -2), parseFloat(h);\n }\n return NaN;\n }\n }(), a = function() {\n const w = /url\\(['\"]?([^'\"]+?)['\"]?\\)/g;\n return { inlineAll: function(T, O, s) {\n return c(T) ? Promise.resolve(T).then(y).then(function(d) {\n let h = Promise.resolve(T);\n return d.forEach(function(p) {\n h = h.then(function(S) {\n return E(S, p, O, s);\n });\n }), h;\n }) : Promise.resolve(T);\n }, shouldProcess: c, impl: { readUrls: y, inline: E } };\n function c(T) {\n return T.search(w) !== -1;\n }\n function y(T) {\n for (var O, s = []; (O = w.exec(T)) !== null; )\n s.push(O[1]);\n return s.filter(function(d) {\n return !r.isDataUrl(d);\n });\n }\n function E(T, O, s, d) {\n return Promise.resolve(O).then(function(h) {\n return s ? r.resolveUrl(h, s) : h;\n }).then(d || r.getAndEncode).then(function(h) {\n return T.replace((p = O, new RegExp(`(url\\\\(['\"]?)(${r.escape(p)})(['\"]?\\\\))`, \"g\")), `$1${h}$3`);\n var p;\n });\n }\n }(), o = { resolveAll: function() {\n return i().then(function(w) {\n return Promise.all(w.map(function(c) {\n return c.resolve();\n }));\n }).then(function(w) {\n return w.join(`\n`);\n });\n }, impl: { readAll: i } };\n function i() {\n return Promise.resolve(r.asArray(document.styleSheets)).then(function(c) {\n const y = [];\n return c.forEach(function(E) {\n if (Object.prototype.hasOwnProperty.call(Object.getPrototypeOf(E), \"cssRules\"))\n try {\n r.asArray(E.cssRules || []).forEach(y.push.bind(y));\n } catch (T) {\n console.error(\"domtoimage: Error while reading CSS rules from \" + E.href, T.toString());\n }\n }), y;\n }).then(function(c) {\n return c.filter(function(y) {\n return y.type === CSSRule.FONT_FACE_RULE;\n }).filter(function(y) {\n return a.shouldProcess(y.style.getPropertyValue(\"src\"));\n });\n }).then(function(c) {\n return c.map(w);\n });\n function w(c) {\n return { resolve: function() {\n var y = (c.parentStyleSheet || {}).href;\n return a.inlineAll(c.cssText, y);\n }, src: function() {\n return c.style.getPropertyValue(\"src\");\n } };\n }\n }\n const u = { inlineAll: function w(c) {\n if (!r.isElement(c))\n return Promise.resolve(c);\n return y(c).then(function() {\n return r.isHTMLImageElement(c) ? l(c).inline() : Promise.all(r.asArray(c.childNodes).map(function(E) {\n return w(E);\n }));\n });\n function y(E) {\n const T = [\"background\", \"background-image\"], O = T.map(function(s) {\n const d = E.style.getPropertyValue(s), h = E.style.getPropertyPriority(s);\n return d ? a.inlineAll(d).then(function(p) {\n E.style.setProperty(s, p, h);\n }) : Promise.resolve();\n });\n return Promise.all(O).then(function() {\n return E;\n });\n }\n }, impl: { newImage: l } };\n function l(w) {\n return { inline: function(c) {\n return r.isDataUrl(w.src) ? Promise.resolve() : Promise.resolve(w.src).then(c || r.getAndEncode).then(function(y) {\n return new Promise(function(E) {\n w.onload = E, w.onerror = E, w.src = y;\n });\n });\n } };\n }\n const g = { copyDefaultStyles: !0, imagePlaceholder: void 0, cacheBust: !1, useCredentials: !1, httpTimeout: 3e4, styleCaching: \"strict\" }, f = { toSvg: M, toPng: function(w, c) {\n return x(w, c).then(function(y) {\n return y.toDataURL();\n });\n }, toJpeg: function(w, c) {\n return x(w, c).then(function(y) {\n return y.toDataURL(\"image/jpeg\", (c ? c.quality : void 0) || 1);\n });\n }, toBlob: function(w, c) {\n return x(w, c).then(r.canvasToBlob);\n }, toPixelData: function(w, c) {\n return x(w, c).then(function(y) {\n return y.getContext(\"2d\").getImageData(0, 0, r.width(w), r.height(w)).data;\n });\n }, toCanvas: x, impl: { fontFaces: o, images: u, util: r, inliner: a, urlCache: [], options: {} } }, m = (e.exports = f, (typeof Node < \"u\" ? Node.ELEMENT_NODE : void 0) || 1), v = (n !== void 0 ? n.getComputedStyle : void 0) || (typeof window < \"u\" ? window.getComputedStyle : void 0) || globalThis.getComputedStyle, C = (n !== void 0 ? n.atob : void 0) || (typeof window < \"u\" ? window.atob : void 0) || globalThis.atob;\n function M(w, c) {\n f.impl.util.getWindow(w);\n var y = c = c || {};\n y.copyDefaultStyles === void 0 ? f.impl.options.copyDefaultStyles = g.copyDefaultStyles : f.impl.options.copyDefaultStyles = y.copyDefaultStyles, y.imagePlaceholder === void 0 ? f.impl.options.imagePlaceholder = g.imagePlaceholder : f.impl.options.imagePlaceholder = y.imagePlaceholder, y.cacheBust === void 0 ? f.impl.options.cacheBust = g.cacheBust : f.impl.options.cacheBust = y.cacheBust, y.useCredentials === void 0 ? f.impl.options.useCredentials = g.useCredentials : f.impl.options.useCredentials = y.useCredentials, y.httpTimeout === void 0 ? f.impl.options.httpTimeout = g.httpTimeout : f.impl.options.httpTimeout = y.httpTimeout, y.styleCaching === void 0 ? f.impl.options.styleCaching = g.styleCaching : f.impl.options.styleCaching = y.styleCaching;\n let E = [];\n return Promise.resolve(w).then(function(T) {\n if (T.nodeType === m)\n return T;\n var O = T, s = T.parentNode, d = document.createElement(\"span\");\n return s.replaceChild(d, O), d.append(T), E.push({ parent: s, child: O, wrapper: d }), d;\n }).then(function(T) {\n return function O(s, d, h, p) {\n const S = d.filter;\n if (s === P || r.isHTMLScriptElement(s) || r.isHTMLStyleElement(s) || r.isHTMLLinkElement(s) || h !== null && S && !S(s))\n return Promise.resolve();\n return Promise.resolve(s).then(j).then(function(b) {\n return F(b, $(s));\n }).then(function(b) {\n return I(b, s);\n });\n function j(b) {\n return r.isHTMLCanvasElement(b) ? r.makeImage(b.toDataURL()) : b.cloneNode(!1);\n }\n function $(b) {\n return r.isElementHostForOpenShadowRoot(b) ? b.shadowRoot : b;\n }\n function F(b, W) {\n const le = Te(W);\n let te = Promise.resolve();\n if (le.length !== 0) {\n const H = v(ce(W));\n r.asArray(le).forEach(function(k) {\n te = te.then(function() {\n return O(k, d, H).then(function(N) {\n N && b.appendChild(N);\n });\n });\n });\n }\n return te.then(function() {\n return b;\n });\n function ce(H) {\n return r.isShadowRoot(H) ? H.host : H;\n }\n function Te(H) {\n return r.isShadowSlotElement(H) ? H.assignedNodes() : H.childNodes;\n }\n }\n function I(b, W) {\n return !r.isElement(b) || r.isShadowSlotElement(W) ? Promise.resolve(b) : Promise.resolve().then(le).then(te).then(ce).then(Te).then(function() {\n return b;\n });\n function le() {\n function H(N, D) {\n D.font = N.font, D.fontFamily = N.fontFamily, D.fontFeatureSettings = N.fontFeatureSettings, D.fontKerning = N.fontKerning, D.fontSize = N.fontSize, D.fontStretch = N.fontStretch, D.fontStyle = N.fontStyle, D.fontVariant = N.fontVariant, D.fontVariantCaps = N.fontVariantCaps, D.fontVariantEastAsian = N.fontVariantEastAsian, D.fontVariantLigatures = N.fontVariantLigatures, D.fontVariantNumeric = N.fontVariantNumeric, D.fontVariationSettings = N.fontVariationSettings, D.fontWeight = N.fontWeight;\n }\n function k(N, D) {\n const ie = v(N);\n ie.cssText ? (D.style.cssText = ie.cssText, H(ie, D.style)) : (oe(d, N, ie, h, D), h === null && ([\"inset-block\", \"inset-block-start\", \"inset-block-end\"].forEach((Se) => D.style.removeProperty(Se)), [\"left\", \"right\", \"top\", \"bottom\"].forEach((Se) => {\n D.style.getPropertyValue(Se) && D.style.setProperty(Se, \"0px\");\n })));\n }\n k(W, b);\n }\n function te() {\n const H = r.uid();\n function k(N) {\n const D = v(W, N), ie = D.getPropertyValue(\"content\");\n if (ie !== \"\" && ie !== \"none\") {\n let pr = function() {\n const yr = `.${H}:` + N, vr = (D.cssText ? br : wr)();\n return document.createTextNode(yr + `{${vr}}`);\n function br() {\n return `${D.cssText} content: ${ie};`;\n }\n function wr() {\n return r.asArray(D).map(Tr).join(\"; \") + \";\";\n function Tr(lt) {\n const Sr = D.getPropertyValue(lt), Or = D.getPropertyPriority(lt) ? \" !important\" : \"\";\n return lt + \": \" + Sr + Or;\n }\n }\n };\n const Se = b.getAttribute(\"class\") || \"\", Ht = (b.setAttribute(\"class\", Se + \" \" + H), document.createElement(\"style\"));\n Ht.appendChild(pr()), b.appendChild(Ht);\n }\n }\n [\":before\", \":after\"].forEach(function(N) {\n k(N);\n });\n }\n function ce() {\n r.isHTMLTextAreaElement(W) && (b.innerHTML = W.value), r.isHTMLInputElement(W) && b.setAttribute(\"value\", W.value);\n }\n function Te() {\n r.isSVGElement(b) && (b.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\"), r.isSVGRectElement(b)) && [\"width\", \"height\"].forEach(function(H) {\n const k = b.getAttribute(H);\n k && b.style.setProperty(H, k);\n });\n }\n }\n }(T, c, null);\n }).then(U).then(q).then(function(T) {\n c.bgcolor && (T.style.backgroundColor = c.bgcolor), c.width && (T.style.width = c.width + \"px\"), c.height && (T.style.height = c.height + \"px\"), c.style && Object.keys(c.style).forEach(function(s) {\n T.style[s] = c.style[s];\n });\n let O = null;\n return typeof c.onclone == \"function\" && (O = c.onclone(T)), Promise.resolve(O).then(function() {\n return T;\n });\n }).then(function(T) {\n let O = c.width || r.width(T), s = c.height || r.height(T);\n return Promise.resolve(T).then(function(d) {\n return d.setAttribute(\"xmlns\", \"http://www.w3.org/1999/xhtml\"), new XMLSerializer().serializeToString(d);\n }).then(r.escapeXhtml).then(function(d) {\n var h = (r.isDimensionMissing(O) ? ' width=\"100%\"' : ` width=\"${O}\"`) + (r.isDimensionMissing(s) ? ' height=\"100%\"' : ` height=\"${s}\"`);\n return `<svg xmlns=\"http://www.w3.org/2000/svg\"${(r.isDimensionMissing(O) ? \"\" : ` width=\"${O}\"`) + (r.isDimensionMissing(s) ? \"\" : ` height=\"${s}\"`)}><foreignObject${h}>${d}</foreignObject></svg>`;\n }).then(function(d) {\n return \"data:image/svg+xml;charset=utf-8,\" + d;\n });\n }).then(function(T) {\n for (; 0 < E.length; ) {\n var O = E.pop();\n O.parent.replaceChild(O.child, O.wrapper);\n }\n return T;\n }).then(function(T) {\n return f.impl.urlCache = [], function() {\n P && (document.body.removeChild(P), P = null), V && clearTimeout(V), V = setTimeout(() => {\n V = null, Q = {};\n }, 2e4);\n }(), T;\n });\n }\n function x(w, c) {\n return M(w, c = c || {}).then(r.makeImage).then(function(y) {\n var E = typeof c.scale != \"number\" ? 1 : c.scale, T = function(s, d) {\n let h = c.width || r.width(s), p = c.height || r.height(s);\n return r.isDimensionMissing(h) && (h = r.isDimensionMissing(p) ? 300 : 2 * p), r.isDimensionMissing(p) && (p = h / 2), s = document.createElement(\"canvas\"), s.width = h * d, s.height = p * d, c.bgcolor && ((d = s.getContext(\"2d\")).fillStyle = c.bgcolor, d.fillRect(0, 0, s.width, s.height)), s;\n }(w, E), O = T.getContext(\"2d\");\n return O.msImageSmoothingEnabled = !1, O.imageSmoothingEnabled = !1, y && (O.scale(E, E), O.drawImage(y, 0, 0)), T;\n });\n }\n let P = null;\n function U(w) {\n return o.resolveAll().then(function(c) {\n var y;\n return c !== \"\" && (y = document.createElement(\"style\"), w.appendChild(y), y.appendChild(document.createTextNode(c))), w;\n });\n }\n function q(w) {\n return u.inlineAll(w).then(function() {\n return w;\n });\n }\n function oe(w, c, y, E, T) {\n const O = f.impl.options.copyDefaultStyles ? function(d, S) {\n var S = function($) {\n var F = [];\n do\n if ($.nodeType === m) {\n var I = $.tagName;\n if (F.push(I), ue.includes(I))\n break;\n }\n while ($ = $.parentNode, $);\n return F;\n }(S), p = function($) {\n return (d.styleCaching !== \"relaxed\" ? $ : $.filter((F, I, b) => I === 0 || I === b.length - 1)).join(\">\");\n }(S);\n if (Q[p])\n return Q[p];\n var j = function() {\n if (P)\n return P.contentWindow;\n var $ = document.characterSet || \"UTF-8\", F = document.doctype, F = F ? (`<!DOCTYPE ${I(F.name)} ${I(F.publicId)} ` + I(F.systemId)).trim() + \">\" : \"\";\n return (P = document.createElement(\"iframe\")).id = \"domtoimage-sandbox-\" + r.uid(), P.style.visibility = \"hidden\", P.style.position = \"fixed\", document.body.appendChild(P), function(b, W, le, te) {\n try {\n return b.contentWindow.document.write(W + `<html><head><meta charset='${le}'><title>${te}</title></head><body></body></html>`), b.contentWindow;\n } catch {\n }\n var ce = document.createElement(\"meta\");\n ce.setAttribute(\"charset\", le);\n try {\n var Te = document.implementation.createHTMLDocument(te), H = (Te.head.appendChild(ce), W + Te.documentElement.outerHTML);\n return b.setAttribute(\"srcdoc\", H), b.contentWindow;\n } catch {\n }\n return b.contentDocument.head.appendChild(ce), b.contentDocument.title = te, b.contentWindow;\n }(P, F, $, \"domtoimage-sandbox\");\n function I(b) {\n var W;\n return b ? ((W = document.createElement(\"div\")).innerText = b, W.innerHTML) : \"\";\n }\n }(), S = function($, F) {\n let I = $.body;\n do {\n var b = F.pop(), b = $.createElement(b);\n I.appendChild(b), I = b;\n } while (0 < F.length);\n return I.textContent = \"​\", I;\n }(j.document, S), j = function($, F) {\n const I = {}, b = $.getComputedStyle(F);\n return r.asArray(b).forEach(function(W) {\n I[W] = W === \"width\" || W === \"height\" ? \"auto\" : b.getPropertyValue(W);\n }), I;\n }(j, S);\n return function($) {\n do {\n var F = $.parentElement;\n F !== null && F.removeChild($), $ = F;\n } while ($ && $.tagName !== \"BODY\");\n }(S), Q[p] = j;\n }(w, c) : {}, s = T.style;\n r.asArray(y).forEach(function(d) {\n var h, p = y.getPropertyValue(d), S = O[d], j = E ? E.getPropertyValue(d) : void 0;\n (p !== S || E && p !== j) && (S = y.getPropertyPriority(d), j = s, p = p, S = S, h = 0 <= [\"background-clip\"].indexOf(d = d), S ? (j.setProperty(d, p, S), h && j.setProperty(\"-webkit-\" + d, p, S)) : (j.setProperty(d, p), h && j.setProperty(\"-webkit-\" + d, p)));\n });\n }\n let V = null, Q = {};\n const ue = [\"ADDRESS\", \"ARTICLE\", \"ASIDE\", \"BLOCKQUOTE\", \"DETAILS\", \"DIALOG\", \"DD\", \"DIV\", \"DL\", \"DT\", \"FIELDSET\", \"FIGCAPTION\", \"FIGURE\", \"FOOTER\", \"FORM\", \"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\", \"HEADER\", \"HGROUP\", \"HR\", \"LI\", \"MAIN\", \"NAV\", \"OL\", \"P\", \"PRE\", \"SECTION\", \"SVG\", \"TABLE\", \"UL\", \"math\", \"svg\", \"BODY\", \"HEAD\", \"HTML\"];\n })(xf);\n})(mr);\nvar If = mr.exports;\nconst Zf = /* @__PURE__ */ Lf(If);\nfunction Nf(e) {\n const t = Cr(e, (r) => r.value), n = Mr().domain(t).nice().domain();\n if (n[0] > 0)\n n[0] = 0;\n else if (n[0] === 0 && n[1] === 0)\n return [0, 1];\n return n[0] < 0 && n[1] > 0 && (Math.abs(n[0]) > n[1] ? n[1] = Math.abs(n[0]) : n[0] = -n[1]), n;\n}\nfunction ed(e, t) {\n const n = ge(t, \"gradient\", \"colors\"), r = !Vc(n);\n let a = ge(t, \"pairing\", \"option\");\n const o = Nf(e), i = o[0] < 0 && o[1] > 0 ? \"diverge\" : \"mono\";\n (a < 1 && a > 4 && i === \"mono\" || a < 1 && a > 2 && i === \"diverge\") && (a = 1);\n const u = r ? n : [];\n if (!r) {\n const l = i === \"diverge\" ? 17 : 11;\n for (let g = 1; g < l + 1; g++)\n u.push(`fill-${i}-${a}-${g}`);\n }\n return $r().domain(o).range(u);\n}\nexport {\n Lf as $,\n no as A,\n ro as B,\n Xf as C,\n ao as D,\n oo as E,\n ur as F,\n uo as G,\n Ge as H,\n lo as I,\n co as J,\n fo as K,\n ho as L,\n Kf as M,\n Jf as N,\n kf as O,\n ed as P,\n Nf as Q,\n tt as R,\n $f as S,\n gt as T,\n G as U,\n Co as V,\n Ic as W,\n Bn as X,\n Ut as Y,\n Xl as Z,\n wi as _,\n Pt as a,\n Zs as a0,\n Vf as a1,\n pt as a2,\n Vc as a3,\n Qf as a4,\n Gf as a5,\n Bf as a6,\n Hf as a7,\n zf as a8,\n rf as a9,\n qf as aa,\n Wf as ab,\n so as ac,\n Mt as ad,\n nf as ae,\n B as af,\n Z as ag,\n me as ah,\n Fr as ai,\n jr as aj,\n Fc as b,\n ne as c,\n Qa as d,\n Zf as e,\n tf as f,\n ge as g,\n _ as h,\n Ye as i,\n io as j,\n ot as k,\n Xa as l,\n Yf as m,\n ka as n,\n Mf as o,\n jt as p,\n Za as q,\n ee as r,\n Ka as s,\n Ks as t,\n Cn as u,\n Ja as v,\n Mn as w,\n sr as x,\n eo as y,\n to as z\n};\n//# sourceMappingURL=color-scale-utils-5eb3eeaa.mjs.map\n","var r = /* @__PURE__ */ ((c) => (c.GRAPHICS_DOCUMENT = \"graphics-document\", c.GRAPHICS_OBJECT = \"graphics-object\", c.GRAPHICS_SYMBOL = \"graphics-symbol\", c.GROUP = \"group\", c.DOCUMENT = \"document\", c.CHECKBOX = \"checkbox\", c.BUTTON = \"button\", c.MENU = \"menu\", c.MENU_ITEM = \"menuitem\", c.IMG = \"img\", c))(r || {});\nexport {\n r as R\n};\n//# sourceMappingURL=a11y-7bad4f48.mjs.map\n","import { b as f, k as t, i as h } from \"./color-scale-utils-5eb3eeaa.mjs\";\nfunction i(a, e) {\n return a && f(a, e, t);\n}\nfunction k(a, e) {\n return function(r, n) {\n if (r == null)\n return r;\n if (!h(r))\n return a(r, n);\n for (var u = r.length, s = e ? u : -1, b = Object(r); (e ? s-- : ++s < u) && n(b[s], s, b) !== !1; )\n ;\n return r;\n };\n}\nvar E = k(i);\nconst v = E;\nexport {\n v as b\n};\n//# sourceMappingURL=_baseEach-603421de.mjs.map\n","import { U as z, W as F, ad as U, g as u, z as S, f as G, y as j, ab as M, N as k, ae as L, h as _, v as V, a2 as K, a3 as y, P as R, a0 as x } from \"../color-scale-utils-5eb3eeaa.mjs\";\nimport { bin as Z, stack as A, stackOffsetDiverging as H, scaleOrdinal as $, quantile as E, ascending as Q, min as P, max as N, extent as W, scaleLinear as X, scaleQuantize as Y } from \"d3\";\nimport { S as D, _ as B, d as w, e as O, s as J } from \"../enums-a96ef472.mjs\";\nimport { b as tt } from \"../_baseEach-603421de.mjs\";\nimport \"../index-becfb567.mjs\";\nfunction et(h, t, e, s) {\n for (var a = -1, o = h == null ? 0 : h.length; ++a < o; ) {\n var i = h[a];\n t(s, i, e(i), h);\n }\n return s;\n}\nfunction st(h, t, e, s) {\n return tt(h, function(a, o, i) {\n t(s, a, e(a), i);\n }), s;\n}\nfunction at(h, t) {\n return function(e, s) {\n var a = z(e) ? et : st, o = t ? t() : {};\n return a(e, h, F(s), o);\n };\n}\nfunction ot(h) {\n for (var t = -1, e = h == null ? 0 : h.length, s = {}; ++t < e; ) {\n var a = h[t];\n s[a[0]] = a[1];\n }\n return s;\n}\nvar it = Object.prototype, rt = it.hasOwnProperty, nt = at(function(h, t, e) {\n rt.call(h, e) ? h[e].push(t) : U(h, e, [t]);\n});\nconst lt = nt;\nclass m {\n constructor(t) {\n this.state = {\n options: {}\n }, this.colorScale = {}, this.colorClassNames = {}, this.services = t;\n }\n getAllDataFromDomain(t) {\n if (!this.getData())\n return null;\n const e = this.getOptions();\n let s = this.getData();\n const a = this.getDataGroups(), { groupMapsTo: o } = u(e, \"data\"), i = u(e, \"axes\");\n return t && (s = s.filter((r) => t.includes(r[o]))), i && Object.keys(i).forEach((r) => {\n const n = i[r].mapsTo, l = i[r].scaleType;\n if ((l === D.LINEAR || l === D.LOG) && (s = s.map((c) => ({\n ...c,\n [n]: c[n] === null ? c[n] : Number(c[n])\n }))), n && i[r].domain)\n if (l === D.LABELS)\n s = s.filter(\n (c) => i[r].domain.includes(c[n])\n );\n else {\n const [c, p] = i[r].domain;\n s = s.filter(\n (g) => !(n in g) || g[n] >= c && g[n] <= p\n );\n }\n }), s.filter((r) => a.find((n) => n.name === r[o]));\n }\n /**\n * Charts that have group configs passed into them, only want to retrieve the display data relevant to that chart\n * @param groups the included datasets for the particular chart\n */\n getDisplayData(t) {\n if (!this.get(\"data\"))\n return null;\n const { ACTIVE: e } = S.items.status, s = this.getDataGroups(t), { groupMapsTo: a } = this.getOptions().data;\n return this.getAllDataFromDomain(t).filter((i) => s.find(\n (r) => r.name === i[a] && r.status === e\n ));\n }\n getData() {\n return this.get(\"data\");\n }\n isDataEmpty() {\n return !this.getData().length;\n }\n /**\n *\n * @param newData The new raw data to be set\n */\n setData(t) {\n const e = this.sanitize(G(t)), s = this.generateDataGroups(e);\n return this.set({\n data: e,\n dataGroups: s\n }), e;\n }\n getDataGroups(t) {\n return u(this.getOptions(), \"data\", \"loading\") ? [] : t ? this.get(\"dataGroups\").filter((s) => t.includes(s.name)) : this.get(\"dataGroups\");\n }\n getActiveDataGroups(t) {\n const { ACTIVE: e } = S.items.status;\n return this.getDataGroups(t).filter((s) => s.status === e);\n }\n getDataGroupNames(t) {\n return this.getDataGroups(t).map((s) => s.name);\n }\n getActiveDataGroupNames(t) {\n return this.getActiveDataGroups(t).map((s) => s.name);\n }\n aggregateBinDataByGroup(t) {\n return lt(t, \"group\");\n }\n getBinConfigurations() {\n const t = this.getDisplayData(), e = this.getOptions(), s = this.services.cartesianScales.getMainXAxisPosition(), a = this.services.cartesianScales.getDomainIdentifier(), o = e.axes[s], { groupMapsTo: i } = e.data, { bins: r = j.defaultBins } = o, n = Array.isArray(r), l = Z().value((d) => d[a]).thresholds(r)(t);\n if (n)\n l[l.length - 1].x1 = r[r.length - 1];\n else {\n const d = l[0].x1 - l[0].x0;\n l[l.length - 1].x1 = +l[l.length - 1].x0 + d;\n }\n const c = n ? [r[0], r[r.length - 1]] : [l[0].x0, l[l.length - 1].x1], p = Array.from(new Set(t.map((d) => d[i]))), g = [];\n return l.forEach((d) => {\n const f = `${d.x0}-${d.x1}`, b = this.aggregateBinDataByGroup(d);\n p.forEach((C) => {\n g.push({\n group: C,\n key: f,\n value: b[C] || 0,\n bin: d.x0\n });\n });\n }), {\n bins: l,\n binsDomain: c\n };\n }\n getBinnedStackedData() {\n const t = this.getOptions(), { groupMapsTo: e } = t.data, s = this.getActiveDataGroupNames(), { bins: a } = this.getBinConfigurations(), o = this.getDataValuesGroupedByKeys({\n bins: a\n });\n return A().keys(s)(o).map((i, r) => Object.keys(i).filter((n) => !isNaN(n)).map((n) => {\n const l = i[n];\n return l[e] = s[r], l;\n }));\n }\n getGroupedData(t) {\n const e = this.getDisplayData(t), s = {}, { groupMapsTo: a } = this.getOptions().data;\n return e.map((o) => {\n const i = o[a];\n s[i] !== null && s[i] !== void 0 ? s[i].push(o) : s[i] = [o];\n }), Object.keys(s).map((o) => ({\n name: o,\n data: s[o]\n }));\n }\n getStackKeys({ bins: t = null, groups: e = null } = { bins: null, groups: null }) {\n const s = this.getOptions(), a = this.getDisplayData(e);\n let o;\n t ? o = t.map((n) => `${n.x0}-${n.x1}`) : o = M(\n a.map((n) => {\n const l = this.services.cartesianScales.getDomainIdentifier(n);\n return n[l] instanceof Date ? k(n[l]) : n[l] && typeof n[l].toString == \"function\" ? n[l].toString() : n[l];\n })\n );\n const i = this.services.cartesianScales.domainAxisPosition, r = s.axes[i].scaleType;\n return r === D.TIME ? o.sort((n, l) => {\n const c = new Date(n), p = new Date(l);\n return c - p;\n }) : (r === D.LOG || r === D.LINEAR) && o.sort((n, l) => n - l), o;\n }\n getDataValuesGroupedByKeys({ bins: t = null, groups: e = null }) {\n const s = this.getOptions(), { groupMapsTo: a } = s.data, o = this.getDisplayData(e), i = this.getDataGroupNames(), r = this.getStackKeys({ bins: t, groups: e });\n return t ? r.map((n) => {\n const [l, c] = n.split(\"-\"), p = { x0: l, x1: c }, g = t.find((d) => d.x0.toString() === l.toString());\n return i.forEach((d) => {\n p[d] = g.filter(\n (f) => f[a] === d\n ).length;\n }), p;\n }) : r.map((n) => {\n const l = { sharedStackKey: n };\n return i.forEach((c) => {\n const p = o.find((d) => {\n const f = this.services.cartesianScales.getDomainIdentifier(d);\n return d[a] === c && Object.prototype.hasOwnProperty.call(d, f) && (d[f] instanceof Date ? k(d[f]) === n : d[f].toString() === n);\n }), g = this.services.cartesianScales.getRangeIdentifier(l);\n l[c] = p ? p[g] : null;\n }), l;\n });\n }\n getStackedData({ percentage: t = !1, groups: e = null, divergent: s = !1 }) {\n const a = this.getOptions(), { groupMapsTo: o } = a.data, i = this.getActiveDataGroupNames(e), r = this.getDataValuesGroupedByKeys({\n groups: e\n });\n if (t) {\n const l = ot(r.map((c) => [c.sharedStackKey, 0]));\n r.forEach((c) => {\n i.forEach((p) => {\n l[c.sharedStackKey] += c[p];\n });\n }), r.forEach((c) => {\n i.forEach((p) => {\n const g = l[c.sharedStackKey];\n l[c.sharedStackKey] ? c[p] = c[p] / g * 100 : c[p] = 0;\n });\n });\n }\n return (s ? A().offset(H) : A()).keys(i)(r).map((l, c) => Object.keys(l).filter((p) => !isNaN(p)).map((p) => {\n const g = l[p];\n return g[o] = i[c], g;\n }));\n }\n /**\n * @return {Object} The chart's options\n */\n getOptions() {\n return this.state.options;\n }\n set(t, e) {\n this.state = Object.assign({}, this.state, t);\n const s = Object.assign(\n { skipUpdate: !1, animate: !0 },\n // default configs\n e\n );\n s.skipUpdate || this.update(s.animate);\n }\n get(t) {\n return t ? this.state[t] : this.state;\n }\n /**\n *\n * @param newOptions New options to be set\n */\n setOptions(t) {\n const e = this.getOptions();\n L(e, t), this.set({\n options: _(e, t)\n });\n }\n /**\n *\n * Updates miscellanous information within the model\n * such as the color scales, or the legend data labels\n */\n update(t = !0) {\n this.getDisplayData() && (this.updateAllDataGroups(), this.setCustomColorScale(), this.setColorClassNames(), this.services.events.dispatchEvent(B.Model.UPDATE, { animate: t }));\n }\n /*\n * Data labels\n */\n toggleDataLabel(t) {\n const { ACTIVE: e, DISABLED: s } = S.items.status, a = this.getDataGroups(), o = a.some((c) => c.status === s), i = a.filter((c) => c.status === e);\n if (o)\n if (i.length === 1 && i[0].name === t)\n a.forEach((c, p) => {\n a[p].status = e;\n });\n else {\n const c = a.findIndex((p) => p.name === t);\n a[c].status = a[c].status === s ? e : s;\n }\n else\n a.forEach((c, p) => {\n a[p].status = c.name === t ? e : s;\n });\n const r = a.filter((c) => c.status === e), n = this.getOptions();\n a.some((c) => c.status === s) ? n.data.selectedGroups = r.map((c) => c.name) : n.data.selectedGroups = [], this.services.events.dispatchEvent(B.Legend.ITEMS_UPDATE, {\n dataGroups: a\n }), this.set({\n dataGroups: a\n });\n }\n /**\n * Should the data point be filled?\n * @param group\n * @param key\n * @param value\n * @param defaultFilled the default for this chart\n */\n getIsFilled(t, e, s, a) {\n const o = this.getOptions();\n return o.getIsFilled ? o.getIsFilled(t, e, s, a) : a;\n }\n getFillColor(t, e, s) {\n const a = this.getOptions(), o = u(this.colorScale, t);\n return a.getFillColor ? a.getFillColor(t, e, s, o) : o;\n }\n getStrokeColor(t, e, s) {\n const a = this.getOptions(), o = u(this.colorScale, t);\n return a.getStrokeColor ? a.getStrokeColor(t, e, s, o) : o;\n }\n isUserProvidedColorScaleValid() {\n const t = u(this.getOptions(), \"color\", \"scale\"), e = this.getDataGroups();\n return t == null || Object.keys(t).length == 0 ? !1 : e.some(\n (s) => Object.keys(t).includes(s.name)\n );\n }\n getColorClassName(t) {\n const e = this.colorClassNames(t.dataGroupName);\n let s = t.originalClassName;\n return t.classNameTypes.forEach(\n (a) => s = t.originalClassName ? `${s} ${a}-${e}` : `${a}-${e}`\n ), s || \"\";\n }\n /**\n * For charts that might hold an associated status for their dataset\n */\n getStatus() {\n return null;\n }\n getAllDataGroupsNames() {\n return this.allDataGroups;\n }\n /**\n * Converts data provided in the older format to tabular\n *\n */\n transformToTabularData(t) {\n console.warn(\n \"We've updated the charting data format to be tabular by default. The current format you're using is deprecated and will be removed in v1.0, read more here https://carbon-design-system.github.io/carbon-charts/?path=/story/docs-tutorials--tabular-data-format\"\n );\n const e = [], { datasets: s, labels: a } = t;\n return s.forEach((o) => {\n o.data.forEach((i, r) => {\n let n;\n const l = u(o, \"label\");\n if (l === null) {\n const p = u(a, r);\n p ? n = p : n = \"Ungrouped\";\n } else\n n = l;\n const c = {\n group: n,\n key: a[r]\n };\n isNaN(i) ? (c.value = i.value, c.date = i.date) : c.value = i, e.push(c);\n });\n }), e;\n }\n getTabularDataArray() {\n return [];\n }\n exportToCSV() {\n const t = this.getTabularDataArray().map(\n (a) => a.map((o) => `\"${o === \"&ndash;\" ? \"–\" : o}\"`)\n );\n let e = \"\", s = \"\";\n t.forEach(function(a, o) {\n s = a.join(\",\"), e += o < t.length ? s + `\n` : s;\n }), this.services.files.downloadCSV(e, \"myChart.csv\");\n }\n getTabularData(t) {\n return Array.isArray(t) ? t : this.transformToTabularData(t);\n }\n sanitize(t) {\n return t = this.getTabularData(t), t;\n }\n /*\n * Data groups\n */\n updateAllDataGroups() {\n this.allDataGroups ? this.getDataGroupNames().forEach((t) => {\n this.allDataGroups.indexOf(t) === -1 && this.allDataGroups.push(t);\n }) : this.allDataGroups = this.getDataGroupNames();\n }\n generateDataGroups(t) {\n const { groupMapsTo: e } = this.getOptions().data, { ACTIVE: s, DISABLED: a } = S.items.status, o = this.getOptions(), i = M(t.map((n) => n[e]));\n o.data.selectedGroups.length && (o.data.selectedGroups.every(\n (l) => i.includes(l)\n ) || (o.data.selectedGroups = []));\n const r = (n) => !o.data.selectedGroups.length || o.data.selectedGroups.includes(n) ? s : a;\n return i.map((n) => ({\n name: n,\n status: r(n)\n }));\n }\n /*\n * Fill scales\n */\n setCustomColorScale() {\n if (!this.isUserProvidedColorScaleValid())\n return;\n const t = this.getOptions(), e = u(t, \"color\", \"scale\");\n Object.keys(e).forEach((a) => {\n this.allDataGroups.includes(a) || console.warn(`\"${a}\" does not exist in data groups.`);\n }), this.allDataGroups.filter(\n (a) => e[a]\n ).forEach(\n (a) => this.colorScale[a] = e[a]\n );\n }\n /*\n * Color palette\n */\n setColorClassNames() {\n const t = u(this.getOptions(), \"color\", \"pairing\");\n let e = u(t, \"numberOfVariants\");\n (!e || e < this.allDataGroups.length) && (e = this.allDataGroups.length);\n let s = u(t, \"option\");\n const a = V.pairingOptions, o = e > 5 ? 14 : e, i = `${o}-color`;\n s = s <= a[i] ? s : 1;\n const r = this.allDataGroups.map(\n (n, l) => `${o}-${s}-${l % 14 + 1}`\n );\n this.colorClassNames = $().range(r).domain(this.allDataGroups);\n }\n}\nclass T extends m {\n // can't be protected as it's used by two-dimensional-axes.ts\n constructor(t) {\n super(t), this.axisFlavor = w.DEFAULT;\n }\n // get the scales information\n // needed for getTabularArray()\n assignRangeAndDomains() {\n const { cartesianScales: t } = this.services, e = this.getOptions(), s = t.isDualAxes(), a = {\n primaryDomain: t.domainAxisPosition,\n primaryRange: t.rangeAxisPosition,\n secondaryDomain: null,\n secondaryRange: null\n };\n return s && (a.secondaryDomain = t.secondaryDomainAxisPosition, a.secondaryRange = t.secondaryRangeAxisPosition), Object.keys(a).forEach((o) => {\n const i = a[o];\n t.scales[i] ? a[o] = {\n position: i,\n label: t.getScaleLabel(i),\n identifier: u(e, \"axes\", i, \"mapsTo\")\n } : a[o] = null;\n }), a;\n }\n getTabularDataArray() {\n const t = this.getDisplayData(), e = this.getOptions(), { groupMapsTo: s } = e.data, { cartesianScales: a } = this.services, { primaryDomain: o, primaryRange: i, secondaryDomain: r, secondaryRange: n } = this.assignRangeAndDomains(), l = a.getDomainAxisScaleType();\n let c;\n return l === D.TIME && (c = (g) => K(g, \"MMM d, yyyy\")), [\n [\n \"Group\",\n o.label,\n i.label,\n ...r ? [r.label] : [],\n ...n ? [n.label] : []\n ],\n ...t.map((g) => [\n g[s],\n g[o.identifier] === null ? \"&ndash;\" : c ? c(g[o.identifier]) : g[o.identifier],\n g[i.identifier] === null || isNaN(g[i.identifier]) ? \"&ndash;\" : g[i.identifier].toLocaleString(),\n ...r ? [\n g[r.identifier] === null ? \"&ndash;\" : g[r.identifier]\n ] : [],\n ...n ? [\n g[n.identifier] === null || isNaN(g[n.identifier]) ? \"&ndash;\" : g[n.identifier]\n ] : []\n ])\n ];\n }\n setData(t) {\n let e;\n if (t && (e = super.setData(t), u(this.getOptions(), \"zoomBar\", O.TOP, \"enabled\"))) {\n const s = u(\n this.getOptions(),\n \"zoomBar\",\n O.TOP,\n \"data\"\n );\n this.setZoomBarData(s);\n }\n return e;\n }\n /**\n * @param zoomBarData any special zoom bar data to use instead of the model data\n */\n setZoomBarData(t) {\n const e = t ? this.sanitize(G(t)) : this.getDisplayData();\n let s = e;\n const { cartesianScales: a } = this.services;\n if (e && a.domainAxisPosition && a.rangeAxisPosition) {\n const o = a.getDomainIdentifier(), i = a.getRangeIdentifier();\n let r = e.map((n) => n[o].getTime());\n r = M(r).sort(), s = r.map((n) => {\n let l = 0;\n const c = {};\n return e.forEach((p) => {\n p[o].getTime() === n && (l += p[i]);\n }), c[o] = new Date(n), c[i] = l, c;\n });\n }\n this.set({ zoomBarData: s });\n }\n getZoomBarData() {\n return this.get(\"zoomBarData\");\n }\n sanitizeDateValues(t) {\n const e = this.getOptions();\n if (!e.axes)\n return t;\n const s = [];\n return Object.keys(O).forEach((a) => {\n const o = O[a], i = e.axes[o];\n if (i && i.scaleType === D.TIME) {\n const r = i.mapsTo;\n (r !== null || r !== void 0) && s.push(r);\n }\n }), s.length > 0 && t.forEach((a) => {\n s.forEach((o) => {\n u(a, o, \"getTime\") === null && (a[o] = new Date(a[o]));\n });\n }), t;\n }\n sanitize(t) {\n return t = super.sanitize(t), t = this.sanitizeDateValues(t), t;\n }\n}\nclass dt extends T {\n constructor(t) {\n super(t);\n }\n getTabularDataArray() {\n const t = this.getDisplayData();\n return t.sort((s, a) => s.source.localeCompare(a.source)), [\n [\"Source\", \"Target\", \"Value\"],\n ...t.map((s) => [s.source, s.target, s.value])\n ];\n }\n}\nclass Dt extends T {\n constructor(t) {\n super(t);\n }\n getBoxQuartiles(t) {\n return {\n q_25: E(t, 0.25),\n q_50: E(t, 0.5),\n q_75: E(t, 0.75)\n };\n }\n getBoxplotData() {\n const t = this.getOptions(), { groupMapsTo: e } = t.data, s = this.getGroupedData(), a = [];\n for (const { name: o, data: i } of s) {\n const r = this.services.cartesianScales.getRangeIdentifier(), n = i.map((v) => v[r]).sort(Q), l = {\n [e]: o,\n counts: n,\n quartiles: this.getBoxQuartiles(n),\n outliers: null,\n whiskers: null\n }, c = l.quartiles.q_25, p = l.quartiles.q_75, g = (p - c) * 1.5, d = c - g, f = p + g, b = [], C = [];\n for (const v of n)\n v < d || v > f ? b.push(v) : C.push(v);\n l.outliers = b;\n const I = P(C), q = N(C);\n l.whiskers = {\n min: I || P([l.quartiles.q_25, l.quartiles.q_50, l.quartiles.q_75]),\n max: q || N([l.quartiles.q_25, l.quartiles.q_50, l.quartiles.q_75])\n }, a.push(l);\n }\n return a;\n }\n getTabularDataArray() {\n const t = this.getOptions(), { groupMapsTo: e } = t.data, s = this.getBoxplotData();\n return [\n [\"Group\", \"Minimum\", \"Q1\", \"Median\", \"Q3\", \"Maximum\", \"IQR\", \"Outlier(s)\"],\n ...s.map((o) => {\n let i = u(o, \"outliers\");\n return (i === null || i.length === 0) && (i = [\"&ndash;\"]), [\n o[e],\n u(o, \"whiskers\", \"min\") !== null ? u(o, \"whiskers\", \"min\").toLocaleString() : \"&ndash;\",\n u(o, \"quartiles\", \"q_25\") !== null ? u(o, \"quartiles\", \"q_25\").toLocaleString() : \"&ndash;\",\n u(o, \"quartiles\", \"q_50\") !== null ? u(o, \"quartiles\", \"q_50\").toLocaleString() : \"&ndash;\",\n u(o, \"quartiles\", \"q_75\") !== null ? u(o, \"quartiles\", \"q_75\").toLocaleString() : \"&ndash;\",\n u(o, \"whiskers\", \"max\") !== null ? u(o, \"whiskers\", \"max\").toLocaleString() : \"&ndash;\",\n u(o, \"quartiles\", \"q_75\") !== null && u(o, \"quartiles\", \"q_25\") !== null ? (u(o, \"quartiles\", \"q_75\") - u(o, \"quartiles\", \"q_25\")).toLocaleString() : \"&ndash;\",\n i.map((r) => r.toLocaleString()).join(\",\")\n ];\n })\n ];\n }\n setColorClassNames() {\n const e = u(this.getOptions(), \"color\", \"pairing\");\n let s = u(e, \"option\");\n const a = V.pairingOptions;\n s = s <= a[\"1-color\"] ? s : 1;\n const o = this.allDataGroups.map(() => `1-${s}-1`);\n this.colorClassNames = $().range(o).domain(this.allDataGroups);\n }\n}\nclass ft extends T {\n constructor(t) {\n super(t);\n }\n /**\n * Determines the index of the performance area titles to use\n * @param datum\n * @returns number\n */\n getMatchingRangeIndexForDatapoint(t) {\n let e;\n for (let s = t.ranges.length - 1; s > 0; s--) {\n const a = t.ranges[s];\n if (t.value >= a)\n return e = s, e;\n }\n return 0;\n }\n getTabularDataArray() {\n const t = this.getDisplayData(), e = this.getOptions(), { groupMapsTo: s } = e.data, a = this.services.cartesianScales.getRangeIdentifier(), o = u(e, \"bullet\", \"performanceAreaTitles\");\n return [\n [\"Title\", \"Group\", \"Value\", \"Target\", \"Percentage\", \"Performance\"],\n ...t.map((r) => [\n r.title,\n r[s],\n r.value === null ? \"&ndash;\" : r.value,\n u(r, \"marker\") === null ? \"&ndash;\" : r.marker,\n u(r, \"marker\") === null ? \"&ndash;\" : `${Math.floor(r[a] / r.marker * 100)}%`,\n o[this.getMatchingRangeIndexForDatapoint(r)]\n ])\n ];\n }\n}\nclass mt extends m {\n constructor(t) {\n super(t), this._colorScale = void 0, this._matrix = {};\n }\n /**\n * @override\n * @param value\n * @returns string\n */\n getFillColor(t) {\n return this._colorScale(t);\n }\n /**\n * Helper function that will generate a dictionary\n */\n getCombinedData() {\n if (y(this._matrix)) {\n const t = this.getOptions(), e = this.getDisplayData();\n !y(e) && !y(t.geoData.objects.countries) && (t.geoData.objects.countries.geometries.forEach((s) => {\n this._matrix[s.properties.NAME] = s;\n }), e.forEach((s) => {\n this._matrix[s.name] ? this._matrix[s.name].value = s.value || null : console.warn(`Data point ${s} is missing geographical data.`);\n }));\n }\n return this._matrix;\n }\n /**\n * Generate tabular data from display data\n * @returns Array<Object>\n */\n getTabularDataArray() {\n const t = this.getDisplayData();\n return [\n [\"Country ID\", \"Country Name\", \"Value\"],\n ...t.map((s) => [\n s.id === null ? \"&ndash;\" : s.id,\n s.name,\n s.value\n ])\n ];\n }\n // Uses quantize scale to return class names\n getColorClassName(t) {\n return `${t.originalClassName} ${this._colorScale(t.value)}`;\n }\n setColorClassNames() {\n const t = u(this.getOptions(), \"color\");\n this._colorScale = R(this.getDisplayData(), t);\n }\n}\nclass yt extends m {\n constructor(t) {\n super(t), this.parentNode = !1, this.set({ depth: 2 }, { skipUpdate: !0 });\n }\n setData(t) {\n super.setData(t), this.setDataGroups(), t.length === 1 && (this.parentNode = !0), this.setZoom();\n }\n setOptions(t) {\n const e = this.getOptions(), s = _({}, t, this.getZoomOptions(t));\n L(e, s);\n const a = this.getHierarchyLevel(), o = u(e, \"circlePack\", \"hierarchyLevel\");\n this.set({\n options: _(e, s),\n depth: o && o < 4 ? o : a\n });\n }\n getZoomOptions(t) {\n if (!this.getDisplayData())\n return {};\n const e = this.getDisplayData(), s = t || this.getOptions(), a = e.length === 1 && u(e, 0, \"children\") ? u(e, 0, \"children\") : e;\n let o = this.getHierarchyLevel();\n return a.some((i) => {\n if (i.children && i.children.some((r) => r.children))\n return o = 3, !1;\n }), u(s, \"canvasZoom\", \"enabled\") === !0 && o > 2 ? {\n legend: {\n additionalItems: [\n {\n type: J.ZOOM,\n name: \"Click to zoom\"\n }\n ]\n }\n } : null;\n }\n setZoom(t) {\n this.setOptions(this.getZoomOptions(t));\n }\n // update the hierarchy level\n updateHierarchyLevel(t) {\n this.set({ depth: t });\n }\n getHierarchyLevel() {\n return this.get(\"depth\");\n }\n hasParentNode() {\n return this.parentNode;\n }\n // set the datagroup name on the items that are it's children\n setDataGroups() {\n const t = this.getData(), e = this.getOptions(), { groupMapsTo: s } = e.data, a = t.map((o) => {\n const i = o[s];\n return this.setChildrenDataGroup(o, i);\n });\n this.set(\n {\n data: a\n },\n { skipUpdate: !0 }\n );\n }\n // sets name recursively down the node tree\n setChildrenDataGroup(t, e) {\n return t.children ? {\n ...t,\n dataGroupName: e,\n children: t.children.map((s) => this.setChildrenDataGroup(s, e))\n } : { ...t, dataGroupName: e };\n }\n getTabularDataArray() {\n const t = this.getDisplayData(), e = [[\"Child\", \"Parent\", \"Value\"]];\n return t.forEach((s) => {\n let a = s.value ? s.value : 0;\n s.children && (a += this.getChildrenDatums(s.children, s.name, e, 0)), e.push([\"&ndash;\", s.name, a]);\n }), e;\n }\n /**\n * Recursively determine the relationship between all the nested elements in the child\n * @param children: Object\n * @param parent: String\n * @param result: Array<Object>\n * @param totalSum: number\n * @returns: number\n */\n getChildrenDatums(t, e, s = [], a = 0) {\n const o = e;\n return t.forEach((i) => {\n const r = i.name;\n let n = 0;\n if (i.children)\n i.children.length > 0 && (typeof i.value == \"number\" && (a += i.value), n += this.getChildrenDatums(i.children, r, s, n), s.push([r, o, n]), a += n);\n else {\n let l = 0;\n typeof i.value == \"number\" && (l = i.value, a += i.value), s.push([i.name, o, l]);\n }\n }), a;\n }\n}\nclass vt extends m {\n constructor(t) {\n super(t);\n }\n getTabularData(t) {\n const e = super.getTabularData(t);\n return t !== e && e.forEach((s) => {\n s.key && s.key !== s.group && (s.group = s.key);\n }), e;\n }\n getTabularDataArray() {\n const t = this.getDisplayData(), e = this.getOptions(), { groupMapsTo: s } = e.data;\n return [\n [\"Group\", \"Value\"],\n ...t.map((o) => [\n o[s],\n o.value === null ? \"&ndash;\" : o.value.toLocaleString()\n ])\n ];\n }\n sanitize(t) {\n return this.getTabularData(t).sort((s, a) => a.value - s.value);\n }\n}\nclass xt extends m {\n constructor(t) {\n super(t);\n }\n getDataGroups() {\n return super.getDataGroups().filter((t) => t.name !== \"delta\");\n }\n getTabularDataArray() {\n const t = this.getDisplayData(), e = this.getOptions(), { groupMapsTo: s } = e.data;\n return [\n [\"Group\", \"Value\"],\n ...t.map((o) => [\n o[s],\n o.value === null ? \"&ndash;\" : o.value.toLocaleString()\n ])\n ];\n }\n}\nclass Ct extends T {\n constructor(t) {\n super(t), this.axisFlavor = w.HOVERABLE, this._colorScale = void 0, this._domains = [], this._ranges = [], this._matrix = {};\n const e = u(this.getOptions(), \"axes\");\n if (u(e, \"left\", \"scaleType\") && u(e, \"left\", \"scaleType\") !== D.LABELS || u(e, \"right\", \"scaleType\") && u(e, \"right\", \"scaleType\") !== D.LABELS || u(e, \"top\", \"scaleType\") && u(e, \"top\", \"scaleType\") !== D.LABELS || u(e, \"bottom\", \"scaleType\") && u(e, \"bottom\", \"scaleType\") !== D.LABELS)\n throw Error(\"Heatmap only supports label scaletypes.\");\n }\n /**\n * Get min and maximum value of the display data\n * @returns Array consisting of smallest and largest values in data\n */\n getValueDomain() {\n const t = W(this.getDisplayData(), (s) => s.value), e = X().domain(t).nice().domain();\n if (e[0] > 0)\n e[0] = 0;\n else if (e[0] === 0 && e[1] === 0)\n return [0, 1];\n return e[0] < 0 && e[1] > 0 && (Math.abs(e[0]) > e[1] ? e[1] = Math.abs(e[0]) : e[0] = -e[1]), e;\n }\n /**\n * @override\n * @param value\n * @returns string\n */\n getFillColor(t) {\n return this._colorScale(t);\n }\n /**\n * Generate a list of all unique domains\n * @returns String[]\n */\n getUniqueDomain() {\n if (y(this._domains)) {\n const t = this.getDisplayData(), { cartesianScales: e } = this.services, s = e.getDomainIdentifier(), a = e.getMainXAxisPosition(), o = e.getCustomDomainValuesByposition(a);\n if (o)\n return o;\n this._domains = Array.from(\n new Set(\n t.map((i) => i[s])\n )\n );\n }\n return this._domains;\n }\n /**\n * Generates a list of all unique ranges\n * @returns String[]\n */\n getUniqueRanges() {\n if (y(this._ranges)) {\n const t = this.getDisplayData(), { cartesianScales: e } = this.services, s = e.getRangeIdentifier(), a = e.getMainYAxisPosition(), o = e.getCustomDomainValuesByposition(a);\n if (o)\n return o;\n this._ranges = Array.from(\n new Set(\n t.map((i) => i[s])\n )\n );\n }\n return this._ranges;\n }\n /**\n * Generates a matrix (If doesn't exist) and returns it\n * @returns Object\n */\n getMatrix() {\n if (y(this._matrix)) {\n const t = this.getUniqueDomain(), e = this.getUniqueRanges(), s = this.services.cartesianScales.getDomainIdentifier(), a = this.services.cartesianScales.getRangeIdentifier(), o = {};\n e.forEach((i) => {\n o[i] = {\n value: null,\n index: -1\n };\n }), t.forEach((i) => {\n this._matrix[i] = G(o);\n }), this.getDisplayData().forEach((i, r) => {\n this._matrix[i[s]][i[a]] = {\n value: i.value,\n index: r\n };\n });\n }\n return this._matrix;\n }\n /**\n *\n * @param newData The new raw data to be set\n */\n setData(t) {\n const e = this.sanitize(G(t)), s = this.generateDataGroups(e);\n return this.set({\n data: e,\n dataGroups: s\n }), this._domains = [], this._ranges = [], this._matrix = {}, e;\n }\n /**\n * Converts Object matrix into a single array\n * @returns object[]\n */\n getMatrixAsArray() {\n y(this._matrix) && this.getMatrix();\n const t = this.getUniqueDomain(), e = this.getUniqueRanges(), s = this.services.cartesianScales.getDomainIdentifier(), a = this.services.cartesianScales.getRangeIdentifier(), o = [];\n return t.forEach((i) => {\n e.forEach((r) => {\n const n = {\n value: this._matrix[i][r].value,\n index: this._matrix[i][r].index\n };\n n[s] = i, n[a] = r, o.push(n);\n });\n }), o;\n }\n /**\n * Generate tabular data from display data\n * @returns Array<Object>\n */\n getTabularDataArray() {\n const t = this.getDisplayData(), { primaryDomain: e, primaryRange: s } = this.assignRangeAndDomains();\n return [\n [e.label, s.label, \"Value\"],\n ...t.map((o) => [\n o[e.identifier] === null ? \"&ndash;\" : o[e.identifier],\n o[s.identifier] === null ? \"&ndash;\" : o[s.identifier].toLocaleString(),\n o.value\n ])\n ];\n }\n // Uses quantize scale to return class names\n getColorClassName(t) {\n return `${t.originalClassName} ${this._colorScale(t.value)}`;\n }\n setColorClassNames() {\n const t = this.getOptions(), e = u(t, \"color\", \"gradient\", \"colors\"), s = !y(e);\n let a = u(t, \"color\", \"pairing\", \"option\");\n const o = this.getValueDomain(), i = o[0] < 0 && o[1] > 0 ? \"diverge\" : \"mono\";\n (a < 1 && a > 4 && i === \"mono\" || a < 1 && a > 2 && i === \"diverge\") && (a = 1);\n const r = s ? e : [];\n if (!s) {\n const l = i === \"diverge\" ? 17 : 11;\n for (let c = 1; c < l + 1; c++)\n r.push(`fill-${i}-${a}-${c}`);\n }\n this._colorScale = Y().domain(o).range(r);\n const n = u(this.getOptions(), \"color\");\n this._colorScale = R(this.getDisplayData(), n);\n }\n}\nclass Tt extends T {\n getTabularDataArray() {\n const t = this.getOptions(), { groupMapsTo: e } = t.data, s = this.getBinnedStackedData();\n return [\n [\n x(t, \"bins.rangeLabel\") || \"Range\",\n ...s.map((o) => x(o, `0.${e}`))\n ],\n ...x(s, 0).map((o, i) => [\n `${x(o, \"data.x0\")} – ${x(o, \"data.x1\")}`,\n ...s.map((r) => x(r[i], `data.${x(r[i], e)}`))\n ])\n ];\n }\n}\nclass bt extends m {\n constructor(t) {\n super(t);\n }\n getMaximumDomain(t) {\n return t.reduce((s, a) => s + a.value, 0);\n }\n /**\n * Use a provided color for the bar or default to carbon color if no status provided.\n * Defaults to carbon color otherwise.\n * @param group dataset group label\n */\n getFillColor(t) {\n const e = this.getOptions(), s = u(e, \"color\", \"scale\"), a = this.getStatus();\n return s || !a ? super.getFillColor(t) : null;\n }\n /**\n * Get the associated status for the data by checking the ranges\n */\n getStatus() {\n const t = this.getOptions(), e = u(this.getDisplayData()), { value: s } = e ? e.reduce((i, r) => ({ value: i.value + r.value })) : 0, a = u(t, \"meter\", \"proportional\") ? s : s > 100 ? 100 : s, o = u(t, \"meter\", \"status\", \"ranges\");\n if (o) {\n const i = o.filter(\n (r) => r.range[0] <= a && a <= r.range[1]\n );\n if (i.length > 0)\n return i[0].status;\n }\n return null;\n }\n getTabularDataArray() {\n const t = this.getDisplayData(), e = this.getOptions(), { groupMapsTo: s } = e.data, a = this.getStatus(), o = u(e, \"meter\", \"proportional\");\n let i = [], r;\n if (o === null) {\n r = 100;\n const n = t[0];\n i = [\n [\"Group\", \"Value\", ...a ? [\"Status\"] : []],\n [n[s], n.value, ...a ? [a] : []]\n ];\n } else {\n const n = u(o, \"total\");\n r = n || this.getMaximumDomain(t), i = [\n [\"Group\", \"Value\", \"Percentage of total\"],\n ...t.map((l) => [\n l[s],\n l.value,\n (l.value / r * 100).toFixed(2) + \" %\"\n ])\n ];\n }\n return i;\n }\n}\nclass St extends T {\n constructor(t) {\n super(t);\n }\n getTabularDataArray() {\n const t = this.getOptions(), e = this.getGroupedData(), { angle: s, value: a } = u(t, \"radar\", \"axes\"), o = u(e, \"0\", \"data\").map((r) => r[s]);\n return [\n [\"Group\", ...o],\n ...e.map((r) => [\n r.name,\n ...o.map(\n (n, l) => u(r, \"data\", l, a) !== null ? u(r, \"data\", l, a).toLocaleString() : \"&ndash;\"\n )\n ])\n ];\n }\n}\nclass Ot extends m {\n constructor(t) {\n super(t);\n }\n getTabularDataArray() {\n const t = this.getDisplayData(), e = [[\"Child\", \"Parent\"]];\n return t.forEach((s) => {\n this.getChildrenDatums(s, e), e.push([s.name, \"&ndash;\"]);\n }), e;\n }\n /**\n * Determine the child parent relationship in nested data\n * @param datum: Object\n * @param result: Array<Object>\n */\n getChildrenDatums(t, e = []) {\n t.children && t.children.length > 0 && t.children.forEach((s) => {\n this.getChildrenDatums(s, e), e.push([s.name, t.name]);\n });\n }\n}\nclass Gt extends m {\n constructor(t) {\n super(t);\n }\n getTabularDataArray() {\n const t = this.getDisplayData(), e = [[\"Child\", \"Group\", \"Value\"]];\n return t.forEach((s) => {\n Array.isArray(s.children) ? s.children.forEach((a) => {\n e.push([a.name, s.name, a.value]);\n }) : u(s.name) !== null && u(s.value) && e.push([\"–\", s.name, s.value]);\n }), e;\n }\n}\nclass At extends m {\n constructor(t) {\n super(t);\n }\n getTabularDataArray() {\n const t = this.getDisplayData(), e = this.getOptions(), { fontSizeMapsTo: s, wordMapsTo: a } = e.wordCloud, { groupMapsTo: o } = e.data;\n return [\n [e.tooltip.wordLabel, \"Group\", e.tooltip.valueLabel],\n ...t.map((r) => [\n r[a],\n r[o],\n r[s]\n ])\n ];\n }\n}\nexport {\n dt as AlluvialChartModel,\n Dt as BoxplotChartModel,\n ft as BulletChartModel,\n m as ChartModel,\n Tt as ChartModelBinned,\n T as ChartModelCartesian,\n mt as ChoroplethModel,\n yt as CirclePackChartModel,\n xt as GaugeChartModel,\n Ct as HeatmapModel,\n bt as MeterChartModel,\n vt as PieChartModel,\n St as RadarChartModel,\n Ot as TreeChartModel,\n Gt as TreemapChartModel,\n At as WordCloudModel\n};\n//# sourceMappingURL=index.mjs.map\n","import { select as d } from \"d3\";\nimport { a as P, c as A, r as $, g as v, d as H, e as L } from \"./color-scale-utils-5eb3eeaa.mjs\";\nimport { _ as D, T as p, o as E } from \"./enums-a96ef472.mjs\";\nvar W = /\\s/;\nfunction q(s) {\n for (var e = s.length; e-- && W.test(s.charAt(e)); )\n ;\n return e;\n}\nvar _ = /^\\s+/;\nfunction j(s) {\n return s && s.slice(0, q(s) + 1).replace(_, \"\");\n}\nvar N = 0 / 0, U = /^[-+]0x[0-9a-f]+$/i, J = /^0b[01]+$/i, X = /^0o[0-7]+$/i, Y = parseInt;\nfunction O(s) {\n if (typeof s == \"number\")\n return s;\n if (P(s))\n return N;\n if (A(s)) {\n var e = typeof s.valueOf == \"function\" ? s.valueOf() : s;\n s = A(e) ? e + \"\" : e;\n }\n if (typeof s != \"string\")\n return s === 0 ? s : +s;\n s = j(s);\n var t = J.test(s);\n return t || X.test(s) ? Y(s.slice(2), t ? 2 : 8) : U.test(s) ? N : +s;\n}\nvar Z = function() {\n return $.Date.now();\n};\nconst T = Z;\nvar Q = \"Expected a function\", K = Math.max, ee = Math.min;\nfunction te(s, e, t) {\n var n, i, a, r, l, h, f = 0, y = !1, u = !1, c = !0;\n if (typeof s != \"function\")\n throw new TypeError(Q);\n e = O(e) || 0, A(t) && (y = !!t.leading, u = \"maxWait\" in t, a = u ? K(O(t.maxWait) || 0, e) : a, c = \"trailing\" in t ? !!t.trailing : c);\n function m(o) {\n var g = n, b = i;\n return n = i = void 0, f = o, r = s.apply(b, g), r;\n }\n function S(o) {\n return f = o, l = setTimeout(C, e), y ? m(o) : r;\n }\n function I(o) {\n var g = o - h, b = o - f, F = e - g;\n return u ? ee(F, a - b) : F;\n }\n function M(o) {\n var g = o - h, b = o - f;\n return h === void 0 || g >= e || g < 0 || u && b >= a;\n }\n function C() {\n var o = T();\n if (M(o))\n return R(o);\n l = setTimeout(C, I(o));\n }\n function R(o) {\n return l = void 0, c && n ? m(o) : (n = i = void 0, r);\n }\n function k() {\n l !== void 0 && clearTimeout(l), f = 0, n = h = i = l = void 0;\n }\n function V() {\n return l === void 0 ? r : R(T());\n }\n function w() {\n var o = T(), g = M(o);\n if (n = arguments, i = this, h = o, g) {\n if (l === void 0)\n return S(h);\n if (u)\n return clearTimeout(l), l = setTimeout(C, e), m(h);\n }\n return l === void 0 && (l = setTimeout(C, e)), r;\n }\n return w.cancel = k, w.flush = V, w;\n}\nclass G {\n constructor(e, t) {\n this.model = e, this.services = t, this.init();\n }\n init() {\n }\n update() {\n }\n // Used to pass down information to the components\n setModel(e) {\n this.model = e;\n }\n // Used to pass down services to the components\n setServices(e) {\n this.services = e;\n }\n}\nconst ne = \"DONT_STYLE_ME_css_styles_verifier\";\nclass B extends G {\n // initialized in initializeID() called by init()\n constructor(e, t) {\n super(e, t), this.chartID = \"\";\n }\n static getHTMLElementSize(e) {\n return {\n width: e.clientWidth,\n height: e.clientHeight\n };\n }\n static getSVGElementSize(e, t = {\n useAttrs: !1,\n useClientDimensions: !1,\n useBBox: !1,\n useBoundingRect: !1\n }) {\n e.attr || (e = d(e));\n const n = {\n width: 0,\n height: 0\n }, i = (c) => {\n c && Object.keys(n).forEach((m) => {\n if (c[m]) {\n const S = c[m], I = parseFloat(S);\n S && I > n[m] && (\"\" + S).indexOf(\"%\") === -1 && (n[m] = I);\n }\n });\n }, a = {\n width: e.attr(\"width\"),\n height: e.attr(\"height\")\n }, r = e.node();\n let l, h, f, y;\n try {\n typeof r.getBBox == \"function\" && (l = r.getBBox(), h = {\n width: l.width,\n height: l.height\n });\n } catch (c) {\n console.error(c);\n }\n try {\n typeof (r == null ? void 0 : r.getBoundingClientRect) == \"function\" && (f = r.getBoundingClientRect(), y = {\n width: f.width,\n height: f.height\n });\n } catch (c) {\n console.error(c);\n }\n let u;\n if (r instanceof SVGSVGElement && (u = {\n width: r.clientWidth,\n height: r.clientHeight\n }), t) {\n if (t.useAttrs && (i(a), n.width > 0 && n.height > 0))\n return n;\n if (t.useClientDimensions && (i(u), n.width > 0 && n.height > 0))\n return u;\n if (t.useBBox && (i(h), n.width > 0 && n.height > 0))\n return h;\n if (t.useBoundingRect && (i(y), n.width > 0 && n.height > 0))\n return y;\n }\n try {\n const c = {\n width: v(e.node(), \"width\", \"baseVal\", \"value\"),\n height: v(e.node(), \"height\", \"baseVal\", \"value\")\n };\n i(c);\n } catch {\n i(u), i(h), i(a);\n }\n return n;\n }\n static appendOrSelect(e, t) {\n const n = e.select(`${t}`);\n if (n.empty()) {\n let i = t.split(\"#\"), a, r;\n return i.length === 2 ? (a = i[0], i = i[1].split(\".\"), r = i[0]) : (i = t.split(\".\"), a = i[0]), e.append(a).attr(\"id\", r).attr(\"class\", i.slice(1).join(\" \"));\n }\n return n;\n }\n init() {\n this.styleHolderElement(), this.initializeID(), this.addMainContainer(), this.model.getOptions().resizable && this.addResizeListener(), this.addHolderListeners(), this.handleFullscreenChange();\n }\n getChartID() {\n return this.chartID;\n }\n generateElementIDString(e) {\n return `chart-${this.chartID}-${e}`;\n }\n initializeID() {\n this.chartID = Math.floor((1 + Math.random()) * 281474976710656).toString(16);\n }\n addMainContainer() {\n const e = this.model.getOptions(), t = v(e, \"style\", \"prefix\"), n = d(this.getHolder()).append(\"div\").classed(`${H}--${t}--chart-wrapper`, !0).attr(\"id\", `chart-${this.getChartID()}`).style(\"height\", \"100%\").style(\"width\", \"100%\");\n n.append(\"g\").attr(\"class\", ne), this.mainContainer = n.node();\n }\n update() {\n this.styleHolderElement();\n }\n styleHolderElement() {\n const e = this.getHolder(), { width: t, height: n, theme: i } = this.model.getOptions();\n t !== this.width && (e.style.width = t, this.width = t), n !== this.height && (e.style.height = n, this.height = n), d(this.getHolder()).classed(`${H}--chart-holder`, !0).attr(\"data-carbon-theme\", i);\n }\n getHolder() {\n return this.model.get(\"holder\");\n }\n exportToJPG() {\n const e = this, t = this.getHolder(), n = d(t);\n n.classed(\"filled\", !0), L.toJpeg(this.getMainContainer(), {\n bgcolor: typeof window < \"u\" ? window.getComputedStyle(t).getPropertyValue(\"background-color\") : void 0,\n quality: 1,\n // Remove the toolbar\n filter: (i) => !(i.classList && i.classList.contains(\"cds--cc--toolbar\"))\n }).then(function(i) {\n var a;\n (a = e.services.files) == null || a.downloadImage(i, \"myChart.jpg\"), n.classed(\"filled\", !1);\n });\n }\n exportToPNG() {\n const e = this, t = this.getHolder(), n = d(t);\n n.classed(\"filled\", !0), L.toPng(this.getMainContainer(), {\n bgcolor: typeof window < \"u\" ? window.getComputedStyle(t).getPropertyValue(\"background-color\") : void 0,\n quality: 1,\n // Remove the toolbar\n filter: (i) => !(i.classList && i.classList.contains(\"cds--cc--toolbar\"))\n }).then(function(i) {\n var a;\n (a = e.services.files) == null || a.downloadImage(i, \"myChart.png\"), n.classed(\"filled\", !1);\n }).catch(function(i) {\n console.error(\"oops, something went wrong!\", i);\n });\n }\n toggleFullscreen() {\n const e = this.getHolder();\n d(e).classed(\"fullscreen\") && (document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement) ? document.exitFullscreen ? document.exitFullscreen() : document.webkitExitFullscreen ? document.webkitExitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.msExitFullscreen && document.msExitFullscreen() : e.requestFullscreen ? e.requestFullscreen() : e.webkitRequestFullscreen ? e.webkitRequestFullscreen() : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.msRequestFullscreen && e.msRequestFullscreen();\n }\n handleFullscreenChange() {\n document.addEventListener(\"fullscreenchange\", () => {\n const e = d(this.getHolder()), t = e.classed(\"fullscreen\");\n e.classed(\"fullscreen\", !t);\n });\n }\n setSVGMaxHeight() {\n if (!this.model.getOptions().height) {\n const { height: e } = B.getSVGElementSize(\n d(this.mainContainer),\n {\n useBBox: !0\n }\n ), t = d(this.mainContainer).attr(\"class\"), n = d(this.mainContainer).selectAll(`.${t} > svg`);\n let i = 0;\n n.nodes().forEach(function(a) {\n i += Number(\n B.getSVGElementSize(d(a), {\n useBBox: !0\n }).height\n );\n }), i <= e ? d(this.mainContainer).attr(\"height\", i) : d(this.mainContainer).attr(\"height\", \"100%\");\n }\n }\n getMainContainer() {\n return this.mainContainer;\n }\n addHolderListeners() {\n const e = this.getHolder();\n e && d(e).on(\"mouseover\", () => {\n var t;\n (t = this.services.events) == null || t.dispatchEvent(D.Chart.MOUSEOVER);\n }).on(\"mouseout\", () => {\n var t;\n (t = this.services.events) == null || t.dispatchEvent(D.Chart.MOUSEOUT);\n });\n }\n addResizeListener() {\n const e = this.getHolder();\n if (!e)\n return;\n let t = e.clientWidth, n = e.clientHeight;\n const i = te(() => {\n var r;\n e && (Math.abs(t - e.clientWidth) > 1 || Math.abs(n - e.clientHeight) > 1) && (t = e.clientWidth, n = e.clientHeight, (r = this.services.events) == null || r.dispatchEvent(D.Chart.RESIZE));\n }, 12.5);\n new ResizeObserver(i).observe(e);\n }\n}\nclass z extends G {\n static appendOrUpdateLinearGradient(e) {\n let t = e.svg.select(`defs linearGradient#${e.id}`);\n t.empty() && (t = e.svg.append(\"defs\").append(\"linearGradient\").attr(\"id\", e.id).attr(\"x1\", e.x1).attr(\"x2\", e.x2).attr(\"y1\", e.y1).attr(\"y2\", e.y2)), t.selectAll(\"stop\").remove(), t.selectAll(\"stop\").data(e.stops).enter().append(\"stop\").attr(\"offset\", (n) => n.offset).style(\"stop-color\", (n) => n.color).style(\"stop-opacity\", (n) => n.opacity);\n }\n static getOffsetRatio(e) {\n return (Math.abs(e[1]) * 100 / Math.abs(e[0] - e[1])).toFixed(2) + \"%\";\n }\n static getStops(e, t) {\n const n = e[0] < 0 && e[1] > 0;\n let i = [\n {\n offset: \"0%\",\n color: t,\n opacity: \"0.6\"\n },\n {\n offset: \"80%\",\n color: t,\n opacity: \"0\"\n }\n ];\n return n && (i = [\n {\n offset: \"0%\",\n color: t,\n opacity: \"0.6\"\n },\n {\n offset: z.getOffsetRatio(e),\n color: t,\n opacity: \"0\"\n },\n {\n offset: \"100%\",\n color: t,\n opacity: \"0.6\"\n }\n ]), i;\n }\n}\nfunction le(s) {\n const e = ie(se(s), 360);\n return x(e, [0, 10]) || x(e, [350, 0]) ? {\n textAnchor: p.START,\n dominantBaseline: E.MIDDLE\n } : x(e, [10, 80]) ? {\n textAnchor: p.START,\n dominantBaseline: E.HANGING\n } : x(e, [80, 100]) ? {\n textAnchor: p.MIDDLE,\n dominantBaseline: E.HANGING\n } : x(e, [100, 170]) ? {\n textAnchor: p.END,\n dominantBaseline: E.HANGING\n } : x(e, [170, 190]) ? {\n textAnchor: p.END,\n dominantBaseline: E.MIDDLE\n } : x(e, [190, 260]) ? {\n textAnchor: p.END,\n dominantBaseline: E.BASELINE\n } : x(e, [260, 280]) ? {\n textAnchor: p.MIDDLE,\n dominantBaseline: E.BASELINE\n } : {\n textAnchor: p.START,\n dominantBaseline: E.BASELINE\n };\n}\nfunction ie(s, e) {\n return (s % e + e) % e;\n}\nfunction x(s, [e, t]) {\n return s >= e && s <= t;\n}\nfunction se(s) {\n return s * (180 / Math.PI);\n}\nfunction ce(s) {\n return s * (Math.PI / 180);\n}\nfunction de(s, e, t = { x: 0, y: 0 }) {\n const n = e * Math.cos(s) + t.x, i = e * Math.sin(s) + t.y;\n return { x: isNaN(n) ? 0 : n, y: isNaN(i) ? 0 : i };\n}\nfunction he(s, e) {\n return e * Math.sin(s - Math.PI / 2);\n}\nexport {\n B as D,\n z as G,\n G as S,\n he as a,\n se as b,\n te as c,\n ce as d,\n de as p,\n le as r,\n O as t\n};\n//# sourceMappingURL=angle-utils-8b6ce998.mjs.map\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","import {min} from \"d3-array\";\n\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\nexport function left(node) {\n return node.depth;\n}\n\nexport function right(node, n) {\n return n - 1 - node.height;\n}\n\nexport function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\nexport function center(node) {\n return node.targetLinks.length ? node.depth\n : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1\n : 0;\n}\n","export default function constant(x) {\n return function() {\n return x;\n };\n}\n","import {max, min, sum} from \"d3-array\";\nimport {justify} from \"./align.js\";\nimport constant from \"./constant.js\";\n\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\nfunction ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n}\n\nfunction value(d) {\n return d.value;\n}\n\nfunction defaultId(d) {\n return d.index;\n}\n\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\nfunction find(nodeById, id) {\n const node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n}\n\nfunction computeLinkBreadths({nodes}) {\n for (const node of nodes) {\n let y0 = node.y0;\n let y1 = y0;\n for (const link of node.sourceLinks) {\n link.y0 = y0 + link.width / 2;\n y0 += link.width;\n }\n for (const link of node.targetLinks) {\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n }\n }\n}\n\nexport default function Sankey() {\n let x0 = 0, y0 = 0, x1 = 1, y1 = 1; // extent\n let dx = 24; // nodeWidth\n let dy = 8, py; // nodePadding\n let id = defaultId;\n let align = justify;\n let sort;\n let linkSort;\n let nodes = defaultNodes;\n let links = defaultLinks;\n let iterations = 6;\n\n function sankey() {\n const graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeHeights(graph);\n computeNodeBreadths(graph);\n computeLinkBreadths(graph);\n return graph;\n }\n\n sankey.update = function(graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n\n sankey.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n };\n\n sankey.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n };\n\n sankey.nodeSort = function(_) {\n return arguments.length ? (sort = _, sankey) : sort;\n };\n\n sankey.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankey) : dx;\n };\n\n sankey.nodePadding = function(_) {\n return arguments.length ? (dy = py = +_, sankey) : dy;\n };\n\n sankey.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n };\n\n sankey.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n };\n\n sankey.linkSort = function(_) {\n return arguments.length ? (linkSort = _, sankey) : linkSort;\n };\n\n sankey.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n };\n\n sankey.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];\n };\n\n sankey.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankey) : iterations;\n };\n\n function computeNodeLinks({nodes, links}) {\n for (const [i, node] of nodes.entries()) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n }\n const nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d]));\n for (const [i, link] of links.entries()) {\n link.index = i;\n let {source, target} = link;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n }\n if (linkSort != null) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(linkSort);\n targetLinks.sort(linkSort);\n }\n }\n }\n\n function computeNodeValues({nodes}) {\n for (const node of nodes) {\n node.value = node.fixedValue === undefined\n ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value))\n : node.fixedValue;\n }\n }\n\n function computeNodeDepths({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.depth = x;\n for (const {target} of node.sourceLinks) {\n next.add(target);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeHeights({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.height = x;\n for (const {source} of node.targetLinks) {\n next.add(source);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeLayers({nodes}) {\n const x = max(nodes, d => d.depth) + 1;\n const kx = (x1 - x0 - dx) / (x - 1);\n const columns = new Array(x);\n for (const node of nodes) {\n const i = Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x))));\n node.layer = i;\n node.x0 = x0 + i * kx;\n node.x1 = node.x0 + dx;\n if (columns[i]) columns[i].push(node);\n else columns[i] = [node];\n }\n if (sort) for (const column of columns) {\n column.sort(sort);\n }\n return columns;\n }\n\n function initializeNodeBreadths(columns) {\n const ky = min(columns, c => (y1 - y0 - (c.length - 1) * py) / sum(c, value));\n for (const nodes of columns) {\n let y = y0;\n for (const node of nodes) {\n node.y0 = y;\n node.y1 = y + node.value * ky;\n y = node.y1 + py;\n for (const link of node.sourceLinks) {\n link.width = link.value * ky;\n }\n }\n y = (y1 - y + py) / (nodes.length + 1);\n for (let i = 0; i < nodes.length; ++i) {\n const node = nodes[i];\n node.y0 += y * (i + 1);\n node.y1 += y * (i + 1);\n }\n reorderLinks(nodes);\n }\n }\n\n function computeNodeBreadths(graph) {\n const columns = computeNodeLayers(graph);\n py = Math.min(dy, (y1 - y0) / (max(columns, c => c.length) - 1));\n initializeNodeBreadths(columns);\n for (let i = 0; i < iterations; ++i) {\n const alpha = Math.pow(0.99, i);\n const beta = Math.max(1 - alpha, (i + 1) / iterations);\n relaxRightToLeft(columns, alpha, beta);\n relaxLeftToRight(columns, alpha, beta);\n }\n }\n\n // Reposition each node based on its incoming (target) links.\n function relaxLeftToRight(columns, alpha, beta) {\n for (let i = 1, n = columns.length; i < n; ++i) {\n const column = columns[i];\n for (const target of column) {\n let y = 0;\n let w = 0;\n for (const {source, value} of target.targetLinks) {\n let v = value * (target.layer - source.layer);\n y += targetTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - target.y0) * alpha;\n target.y0 += dy;\n target.y1 += dy;\n reorderNodeLinks(target);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n // Reposition each node based on its outgoing (source) links.\n function relaxRightToLeft(columns, alpha, beta) {\n for (let n = columns.length, i = n - 2; i >= 0; --i) {\n const column = columns[i];\n for (const source of column) {\n let y = 0;\n let w = 0;\n for (const {target, value} of source.sourceLinks) {\n let v = value * (target.layer - source.layer);\n y += sourceTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - source.y0) * alpha;\n source.y0 += dy;\n source.y1 += dy;\n reorderNodeLinks(source);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n function resolveCollisions(nodes, alpha) {\n const i = nodes.length >> 1;\n const subject = nodes[i];\n resolveCollisionsBottomToTop(nodes, subject.y0 - py, i - 1, alpha);\n resolveCollisionsTopToBottom(nodes, subject.y1 + py, i + 1, alpha);\n resolveCollisionsBottomToTop(nodes, y1, nodes.length - 1, alpha);\n resolveCollisionsTopToBottom(nodes, y0, 0, alpha);\n }\n\n // Push any overlapping nodes down.\n function resolveCollisionsTopToBottom(nodes, y, i, alpha) {\n for (; i < nodes.length; ++i) {\n const node = nodes[i];\n const dy = (y - node.y0) * alpha;\n if (dy > 1e-6) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n }\n\n // Push any overlapping nodes up.\n function resolveCollisionsBottomToTop(nodes, y, i, alpha) {\n for (; i >= 0; --i) {\n const node = nodes[i];\n const dy = (node.y1 - y) * alpha;\n if (dy > 1e-6) node.y0 -= dy, node.y1 -= dy;\n y = node.y0 - py;\n }\n }\n\n function reorderNodeLinks({sourceLinks, targetLinks}) {\n if (linkSort === undefined) {\n for (const {source: {sourceLinks}} of targetLinks) {\n sourceLinks.sort(ascendingTargetBreadth);\n }\n for (const {target: {targetLinks}} of sourceLinks) {\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n function reorderLinks(nodes) {\n if (linkSort === undefined) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(ascendingTargetBreadth);\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n // Returns the target.y0 that would produce an ideal link from source to target.\n function targetTop(source, target) {\n let y = source.y0 - (source.sourceLinks.length - 1) * py / 2;\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y += width + py;\n }\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y -= width;\n }\n return y;\n }\n\n // Returns the source.y0 that would produce an ideal link from source to target.\n function sourceTop(source, target) {\n let y = target.y0 - (target.targetLinks.length - 1) * py / 2;\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y += width + py;\n }\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y -= width;\n }\n return y;\n }\n\n return sankey;\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","export var slice = Array.prototype.slice;\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {linkHorizontal} from \"d3-shape\";\n\nfunction horizontalSource(d) {\n return [d.source.x1, d.y0];\n}\n\nfunction horizontalTarget(d) {\n return [d.target.x0, d.y1];\n}\n\nexport default function() {\n return linkHorizontal()\n .source(horizontalSource)\n .target(horizontalTarget);\n}\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","// Word cloud layout by Jason Davies, https://www.jasondavies.com/wordcloud/\n// Algorithm due to Jonathan Feinberg, http://static.mrfeinberg.com/bv_ch03.pdf\n\nvar dispatch = require(\"d3-dispatch\").dispatch;\n\nvar cloudRadians = Math.PI / 180,\n cw = 1 << 11 >> 5,\n ch = 1 << 11;\n\nmodule.exports = function() {\n var size = [256, 256],\n text = cloudText,\n font = cloudFont,\n fontSize = cloudFontSize,\n fontStyle = cloudFontNormal,\n fontWeight = cloudFontNormal,\n rotate = cloudRotate,\n padding = cloudPadding,\n spiral = archimedeanSpiral,\n words = [],\n timeInterval = Infinity,\n event = dispatch(\"word\", \"end\"),\n timer = null,\n random = Math.random,\n cloud = {},\n canvas = cloudCanvas;\n\n cloud.canvas = function(_) {\n return arguments.length ? (canvas = functor(_), cloud) : canvas;\n };\n\n cloud.start = function() {\n var contextAndRatio = getContext(canvas()),\n board = zeroArray((size[0] >> 5) * size[1]),\n bounds = null,\n n = words.length,\n i = -1,\n tags = [],\n data = words.map(function(d, i) {\n d.text = text.call(this, d, i);\n d.font = font.call(this, d, i);\n d.style = fontStyle.call(this, d, i);\n d.weight = fontWeight.call(this, d, i);\n d.rotate = rotate.call(this, d, i);\n d.size = ~~fontSize.call(this, d, i);\n d.padding = padding.call(this, d, i);\n return d;\n }).sort(function(a, b) { return b.size - a.size; });\n\n if (timer) clearInterval(timer);\n timer = setInterval(step, 0);\n step();\n\n return cloud;\n\n function step() {\n var start = Date.now();\n while (Date.now() - start < timeInterval && ++i < n && timer) {\n var d = data[i];\n d.x = (size[0] * (random() + .5)) >> 1;\n d.y = (size[1] * (random() + .5)) >> 1;\n cloudSprite(contextAndRatio, d, data, i);\n if (d.hasText && place(board, d, bounds)) {\n tags.push(d);\n event.call(\"word\", cloud, d);\n if (bounds) cloudBounds(bounds, d);\n else bounds = [{x: d.x + d.x0, y: d.y + d.y0}, {x: d.x + d.x1, y: d.y + d.y1}];\n // Temporary hack\n d.x -= size[0] >> 1;\n d.y -= size[1] >> 1;\n }\n }\n if (i >= n) {\n cloud.stop();\n event.call(\"end\", cloud, tags, bounds);\n }\n }\n }\n\n cloud.stop = function() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n return cloud;\n };\n\n function getContext(canvas) {\n canvas.width = canvas.height = 1;\n var ratio = Math.sqrt(canvas.getContext(\"2d\").getImageData(0, 0, 1, 1).data.length >> 2);\n canvas.width = (cw << 5) / ratio;\n canvas.height = ch / ratio;\n\n var context = canvas.getContext(\"2d\");\n context.fillStyle = context.strokeStyle = \"red\";\n context.textAlign = \"center\";\n\n return {context: context, ratio: ratio};\n }\n\n function place(board, tag, bounds) {\n var perimeter = [{x: 0, y: 0}, {x: size[0], y: size[1]}],\n startX = tag.x,\n startY = tag.y,\n maxDelta = Math.sqrt(size[0] * size[0] + size[1] * size[1]),\n s = spiral(size),\n dt = random() < .5 ? 1 : -1,\n t = -dt,\n dxdy,\n dx,\n dy;\n\n while (dxdy = s(t += dt)) {\n dx = ~~dxdy[0];\n dy = ~~dxdy[1];\n\n if (Math.min(Math.abs(dx), Math.abs(dy)) >= maxDelta) break;\n\n tag.x = startX + dx;\n tag.y = startY + dy;\n\n if (tag.x + tag.x0 < 0 || tag.y + tag.y0 < 0 ||\n tag.x + tag.x1 > size[0] || tag.y + tag.y1 > size[1]) continue;\n // TODO only check for collisions within current bounds.\n if (!bounds || !cloudCollide(tag, board, size[0])) {\n if (!bounds || collideRects(tag, bounds)) {\n var sprite = tag.sprite,\n w = tag.width >> 5,\n sw = size[0] >> 5,\n lx = tag.x - (w << 4),\n sx = lx & 0x7f,\n msx = 32 - sx,\n h = tag.y1 - tag.y0,\n x = (tag.y + tag.y0) * sw + (lx >> 5),\n last;\n for (var j = 0; j < h; j++) {\n last = 0;\n for (var i = 0; i <= w; i++) {\n board[x + i] |= (last << msx) | (i < w ? (last = sprite[j * w + i]) >>> sx : 0);\n }\n x += sw;\n }\n delete tag.sprite;\n return true;\n }\n }\n }\n return false;\n }\n\n cloud.timeInterval = function(_) {\n return arguments.length ? (timeInterval = _ == null ? Infinity : _, cloud) : timeInterval;\n };\n\n cloud.words = function(_) {\n return arguments.length ? (words = _, cloud) : words;\n };\n\n cloud.size = function(_) {\n return arguments.length ? (size = [+_[0], +_[1]], cloud) : size;\n };\n\n cloud.font = function(_) {\n return arguments.length ? (font = functor(_), cloud) : font;\n };\n\n cloud.fontStyle = function(_) {\n return arguments.length ? (fontStyle = functor(_), cloud) : fontStyle;\n };\n\n cloud.fontWeight = function(_) {\n return arguments.length ? (fontWeight = functor(_), cloud) : fontWeight;\n };\n\n cloud.rotate = function(_) {\n return arguments.length ? (rotate = functor(_), cloud) : rotate;\n };\n\n cloud.text = function(_) {\n return arguments.length ? (text = functor(_), cloud) : text;\n };\n\n cloud.spiral = function(_) {\n return arguments.length ? (spiral = spirals[_] || _, cloud) : spiral;\n };\n\n cloud.fontSize = function(_) {\n return arguments.length ? (fontSize = functor(_), cloud) : fontSize;\n };\n\n cloud.padding = function(_) {\n return arguments.length ? (padding = functor(_), cloud) : padding;\n };\n\n cloud.random = function(_) {\n return arguments.length ? (random = _, cloud) : random;\n };\n\n cloud.on = function() {\n var value = event.on.apply(event, arguments);\n return value === event ? cloud : value;\n };\n\n return cloud;\n};\n\nfunction cloudText(d) {\n return d.text;\n}\n\nfunction cloudFont() {\n return \"serif\";\n}\n\nfunction cloudFontNormal() {\n return \"normal\";\n}\n\nfunction cloudFontSize(d) {\n return Math.sqrt(d.value);\n}\n\nfunction cloudRotate() {\n return (~~(Math.random() * 6) - 3) * 30;\n}\n\nfunction cloudPadding() {\n return 1;\n}\n\n// Fetches a monochrome sprite bitmap for the specified text.\n// Load in batches for speed.\nfunction cloudSprite(contextAndRatio, d, data, di) {\n if (d.sprite) return;\n var c = contextAndRatio.context,\n ratio = contextAndRatio.ratio;\n\n c.clearRect(0, 0, (cw << 5) / ratio, ch / ratio);\n var x = 0,\n y = 0,\n maxh = 0,\n n = data.length;\n --di;\n while (++di < n) {\n d = data[di];\n c.save();\n c.font = d.style + \" \" + d.weight + \" \" + ~~((d.size + 1) / ratio) + \"px \" + d.font;\n var w = c.measureText(d.text + \"m\").width * ratio,\n h = d.size << 1;\n if (d.rotate) {\n var sr = Math.sin(d.rotate * cloudRadians),\n cr = Math.cos(d.rotate * cloudRadians),\n wcr = w * cr,\n wsr = w * sr,\n hcr = h * cr,\n hsr = h * sr;\n w = (Math.max(Math.abs(wcr + hsr), Math.abs(wcr - hsr)) + 0x1f) >> 5 << 5;\n h = ~~Math.max(Math.abs(wsr + hcr), Math.abs(wsr - hcr));\n } else {\n w = (w + 0x1f) >> 5 << 5;\n }\n if (h > maxh) maxh = h;\n if (x + w >= (cw << 5)) {\n x = 0;\n y += maxh;\n maxh = 0;\n }\n if (y + h >= ch) break;\n c.translate((x + (w >> 1)) / ratio, (y + (h >> 1)) / ratio);\n if (d.rotate) c.rotate(d.rotate * cloudRadians);\n c.fillText(d.text, 0, 0);\n if (d.padding) c.lineWidth = 2 * d.padding, c.strokeText(d.text, 0, 0);\n c.restore();\n d.width = w;\n d.height = h;\n d.xoff = x;\n d.yoff = y;\n d.x1 = w >> 1;\n d.y1 = h >> 1;\n d.x0 = -d.x1;\n d.y0 = -d.y1;\n d.hasText = true;\n x += w;\n }\n var pixels = c.getImageData(0, 0, (cw << 5) / ratio, ch / ratio).data,\n sprite = [];\n while (--di >= 0) {\n d = data[di];\n if (!d.hasText) continue;\n var w = d.width,\n w32 = w >> 5,\n h = d.y1 - d.y0;\n // Zero the buffer\n for (var i = 0; i < h * w32; i++) sprite[i] = 0;\n x = d.xoff;\n if (x == null) return;\n y = d.yoff;\n var seen = 0,\n seenRow = -1;\n for (var j = 0; j < h; j++) {\n for (var i = 0; i < w; i++) {\n var k = w32 * j + (i >> 5),\n m = pixels[((y + j) * (cw << 5) + (x + i)) << 2] ? 1 << (31 - (i % 32)) : 0;\n sprite[k] |= m;\n seen |= m;\n }\n if (seen) seenRow = j;\n else {\n d.y0++;\n h--;\n j--;\n y++;\n }\n }\n d.y1 = d.y0 + seenRow;\n d.sprite = sprite.slice(0, (d.y1 - d.y0) * w32);\n }\n}\n\n// Use mask-based collision detection.\nfunction cloudCollide(tag, board, sw) {\n sw >>= 5;\n var sprite = tag.sprite,\n w = tag.width >> 5,\n lx = tag.x - (w << 4),\n sx = lx & 0x7f,\n msx = 32 - sx,\n h = tag.y1 - tag.y0,\n x = (tag.y + tag.y0) * sw + (lx >> 5),\n last;\n for (var j = 0; j < h; j++) {\n last = 0;\n for (var i = 0; i <= w; i++) {\n if (((last << msx) | (i < w ? (last = sprite[j * w + i]) >>> sx : 0))\n & board[x + i]) return true;\n }\n x += sw;\n }\n return false;\n}\n\nfunction cloudBounds(bounds, d) {\n var b0 = bounds[0],\n b1 = bounds[1];\n if (d.x + d.x0 < b0.x) b0.x = d.x + d.x0;\n if (d.y + d.y0 < b0.y) b0.y = d.y + d.y0;\n if (d.x + d.x1 > b1.x) b1.x = d.x + d.x1;\n if (d.y + d.y1 > b1.y) b1.y = d.y + d.y1;\n}\n\nfunction collideRects(a, b) {\n return a.x + a.x1 > b[0].x && a.x + a.x0 < b[1].x && a.y + a.y1 > b[0].y && a.y + a.y0 < b[1].y;\n}\n\nfunction archimedeanSpiral(size) {\n var e = size[0] / size[1];\n return function(t) {\n return [e * (t *= .1) * Math.cos(t), t * Math.sin(t)];\n };\n}\n\nfunction rectangularSpiral(size) {\n var dy = 4,\n dx = dy * size[0] / size[1],\n x = 0,\n y = 0;\n return function(t) {\n var sign = t < 0 ? -1 : 1;\n // See triangular numbers: T_n = n * (n + 1) / 2.\n switch ((Math.sqrt(1 + 4 * sign * t) - sign) & 3) {\n case 0: x += dx; break;\n case 1: y += dy; break;\n case 2: x -= dx; break;\n default: y -= dy; break;\n }\n return [x, y];\n };\n}\n\n// TODO reuse arrays?\nfunction zeroArray(n) {\n var a = [],\n i = -1;\n while (++i < n) a[i] = 0;\n return a;\n}\n\nfunction cloudCanvas() {\n return document.createElement(\"canvas\");\n}\n\nfunction functor(d) {\n return typeof d === \"function\" ? d : function() { return d; };\n}\n\nvar spirals = {\n archimedean: archimedeanSpiral,\n rectangular: rectangularSpiral\n};\n","import { select as x, pointer as qe, brushX as ms, scaleTime as Xs, extent as Ke, area as kt, line as It, axisBottom as Dt, axisLeft as fs, axisTop as Ys, axisRight as qs, scaleLinear as Oe, arc as Be, easeLinear as Ks, path as Rt, interpolateNumber as vs, quantize as Js, scaleBand as _t, hierarchy as Pt, pack as Qs, pie as en, interpolate as tn, interpolateRound as sn, min as dt, max as Nt, lineRadial as nn, curveLinearClosed as an, cluster as rn, tree as on, linkHorizontal as ln, treemap as cn, hsl as ys, color as bs, geoPath as dn, geoNaturalEarth1 as hn, geoMercator as un, geoEquirectangular as pn, geoConicEquidistant as gn, geoConicEqualArea as mn, geoAlbers as fn, geoEqualEarth as vn } from \"d3\";\nimport { t as Es, i as yn, U as Ss, V as bn, W as xs, X as En, Y as Sn, Z as xn, _ as On, g as y, d as he, h as Ie, G as Ht, $ as Tn, a0 as Q, z as J, a1 as $e, C as Os, a2 as Ut, L as de, I as Ln, a3 as Ts, f as wn, a4 as ve, M as ht, O as ut, j as pe, a5 as Pe, a6 as ge, l as fe, A as me, a7 as Mn, S as An, n as pt, D as Z, q as ce, a8 as ie, a9 as Cn, Q as kn, B as se, u as _e, s as tt, aa as zt, ab as In, ac as Ft, E as Ee } from \"./color-scale-utils-5eb3eeaa.mjs\";\nimport { y as H, _ as f, K as ee, r as ye, q as Te, L as Dn, A as ue, m as $, s as Se, V as ke, S as te, e as P, Z as Le, i as le, f as Wt, J as st, d as Rn, F as Ne, n as nt, H as at, C as it, p as He, b as jt, D as rt, Q as _n, x as xe, $ as Ue, N as ot } from \"./enums-a96ef472.mjs\";\nimport { R as U } from \"./a11y-7bad4f48.mjs\";\nimport { t as lt, D as E, c as gt, G as Zt, a as Pn, p as Y, r as Xt, b as Vn } from \"./angle-utils-8b6ce998.mjs\";\nimport { sankey as Bn, sankeyLinkHorizontal as $n, sankeyJustify as Gn, sankeyLeft as Nn, sankeyRight as Hn } from \"d3-sankey\";\nimport { b as Ls } from \"./_baseEach-603421de.mjs\";\nimport Un from \"d3-cloud\";\nfunction zn(r, e, t, s) {\n var n = -1, a = r == null ? 0 : r.length;\n for (s && a && (t = r[++n]); ++n < a; )\n t = e(t, r[n], n, r);\n return t;\n}\nfunction Fn(r) {\n return function(e) {\n return r == null ? void 0 : r[e];\n };\n}\nvar Wn = {\n // Latin-1 Supplement block.\n À: \"A\",\n Á: \"A\",\n Â: \"A\",\n Ã: \"A\",\n Ä: \"A\",\n Å: \"A\",\n à: \"a\",\n á: \"a\",\n â: \"a\",\n ã: \"a\",\n ä: \"a\",\n å: \"a\",\n Ç: \"C\",\n ç: \"c\",\n Ð: \"D\",\n ð: \"d\",\n È: \"E\",\n É: \"E\",\n Ê: \"E\",\n Ë: \"E\",\n è: \"e\",\n é: \"e\",\n ê: \"e\",\n ë: \"e\",\n Ì: \"I\",\n Í: \"I\",\n Î: \"I\",\n Ï: \"I\",\n ì: \"i\",\n í: \"i\",\n î: \"i\",\n ï: \"i\",\n Ñ: \"N\",\n ñ: \"n\",\n Ò: \"O\",\n Ó: \"O\",\n Ô: \"O\",\n Õ: \"O\",\n Ö: \"O\",\n Ø: \"O\",\n ò: \"o\",\n ó: \"o\",\n ô: \"o\",\n õ: \"o\",\n ö: \"o\",\n ø: \"o\",\n Ù: \"U\",\n Ú: \"U\",\n Û: \"U\",\n Ü: \"U\",\n ù: \"u\",\n ú: \"u\",\n û: \"u\",\n ü: \"u\",\n Ý: \"Y\",\n ý: \"y\",\n ÿ: \"y\",\n Æ: \"Ae\",\n æ: \"ae\",\n Þ: \"Th\",\n þ: \"th\",\n ß: \"ss\",\n // Latin Extended-A block.\n Ā: \"A\",\n Ă: \"A\",\n Ą: \"A\",\n ā: \"a\",\n ă: \"a\",\n ą: \"a\",\n Ć: \"C\",\n Ĉ: \"C\",\n Ċ: \"C\",\n Č: \"C\",\n ć: \"c\",\n ĉ: \"c\",\n ċ: \"c\",\n č: \"c\",\n Ď: \"D\",\n Đ: \"D\",\n ď: \"d\",\n đ: \"d\",\n Ē: \"E\",\n Ĕ: \"E\",\n Ė: \"E\",\n Ę: \"E\",\n Ě: \"E\",\n ē: \"e\",\n ĕ: \"e\",\n ė: \"e\",\n ę: \"e\",\n ě: \"e\",\n Ĝ: \"G\",\n Ğ: \"G\",\n Ġ: \"G\",\n Ģ: \"G\",\n ĝ: \"g\",\n ğ: \"g\",\n ġ: \"g\",\n ģ: \"g\",\n Ĥ: \"H\",\n Ħ: \"H\",\n ĥ: \"h\",\n ħ: \"h\",\n Ĩ: \"I\",\n Ī: \"I\",\n Ĭ: \"I\",\n Į: \"I\",\n İ: \"I\",\n ĩ: \"i\",\n ī: \"i\",\n ĭ: \"i\",\n į: \"i\",\n ı: \"i\",\n Ĵ: \"J\",\n ĵ: \"j\",\n Ķ: \"K\",\n ķ: \"k\",\n ĸ: \"k\",\n Ĺ: \"L\",\n Ļ: \"L\",\n Ľ: \"L\",\n Ŀ: \"L\",\n Ł: \"L\",\n ĺ: \"l\",\n ļ: \"l\",\n ľ: \"l\",\n ŀ: \"l\",\n ł: \"l\",\n Ń: \"N\",\n Ņ: \"N\",\n Ň: \"N\",\n Ŋ: \"N\",\n ń: \"n\",\n ņ: \"n\",\n ň: \"n\",\n ŋ: \"n\",\n Ō: \"O\",\n Ŏ: \"O\",\n Ő: \"O\",\n ō: \"o\",\n ŏ: \"o\",\n ő: \"o\",\n Ŕ: \"R\",\n Ŗ: \"R\",\n Ř: \"R\",\n ŕ: \"r\",\n ŗ: \"r\",\n ř: \"r\",\n Ś: \"S\",\n Ŝ: \"S\",\n Ş: \"S\",\n Š: \"S\",\n ś: \"s\",\n ŝ: \"s\",\n ş: \"s\",\n š: \"s\",\n Ţ: \"T\",\n Ť: \"T\",\n Ŧ: \"T\",\n ţ: \"t\",\n ť: \"t\",\n ŧ: \"t\",\n Ũ: \"U\",\n Ū: \"U\",\n Ŭ: \"U\",\n Ů: \"U\",\n Ű: \"U\",\n Ų: \"U\",\n ũ: \"u\",\n ū: \"u\",\n ŭ: \"u\",\n ů: \"u\",\n ű: \"u\",\n ų: \"u\",\n Ŵ: \"W\",\n ŵ: \"w\",\n Ŷ: \"Y\",\n ŷ: \"y\",\n Ÿ: \"Y\",\n Ź: \"Z\",\n Ż: \"Z\",\n Ž: \"Z\",\n ź: \"z\",\n ż: \"z\",\n ž: \"z\",\n IJ: \"IJ\",\n ij: \"ij\",\n Œ: \"Oe\",\n œ: \"oe\",\n ʼn: \"'n\",\n ſ: \"s\"\n}, jn = Fn(Wn);\nconst Zn = jn;\nvar Xn = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g, Yn = \"\\\\u0300-\\\\u036f\", qn = \"\\\\ufe20-\\\\ufe2f\", Kn = \"\\\\u20d0-\\\\u20ff\", Jn = Yn + qn + Kn, Qn = \"[\" + Jn + \"]\", ea = RegExp(Qn, \"g\");\nfunction ta(r) {\n return r = Es(r), r && r.replace(Xn, Zn).replace(ea, \"\");\n}\nvar sa = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\nfunction na(r) {\n return r.match(sa) || [];\n}\nvar aa = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\nfunction ia(r) {\n return aa.test(r);\n}\nvar ws = \"\\\\ud800-\\\\udfff\", ra = \"\\\\u0300-\\\\u036f\", oa = \"\\\\ufe20-\\\\ufe2f\", la = \"\\\\u20d0-\\\\u20ff\", ca = ra + oa + la, Ms = \"\\\\u2700-\\\\u27bf\", As = \"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\", da = \"\\\\xac\\\\xb1\\\\xd7\\\\xf7\", ha = \"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\", ua = \"\\\\u2000-\\\\u206f\", pa = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\", Cs = \"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\", ga = \"\\\\ufe0e\\\\ufe0f\", ks = da + ha + ua + pa, Is = \"['’]\", Yt = \"[\" + ks + \"]\", ma = \"[\" + ca + \"]\", Ds = \"\\\\d+\", fa = \"[\" + Ms + \"]\", Rs = \"[\" + As + \"]\", _s = \"[^\" + ws + ks + Ds + Ms + As + Cs + \"]\", va = \"\\\\ud83c[\\\\udffb-\\\\udfff]\", ya = \"(?:\" + ma + \"|\" + va + \")\", ba = \"[^\" + ws + \"]\", Ps = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\", Vs = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\", Ce = \"[\" + Cs + \"]\", Ea = \"\\\\u200d\", qt = \"(?:\" + Rs + \"|\" + _s + \")\", Sa = \"(?:\" + Ce + \"|\" + _s + \")\", Kt = \"(?:\" + Is + \"(?:d|ll|m|re|s|t|ve))?\", Jt = \"(?:\" + Is + \"(?:D|LL|M|RE|S|T|VE))?\", Bs = ya + \"?\", $s = \"[\" + ga + \"]?\", xa = \"(?:\" + Ea + \"(?:\" + [ba, Ps, Vs].join(\"|\") + \")\" + $s + Bs + \")*\", Oa = \"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\", Ta = \"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\", La = $s + Bs + xa, wa = \"(?:\" + [fa, Ps, Vs].join(\"|\") + \")\" + La, Ma = RegExp([\n Ce + \"?\" + Rs + \"+\" + Kt + \"(?=\" + [Yt, Ce, \"$\"].join(\"|\") + \")\",\n Sa + \"+\" + Jt + \"(?=\" + [Yt, Ce + qt, \"$\"].join(\"|\") + \")\",\n Ce + \"?\" + qt + \"+\" + Kt,\n Ce + \"+\" + Jt,\n Ta,\n Oa,\n Ds,\n wa\n].join(\"|\"), \"g\");\nfunction Aa(r) {\n return r.match(Ma) || [];\n}\nfunction Ca(r, e, t) {\n return r = Es(r), e = t ? void 0 : e, e === void 0 ? ia(r) ? Aa(r) : na(r) : r.match(e) || [];\n}\nvar ka = \"['’]\", Ia = RegExp(ka, \"g\");\nfunction Da(r) {\n return function(e) {\n return zn(Ca(ta(e).replace(Ia, \"\")), r, \"\");\n };\n}\nfunction Ra(r, e, t) {\n return r === r && (t !== void 0 && (r = r <= t ? r : t), e !== void 0 && (r = r >= e ? r : e)), r;\n}\nfunction Gs(r, e, t) {\n return t === void 0 && (t = e, e = void 0), t !== void 0 && (t = lt(t), t = t === t ? t : 0), e !== void 0 && (e = lt(e), e = e === e ? e : 0), Ra(lt(r), e, t);\n}\nfunction _a(r, e) {\n var t = -1, s = yn(r) ? Array(r.length) : [];\n return Ls(r, function(n, a, i) {\n s[++t] = e(n, a, i);\n }), s;\n}\nfunction Pa(r, e) {\n var t = Ss(r) ? bn : _a;\n return t(r, xs(e));\n}\nvar Va = 1 / 0;\nfunction Ba(r, e) {\n return En(Pa(r, e), Va);\n}\nfunction Ns(r, e) {\n return Sn(r, e);\n}\nvar $a = Da(function(r, e, t) {\n return r + (t ? \"-\" : \"\") + e.toLowerCase();\n});\nconst we = $a;\nfunction Ga(r, e) {\n var t;\n return Ls(r, function(s, n, a) {\n return t = e(s, n, a), !t;\n }), !!t;\n}\nfunction Na(r, e, t) {\n var s = Ss(r) ? xn : Ga;\n return t && On(r, e, t) && (e = void 0), s(r, xs(e));\n}\nclass z {\n constructor(e, t, s) {\n if (this.type = \"\", this.renderType = H.HTML, this.id = \"\", this.parent = void 0, this.configs = {}, this.model = e, this.services = t, s && (this.configs = s, this.configs.id)) {\n const n = y(this.model.getOptions(), \"style\", \"prefix\");\n this.id = `${n}--${this.configs.id}`;\n }\n this.parent || this.setParent(x(this.services.domUtils.getMainContainer()));\n }\n init() {\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n console.error(\"Error: Component did not provide the required render function.\");\n }\n destroy() {\n }\n // Used to pass down information to the components\n setModel(e) {\n this.model = e;\n }\n // Used to pass down information to the components\n setServices(e) {\n this.services = e;\n }\n setParent(e) {\n var s;\n const t = this.parent;\n if (this.parent = e, !(t && t.node() === e.node()) && this.type) {\n const n = y(this.model.getOptions(), \"style\", \"prefix\");\n (s = this.parent) == null || s.classed(`${he}--${n}--${this.type}`, !0), t && t.classed(`${he}--${n}--${this.type}`, !1);\n }\n }\n getParent() {\n return this.parent;\n }\n getComponentContainer(e = { withinChartClip: !1 }) {\n if (this.type) {\n const t = y(this.model.getOptions(), \"style\", \"prefix\"), s = this.id ? `#${this.id}` : \"\", n = E.appendOrSelect(\n this.parent,\n `${this.renderType === H.SVG ? \"svg\" : \"div\"}${s}.${he}--${t}--${this.type}`\n );\n if (e.withinChartClip) {\n const a = this.model.get(\"chartClipId\");\n if (a) {\n const o = x(`#${a}`).select(\"rect\");\n o.size() !== 0 && parseFloat(o.attr(\"height\")) > 0 && n.attr(\"clip-path\", `url(#${a})`);\n }\n }\n return n.attr(\"width\", \"100%\").attr(\"height\", \"100%\");\n }\n return this.parent;\n }\n /**\n * graphs used in combo charts share a model with global options but can receive their own local options.\n * this function retrieves the global options and merges it with any options passed into this\n * component's config.options object.\n */\n getOptions() {\n return this.configs.options ? Ie({}, this.model.getOptions(), this.configs.options) : this.model.getOptions();\n }\n}\nconst Hs = class extends z {\n constructor() {\n super(...arguments), this.type = \"toolbar\", this.renderType = H.HTML;\n }\n init() {\n const r = () => this.updateOverflowMenu(!1);\n this.services.events.addEventListener(f.Toolbar.SHOW_OVERFLOW_MENU, () => {\n this.renderOverflowMenu(), document.body.addEventListener(\"click\", r);\n }), this.services.events.addEventListener(f.Toolbar.HIDE_OVERFLOW_MENU, () => {\n document.body.removeEventListener(\"click\", r);\n });\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(r = !0) {\n const e = this.getComponentContainer().attr(\"role\", \"toolbar\").attr(\"aria-label\", `chart-${this.services.domUtils.getChartID()} toolbar`);\n if (y(this.getOptions(), \"data\", \"loading\"))\n e.html(\"\"), this.overflowMenu = null;\n else {\n this.overflowMenu || (this.overflowMenu = e.append(\"div\").attr(\n \"class\",\n \"cds--overflow-menu-options cds--overflow-menu--flip cds--overflow-menu-options cds--overflow-menu--flip\"\n ).attr(\"tabindex\", -1).html(\"<ul role='menu'></ul>\"));\n const { buttonList: s, overflowMenuItemList: n } = this.getControlConfigs();\n n && s.push(this.getOverflowButtonConfig());\n const a = e.selectAll(\"div.toolbar-control\").data(s, (l) => l.id);\n a.exit().remove();\n const i = a.enter().append(\"div\").attr(\"class\", \"toolbar-control cds--overflow-menu cds--overflow-menu\").attr(\"role\", \"button\"), o = this;\n i.merge(a).classed(\"disabled\", (l) => l.shouldBeDisabled()).attr(\"aria-disabled\", (l) => l.shouldBeDisabled()).attr(\"aria-label\", (l) => l.title).html(\n (l) => `\n\t\t\t<button\n\t\t\t\tclass=\"cds--overflow-menu__trigger cds--overflow-menu__trigger\"\n\t\t\t\taria-haspopup=\"true\" aria-expanded=\"false\" id=\"${this.services.domUtils.generateElementIDString(\n `control-${l.id}`\n )}\" aria-label=\"${l.title}\">\n\t\t\t\t<svg focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cds--overflow-menu__icon cds--overflow-menu__icon\" viewBox=\"0 0 32 32\" aria-hidden=\"true\">\n\t\t\t\t\t${l.iconSVG.content}\n\t\t\t\t</svg>\n\t\t\t</button>`\n ).each(function(l, c) {\n x(this).select(\"svg\").style(\"will-change\", \"transform\").style(\"width\", l.iconSVG.width !== void 0 ? l.iconSVG.width : \"20px\").style(\"height\", l.iconSVG.height !== void 0 ? l.iconSVG.height : \"20px\"), x(this).select(\"button\").on(\"click\", (d) => {\n l.shouldBeDisabled() || o.triggerFunctionAndEvent(l, d, this);\n }).on(\"keydown\", (d) => {\n d.key && d.key === \"Enter\" || d.key === \" \" ? (d.preventDefault(), o.triggerFunctionAndEvent(l, d, this)) : d.key && d.key === \"ArrowLeft\" ? o.focusOnPreviousEnabledToolbarItem(c) : d.key && d.key === \"ArrowRight\" && o.focusOnNextEnabledToolbarItem(c);\n });\n }), this.overflowButton = this.getComponentContainer().select(\n `button.cds--overflow-menu__trigger#${this.services.domUtils.generateElementIDString(\n \"control-toolbar-overflow-menu\"\n )}`\n );\n }\n }\n renderOverflowMenu() {\n const { overflowMenuItemList: r } = this.getControlConfigs(), e = this.overflowMenu.select(\"ul\").selectAll(\"li.cds--overflow-menu-options__option\").data(r, (s) => y(s, \"id\"));\n e.exit().remove();\n const t = e.enter().append(\"li\").attr(\"id\", (s) => this.services.domUtils.generateElementIDString(`control-${s.id}`)).attr(\"class\", \"cds--overflow-menu-options__option cds--overflow-menu-options__option\").attr(\"role\", \"menuitem\").attr(\"tabindex\", 1);\n t.append(\"button\").attr(\"class\", \"cds--overflow-menu-options__btn cds--overflow-menu-options__btn\"), t.merge(e).classed(\"cds--overflow-menu-options__option--disabled\", (s) => s.shouldBeDisabled()).classed(\"cds--overflow-menu-options__option--disabled\", (s) => s.shouldBeDisabled()).attr(\"aria-disabled\", (s) => s.shouldBeDisabled()).selectAll(\"button\").text((s) => s.text);\n }\n isOverflowMenuOpen() {\n return this.overflowMenu.classed(\"is-open\");\n }\n // show/hide overflow menu\n updateOverflowMenu(r) {\n this.overflowMenu && (this.overflowMenu.classed(\"is-open\", r), this.overflowButton && (this.overflowButton.attr(\"aria-expanded\", r), x(this.overflowButton.node().parentNode).classed(\"cds--overflow-menu--open\", r).classed(\"cds--overflow-menu--open\", r)), r ? this.services.events.dispatchEvent(f.Toolbar.SHOW_OVERFLOW_MENU) : this.services.events.dispatchEvent(f.Toolbar.HIDE_OVERFLOW_MENU));\n }\n // Toolbar controllers\n focusOnPreviousEnabledToolbarItem(r) {\n const e = this.getToolbarButtonItems();\n let t = e.length;\n for (let s = r - 1; s >= 0; s--)\n if (!e[s].shouldBeDisabled()) {\n t = s;\n break;\n }\n if (t < e.length) {\n const s = x(\n `button#${this.services.domUtils.generateElementIDString(\n `control-${e[t].id}`\n )}`\n ).node();\n \"focus\" in s && s.focus();\n }\n }\n focusOnNextEnabledToolbarItem(r) {\n const e = this.getToolbarButtonItems();\n let t = -1;\n for (let s = r + 1; s < e.length; s++)\n if (!e[s].shouldBeDisabled()) {\n t = s;\n break;\n }\n if (t > -1) {\n const s = x(\n `button#${this.services.domUtils.generateElementIDString(\n `control-${e[t].id}`\n )}`\n ).node();\n \"focus\" in s && s.focus();\n }\n }\n focusOnPreviousEnabledMenuItem(r) {\n const e = this.getOverflowMenuItems();\n let t = e.length;\n for (let s = r - 1; s >= 0; s--)\n if (!e[s].shouldBeDisabled()) {\n t = s;\n break;\n }\n if (t < e.length) {\n const s = x(\n `#${this.services.domUtils.generateElementIDString(\n `control-${e[t].id}`\n )} button`\n ).node();\n \"focus\" in s && s.focus();\n }\n }\n focusOnNextEnabledMenuItem(r) {\n const e = this.getOverflowMenuItems();\n let t = -1;\n for (let s = r + 1; s < e.length; s++)\n if (!e[s].shouldBeDisabled()) {\n t = s;\n break;\n }\n if (t > -1) {\n const s = x(\n `#${this.services.domUtils.generateElementIDString(\n `control-${e[t].id}`\n )} button`\n ).node();\n \"focus\" in s && s.focus();\n }\n }\n toggleOverflowMenu(r) {\n if (this.isOverflowMenuOpen())\n this.updateOverflowMenu(!1);\n else {\n this.updateOverflowMenu(!0);\n const e = this;\n this.getOverflowMenuItems().forEach((s, n) => {\n const a = x(\n `#${this.services.domUtils.generateElementIDString(`control-${s.id}`)}`\n );\n a !== null && (a.on(\"click\", () => {\n e.triggerFunctionAndEvent(s, r, a.node()), e.updateOverflowMenu(!1);\n }), a.on(\"keydown\", (i) => {\n i && i.key === \"Enter\" ? e.triggerFunctionAndEvent(s, r, a.node()) : i && i.key === \"ArrowUp\" ? e.focusOnPreviousEnabledMenuItem(n) : i && i.key === \"ArrowDown\" ? e.focusOnNextEnabledMenuItem(n) : i && i.key === \"Escape\" && e.updateOverflowMenu(!1), i.preventDefault();\n }));\n }), e.focusOnNextEnabledMenuItem(-1);\n }\n r && r.stopImmediatePropagation();\n }\n // Calls passed function && dispatches event\n triggerFunctionAndEvent(r, e, t) {\n typeof r.shouldBeDisabled == \"function\" && r.shouldBeDisabled() || (typeof r.clickFunction == \"function\" && r.clickFunction(e), this.services.events.dispatchEvent(f.Toolbar.BUTTON_CLICK, {\n control: r,\n event: e,\n element: t\n }));\n }\n getControlConfigs() {\n const r = y(this.getOptions(), \"toolbar\", \"numberOfIcons\") - 1, e = y(this.getOptions(), \"toolbar\", \"controls\"), t = [], s = [], n = [];\n return e.forEach((a) => {\n let i = null;\n a.type === ee.CUSTOM ? (y(a, \"id\") === null && (a.id = `toolbar-button-${Hs.buttonID++}`), y(a, \"shouldBeDisabled\") === null && (a.shouldBeDisabled = () => !1), i = a) : i = this.getControlConfigByType(a.type), i && (i.text = a.text ? a.text : a.type, i.id.indexOf(\"toolbar-export\") !== -1 ? t.push(i) : s.length < r ? y(i, \"iconSVG\", \"content\") === null ? n.push(i) : s.push(i) : n.push(i));\n }), n.push(...t), n.length ? {\n buttonList: s,\n overflowMenuItemList: n\n } : {\n buttonList: s\n };\n }\n getToolbarButtonItems() {\n const { buttonList: r, overflowMenuItemList: e } = this.getControlConfigs();\n return e && r.push(this.getOverflowButtonConfig()), r || [];\n }\n getOverflowMenuItems() {\n const { overflowMenuItemList: r } = this.getControlConfigs();\n return r || [];\n }\n // special button config for overflow button\n getOverflowButtonConfig() {\n return {\n id: \"toolbar-overflow-menu\",\n title: \"More options\",\n shouldBeDisabled: () => !1,\n iconSVG: {\n content: `<circle cx=\"16\" cy=\"8\" r=\"2\"></circle>\n\t\t\t\t<circle cx=\"16\" cy=\"16\" r=\"2\"></circle>\n\t\t\t\t<circle cx=\"16\" cy=\"24\" r=\"2\"></circle>`\n },\n clickFunction: (r) => this.toggleOverflowMenu(r)\n };\n }\n getControlConfigByType(r) {\n const e = this.services.zoom && this.services.zoom.isZoomBarEnabled() && !this.services.zoom.isEmptyState(), t = this.model.getDisplayData();\n let s;\n switch (r) {\n case ee.ZOOM_IN:\n e && (s = {\n id: \"toolbar-zoomIn\",\n title: \"Zoom in\",\n shouldBeDisabled: () => this.services.zoom.isMinZoomDomain(),\n iconSVG: {\n content: this.getControlIconByType(r)\n },\n clickFunction: () => this.services.zoom.zoomIn()\n });\n break;\n case ee.ZOOM_OUT:\n e && (s = {\n id: \"toolbar-zoomOut\",\n title: \"Zoom out\",\n shouldBeDisabled: () => this.services.zoom.isMaxZoomDomain(),\n iconSVG: {\n content: this.getControlIconByType(r)\n },\n clickFunction: () => this.services.zoom.zoomOut()\n });\n break;\n case ee.RESET_ZOOM:\n e && (s = {\n id: \"toolbar-resetZoom\",\n title: \"Reset zoom\",\n shouldBeDisabled: () => this.services.zoom.isMaxZoomDomain(),\n iconSVG: {\n content: this.getControlIconByType(r)\n },\n clickFunction: () => this.services.zoom.resetZoomDomain()\n });\n break;\n case ee.MAKE_FULLSCREEN:\n s = {\n id: \"toolbar-makefullscreen\",\n iconSVG: {\n content: this.getControlIconByType(r),\n width: \"15px\",\n height: \"15px\"\n },\n title: \"Make fullscreen\",\n shouldBeDisabled: () => !1,\n clickFunction: () => {\n this.services.domUtils.toggleFullscreen();\n }\n };\n break;\n case ee.SHOW_AS_DATATABLE:\n s = {\n id: \"toolbar-showasdatatable\",\n iconSVG: {\n content: this.getControlIconByType(r)\n },\n title: \"Show as table\",\n shouldBeDisabled: () => t.length === 0,\n clickFunction: () => this.services.events.dispatchEvent(f.Modal.SHOW)\n };\n break;\n case ee.EXPORT_CSV:\n s = {\n id: \"toolbar-export-CSV\",\n title: \"Export as CSV\",\n shouldBeDisabled: () => !1,\n iconSVG: {\n content: this.getControlIconByType(r)\n },\n clickFunction: () => this.model.exportToCSV()\n };\n break;\n case ee.EXPORT_PNG:\n s = {\n id: \"toolbar-export-PNG\",\n title: \"Export as PNG\",\n shouldBeDisabled: () => !1,\n iconSVG: {\n content: this.getControlIconByType(r)\n },\n clickFunction: () => this.services.domUtils.exportToPNG()\n };\n break;\n case ee.EXPORT_JPG:\n s = {\n id: \"toolbar-export-JPG\",\n title: \"Export as JPG\",\n shouldBeDisabled: () => !1,\n iconSVG: {\n content: this.getControlIconByType(r)\n },\n clickFunction: () => this.services.domUtils.exportToJPG()\n };\n break;\n default:\n throw Error(\"Not supported toolbar control type: \" + r);\n }\n return s;\n }\n getControlIconByType(r) {\n switch (r) {\n case ee.ZOOM_IN:\n return `<polygon points=\"19 13 15 13 15 9 13 9 13 13 9 13 9 15 13 15 13 19 15 19 15 15 19 15 19 13\"/>\n\t\t\t\t\t\t<path d=\"M22.45,21A10.87,10.87,0,0,0,25,14,11,11,0,1,0,14,25a10.87,10.87,0,0,0,7-2.55L28.59,30,30,28.59ZM14,23a9,9,0,1,1,9-9A9,9,0,0,1,14,23Z\"/>`;\n case ee.ZOOM_OUT:\n return `<rect x=\"9\" y=\"13\" width=\"10\" height=\"2\"/>\n\t\t\t\t\t\t<path d=\"M22.45,21A10.87,10.87,0,0,0,25,14,11,11,0,1,0,14,25a10.87,10.87,0,0,0,7-2.55L28.59,30,30,28.59ZM14,23a9,9,0,1,1,9-9A9,9,0,0,1,14,23Z\"/>`;\n case ee.RESET_ZOOM:\n return '<path d=\"M22.4478,21A10.855,10.855,0,0,0,25,14,10.99,10.99,0,0,0,6,6.4658V2H4v8h8V8H7.332a8.9768,8.9768,0,1,1-2.1,8H3.1912A11.0118,11.0118,0,0,0,14,25a10.855,10.855,0,0,0,7-2.5522L28.5859,30,30,28.5859Z\"/>';\n case ee.MAKE_FULLSCREEN:\n return '<polygon points=\"21 2 21 4 26.59 4 17 13.58 18.41 15 28 5.41 28 11 30 11 30 2 21 2\"/><polygon points=\"15 18.42 13.59 17 4 26.59 4 21 2 21 2 30 11 30 11 28 5.41 28 15 18.42\"/>';\n case ee.SHOW_AS_DATATABLE:\n return '<rect x=\"4\" y=\"6\" width=\"18\" height=\"2\"/><rect x=\"4\" y=\"12\" width=\"18\" height=\"2\"/><rect x=\"4\" y=\"18\" width=\"18\" height=\"2\"/><rect x=\"4\" y=\"24\" width=\"18\" height=\"2\"/><rect x=\"26\" y=\"6\" width=\"2\" height=\"2\"/><rect x=\"26\" y=\"12\" width=\"2\" height=\"2\"/><rect x=\"26\" y=\"18\" width=\"2\" height=\"2\"/><rect x=\"26\" y=\"24\" width=\"2\" height=\"2\"/>';\n case ee.EXPORT_CSV:\n return '<path d=\"M22.4478,21A10.855,10.855,0,0,0,25,14,10.99,10.99,0,0,0,6,6.4658V2H4v8h8V8H7.332a8.9768,8.9768,0,1,1-2.1,8H3.1912A11.0118,11.0118,0,0,0,14,25a10.855,10.855,0,0,0,7-2.5522L28.5859,30,30,28.5859Z\"/>';\n case ee.EXPORT_JPG:\n return '<path d=\"M22.4478,21A10.855,10.855,0,0,0,25,14,10.99,10.99,0,0,0,6,6.4658V2H4v8h8V8H7.332a8.9768,8.9768,0,1,1-2.1,8H3.1912A11.0118,11.0118,0,0,0,14,25a10.855,10.855,0,0,0,7-2.5522L28.5859,30,30,28.5859Z\"/>';\n case ee.EXPORT_PNG:\n return '<path d=\"M22.4478,21A10.855,10.855,0,0,0,25,14,10.99,10.99,0,0,0,6,6.4658V2H4v8h8V8H7.332a8.9768,8.9768,0,1,1-2.1,8H3.1912A11.0118,11.0118,0,0,0,14,25a10.855,10.855,0,0,0,7-2.5522L28.5859,30,30,28.5859Z\"/>';\n default:\n throw Error(\"Not supported toolbar control type: \" + r);\n }\n }\n};\nlet Ha = Hs;\nHa.buttonID = 0;\nconst Us = class extends z {\n constructor(r, e, t, s) {\n super(r, e, s), this.type = \"layout\", this.configs = s, this.children = t, this._instanceID = Us.instanceID++, this.init();\n }\n init() {\n this.children.forEach((r) => {\n r.components.forEach((e) => {\n e.init();\n });\n });\n }\n getPreferedAndFixedSizeSum() {\n const r = this.parent;\n let e = 0;\n return r.selectAll(`div.layout-child-${this._instanceID}`).filter((t) => {\n const s = y(t, \"growth\");\n return s === ye.PREFERRED || s === ye.FIXED;\n }).each(function(t) {\n e += t.size;\n }), e;\n }\n getNumOfStretchChildren() {\n return this.parent.selectAll(`div.layout-child-${this._instanceID}`).filter((e) => y(e, \"growth\") === ye.STRETCH).size();\n }\n render(r = !0) {\n const e = this.parent, { width: t, height: s } = E.getHTMLElementSize(e.node()), n = this.configs.direction === Te.ROW || this.configs.direction === Te.ROW_REVERSE, a = y(this.model.getOptions(), \"style\", \"prefix\"), i = e.classed(\n `${he}--${a}--layout-row`,\n this.configs.direction === Te.ROW\n ).classed(\n `${he}--${a}--layout-row-reverse`,\n this.configs.direction === Te.ROW_REVERSE\n ).classed(\n `${he}--${a}--layout-column`,\n this.configs.direction === Te.COLUMN\n ).classed(\n `${he}--${a}--layout-column-reverse`,\n this.configs.direction === Te.COLUMN_REVERSE\n ).classed(\n `${he}--${a}--layout-alignitems-center`,\n this.configs.alignItems === Dn.CENTER\n ).selectAll(`div.layout-child-${this._instanceID}`).data(this.children, (c) => c.id);\n i.enter().append(\"div\").merge(e.selectAll(`div.layout-child-${this._instanceID}`)).attr(\"class\", (c) => `layout-child layout-child-${this._instanceID} ${c.id}`).each(function(c) {\n c.components.forEach((d) => {\n const p = x(this), u = y(c, \"renderType\") === H.SVG;\n d.setParent(\n u ? E.appendOrSelect(p, \"svg.layout-svg-wrapper\").attr(\"width\", \"100%\").attr(\"height\", \"100%\") : p\n );\n const g = y(c, \"growth\");\n (g === ye.PREFERRED || g === ye.FIXED) && d.render(r);\n });\n }), e.selectAll(`div.layout-child-${this._instanceID}`).style(\"height\", null).style(\"width\", null).each(function(c) {\n const d = y(c, \"growth\"), h = y(c, \"renderType\") === H.SVG ? E.getSVGElementSize(x(this).select(\"svg.layout-svg-wrapper\"), {\n useBBox: !0\n }) : E.getHTMLElementSize(this);\n if (d === ye.PREFERRED) {\n const u = n ? h.width : h.height, g = n ? t : s;\n c.size = u / g * 100;\n }\n }), i.exit().remove(), this.children.filter((c) => y(c, \"growth\") === ye.STRETCH).forEach((c) => {\n c.size = (100 - +this.getPreferedAndFixedSizeSum()) / +this.getNumOfStretchChildren();\n });\n const l = e.selectAll(`div.layout-child-${this._instanceID}`).data(this.children, (c) => c.id);\n n ? l.style(\"width\", (c) => `${c.size / 100 * t}px`).style(\"height\", \"100%\") : l.style(\"height\", (c) => `${c.size / 100 * s}px`).style(\"width\", \"100%\"), l.each(function(c) {\n c.components.forEach((d) => {\n y(c, \"growth\") === ye.STRETCH && d.render(r);\n });\n });\n }\n // Pass on model to children as well\n setModel(r) {\n super.setModel(r), this.children.forEach((e) => {\n e.components.forEach((t) => t.setModel(r));\n });\n }\n // Pass on essentials to children as well\n setServices(r) {\n super.setServices(r), this.children.forEach((e) => {\n e.components.forEach((t) => t.setServices(r));\n });\n }\n destroy() {\n this.children.forEach((r) => {\n r.components.forEach((e) => e.destroy());\n });\n }\n};\nlet Ua = Us;\nUa.instanceID = Math.floor(Math.random() * 99999999999);\nclass ac extends z {\n constructor() {\n super(...arguments), this.type = \"spacer\";\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n this.getComponentContainer().style(\"width\", `${this.configs.size || Ht.default.size}px`).style(\"height\", `${this.configs.size || Ht.default.size}px`).attr(\"opacity\", 0);\n }\n}\nvar za = {\n prefix: \"bx\",\n selectorTabbable: `\n a[href], area[href], input:not([disabled]):not([tabindex='-1']),\n button:not([disabled]):not([tabindex='-1']),select:not([disabled]):not([tabindex='-1']),\n textarea:not([disabled]):not([tabindex='-1']),\n iframe, object, embed, *[tabindex]:not([tabindex='-1']), *[contenteditable=true]\n `,\n selectorFocusable: `\n a[href], area[href], input:not([disabled]),\n button:not([disabled]),select:not([disabled]),\n textarea:not([disabled]),\n iframe, object, embed, *[tabindex], *[contenteditable=true]\n `\n}, ct = za;\nfunction Qt(r, e) {\n for (var t = 0; t < e.length; t++) {\n var s = e[t];\n s.enumerable = s.enumerable || !1, s.configurable = !0, \"value\" in s && (s.writable = !0), Object.defineProperty(r, s.key, s);\n }\n}\nfunction Fa(r, e, t) {\n return e && Qt(r.prototype, e), t && Qt(r, t), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), r;\n}\nfunction Wa(r, e) {\n if (!(r instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction ja(r) {\n return qa(r) || Ya(r) || Xa(r) || Za();\n}\nfunction Za() {\n throw new TypeError(`Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);\n}\nfunction Xa(r, e) {\n if (r) {\n if (typeof r == \"string\")\n return mt(r, e);\n var t = Object.prototype.toString.call(r).slice(8, -1);\n if (t === \"Object\" && r.constructor && (t = r.constructor.name), t === \"Map\" || t === \"Set\")\n return Array.from(r);\n if (t === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))\n return mt(r, e);\n }\n}\nfunction Ya(r) {\n if (typeof Symbol < \"u\" && r[Symbol.iterator] != null || r[\"@@iterator\"] != null)\n return Array.from(r);\n}\nfunction qa(r) {\n if (Array.isArray(r))\n return mt(r);\n}\nfunction mt(r, e) {\n (e == null || e > r.length) && (e = r.length);\n for (var t = 0, s = new Array(e); t < e; t++)\n s[t] = r[t];\n return s;\n}\nfunction zs(r) {\n return r.reduce(function(e, t) {\n return Array.isArray(t) ? e.push.apply(e, ja(zs(t))) : e.push(t), e;\n }, []);\n}\nfunction Ka() {\n for (var r = arguments.length, e = new Array(r), t = 0; t < r; t++)\n e[t] = arguments[t];\n return zs(e).reduce(function(s, n) {\n return n(s);\n }, /* @__PURE__ */ function() {\n function s() {\n Wa(this, s);\n }\n return Fa(s);\n }());\n}\nfunction ft(r) {\n \"@babel/helpers - typeof\";\n return ft = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(e) {\n return typeof e;\n } : function(e) {\n return e && typeof Symbol == \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, ft(r);\n}\nfunction Ja(r, e) {\n if (!(r instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction es(r, e) {\n for (var t = 0; t < e.length; t++) {\n var s = e[t];\n s.enumerable = s.enumerable || !1, s.configurable = !0, \"value\" in s && (s.writable = !0), Object.defineProperty(r, s.key, s);\n }\n}\nfunction Qa(r, e, t) {\n return e && es(r.prototype, e), t && es(r, t), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), r;\n}\nfunction ei(r, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n r.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: r,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), e && vt(r, e);\n}\nfunction vt(r, e) {\n return vt = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, vt(r, e);\n}\nfunction ti(r) {\n var e = ni();\n return function() {\n var s = We(r), n;\n if (e) {\n var a = We(this).constructor;\n n = Reflect.construct(s, arguments, a);\n } else\n n = s.apply(this, arguments);\n return si(this, n);\n };\n}\nfunction si(r, e) {\n if (e && (ft(e) === \"object\" || typeof e == \"function\"))\n return e;\n if (e !== void 0)\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n return Fs(r);\n}\nfunction Fs(r) {\n if (r === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return r;\n}\nfunction ni() {\n if (typeof Reflect > \"u\" || !Reflect.construct || Reflect.construct.sham)\n return !1;\n if (typeof Proxy == \"function\")\n return !0;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n })), !0;\n } catch {\n return !1;\n }\n}\nfunction We(r) {\n return We = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, We(r);\n}\nfunction ai(r) {\n var e = /* @__PURE__ */ function(t) {\n ei(n, t);\n var s = ti(n);\n function n(a) {\n var i, o = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (Ja(this, n), i = s.call(this, a, o), i.children = [], !a || a.nodeType !== Node.ELEMENT_NODE)\n throw new TypeError(\"DOM element should be given to initialize this widget.\");\n return i.element = a, i.options = Object.assign(Object.create(i.constructor.options), o), i.constructor.components.set(i.element, Fs(i)), i;\n }\n return Qa(n, [{\n key: \"release\",\n value: (\n /**\n * Releases this component's instance from the associated element.\n */\n function() {\n for (var i = this.children.pop(); i; i = this.children.pop())\n i.release();\n return this.constructor.components.delete(this.element), null;\n }\n )\n }], [{\n key: \"create\",\n value: function(i, o) {\n return this.components.get(i) || new this(i, o);\n }\n }]), n;\n }(r);\n return e;\n}\nfunction yt(r) {\n \"@babel/helpers - typeof\";\n return yt = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(e) {\n return typeof e;\n } : function(e) {\n return e && typeof Symbol == \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, yt(r);\n}\nfunction ii(r, e) {\n if (!(r instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction ts(r, e) {\n for (var t = 0; t < e.length; t++) {\n var s = e[t];\n s.enumerable = s.enumerable || !1, s.configurable = !0, \"value\" in s && (s.writable = !0), Object.defineProperty(r, s.key, s);\n }\n}\nfunction ri(r, e, t) {\n return e && ts(r.prototype, e), t && ts(r, t), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), r;\n}\nfunction ze() {\n return typeof Reflect < \"u\" && Reflect.get ? ze = Reflect.get : ze = function(e, t, s) {\n var n = oi(e, t);\n if (n) {\n var a = Object.getOwnPropertyDescriptor(n, t);\n return a.get ? a.get.call(arguments.length < 3 ? e : s) : a.value;\n }\n }, ze.apply(this, arguments);\n}\nfunction oi(r, e) {\n for (; !Object.prototype.hasOwnProperty.call(r, e) && (r = De(r), r !== null); )\n ;\n return r;\n}\nfunction li(r, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n r.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: r,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), e && bt(r, e);\n}\nfunction bt(r, e) {\n return bt = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, bt(r, e);\n}\nfunction ci(r) {\n var e = ui();\n return function() {\n var s = De(r), n;\n if (e) {\n var a = De(this).constructor;\n n = Reflect.construct(s, arguments, a);\n } else\n n = s.apply(this, arguments);\n return di(this, n);\n };\n}\nfunction di(r, e) {\n if (e && (yt(e) === \"object\" || typeof e == \"function\"))\n return e;\n if (e !== void 0)\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n return hi(r);\n}\nfunction hi(r) {\n if (r === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return r;\n}\nfunction ui() {\n if (typeof Reflect > \"u\" || !Reflect.construct || Reflect.construct.sham)\n return !1;\n if (typeof Proxy == \"function\")\n return !0;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n })), !0;\n } catch {\n return !1;\n }\n}\nfunction De(r) {\n return De = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, De(r);\n}\nfunction pi(r) {\n var e = /* @__PURE__ */ function(t) {\n li(n, t);\n var s = ci(n);\n function n() {\n var a;\n ii(this, n);\n for (var i = arguments.length, o = new Array(i), l = 0; l < i; l++)\n o[l] = arguments[l];\n return a = s.call.apply(s, [this].concat(o)), a.handles = /* @__PURE__ */ new Set(), a;\n }\n return ri(n, [{\n key: \"manage\",\n value: (\n /**\n * Manages the given handle.\n * @param {Handle} handle The handle to manage.\n * @returns {Handle} The given handle.\n */\n function(i) {\n return this.handles.add(i), i;\n }\n )\n /**\n * Stop managing the given handle.\n * @param {Handle} handle The handle to stop managing.\n * @returns {Handle} The given handle.\n */\n }, {\n key: \"unmanage\",\n value: function(i) {\n return this.handles.delete(i), i;\n }\n }, {\n key: \"release\",\n value: function() {\n var i = this;\n return this.handles.forEach(function(o) {\n o.release(), i.handles.delete(o);\n }), ze(De(n.prototype), \"release\", this).call(this);\n }\n }]), n;\n }(r);\n return e;\n}\nfunction Ve(r) {\n for (var e = arguments.length, t = new Array(e > 1 ? e - 1 : 0), s = 1; s < e; s++)\n t[s - 1] = arguments[s];\n return r.addEventListener.apply(r, t), {\n release: function() {\n return r.removeEventListener.apply(r, t), null;\n }\n };\n}\nfunction Et(r) {\n \"@babel/helpers - typeof\";\n return Et = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(e) {\n return typeof e;\n } : function(e) {\n return e && typeof Symbol == \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, Et(r);\n}\nfunction gi(r) {\n return yi(r) || vi(r) || fi(r) || mi();\n}\nfunction mi() {\n throw new TypeError(`Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);\n}\nfunction fi(r, e) {\n if (r) {\n if (typeof r == \"string\")\n return St(r, e);\n var t = Object.prototype.toString.call(r).slice(8, -1);\n if (t === \"Object\" && r.constructor && (t = r.constructor.name), t === \"Map\" || t === \"Set\")\n return Array.from(r);\n if (t === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))\n return St(r, e);\n }\n}\nfunction vi(r) {\n if (typeof Symbol < \"u\" && r[Symbol.iterator] != null || r[\"@@iterator\"] != null)\n return Array.from(r);\n}\nfunction yi(r) {\n if (Array.isArray(r))\n return St(r);\n}\nfunction St(r, e) {\n (e == null || e > r.length) && (e = r.length);\n for (var t = 0, s = new Array(e); t < e; t++)\n s[t] = r[t];\n return s;\n}\nfunction bi(r, e) {\n if (!(r instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction ss(r, e) {\n for (var t = 0; t < e.length; t++) {\n var s = e[t];\n s.enumerable = s.enumerable || !1, s.configurable = !0, \"value\" in s && (s.writable = !0), Object.defineProperty(r, s.key, s);\n }\n}\nfunction Ei(r, e, t) {\n return e && ss(r.prototype, e), t && ss(r, t), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), r;\n}\nfunction Si(r, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n r.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: r,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), e && xt(r, e);\n}\nfunction xt(r, e) {\n return xt = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, xt(r, e);\n}\nfunction xi(r) {\n var e = Li();\n return function() {\n var s = je(r), n;\n if (e) {\n var a = je(this).constructor;\n n = Reflect.construct(s, arguments, a);\n } else\n n = s.apply(this, arguments);\n return Oi(this, n);\n };\n}\nfunction Oi(r, e) {\n if (e && (Et(e) === \"object\" || typeof e == \"function\"))\n return e;\n if (e !== void 0)\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n return Ti(r);\n}\nfunction Ti(r) {\n if (r === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return r;\n}\nfunction Li() {\n if (typeof Reflect > \"u\" || !Reflect.construct || Reflect.construct.sham)\n return !1;\n if (typeof Proxy == \"function\")\n return !0;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n })), !0;\n } catch {\n return !1;\n }\n}\nfunction je(r) {\n return je = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, je(r);\n}\nfunction wi(r) {\n var e = /* @__PURE__ */ function(t) {\n Si(n, t);\n var s = xi(n);\n function n() {\n return bi(this, n), s.apply(this, arguments);\n }\n return Ei(n, [{\n key: \"_changeState\",\n value: (\n /* eslint-disable jsdoc/check-param-names */\n /**\n * The internal implementation for {@link EventedState#changeState `.changeState()`}, performing actual change in state.\n * @param {string} [state] The new state. Can be an omitted, which means toggling.\n * @param {object} [detail]\n * The object that should be put to event details that is fired before/after changing state.\n * Can have a `group` property, which specifies what state to be changed.\n * @param {EventedState~changeStateCallback} callback The callback called once changing state is finished or is canceled.\n * @private\n */\n function() {\n throw new Error(\"_changeState() should be overridden to perform actual change in state.\");\n }\n )\n /**\n * Changes the state of this component.\n * @param {string} [state] The new state. Can be an omitted, which means toggling.\n * @param {object} [detail]\n * The object that should be put to event details that is fired before/after changing state.\n * Can have a `group` property, which specifies what state to be changed.\n * @param {EventedState~changeStateCallback} [callback] The callback called once changing state is finished or is canceled.\n */\n }, {\n key: \"changeState\",\n value: function() {\n for (var i = this, o = arguments.length, l = new Array(o), c = 0; c < o; c++)\n l[c] = arguments[c];\n var d = typeof l[0] == \"string\" ? l.shift() : void 0, p = Object(l[0]) === l[0] && typeof l[0] != \"function\" ? l.shift() : void 0, h = typeof l[0] == \"function\" ? l.shift() : void 0;\n if (typeof this.shouldStateBeChanged == \"function\" && !this.shouldStateBeChanged(d, p)) {\n h && h(null, !0);\n return;\n }\n var u = {\n group: p && p.group,\n state: d\n }, g = [u.group, d].filter(Boolean).join(\"-\").split(\"-\").map(function(L) {\n return L[0].toUpperCase() + L.substr(1);\n }).join(\"\"), m = new CustomEvent(this.options[\"eventBefore\".concat(g)], {\n bubbles: !0,\n cancelable: !0,\n detail: p\n }), b = p && p.delegatorNode || this.element, v = !b.dispatchEvent(m);\n if (v) {\n if (h) {\n var S = new Error(\"Changing state (\".concat(JSON.stringify(u), \") has been canceled.\"));\n S.canceled = !0, h(S);\n }\n } else {\n var O = [d, p].filter(Boolean);\n this._changeState.apply(this, gi(O).concat([function() {\n b.dispatchEvent(new CustomEvent(i.options[\"eventAfter\".concat(g)], {\n bubbles: !0,\n cancelable: !0,\n detail: p\n })), h && h();\n }]));\n }\n }\n /* eslint-enable jsdoc/check-param-names */\n /**\n * Tests if change in state should happen or not.\n * Classes inheriting {@link EventedState `EventedState`} should override this function.\n * @function EventedState#shouldStateBeChanged\n * @param {string} [state] The new state. Can be an omitted, which means toggling.\n * @param {object} [detail]\n * The object that should be put to event details that is fired before/after changing state.\n * Can have a `group` property, which specifies what state to be changed.\n * @returns {boolean}\n * `false` if change in state shouldn't happen, e.g. when the given new state is the same as the current one.\n */\n }]), n;\n }(r);\n return e;\n}\nfunction Ot(r, e) {\n var t = r.target, s = r.currentTarget;\n if (typeof t.matches == \"function\") {\n if (t.matches(e))\n return t;\n if (t.matches(\"\".concat(e, \" *\"))) {\n var n = t.closest(e);\n if ((s.nodeType === Node.DOCUMENT_NODE ? s.documentElement : s).contains(n))\n return n;\n }\n }\n}\nfunction ns(r) {\n if (!r || typeof r == \"function\")\n return {\n launchingElement: null,\n launchingEvent: null\n };\n var e = r.delegateTarget || r.currentTarget || r, t = r.currentTarget && r;\n if (e && !e.nodeType)\n throw new TypeError(\"DOM Node should be given for launching element.\");\n if (t && !t.type)\n throw new TypeError(\"DOM event should be given for launching event.\");\n return {\n launchingElement: e,\n launchingEvent: t\n };\n}\nfunction Tt(r) {\n \"@babel/helpers - typeof\";\n return Tt = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(e) {\n return typeof e;\n } : function(e) {\n return e && typeof Symbol == \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, Tt(r);\n}\nfunction Mi(r, e) {\n if (!(r instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction as(r, e) {\n for (var t = 0; t < e.length; t++) {\n var s = e[t];\n s.enumerable = s.enumerable || !1, s.configurable = !0, \"value\" in s && (s.writable = !0), Object.defineProperty(r, s.key, s);\n }\n}\nfunction Ai(r, e, t) {\n return e && as(r.prototype, e), t && as(r, t), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), r;\n}\nfunction Ci(r, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n r.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: r,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), e && Lt(r, e);\n}\nfunction Lt(r, e) {\n return Lt = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, Lt(r, e);\n}\nfunction ki(r) {\n var e = Ri();\n return function() {\n var s = Ze(r), n;\n if (e) {\n var a = Ze(this).constructor;\n n = Reflect.construct(s, arguments, a);\n } else\n n = s.apply(this, arguments);\n return Ii(this, n);\n };\n}\nfunction Ii(r, e) {\n if (e && (Tt(e) === \"object\" || typeof e == \"function\"))\n return e;\n if (e !== void 0)\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n return Di(r);\n}\nfunction Di(r) {\n if (r === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return r;\n}\nfunction Ri() {\n if (typeof Reflect > \"u\" || !Reflect.construct || Reflect.construct.sham)\n return !1;\n if (typeof Proxy == \"function\")\n return !0;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n })), !0;\n } catch {\n return !1;\n }\n}\nfunction Ze(r) {\n return Ze = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, Ze(r);\n}\nfunction _i(r) {\n var e = /* @__PURE__ */ function(t) {\n Ci(n, t);\n var s = ki(n);\n function n() {\n return Mi(this, n), s.apply(this, arguments);\n }\n return Ai(n, [{\n key: \"show\",\n value: (\n /**\n */\n /**\n * Switch to 'shown' state.\n * @param [evtOrElem] The launching event or element.\n * @param {EventedState~changeStateCallback} [callback] The callback.\n */\n function(i, o) {\n (!i || typeof i == \"function\") && (o = i), this.changeState(\"shown\", ns(i), o);\n }\n )\n /**\n * Switch to 'hidden' state.\n * @param [evtOrElem] The launching event or element.\n * @param {EventedState~changeStateCallback} [callback] The callback.\n */\n }, {\n key: \"hide\",\n value: function(i, o) {\n (!i || typeof i == \"function\") && (o = i), this.changeState(\"hidden\", ns(i), o);\n }\n }]), n;\n }(r);\n return e;\n}\nvar Pi = [wi, _i];\nconst Vi = Pi;\nvar Ws = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && (Ws = function(r, e, t) {\n var s = arguments.length;\n t = new Array(s > 2 ? s - 2 : 0);\n for (var n = 2; n < s; n++)\n t[n - 2] = arguments[n];\n if (e === void 0)\n throw new Error(\n \"`warning(condition, format, ...args)` requires a warning message argument\"\n );\n if (e.length < 10 || /^[s\\W]*$/.test(e))\n throw new Error(\n \"The warning format should be able to uniquely identify this warning. Please, use a more descriptive format than: \" + e\n );\n if (!r) {\n var a = 0, i = \"Warning: \" + e.replace(/%s/g, function() {\n return t[a++];\n });\n typeof console < \"u\" && console.error(i);\n try {\n throw new Error(i);\n } catch {\n }\n }\n});\nvar Bi = Ws;\nconst $i = /* @__PURE__ */ Tn(Bi);\nfunction wt(r) {\n \"@babel/helpers - typeof\";\n return wt = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(e) {\n return typeof e;\n } : function(e) {\n return e && typeof Symbol == \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, wt(r);\n}\nfunction Gi(r, e) {\n if (!(r instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction is(r, e) {\n for (var t = 0; t < e.length; t++) {\n var s = e[t];\n s.enumerable = s.enumerable || !1, s.configurable = !0, \"value\" in s && (s.writable = !0), Object.defineProperty(r, s.key, s);\n }\n}\nfunction Ni(r, e, t) {\n return e && is(r.prototype, e), t && is(r, t), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), r;\n}\nfunction Hi(r, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n r.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: r,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), e && Mt(r, e);\n}\nfunction Mt(r, e) {\n return Mt = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, Mt(r, e);\n}\nfunction Ui(r) {\n var e = Wi();\n return function() {\n var s = Xe(r), n;\n if (e) {\n var a = Xe(this).constructor;\n n = Reflect.construct(s, arguments, a);\n } else\n n = s.apply(this, arguments);\n return zi(this, n);\n };\n}\nfunction zi(r, e) {\n if (e && (wt(e) === \"object\" || typeof e == \"function\"))\n return e;\n if (e !== void 0)\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n return Fi(r);\n}\nfunction Fi(r) {\n if (r === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return r;\n}\nfunction Wi() {\n if (typeof Reflect > \"u\" || !Reflect.construct || Reflect.construct.sham)\n return !1;\n if (typeof Proxy == \"function\")\n return !0;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n })), !0;\n } catch {\n return !1;\n }\n}\nfunction Xe(r) {\n return Xe = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, Xe(r);\n}\nfunction ji(r) {\n var e = /* @__PURE__ */ function(t) {\n Hi(n, t);\n var s = Ui(n);\n function n() {\n return Gi(this, n), s.apply(this, arguments);\n }\n return Ni(n, null, [{\n key: \"init\",\n value: (\n /**\n * `true` suggests that this component is lazily initialized upon an action/event, etc.\n * @type {boolean}\n */\n /**\n * Instantiates this component in the given element.\n * If the given element indicates that it's an component of this class, instantiates it.\n * Otherwise, instantiates this component by clicking on launcher buttons\n * (buttons with attribute that `options.attribInitTarget` points to) of this component in the given node.\n * @param {Node} target The DOM node to instantiate this component in. Should be a document or an element.\n * @param {object} [options] The component options.\n * @param {string} [options.selectorInit] The CSS selector to find this component.\n * @param {string} [options.attribInitTarget] The attribute name in the launcher buttons to find target component.\n * @returns {Handle} The handle to remove the event listener to handle clicking.\n */\n function() {\n var i = this, o = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : document, l = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, c = Object.assign(Object.create(this.options), l);\n if (!o || o.nodeType !== Node.ELEMENT_NODE && o.nodeType !== Node.DOCUMENT_NODE)\n throw new TypeError(\"DOM document or DOM element should be given to search for and initialize this widget.\");\n if (o.nodeType === Node.ELEMENT_NODE && o.matches(c.selectorInit))\n this.create(o, l);\n else {\n var d = c.initEventNames.map(function(p) {\n return Ve(o, p, function(h) {\n var u = Ot(h, \"[\".concat(c.attribInitTarget, \"]\"));\n if (u) {\n h.delegateTarget = u;\n var g = u.ownerDocument.querySelectorAll(u.getAttribute(c.attribInitTarget));\n if (g.length > 1)\n throw new Error(\"Target widget must be unique.\");\n if (g.length === 1) {\n u.tagName === \"A\" && h.preventDefault();\n var m = i.create(g[0], l);\n typeof m.createdByLauncher == \"function\" && m.createdByLauncher(h);\n }\n }\n });\n });\n return {\n release: function() {\n for (var h = d.pop(); h; h = d.pop())\n h.release();\n }\n };\n }\n return \"\";\n }\n )\n }]), n.forLazyInit = !0, n;\n }(r);\n return e;\n}\nfunction At(r) {\n \"@babel/helpers - typeof\";\n return At = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(e) {\n return typeof e;\n } : function(e) {\n return e && typeof Symbol == \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, At(r);\n}\nfunction Zi(r, e) {\n if (!(r instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction rs(r, e) {\n for (var t = 0; t < e.length; t++) {\n var s = e[t];\n s.enumerable = s.enumerable || !1, s.configurable = !0, \"value\" in s && (s.writable = !0), Object.defineProperty(r, s.key, s);\n }\n}\nfunction Xi(r, e, t) {\n return e && rs(r.prototype, e), t && rs(r, t), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), r;\n}\nfunction Yi(r, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n r.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: r,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(r, \"prototype\", {\n writable: !1\n }), e && Ct(r, e);\n}\nfunction Ct(r, e) {\n return Ct = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, Ct(r, e);\n}\nfunction qi(r) {\n var e = Qi();\n return function() {\n var s = Ye(r), n;\n if (e) {\n var a = Ye(this).constructor;\n n = Reflect.construct(s, arguments, a);\n } else\n n = s.apply(this, arguments);\n return Ki(this, n);\n };\n}\nfunction Ki(r, e) {\n if (e && (At(e) === \"object\" || typeof e == \"function\"))\n return e;\n if (e !== void 0)\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n return Ji(r);\n}\nfunction Ji(r) {\n if (r === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return r;\n}\nfunction Qi() {\n if (typeof Reflect > \"u\" || !Reflect.construct || Reflect.construct.sham)\n return !1;\n if (typeof Proxy == \"function\")\n return !0;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n })), !0;\n } catch {\n return !1;\n }\n}\nfunction Ye(r) {\n return Ye = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, Ye(r);\n}\nvar er = /* @__PURE__ */ function(r) {\n Yi(t, r);\n var e = qi(t);\n function t(s, n) {\n var a;\n return Zi(this, t), a = e.call(this, s, n), a._handleFocusinListener = void 0, a._handleKeydownListener = void 0, a._handleFocusin = function(i) {\n var o = a.element.querySelector(a.options.selectorModalContainer) || a.element;\n a.element.classList.contains(a.options.classVisible) && !o.contains(i.target) && a.options.selectorsFloatingMenus.every(function(l) {\n return !Ot(i, l);\n }) && a.element.querySelector(ct.selectorTabbable).focus();\n }, a._hookCloseActions(), a;\n }\n return Xi(t, [{\n key: \"createdByLauncher\",\n value: (\n /**\n * A method that runs when `.init()` is called from `initComponentByLauncher`.\n * @param {Event} evt The event fired on the launcher button.\n */\n function(n) {\n this.show(n);\n }\n )\n /**\n * Determines whether or not to emit events and callback function when `.changeState()` is called from `eventedState`.\n * @param {string} state The new state.\n * @returns {boolean} `true` if the given `state` is different from current state.\n */\n }, {\n key: \"shouldStateBeChanged\",\n value: function(n) {\n return n === \"shown\" ? !this.element.classList.contains(this.options.classVisible) : this.element.classList.contains(this.options.classVisible);\n }\n /**\n * Changes the shown/hidden state.\n * @private\n * @param {string} state The new state.\n * @param {object} detail The detail data to be included in the event that will be fired.\n * @param {Function} callback Callback called when change in state completes.\n */\n }, {\n key: \"_changeState\",\n value: function(n, a, i) {\n var o = this, l, c = function() {\n if (l && (l = o.unmanage(l).release()), n === \"shown\" && o.element.offsetWidth > 0 && o.element.offsetHeight > 0) {\n o.previouslyFocusedNode = o.element.ownerDocument.activeElement;\n var u = o.element.querySelector(o.options.selectorPrimaryFocus) || o.element.querySelector(ct.selectorTabbable);\n u.focus(), process.env.NODE_ENV !== \"production\" && process.env.NODE_ENV !== \"production\" && $i(u, \"Modals need to contain a focusable element by either using \" + \"`\".concat(o.options.selectorPrimaryFocus, \"` or settings.selectorTabbable.\"));\n }\n i();\n };\n if (this._handleFocusinListener && (this._handleFocusinListener = this.unmanage(this._handleFocusinListener).release()), n === \"shown\") {\n var d = \"onfocusin\" in this.element.ownerDocument.defaultView, p = d ? \"focusin\" : \"focus\";\n this._handleFocusinListener = this.manage(Ve(this.element.ownerDocument, p, this._handleFocusin, !d));\n }\n n === \"hidden\" ? (this.element.classList.toggle(this.options.classVisible, !1), this.element.ownerDocument.body.classList.toggle(this.options.classBody, !1), (this.options.selectorFocusOnClose || this.previouslyFocusedNode) && (this.element.ownerDocument.querySelector(this.options.selectorFocusOnClose) || this.previouslyFocusedNode).focus()) : n === \"shown\" && (this.element.classList.toggle(this.options.classVisible, !0), this.element.ownerDocument.body.classList.toggle(this.options.classBody, !0)), l = this.manage(Ve(this.element, \"transitionend\", c));\n }\n }, {\n key: \"_hookCloseActions\",\n value: function() {\n var n = this;\n this.manage(Ve(this.element, \"click\", function(a) {\n var i = Ot(a, n.options.selectorModalClose);\n i && (a.delegateTarget = i), (i || a.target === n.element) && n.hide(a);\n })), this._handleKeydownListener && (this._handleKeydownListener = this.unmanage(this._handleKeydownListener).release()), this._handleKeydownListener = this.manage(Ve(this.element.ownerDocument.body, \"keydown\", function(a) {\n a.which === 27 && n.shouldStateBeChanged(\"hidden\") && (a.stopPropagation(), n.hide(a));\n }));\n }\n /**\n * Handles `focusin` (or `focus` depending on browser support of `focusin`) event to do wrap-focus behavior.\n * @param {Event} evt The event.\n * @private\n */\n }], [{\n key: \"options\",\n get: (\n /**\n * The component options.\n * If `options` is specified in the constructor, {@linkcode Modal.create .create()}, or {@linkcode Modal.init .init()},\n * properties in this object are overridden for the instance being create and how {@linkcode Modal.init .init()} works.\n * @member Modal.options\n * @type {object}\n * @property {string} selectorInit The CSS class to find modal dialogs.\n * @property {string} [selectorModalClose] The selector to find elements that close the modal.\n * @property {string} [selectorPrimaryFocus] The CSS selector to determine the element to put focus when modal gets open.\n * @property {string} [selectorFocusOnClose] The CSS selector to determine the element to put focus when modal closes.\n * If undefined, focus returns to the previously focused element prior to the modal opening.\n * @property {string} [selectorModalContainer] The CSS selector for the content container of the modal for focus wrap feature.\n * @property {string} attribInitTarget The attribute name in the launcher buttons to find target modal dialogs.\n * @property {string[]} [selectorsFloatingMenu]\n * The CSS selectors of floating menus.\n * Used for detecting if focus-wrap behavior should be disabled temporarily.\n * @property {string} [classVisible] The CSS class for the visible state.\n * @property {string} [classBody] The CSS class for `<body>` with open modal.\n * @property {string} [classNoScroll] The CSS class for hiding scroll bar in body element while modal is shown.\n * @property {string} [eventBeforeShown]\n * The name of the custom event fired before this modal is shown.\n * Cancellation of this event stops showing the modal.\n * @property {string} [eventAfterShown]\n * The name of the custom event telling that modal is sure shown\n * without being canceled by the event handler named by `eventBeforeShown` option (`modal-beingshown`).\n * @property {string} [eventBeforeHidden]\n * The name of the custom event fired before this modal is hidden.\n * Cancellation of this event stops hiding the modal.\n * @property {string} [eventAfterHidden]\n * The name of the custom event telling that modal is sure hidden\n * without being canceled by the event handler named by `eventBeforeHidden` option (`modal-beinghidden`).\n */\n function() {\n var n = ct.prefix;\n return {\n selectorInit: \"[data-modal]\",\n selectorModalClose: \"[data-modal-close]\",\n selectorPrimaryFocus: \"[data-modal-primary-focus]\",\n selectorsFloatingMenus: [\".\".concat(n, \"--overflow-menu-options\"), \".\".concat(n, \"--tooltip\"), \".flatpickr-calendar\"],\n selectorModalContainer: \".\".concat(n, \"--modal-container\"),\n classVisible: \"is-visible\",\n classBody: \"\".concat(n, \"--body--with-modal-open\"),\n attribInitTarget: \"data-modal-target\",\n initEventNames: [\"click\"],\n eventBeforeShown: \"modal-beingshown\",\n eventAfterShown: \"modal-shown\",\n eventBeforeHidden: \"modal-beinghidden\",\n eventAfterHidden: \"modal-hidden\"\n };\n }\n )\n }]), t.components = /* @__PURE__ */ new WeakMap(), t;\n}(Ka(ai, ji, Vi, pi));\nconst tr = er;\nclass ic extends z {\n constructor(e, t, s) {\n super(e, t, s), this.type = \"modal\", this.isEventListenerAdded = !1, this.handleShowModal = () => {\n this.modal.html(this.getModalHTML()), this.modal.select(\"div.cds--modal-footer button.cds--btn\").on(\"click\", () => this.model.exportToCSV()), tr.create(this.modal.node()).show();\n }, this.init();\n }\n addEventListeners() {\n this.services.events.addEventListener(f.Modal.SHOW, this.handleShowModal);\n }\n removeEventListeners() {\n this.services.events.removeEventListener(f.Modal.SHOW, this.handleShowModal);\n }\n getModalHTML() {\n const e = this.model.getOptions(), t = y(e, \"style\", \"prefix\"), s = this.model.getTabularDataArray();\n return `\n\t\t<div class=\"cds--modal-container cds--modal-container\">\n\t\t\t<div class=\"cds--modal-header cds--modal-header\">\n\t\t\t\t<p class=\"cds--modal-header__label cds--type-delta cds--modal-header__label cds--type-delta\" id=\"modal-title\">Tabular representation</p>\n\n\t\t\t\t<p class=\"cds--modal-header__heading cds--type-beta cds--modal-header__heading cds--type-beta\" id=\"modal-description\">${e.title}</p>\n\n\t\t\t\t<button class=\"cds--modal-close cds--modal-close\" type=\"button\" data-modal-close aria-label=\"close modal\" data-modal-primary-focus>\n\t\t\t\t\t<svg focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" aria-label=\"Close\" width=\"20\" height=\"20\" viewBox=\"0 0 32 32\" role=\"img\" class=\"cds--modal-close__icon cds--modal-close__icon\">\n\t\t\t\t\t\t<path d=\"M24 9.4L22.6 8 16 14.6 9.4 8 8 9.4 14.6 16 8 22.6 9.4 24 16 17.4 22.6 24 24 22.6 17.4 16 24 9.4z\"></path>\n\t\t\t\t\t</svg>\n\t\t\t\t</button>\n\t\t\t</div>\n\n\t\t\t<div class=\"cds--modal-content cds--modal-content\">\n\t\t\t\t<table class=\"cds--data-table cds--data-table--no-border cds--data-table cds--data-table--no-border\">\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t${Q(s, 0).map(\n (n) => `<th scope=\"col\">\n\t\t\t\t\t\t\t\t<div class=\"cds--table-header-label cds--table-header-label\">${n}</div>\n\t\t\t\t\t\t\t</th>`\n ).join(\"\")}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</thead>\n\n\t\t\t\t\t<tbody>${s.slice(1).map(\n (n) => `\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t${n.map((a) => `<td>${a}</td>`).join(\"\")}\n\t\t\t\t\t\t\t</tr>`\n ).join(\"\")}\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</div>\n\n\t\t\t<div class=\"cds--modal-footer cds--modal-footer\">\n\t\t\t <div class=\"${he}--${t}-modal-footer-spacer\"></div>\n\t\t\t <button class=\"cds--btn cds--btn--primary cds--btn cds--btn--primary\" type=\"button\" data-modal-primary-focus>Download as CSV</button>\n\t\t\t</div>\n\t\t</div>`;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = this.model.getOptions();\n if (!this.isEventListenerAdded) {\n const s = x(this.services.domUtils.getHolder()), n = y(t, \"style\", \"prefix\");\n this.modal = E.appendOrSelect(s, `div.${he}--${n}--modal`), this.addEventListeners(), this.isEventListenerAdded = !0, this.modal.attr(\"data-modal\", !0).attr(\"class\", \"cds--modal cds--modal\").attr(\"role\", \"dialog\").attr(\"aria-modal\", !0).attr(\"aria-labelledby\", \"modal-title\").attr(\"aria-describedby\", \"modal-description\").attr(\"tabindex\", -1);\n }\n }\n destroy() {\n this.removeEventListeners(), this.isEventListenerAdded = !1;\n }\n}\nclass sr extends z {\n constructor() {\n super(...arguments), this.type = \"title\", this.renderType = H.HTML;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = this.getComponentContainer(), s = y(this.getOptions(), \"title\"), n = t.selectAll(\"p.title\").data([s]);\n if (n.enter().append(\"p\").classed(\"title\", !0).attr(\"role\", \"heading\").attr(\"aria-level\", 2).merge(n).html((a) => a), n.node() && n.node().offsetWidth < n.node().scrollWidth) {\n const a = this;\n n.on(\"mouseover\", function(i) {\n a.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: i,\n hoveredElement: n,\n content: n.text()\n });\n }).on(\"mousemove\", function(i) {\n a.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: i\n });\n }).on(\"mouseout\", function() {\n a.services.events.dispatchEvent(f.Tooltip.HIDE);\n });\n }\n n.exit().remove();\n }\n /**\n * Truncates title creating ellipses and attaching tooltip for exposing full title.\n */\n truncateTitle(e, t) {\n if (t <= 0)\n return;\n const s = e.text();\n if (e.node().getComputedTextLength() > t) {\n e.append(\"tspan\").text(\"...\");\n const n = E.appendOrSelect(e, \"tspan\").node().getComputedTextLength(), a = e.text(), i = this.getSubstringIndex(\n e.node(),\n 0,\n a.length - 1,\n t - n\n );\n e.html(a.substring(0, i - 1)).append(\"tspan\").text(\"...\");\n const o = this;\n e.on(\"mouseover\", function(l) {\n o.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: l,\n hoveredElement: e,\n content: s\n });\n }).on(\"mousemove\", function(l) {\n o.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: l\n });\n }).on(\"mouseout\", function() {\n o.services.events.dispatchEvent(f.Tooltip.HIDE);\n });\n }\n }\n // computes the maximum space a title can take\n getMaxTitleWidth() {\n return E.getSVGElementSize(this.parent.node(), {\n useAttrs: !0\n }).width;\n }\n /**\n * Returns the index for a maximum length substring that is less than the width parameter.\n * @param title the title node used for getting the text lengths of substrings\n * @param start the start index for the binary search\n * @param end the end index for the binary search\n * @param width the width of the svg container that holds the title\n */\n getSubstringIndex(e, t, s, n) {\n const a = Math.floor((s + t) / 2);\n return e.getSubStringLength(0, a) > n ? this.getSubstringIndex(e, t, a, n) : e.getSubStringLength(0, a) < n ? e.getSubStringLength(0, a + 1) > n ? a : this.getSubstringIndex(e, a, s, n) : a;\n }\n}\nclass nr extends z {\n constructor() {\n super(...arguments), this.type = \"legend\", this.renderType = H.HTML;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = this.getOptions(), s = y(t, \"legend\"), n = y(s, \"alignment\"), a = y(t, \"legend\", \"orientation\");\n let i = this.model.getDataGroups();\n const { DISABLED: o } = J.items.status, l = i.some((S) => S.status === o), c = y(s, \"order\"), d = this.getComponentContainer().classed(\"center-aligned\", n === ue.CENTER).classed(\"right-aligned\", n === ue.RIGHT).classed(a, !0).classed(\"has-deactivated-items\", l).attr(\"role\", U.GROUP).attr(\"aria-label\", \"Data groups\").attr(\"data-name\", \"legend-items\");\n c && (i = this.sortDataGroups(i, c));\n const p = d.selectAll(\"div.legend-item\").data(i, (S) => S.name), h = p.enter().append(\"div\").attr(\"class\", \"legend-item\");\n h.merge(d.selectAll(\"div.legend-item\")).classed(\"active\", function(S) {\n return S.status === J.items.status.ACTIVE;\n });\n const u = y(this.getOptions(), \"legend\", \"clickable\");\n d.classed(\"clickable\", u && i.length > 1);\n const g = J.checkbox.radius, m = h.append(\"div\").classed(\"checkbox\", !0), b = m.merge(p.select(\"div.checkbox\")).attr(\"role\", U.CHECKBOX).attr(\"tabindex\", u ? 0 : -1).attr(\n \"aria-labelledby\",\n (S, O) => this.services.domUtils.generateElementIDString(`legend-datagroup-${O}-title`)\n ).attr(\"aria-checked\", ({ status: S }) => S === J.items.status.ACTIVE).attr(\"width\", g * 2).attr(\"height\", g * 2).attr(\n \"class\",\n (S) => this.model.getColorClassName({\n classNameTypes: [$.BACKGROUND],\n dataGroupName: S.name,\n originalClassName: \"checkbox\"\n })\n ).style(\n \"background\",\n (S) => S.status === J.items.status.ACTIVE ? this.model.getFillColor(S.name) || this.model.getStrokeColor(S.name) : null\n ).classed(\"active\", function(S) {\n return S.status === J.items.status.ACTIVE;\n });\n m.append(\"svg\").attr(\"focusable\", !1).attr(\"preserveAspectRatio\", \"xMidYMid meet\").attr(\"xmlns\", \"http://www.w3.org/2000/svg\").attr(\"width\", \"11\").attr(\"height\", \"11\").attr(\"viewBox\", \"0 0 31 28\").attr(\"aria-hidden\", !0).style(\"will-change\", \"transform\").append(\"path\").attr(\"d\", \"M13 21.2l-7.1-7.1-1.4 1.4 7.1 7.1L13 24 27.1 9.9l-1.4-1.5z\"), h.append(\"p\").merge(p.select(\"p\"));\n const v = y(t, \"legend\", \"additionalItems\");\n if (v && i.length) {\n const S = this, O = d.selectAll(\"div.additional-item\").data(v);\n O.exit().remove();\n const L = O.enter().append(\"div\").merge(O).classed(\"legend-item\", !0).classed(\"additional\", !0).attr(\n \"aria-labelledby\",\n (k, _) => this.services.domUtils.generateElementIDString(\n `legend-datagroup-${b.size() + _}-title`\n )\n );\n L.selectAll(\"*\").remove();\n let w, T = 1;\n L.append(\"svg\").classed(\"icon\", !0).each(function(k) {\n const _ = x(this);\n !w || w != k.type ? (w = k.type, T = 1) : T++, S.addAdditionalItem(_, k, T);\n }), L.append(\"p\").merge(L.select(\"p\")), this.truncateLegendText();\n }\n p.exit().on(\"mouseover\", null).on(\"click\", null).on(\"mouseout\", null).remove(), u && h.size() > 1 && this.addEventListeners();\n }\n sortDataGroups(e, t) {\n if (e.sort(\n (s, n) => t.indexOf(s.name) - t.indexOf(n.name)\n ), t.length < e.length) {\n const s = e.length - t.length;\n return e.slice(s).concat(e.slice(0, s));\n }\n return e;\n }\n addAdditionalItem(e, t, s) {\n const { width: n, height: a } = J.area;\n if (t.type === Se.RADIUS ? e.style(\"width\", `${a}px`).style(\"height\", `${a}px`) : e.style(\"width\", `${n}px`).style(\"height\", `${a}px`), t.type === Se.RADIUS) {\n const { iconData: i, fill: o, stroke: l } = J.radius;\n e.attr(\"fill\", \"none\").selectAll(\"circle\").data(i).enter().append(\"circle\").classed(\"radius\", !0).attr(\"role\", U.IMG).attr(\"aria-label\", \"radius\").attr(\"cx\", (d) => d.cx).attr(\"cy\", (d) => d.cy).attr(\"r\", (d) => d.r).style(\"fill\", t.fill ? t.fill : o).style(\"stroke\", t.stroke ? t.stroke : l);\n } else if (t.type === Se.LINE) {\n const i = J.line;\n e.select(\"line.line\").empty() && e.append(\"line\").classed(`line-${s}`, !0).attr(\"role\", U.IMG).attr(\"aria-label\", \"line\").attr(\"x1\", 0).attr(\"y1\", i.yPosition).attr(\"x2\", n).attr(\"y2\", i.yPosition).style(\"stroke\", t.stroke ? t.stroke : i.stroke).style(\"stroke-width\", i.strokeWidth);\n } else if (t.type === Se.AREA)\n e.select(\"rect.area\").empty() && e.append(\"rect\").classed(`area-${s}`, !0).attr(\"role\", U.IMG).attr(\"aria-label\", \"area\").attr(\"width\", n).attr(\"height\", a).style(\"fill\", s > 3 && !t.fill ? J.area.fill : t.fill).style(\"stroke\", t.stroke);\n else if (t.type === Se.SIZE) {\n const { iconData: i, fill: o, stroke: l } = J.size;\n e.attr(\"fill\", \"none\").attr(\"role\", U.IMG).attr(\"aria-label\", \"size\").selectAll(\"rect\").data(i).enter().append(\"rect\").classed(\"size\", !0).attr(\"width\", (d) => d.width).attr(\"height\", (d) => d.height).attr(\"y\", () => 0).style(\"fill\", t.fill ? t.fill : o).style(\"stroke\", t.stroke ? t.stroke : l).style(\"stroke-width\", 1);\n } else if (t.type === Se.QUARTILE) {\n const { iconData: i } = J.quartile;\n e.selectAll(\"rect\").attr(\"role\", U.IMG).attr(\"aria-label\", \"quartile\").data(i).enter().append(\"rect\").attr(\"class\", (l, c) => `quartile-${c === 0 ? \"wrapper\" : \"line\"}`).attr(\"x\", (l) => l.x).attr(\"y\", (l) => l.y).attr(\"width\", (l) => l.width).attr(\"height\", (l) => l.height);\n } else if (t.type === Se.ZOOM) {\n const { iconData: i, color: o } = y(Os, \"legend\", \"zoom\"), l = e.attr(\"role\", U.IMG).attr(\"aria-label\", \"zoom\").selectAll(\"g.icon\").data(i).enter();\n l.append(\"g\").attr(\"x\", (c) => c.x).attr(\"y\", (c) => c.y).attr(\"width\", (c) => c.width).attr(\"height\", (c) => c.height).append(\"polygon\").attr(\n \"points\",\n \"7.7 4.82 5.78 4.82 5.78 2.89 4.82 2.89 4.82 4.82 2.89 4.82 2.89 5.78 4.82 5.78 4.82 7.7 5.78 7.7 5.78 5.78 7.7 5.78 7.7 4.82\"\n ).attr(\"fill\", () => t.color ? t.color : o), l.append(\"path\").attr(\n \"d\",\n \"M9.36,8.67A5.22,5.22,0,0,0,10.59,5.3,5.3,5.3,0,1,0,5.3,10.59,5.22,5.22,0,0,0,8.67,9.36L12.32,13l.68-.68Zm-4.06,1A4.34,4.34,0,1,1,9.63,5.3,4.33,4.33,0,0,1,5.3,9.63Z\"\n ).attr(\"fill\", () => t.color ? t.color : o);\n }\n }\n truncateLegendText() {\n const e = this.getComponentContainer(), t = y(this.getOptions(), \"legend\", \"truncation\"), s = y(t, \"type\"), n = y(t, \"threshold\"), a = y(t, \"numCharacter\"), i = e.selectAll(\"div.legend-item p\");\n i.attr(\"id\", function() {\n return (this.parentNode.querySelector(\"div.checkbox\") || this.parentNode).getAttribute(\"aria-labelledby\");\n }), s !== ke.NONE ? i.html(function(o) {\n return o.name.length > n ? $e(o.name, s, a) : o.name;\n }) : i.html((o) => o.name);\n }\n addEventListeners() {\n const e = this, t = this.getComponentContainer(), s = this.getOptions(), n = y(s, \"legend\"), a = y(n, \"truncation\");\n t.selectAll(\"div.legend-item\").on(\"mouseover\", function(i) {\n e.services.events.dispatchEvent(f.Legend.ITEM_HOVER, {\n hoveredElement: x(this)\n });\n const o = x(this);\n o.select(\"div.checkbox\").classed(\"hovered\", !0);\n const l = o.datum();\n l.name.length > a.threshold && a.type !== ke.NONE && e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: i,\n hoveredElement: o,\n content: l.name\n });\n }).on(\"mousemove\", function(i) {\n x(this).datum().name.length > a.threshold && a.type !== ke.NONE && e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: i\n });\n }).on(\"click\", function() {\n e.services.events.dispatchEvent(f.Legend.ITEM_CLICK, {\n clickedElement: x(this)\n });\n const o = x(this).datum();\n e.model.toggleDataLabel(o.name);\n }).on(\"mouseout\", function() {\n const i = x(this);\n i.select(\"div.checkbox\").classed(\"hovered\", !1), i.datum().name.length > a.threshold && a.type !== ke.NONE && e.services.events.dispatchEvent(f.Tooltip.HIDE), e.services.events.dispatchEvent(f.Legend.ITEM_MOUSEOUT, {\n hoveredElement: i\n });\n }), t.selectAll(\"div.legend-item div.checkbox\").on(\"keyup\", function(i) {\n i.key && i.key === \"Tab\" && e.services.events.dispatchEvent(f.Legend.ITEM_HOVER, {\n hoveredElement: x(this)\n });\n }), t.selectAll(\"div.legend-item div.checkbox\").on(\"keydown\", function(i, o) {\n i.key && i.key === \" \" ? (i.preventDefault(), e.model.toggleDataLabel(o.name)) : i.key && i.key === \"Tab\" && e.services.events.dispatchEvent(f.Legend.ITEM_MOUSEOUT, {\n hoveredElement: x(this)\n });\n }), t.selectAll(\"g.additional-item\").on(\"mouseover\", function(i) {\n const o = x(this), l = o.datum();\n l.name.length > a.threshold && e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: i,\n hoveredElement: o,\n content: l.name\n });\n });\n }\n}\nclass ar extends z {\n constructor(e, t, s) {\n super(e, t, s), this.type = \"chart-clip\", this.renderType = H.SVG, this.chartClipId = \"chart-clip-id-\" + Math.floor(Math.random() * 99999999999), this.init();\n }\n init() {\n this.model.set({ chartClipId: this.chartClipId }, { skipUpdate: !0 });\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n this.createClipPath();\n }\n createClipPath() {\n const e = this.parent, { cartesianScales: t } = this.services;\n if (!t)\n throw new Error(\"Service cartesianScales was undefined\");\n const s = t.getMainXScale(), n = t.getMainYScale(), [a, i] = s.range(), [o, l] = n.range();\n if (!e)\n throw new Error(\"svg is undefined\");\n this.chartClipPath = E.appendOrSelect(e, `clipPath.${this.type}`).attr(\n \"id\",\n this.chartClipId\n );\n const c = E.appendOrSelect(this.chartClipPath, `rect.${this.type}`);\n i - a > 0 && c.attr(\"x\", a).attr(\"y\", l).attr(\"width\", i - a).attr(\"height\", o - l), this.chartClipPath.merge(c).lower();\n }\n}\nclass rc extends ar {\n constructor() {\n super(...arguments), this.type = \"canvas-chart-clip\", this.chartClipId = \"canvas-chart-clip-id-\" + Math.floor(Math.random() * 99999999999);\n }\n createClipPath() {\n const e = this.parent, { width: t, height: s } = E.getSVGElementSize(this.parent, {\n useAttrs: !0\n });\n this.chartClipPath = E.appendOrSelect(e, `clipPath.${this.type}`).attr(\n \"id\",\n this.chartClipId\n );\n const n = E.appendOrSelect(this.chartClipPath, `rect.${this.type}`);\n n.attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", t).attr(\"height\", s), this.chartClipPath.merge(n).lower();\n }\n}\nvar Me, ne;\n(function(r) {\n r.LEFT = \"left\", r.RIGHT = \"right\", r.TOP = \"top\", r.BOTTOM = \"bottom\";\n})(ne || (ne = {}));\nvar os = (Me = {}, Me[ne.LEFT] = function(r, e, t) {\n return {\n top: r.top - Math.round(e.offsetHeight / 2) + Math.round(t.height / 2),\n left: Math.round(r.left - e.offsetWidth)\n };\n}, Me[ne.RIGHT] = function(r, e, t) {\n return {\n top: r.top - Math.round(e.offsetHeight / 2) + Math.round(t.height / 2),\n left: Math.round(r.left + t.width)\n };\n}, Me[ne.TOP] = function(r, e, t) {\n return {\n top: Math.round(r.top - e.offsetHeight),\n left: r.left - Math.round(e.offsetWidth / 2) + Math.round(t.width / 2)\n };\n}, Me[ne.BOTTOM] = function(r, e, t) {\n return {\n top: Math.round(r.top + t.height),\n left: r.left - Math.round(e.offsetWidth / 2) + Math.round(t.width / 2)\n };\n}, Me), ls = typeof window < \"u\" ? window : {\n innerHeight: 0,\n scrollY: 0,\n innerWidth: 0,\n scrollX: 0\n}, Je = (\n /** @class */\n function() {\n function r(e) {\n e === void 0 && (e = {}), this.positions = os, this.positions = Object.assign({}, os, e);\n }\n return r.prototype.getRelativeOffset = function(e) {\n for (var t = {\n left: e.offsetLeft,\n top: e.offsetTop\n }; e.offsetParent && getComputedStyle(e.offsetParent).position === \"static\"; )\n t.left += e.offsetLeft, t.top += e.offsetTop, e = e.offsetParent;\n return t;\n }, r.prototype.getAbsoluteOffset = function(e) {\n for (var t = e, s = {\n top: 0,\n left: 0\n }; t.offsetParent; ) {\n var n = getComputedStyle(t.offsetParent);\n n.position === \"static\" && n.marginLeft && n.marginTop && (parseInt(n.marginTop, 10) && (s.top += parseInt(n.marginTop, 10)), parseInt(n.marginLeft, 10) && (s.left += parseInt(n.marginLeft, 10))), t = t.offsetParent;\n }\n var a = e.getBoundingClientRect(), i = document.body.getBoundingClientRect();\n return {\n top: a.top - i.top + s.top,\n left: a.left - i.left + s.left\n };\n }, r.prototype.findRelative = function(e, t, s) {\n var n = this.getRelativeOffset(e), a = e.getBoundingClientRect();\n return this.calculatePosition(n, a, t, s);\n }, r.prototype.findAbsolute = function(e, t, s) {\n var n = this.getAbsoluteOffset(e), a = e.getBoundingClientRect();\n return this.calculatePosition(n, a, t, s);\n }, r.prototype.findPosition = function(e, t, s, n) {\n n === void 0 && (n = this.getAbsoluteOffset.bind(this));\n var a = n(e), i = e.getBoundingClientRect();\n return this.calculatePosition(a, i, t, s);\n }, r.prototype.findPositionAt = function(e, t, s) {\n return this.calculatePosition(e, { top: 0, left: 0, height: 0, width: 0 }, t, s);\n }, r.prototype.getPlacementBox = function(e, t) {\n var s = e.offsetHeight + t.top, n = e.offsetWidth + t.left;\n return {\n top: t.top,\n bottom: s,\n left: t.left,\n right: n\n };\n }, r.prototype.addOffset = function(e, t, s) {\n return t === void 0 && (t = 0), s === void 0 && (s = 0), Object.assign({}, e, {\n top: e.top + t,\n left: e.left + s\n });\n }, r.prototype.setElement = function(e, t) {\n e.style.top = t.top + \"px\", e.style.left = t.left + \"px\";\n }, r.prototype.findBestPlacement = function(e, t, s, n, a) {\n var i = this;\n n === void 0 && (n = this.defaultContainerFunction.bind(this)), a === void 0 && (a = this.findPosition.bind(this));\n var o = s.map(function(l) {\n var c = a(e, t, l), d = i.getPlacementBox(t, c), p = 0, h = 0, u = n();\n d.top < u.top ? p = u.top - d.top : d.bottom > u.height && (p = d.bottom - u.height), d.left < u.left ? h = u.left - d.left : d.right > u.width && (h = d.right - u.width), p && !h ? h = 1 : h && !p && (p = 1);\n var g = t.offsetHeight * t.offsetWidth, m = p * h, b = g - m, v = b / g;\n return {\n placement: l,\n weight: v\n };\n });\n return o.sort(function(l, c) {\n return c.weight - l.weight;\n }), o[0].placement;\n }, r.prototype.findBestPlacementAt = function(e, t, s, n) {\n var a = this;\n n === void 0 && (n = this.defaultContainerFunction.bind(this));\n var i = function(o, l, c) {\n return a.findPositionAt(e, l, c);\n };\n return this.findBestPlacement(null, t, s, n, i);\n }, r.prototype.defaultContainerFunction = function() {\n return {\n // we go with window here, because that's going to be the simple/common case\n top: 0,\n left: 0,\n height: ls.innerHeight,\n width: ls.innerWidth\n };\n }, r.prototype.calculatePosition = function(e, t, s, n) {\n return this.positions[n] ? this.positions[n](e, s, t) : (console.error(\"No function found for placement, defaulting to 0,0\"), { left: 0, top: 0 });\n }, r;\n }()\n);\nnew Je();\nclass ir extends z {\n constructor(e, t, s) {\n super(e, t, s), this.type = \"tooltip\", this.renderType = H.HTML, this.isEventListenerAdded = !1, this.positionService = new Je(), this.handleShowTooltip = (n) => {\n const a = n.detail.data || n.detail.items;\n let i;\n const o = this.formatItems(this.getItems(n));\n n.detail.content ? i = `<div class=\"title-tooltip\"><p>${n.detail.content}</p></div>` : i = this.getTooltipHTML(o);\n const l = E.appendOrSelect(this.tooltip, \"div.content-box\");\n if (y(this.getOptions(), \"tooltip\", \"customHTML\"))\n if (n.detail.content) {\n const c = `<div class=\"title-tooltip\"><p>${n.detail.content}</p></div>`;\n l.html(c);\n } else\n l.html(this.model.getOptions().tooltip.customHTML(a, i));\n else\n l.html(i);\n l.selectAll(\".datapoint-tooltip\").each(function(c, d) {\n const p = o[d];\n o[d] && o[d].color && x(this).select(\".tooltip-color\").attr(\"class\", \"tooltip-color\").style(\"background-color\", p.color);\n }), this.positionTooltip(n), this.tooltip.classed(\"hidden\", !1).attr(\"aria-hidden\", !1);\n }, this.handleHideTooltip = () => {\n this.tooltip.classed(\"hidden\", !0).attr(\"aria-hidden\", !0);\n }, this.init();\n }\n addTooltipEventListener() {\n this.services.events.addEventListener(f.Tooltip.MOVE, (e) => {\n this.tooltip.classed(\"hidden\") === !1 && this.positionTooltip(e);\n }), this.services.events.addEventListener(f.Tooltip.SHOW, this.handleShowTooltip), this.services.events.addEventListener(f.Tooltip.HIDE, this.handleHideTooltip), this.services.events.addEventListener(f.Chart.MOUSEOUT, this.handleHideTooltip);\n }\n removeTooltipEventListener() {\n this.services.events.removeEventListener(f.Tooltip.MOVE, null), this.services.events.removeEventListener(f.Tooltip.SHOW, this.handleShowTooltip), this.services.events.removeEventListener(f.Tooltip.HIDE, this.handleHideTooltip), this.services.events.removeEventListener(f.Chart.MOUSEOUT, this.handleHideTooltip);\n }\n getItems(e) {\n return e.detail.items ? e.detail.items : [];\n }\n formatItems(e) {\n const t = this.getOptions(), s = y(t, \"tooltip\", \"truncation\", \"type\"), n = y(t, \"tooltip\", \"truncation\", \"threshold\"), a = y(t, \"tooltip\", \"truncation\", \"numCharacter\");\n return s !== ke.NONE ? e.map((i) => {\n const o = i.labelIcon ? 12 : 0;\n return i.value = i.value ? this.valueFormatter(i.value, i.label) : i.value, i.label && i.label.length + o > n && (i.label = $e(i.label, s, a)), i.value && i.value.length > n && (i.value = $e(i.value, s, a)), i;\n }) : e;\n }\n getTooltipHTML(e) {\n return '<ul class=\"multi-tooltip\">' + e.map(\n (t) => `<li>\n\t\t\t\t\t<div class=\"datapoint-tooltip${t.bold ? \" bold\" : \"\"}\">\n\t\t\t\t\t\t${t.class || t.color ? `<div class=\"tooltip-color ${t.class}\"></div>` : \"\"}\n\t\t\t\t\t\t<div class=\"label\">\n\t\t\t\t\t\t<p>${t.label || \"\"}</p>\n\t\t\t\t\t\t${t.labelIcon ? `<span class=\"label-icon\"/>${t.labelIcon}</span>` : \"\"}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t${t.value === void 0 || t.value === null ? \"\" : `<p class=\"value\"/>${t.value}</p>`}\n\t\t\t\t\t</div>\n\t\t\t\t</li>`\n ).join(\"\") + \"</ul>\";\n }\n valueFormatter(e, t) {\n const s = this.getOptions(), n = y(s, \"tooltip\", \"valueFormatter\");\n if (n)\n return n(e, t);\n if (typeof e.getTime == \"function\")\n return Ut(e, \"MMM d, yyyy\");\n try {\n if (typeof e == \"string\" && /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/.test(e))\n return Ut(Date.parse(e), \"MMM d, yyyy\");\n } catch {\n }\n return e.toLocaleString();\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = this.getOptions(), s = y(t, \"tooltip\", \"enabled\");\n if (s) {\n const n = x(this.services.domUtils.getHolder()), a = y(t, \"style\", \"prefix\");\n this.tooltip = E.appendOrSelect(n, `div.${he}--${a}--tooltip`), this.tooltip.style(\"max-width\", null).attr(\"role\", \"tooltip\"), this.isEventListenerAdded || (this.addTooltipEventListener(), this.isEventListenerAdded = !0), this.tooltip.classed(\"hidden\", !0);\n } else\n !s && this.isEventListenerAdded && (this.removeTooltipEventListener(), this.isEventListenerAdded = !1);\n }\n positionTooltip(e) {\n const t = this.services.domUtils.getHolder(), s = this.tooltip.node(), n = this.getOptions(), a = y(n, \"zoomBar\", \"top\", \"enabled\");\n let i = y(e, \"detail\", \"mousePosition\");\n if (!i)\n i = qe(y(e, \"detail\", \"event\"), t);\n else {\n const h = y(n, \"zoomBar\", \"top\", \"type\"), u = de.height[h];\n a && (i[1] += u + de.spacerHeight);\n }\n const o = t.offsetWidth, l = t.offsetHeight;\n let c;\n i[0] / o > 0.9 ? c = ne.LEFT : i[0] / o < 0.1 ? c = ne.RIGHT : c = this.positionService.findBestPlacementAt(\n {\n left: i[0],\n top: i[1]\n },\n s,\n [ne.RIGHT, ne.LEFT, ne.TOP, ne.BOTTOM],\n () => ({\n top: void 0,\n // properties were never set to optional (probably should)\n left: void 0,\n // ditto\n width: o,\n height: l\n })\n );\n let { horizontalOffset: d } = Ln;\n c === ne.LEFT && (d *= -1);\n const p = this.positionService.findPositionAt(\n {\n left: i[0] + d,\n top: i[1]\n },\n s,\n c\n );\n this.positionService.setElement(s, p);\n }\n}\nconst Fe = class extends z {\n constructor() {\n super(...arguments), this.type = \"grid-brush\", this.renderType = H.SVG, this.selectionSelector = \"rect.selection\", this.frontSelectionSelector = \"rect.frontSelection\";\n }\n // needs to match the class name in _grid-brush.scss\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(r = !0) {\n const e = this.parent, t = this.getComponentContainer();\n if (!e)\n throw new Error(\"SVG was not defined\");\n const s = E.appendOrSelect(e, \"svg.chart-grid-backdrop\"), n = E.appendOrSelect(s, `g.${this.type}`), a = E.appendOrSelect(n, this.selectionSelector), { width: i, height: o } = E.getSVGElementSize(s, {\n useAttrs: !0\n }), { cartesianScales: l } = this.services, c = l.getMainXScaleType(), d = l.getMainXScale(), [p] = d.range();\n t.attr(\"transform\", `translate(${p},0)`);\n const h = E.appendOrSelect(t, this.frontSelectionSelector);\n if (d && c === te.TIME) {\n let u = this.model.get(\"zoomDomain\");\n u === void 0 && (u = this.services.zoom.getDefaultZoomBarDomain(), u && this.model.set({ zoomDomain: u }, { animate: !1 }));\n const g = (L) => {\n const w = L[1] - L[0];\n let T = \"0,\" + w.toString();\n const k = Math.floor(o / Fe.DASH_LENGTH), _ = k * Fe.DASH_LENGTH;\n for (let F = 0; F < k; F++)\n T += \",\" + Fe.DASH_LENGTH;\n T += \",\" + (o - _), k % 2 === 1 && (T += \",0\"), T += \",\" + w.toString(), T += \",\" + o.toString(), h.attr(\"stroke-dasharray\", T);\n }, m = (L) => {\n const w = L.selection;\n w === null || w[0] === w[1] || (h.attr(\"x\", parseFloat(a.attr(\"x\")) + parseFloat(s.attr(\"x\"))).attr(\"y\", a.attr(\"y\")).attr(\"width\", a.attr(\"width\")).attr(\"height\", a.attr(\"height\")).style(\"cursor\", \"pointer\").style(\"display\", null), g(w));\n }, b = (L, w) => {\n const T = Xs().range([0, i]).domain(u);\n let k = [T.invert(L), T.invert(w)];\n k[0].valueOf() === k[1].valueOf() && (k = this.services.zoom.getDefaultZoomBarDomain()), (u[0].valueOf() !== k[0].valueOf() || u[1].valueOf() !== k[1].valueOf()) && this.services.zoom.handleDomainChange(k);\n };\n let v;\n const S = (L) => {\n const w = L.selection;\n w !== null && (b(w[0], w[1]), n.call(v.move, null), h.style(\"display\", \"none\"));\n };\n o != 0 && i != 0 && (v = ms().extent([\n [0, 0],\n [i - 1, o]\n ]).on(\"start brush end\", m).on(\"end.brushed\", S), n.call(v));\n const O = this.services.zoom.getZoomRatio();\n s.on(\"click\", function(L) {\n if (L.shiftKey) {\n const w = this.services.domUtils.getHolder(), T = qe(n.node(), w)[0];\n let k = T - i * O / 2;\n k < 0 && (k = 0);\n let _ = T + i * O / 2;\n _ > i && (_ = i), b(k, _);\n }\n });\n }\n }\n};\nlet rr = Fe;\nrr.DASH_LENGTH = 4;\nclass oc extends z {\n constructor() {\n super(...arguments), this.type = \"zoom-bar\", this.renderType = H.SVG, this.MIN_SELECTION_DIFF = 9e-10, this.brushSelector = \"g.zoom-bar-brush\", this.clipId = \"zoomBarClip-\" + Math.floor(Math.random() * 99999999999), this.brush = ms(), this.highlightStrokeWidth = 1;\n }\n init() {\n this.services.events.addEventListener(f.ZoomBar.UPDATE, this.render.bind(this));\n const e = y(this.getOptions(), \"zoomBar\", P.TOP, \"data\");\n this.model.setZoomBarData(e);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = this.getComponentContainer(), s = this.services.zoom.isZoomBarLoading(P.TOP), n = this.services.zoom.isZoomBarLocked(P.TOP), a = y(this.getOptions(), \"zoomBar\", P.TOP, \"type\"), i = y(this.getOptions(), \"axes\", P.BOTTOM, \"highlights\"), o = de.height[a], { width: l } = E.getSVGElementSize(this.parent, {\n useAttrs: !0\n });\n if (l === 0)\n return;\n let c = 0;\n const d = this.model.get(\"axesMargins\");\n d && d.left && (c = d.left);\n const p = E.appendOrSelect(t, \"svg.zoom-container\").attr(\"width\", \"100%\").attr(\"height\", o).attr(\"opacity\", 1);\n if (E.appendOrSelect(t, \"rect.zoom-spacer\").attr(\"x\", 0).attr(\"y\", o).attr(\"width\", \"100%\").attr(\"height\", de.spacerHeight).attr(\"opacity\", 1).attr(\"fill\", \"none\"), a === Le.GRAPH_VIEW ? E.appendOrSelect(p, \"rect.zoom-bg\").attr(\"x\", c).attr(\"y\", 0).attr(\"width\", l - c).attr(\"height\", \"100%\").classed(\"zoom-bg-skeleton\", s).style(\n \"stroke\",\n s ? `url(#${this.services.domUtils.generateElementIDString(\"shimmer-lines\")})` : null\n ) : a === Le.SLIDER_VIEW && E.appendOrSelect(p, \"rect.zoom-slider-bg\").attr(\"x\", c).attr(\"y\", o / 2 - 1).attr(\"width\", l - c).attr(\"height\", 2).classed(\"zoom-slider-bg-skeleton\", s).style(\n \"stroke\",\n s ? `url(#${this.services.domUtils.generateElementIDString(\"shimmer-lines\")})` : null\n ), s) {\n this.renderSkeleton(p, c, l);\n return;\n }\n const { cartesianScales: h } = this.services, u = h.getMainXScale(), g = h.getMainYScale(), m = h.getMainXScaleType();\n if (u && m === te.TIME) {\n let b = this.services.zoom.getZoomBarData();\n if (Ts(b) || b.length === 1)\n return;\n this.xScale = u.copy(), this.yScale = g.copy();\n const v = this.services.zoom.getDefaultZoomBarDomain(b);\n b = this.compensateDataForDefaultDomain(b, v);\n const S = this.model.get(\"initialZoomDomain\"), O = y(\n this.getOptions(),\n \"zoomBar\",\n P.TOP,\n \"initialZoomDomain\"\n );\n O && O[0] && O[1] && (O[0] = new Date(O[0]), O[1] = new Date(O[1])), O && !(S && S[0].valueOf() === O[0].valueOf() && S[1].valueOf() === O[1].valueOf()) ? this.model.set(\n {\n // use a new object instead of newInitialZoomDomain\n initialZoomDomain: Ie([], O),\n zoomDomain: O ? Ie([], O) : v\n },\n { skipUpdate: !0 }\n ) : O === null && S !== null && this.model.set(\n {\n initialZoomDomain: null,\n zoomDomain: Ie([], v)\n },\n { skipUpdate: !0 }\n ), this.xScale.range([c, l]).domain(v), this.maxSelectionRange = this.xScale.range(), this.yScale.range([0, o - 6]).domain(Ke(b, (T) => T.value));\n const L = this.model.get(\"zoomDomain\");\n if (a === Le.GRAPH_VIEW && (this.renderZoomBarArea(p, \"path.zoom-graph-area-unselected\", b, null), this.updateClipPath(t, this.clipId, 0, 0, 0, 0), this.renderZoomBarArea(p, \"path.zoom-graph-area\", b, this.clipId), this.renderZoomBarBaseline(p, c, l), i)) {\n const T = i.highlightStartMapsTo, k = i.highlightEndMapsTo, _ = i.color, F = i.labelMapsTo;\n i.data.forEach((V, A) => {\n E.appendOrSelect(p, `rect.highlight-${A}`).attr(\"height\", o - 2 * this.highlightStrokeWidth).attr(\"y\", this.highlightStrokeWidth).attr(\"x\", this.xScale(V[T])).attr(\n \"width\",\n this.xScale(V[k]) - this.xScale(V[T])\n ).style(\n \"fill\",\n _ && _.scale[V[F]] ? _.scale[V[F]] : null\n ).style(\"fill-opacity\", 0.1).style(\n \"stroke\",\n _ && _.scale[V[F]] ? _.scale[V[F]] : null\n ).style(\"stroke-dasharray\", \"2, 2\").attr(\"stroke-width\", \"1px\");\n });\n }\n this.addBrushEventListener(L, c, l);\n const w = E.appendOrSelect(t, this.brushSelector).call(this.brush);\n if (L !== void 0)\n if (L[0].valueOf() === L[1].valueOf())\n w.call(this.brush.move, this.xScale.range()), this.updateBrushHandle(this.getComponentContainer(), this.xScale.range());\n else {\n const T = L.map((k) => this.xScale(k));\n T[1] - T[0] < this.MIN_SELECTION_DIFF || (w.call(this.brush.move, T), this.updateBrushHandle(this.getComponentContainer(), T));\n }\n n && (this.brush.filter(() => !1), w.selectAll(\"rect\").attr(\"cursor\", \"auto\"));\n }\n }\n addBrushEventListener(e, t, s) {\n const n = (o) => {\n const l = o.selection;\n l === null ? this.handleBrushedEvent(o, e, this.xScale, this.xScale.range()) : l[0] === l[1] || this.handleBrushedEvent(o, e, this.xScale, l);\n }, a = y(this.getOptions(), \"zoomBar\", P.TOP, \"type\"), i = de.height[a];\n this.brush.extent([\n [t, 0],\n [s, i]\n ]).on(\"start brush end\", null).on(\"start brush end\", n);\n }\n // brush event listener\n handleBrushedEvent(e, t, s, n) {\n const a = [s.invert(n[0]), s.invert(n[1])];\n if (this.updateBrushHandle(this.getComponentContainer(), n), e.sourceEvent != null && (e.sourceEvent.type === \"mousemove\" || e.sourceEvent.type === \"mouseup\" || e.sourceEvent.type === \"mousedown\" || e.sourceEvent.type === \"touchstart\" || e.sourceEvent.type === \"touchmove\" || e.sourceEvent.type === \"touchend\")) {\n (t === void 0 || t[0] !== a[0] || t[1] !== a[1]) && this.services.zoom.handleDomainChange(a, {\n dispatchEvent: !1\n });\n let i;\n e.type === \"start\" ? i = f.ZoomBar.SELECTION_START : e.type === \"brush\" ? i = f.ZoomBar.SELECTION_IN_PROGRESS : e.type === \"end\" && (i = f.ZoomBar.SELECTION_END, this.services.events.dispatchEvent(f.ZoomDomain.CHANGE, {\n newDomain: a\n })), this.services.events.dispatchEvent(i, {\n selection: n,\n newDomain: a\n });\n }\n }\n updateBrushHandle(e, t) {\n const s = this, n = de.handleWidth, a = y(this.getOptions(), \"zoomBar\", P.TOP, \"type\"), i = de.height[a], o = -n / 2, l = de.handleBarWidth, c = a === Le.GRAPH_VIEW ? de.handleBarHeight : 6, d = -l / 2, p = (i - c) / 2;\n e.select(this.brushSelector).selectAll(\"rect.handle\").data([{ type: \"w\" }, { type: \"e\" }]).attr(\"x\", function(u) {\n if (u.type === \"w\")\n return Math.max(t[0] + o, s.maxSelectionRange[0]);\n if (u.type === \"e\")\n return Math.min(t[1] + o, s.maxSelectionRange[1] - n);\n }).attr(\"y\", 0).attr(\"width\", n).attr(\"height\", i).attr(\"cursor\", \"ew-resize\").style(\"display\", null);\n const h = e.select(this.brushSelector).selectAll(\"rect.handle-bar\").data([{ type: \"w\" }, { type: \"e\" }]);\n h.enter().append(\"rect\").attr(\"class\", function(u) {\n return \"handle-bar handle-bar--\" + u.type;\n }), h.attr(\"x\", function(u) {\n if (u.type === \"w\")\n return Math.max(\n t[0] + d,\n s.maxSelectionRange[0] - o + d\n );\n if (u.type === \"e\")\n return Math.min(\n t[1] + d,\n s.maxSelectionRange[1] + o + d\n );\n }).attr(\"y\", p).attr(\"width\", l).attr(\"height\", c).attr(\"cursor\", \"ew-resize\"), a === Le.SLIDER_VIEW && this.updateSliderSelectedArea(t), this.updateClipPath(\n e,\n this.clipId,\n t[0],\n 0,\n t[1] - t[0],\n i\n );\n }\n updateSliderSelectedArea(e) {\n const t = y(this.getOptions(), \"zoomBar\", P.TOP, \"type\"), s = de.height[t], a = this.getComponentContainer().select(\"svg.zoom-container\");\n E.appendOrSelect(a, \"rect.zoom-slider-selected-area\").attr(\"x\", e[0]).attr(\"y\", s / 2 - 1).attr(\"width\", e[1] - e[0]).attr(\"height\", 2);\n }\n renderZoomBarArea(e, t, s, n) {\n const { cartesianScales: a } = this.services, i = a.getMainXAxisPosition(), o = a.getMainYAxisPosition(), l = a.getMainXScaleType(), c = a.getMainYScaleType(), d = (v, S, O) => (L) => a.getValueFromScale(v, S, O, L), p = d(this.xScale, l, i), h = d(this.yScale, c, o), u = y(this.getOptions(), \"zoomBar\", P.TOP, \"type\"), g = de.height[u], m = kt().x((v) => p(v)).y0(g).y1((v) => g - h(v)), b = E.appendOrSelect(e, t).datum(s).attr(\"d\", m);\n n && b.attr(\"clip-path\", `url(#${n})`);\n }\n updateClipPath(e, t, s, n, a, i) {\n const o = E.appendOrSelect(e, \"clipPath\").attr(\"id\", t);\n E.appendOrSelect(o, \"rect\").attr(\"x\", s).attr(\"y\", n).attr(\"width\", a).attr(\"height\", i);\n }\n // assume the domains in data are already sorted\n compensateDataForDefaultDomain(e, t) {\n if (!e || e.length < 2)\n return;\n const s = wn(e), n = this.services.cartesianScales.getDomainIdentifier(), a = this.services.cartesianScales.getRangeIdentifier();\n if (Number(t[0]) < Number(s[0][n])) {\n const i = {};\n i[n] = t[0], i[a] = 0, s.unshift(i);\n }\n if (Number(t[1]) > Number(s[s.length - 1][n])) {\n const i = {};\n i[n] = t[1], i[a] = 0, s.push(i);\n }\n return s;\n }\n renderZoomBarBaseline(e, t, s, n = !1) {\n const a = y(this.model.getOptions(), \"zoomBar\", P.TOP, \"type\"), i = de.height[a], o = It()([\n [t, i],\n [s, i]\n ]);\n E.appendOrSelect(e, \"path.zoom-bg-baseline\").attr(\"d\", o).classed(\"zoom-bg-baseline-skeleton\", n).style(\n \"stroke\",\n n ? `url(#${this.services.domUtils.generateElementIDString(\"shimmer-lines\")})` : null\n );\n }\n renderSkeleton(e, t, s) {\n this.renderZoomBarArea(e, \"path.zoom-graph-area-unselected\", [], null), this.renderZoomBarArea(e, \"path.zoom-graph-area\", [], this.clipId), this.brush.on(\"start brush end\", null), E.appendOrSelect(this.getComponentContainer(), this.brushSelector).html(null), y(this.getOptions(), \"zoomBar\", P.TOP, \"type\") === Le.GRAPH_VIEW && this.renderZoomBarBaseline(e, t, s, !0);\n }\n destroy() {\n this.brush.on(\"start brush end\", null), this.services.events.removeEventListener(f.ZoomBar.UPDATE, this.render.bind(this));\n }\n}\nclass lc extends z {\n constructor(e, t) {\n super(e, t), this.type = \"threshold\", this.renderType = H.SVG, this.positionService = new Je();\n }\n render(e = !1) {\n const t = y(this.getOptions(), \"axes\"), s = [];\n Object.keys(t).forEach((h) => {\n if (Object.values(P).includes(h)) {\n const u = t[h];\n u.thresholds && u.thresholds.length > 0 && s.push({\n axisPosition: h,\n thresholds: u.thresholds,\n correspondingDatasets: u == null ? void 0 : u.correspondingDatasets,\n mapsTo: u == null ? void 0 : u.mapsTo\n });\n }\n });\n const a = this.getComponentContainer({ withinChartClip: !0 }).selectAll(\"g.axis-thresholds\").data(s, (h) => h.axisPosition);\n a.exit().attr(\"opacity\", 0).remove();\n const o = a.enter().append(\"g\").merge(a);\n o.attr(\"class\", (h) => `axis-thresholds ${h.axisPosition}`);\n const l = o.selectAll(\"g.threshold-group\").data(\n (h) => h.thresholds.map((u) => (u.axisPosition = h.axisPosition, u.datum = this.constructDatumObj(h, u), u))\n );\n l.exit().attr(\"opacity\", 0).remove();\n const c = l.enter().append(\"g\");\n c.append(\"line\").attr(\"class\", \"threshold-line\"), c.append(\"rect\").attr(\"class\", \"threshold-hoverable-area\"), c.merge(l).attr(\"class\", \"threshold-group\");\n const p = this;\n o.each(function({ axisPosition: h }) {\n const u = p.services.cartesianScales.getScaleByPosition(h), g = p.services.cartesianScales.getScaleTypeByPosition(h);\n let m = null, b = null;\n h === P.LEFT || h === P.RIGHT ? (b = u, m = p.services.cartesianScales.getMainXScale()) : (m = u, b = p.services.cartesianScales.getMainYScale());\n const v = g === te.LABELS, [S, O] = m.range(), [L, w] = b.range(), { cartesianScales: T } = p.services, k = T.getOrientation(), _ = (G) => T.getDomainValue(G), F = (G) => T.getRangeValue(G), [V, A] = ve(\n _,\n F,\n k\n ), M = x(this);\n h === P.TOP || h === P.BOTTOM ? (M.selectAll(\"line.threshold-line\").transition().call(\n (G) => p.services.transitions.setupTransition({\n transition: G,\n name: \"threshold-line-update\",\n animate: e\n })\n ).attr(\"y1\", w).attr(\"y2\", L).attr(\"x1\", ({ datum: G }) => V(G) + (v ? u.step() / 2 : 0)).attr(\"x2\", ({ datum: G }) => V(G) + (v ? u.step() / 2 : 0)).style(\"stroke\", ({ fillColor: G }) => G), M.selectAll(\"rect.threshold-hoverable-area\").attr(\"x\", 0).attr(\"y\", ({ datum: G }) => -V(G)).attr(\"width\", Math.abs(L - w)).classed(\"rotate\", !0)) : (M.selectAll(\"line.threshold-line\").transition().call(\n (G) => p.services.transitions.setupTransition({\n transition: G,\n name: \"threshold-line-update\",\n animate: e\n })\n ).attr(\"x1\", S).attr(\"x2\", O).attr(\"y1\", ({ datum: G }) => A(G) + (v ? u.step() / 2 : 0)).attr(\"y2\", ({ datum: G }) => A(G) + (v ? u.step() / 2 : 0)).style(\"stroke\", ({ fillColor: G }) => G), M.selectAll(\"rect.threshold-hoverable-area\").attr(\"x\", S).attr(\"y\", ({ datum: G }) => A(G)).attr(\"width\", Math.abs(O - S)).classed(\"rotate\", !1));\n }), this.services.events.addEventListener(f.Threshold.SHOW, (h) => {\n this.setThresholdLabelPosition(h.detail), this.label.classed(\"hidden\", !1);\n }), this.services.events.addEventListener(f.Threshold.HIDE, () => {\n this.label.classed(\"hidden\", !0);\n }), this.appendThresholdLabel(), this.addEventListeners();\n }\n getFormattedValue(e) {\n const { value: t, axisPosition: s } = e, n = this.getOptions();\n if (this.services.cartesianScales.getScaleTypeByPosition(s) === te.TIME) {\n const i = [P.LEFT, P.RIGHT].includes(s), o = this.services.cartesianScales.getMainXScale(), l = this.services.cartesianScales.getMainYScale(), c = i ? l : o, d = y(n, \"timeScale\"), p = ht(c.ticks());\n return ut(t, 0, c.ticks(), p, d);\n }\n return t.toLocaleString(\"en\");\n }\n appendThresholdLabel() {\n const e = x(this.services.domUtils.getHolder()), t = y(this.getOptions(), \"style\", \"prefix\");\n this.label = E.appendOrSelect(\n e,\n `div.${he}--${t}--threshold--label`\n ).classed(\"hidden\", !0);\n }\n setThresholdLabelPosition({ event: e, datum: t }) {\n const s = this.services.domUtils.getHolder(), n = qe(e, s), a = t.valueFormatter ? t.valueFormatter(t.value) : this.getFormattedValue(t);\n this.label.html(`${t.label || \"Threshold\"}: ${a}`).style(\"background-color\", t.fillColor);\n const i = this.label.node(), o = this.positionService.findBestPlacementAt(\n {\n left: n[0],\n top: n[1]\n },\n i,\n [ne.RIGHT, ne.LEFT, ne.TOP, ne.BOTTOM],\n () => ({\n top: void 0,\n // other package lists this as non-optional\n left: void 0,\n // ditto\n width: s.offsetWidth,\n height: s.offsetHeight\n })\n ), l = this.positionService.findPositionAt(\n {\n left: n[0],\n top: n[1]\n },\n i,\n o\n );\n this.positionService.setElement(i, l);\n }\n // Constructs object to pass in scale functions\n constructDatumObj(e, t) {\n const s = {};\n return e.correspondingDatasets && (s.group = y(e, \"correspondingDatasets\", 0)), s[e.mapsTo] = t.value, s;\n }\n addEventListeners() {\n const e = this;\n this.getComponentContainer({ withinChartClip: !0 }).selectAll(\"rect.threshold-hoverable-area\").on(\"mouseover mousemove\", function(s) {\n x(this.parentNode).select(\"line.threshold-line\").classed(\"active\", !0), e.services.events.dispatchEvent(f.Threshold.SHOW, {\n event: s,\n hoveredElement: x(this),\n datum: x(this).datum()\n });\n }).on(\"mouseout\", function(s) {\n x(this.parentNode).select(\"line.threshold-line\").classed(\"active\", !1), e.services.events.dispatchEvent(f.Threshold.HIDE, {\n event: s,\n hoveredElement: x(this),\n datum: x(this).datum()\n });\n });\n }\n}\nclass cc extends z {\n constructor(e, t) {\n super(e, t), this.type = \"highlight\", this.renderType = H.SVG, this.positionService = new Je(), this.highlightStrokeWidth = 1;\n }\n render(e = !1) {\n const t = y(this.getOptions(), \"axes\"), s = [];\n Object.keys(t).forEach((h) => {\n if (Object.values(P).includes(h)) {\n const u = t[h];\n u.highlights && u.highlights.data.length > 0 && s.push({\n axisPosition: h,\n highlightStartMapsTo: u.highlights.highlightStartMapsTo,\n highlightEndMapsTo: u.highlights.highlightEndMapsTo,\n labelMapsTo: u.highlights.labelMapsTo,\n highlight: u.highlights.data,\n color: u.highlights.color\n });\n }\n });\n const a = this.getComponentContainer({ withinChartClip: !0 }).selectAll(\"g.axis-highlight\").data(s, (h) => h.axisPosition);\n a.exit().attr(\"opacity\", 0).remove();\n const o = a.enter().append(\"g\").merge(a);\n o.attr(\"class\", (h) => `axis-highlight ${h.axisPosition}`);\n const l = o.selectAll(\"g.highlight-group\").data(\n (h) => h.highlight.map((u) => (u.axisPosition = h.axisPosition, u.highlightStartMapsTo = h.highlightStartMapsTo, u.labelMapsTo = h.labelMapsTo, u.color = h.color, u.highlightEndMapsTo = h.highlightEndMapsTo, u))\n );\n l.exit().attr(\"opacity\", 0).remove();\n const c = l.enter().append(\"g\");\n c.append(\"rect\").attr(\"class\", \"highlight-bar\"), c.append(\"line\").attr(\"class\", \"highlight-line\"), c.merge(l).attr(\"class\", \"highlight-group\");\n const p = this;\n o.each(function({ axisPosition: h }) {\n const u = p.services.cartesianScales.getMainXScale(), g = p.services.cartesianScales.getMainYScale(), [m, b] = u.range(), [v, S] = g.range(), { cartesianScales: O } = p.services, L = O.getOrientation(), w = (V) => O.getDomainValue(V), T = (V) => O.getRangeValue(V), [k, _] = ve(\n w,\n T,\n L\n ), F = x(this);\n h === P.TOP || h === P.BOTTOM ? F.selectAll(\"rect.highlight-bar\").transition().call(\n (V) => p.services.transitions.setupTransition({\n transition: V,\n name: \"highlight-bar-update\",\n animate: e\n })\n ).attr(\"y\", Math.max(S + p.highlightStrokeWidth, 0)).attr(\"height\", Math.max(v - 2 * p.highlightStrokeWidth, 0)).attr(\"x\", ({ highlightStartMapsTo: V, ...A }) => k(A[V])).attr(\n \"width\",\n ({ highlightStartMapsTo: V, highlightEndMapsTo: A, ...M }) => Math.max(k(M[A]) - k(M[V]), 0)\n ).style(\"stroke\", ({ color: V, labelMapsTo: A, ...M }) => V && V.scale[M[A]] ? V.scale[M[A]] : null).style(\"stroke-dasharray\", \"2, 2\").attr(\"stroke-width\", p.highlightStrokeWidth + \"px\").style(\"fill-opacity\", 0.1).style(\"fill\", ({ color: V, labelMapsTo: A, ...M }) => V && V.scale[M[A]] ? V.scale[M[A]] : null) : F.selectAll(\"rect.highlight-bar\").transition().call(\n (V) => p.services.transitions.setupTransition({\n transition: V,\n name: \"highlight-bar-update\",\n animate: e\n })\n ).attr(\"x\", m).attr(\"width\", Math.max(b - m, 0)).attr(\"y\", ({ highlightEndMapsTo: V, ...A }) => _(A[V])).attr(\n \"height\",\n ({ highlightStartMapsTo: V, highlightEndMapsTo: A, ...M }) => Math.max(_(M[V]) - _(M[A]), 0)\n ).style(\"stroke\", ({ color: V, labelMapsTo: A, ...M }) => V && V.scale[M[A]] ? V.scale[M[A]] : null).style(\"stroke-dasharray\", \"2, 2\").attr(\"stroke-width\", p.highlightStrokeWidth + \"px\").style(\"fill-opacity\", 0.1).style(\"fill\", ({ color: V, labelMapsTo: A, ...M }) => V && V.scale[M[A]] ? V.scale[M[A]] : null);\n });\n }\n}\nclass dc extends ir {\n getItems(e) {\n if (e.detail.items)\n return e.detail.items;\n const t = e.detail.data;\n if (!t.length || !t[0])\n return [];\n const s = this.getOptions(), { cartesianScales: n } = this.services, a = n.getDomainIdentifier(), i = n.isDualAxes(), { groupMapsTo: o } = s.data, l = n.getDomainLabel();\n let c = n.getRangeLabel();\n const d = t[0][a];\n let p;\n if (t.length === 1) {\n const h = t[0], u = n.getRangeIdentifier(h);\n if (i) {\n const m = n.getRangeAxisPosition({\n datum: h,\n groups: [h[o]]\n });\n c = n.getScaleLabel(m);\n }\n const g = h[u];\n p = [\n {\n label: l,\n value: d\n },\n ...Array.isArray(g) && g.length === 2 ? [\n {\n label: \"Start\",\n value: g[0]\n },\n {\n label: \"End\",\n value: g[1]\n }\n ] : [\n {\n label: c,\n value: h[u]\n }\n ]\n ], e.detail.additionalItems && e.detail.additionalItems.forEach(\n (m) => p.push({\n label: m.label,\n value: m.value\n })\n ), p.push({\n label: s.tooltip.groupLabel,\n value: h[o],\n color: this.model.getFillColor(h[o]),\n class: this.model.getColorClassName({\n classNameTypes: [$.TOOLTIP],\n dataGroupName: h[o]\n })\n });\n } else if (t.length > 1 && (p = [\n {\n label: l,\n value: d\n }\n ], p = p.concat(\n t.map((h) => {\n const u = h[n.getRangeIdentifier(h)];\n return {\n label: h[o],\n value: Array.isArray(u) && u.length === 2 ? `${u[0]} - ${u[1]}` : u,\n color: this.model.getFillColor(h[o]),\n class: this.model.getColorClassName({\n classNameTypes: [$.TOOLTIP],\n dataGroupName: h[o]\n })\n };\n }).sort((h, u) => u.value - h.value)\n ), !i && y(s, \"tooltip\", \"showTotal\") === !0)) {\n const h = n.getRangeIdentifier();\n p.push({\n label: Q(s, \"tooltip.totalLabel\") || \"Total\",\n value: t.reduce(\n (u, g) => u + g[h],\n 0\n ),\n bold: !0\n });\n }\n return p;\n }\n}\nclass hc extends z {\n constructor() {\n super(...arguments), this.type = \"alluvial\", this.renderType = H.SVG, this.gradient_id = \"gradient-id-\" + Math.floor(Math.random() * 99999999999);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = this.getComponentContainer({ withinChartClip: !0 });\n t.html(\"\");\n const { width: s, height: n } = E.getSVGElementSize(t, {\n useAttrs: !0\n });\n if (s < 1 || n < 1)\n return;\n const a = this.model.getOptions(), i = this.model.getDisplayData(), o = y(\n this.getOptions(),\n \"color\",\n \"gradient\",\n \"enabled\"\n );\n let l = pe.minNodePadding;\n a.alluvial.nodePadding > pe.minNodePadding && (l = a.alluvial.nodePadding);\n const c = y(a, \"alluvial\", \"nodeAlignment\");\n let d = Gn;\n c === ue.LEFT ? d = Nn : c === ue.RIGHT && (d = Hn);\n const p = Bn().nodeId((v) => v.name).nodeWidth(pe.nodeWidth).nodePadding(l).nodeAlign(d).extent([\n [2, 30],\n [s - 2, n]\n ]);\n this.graph = p({\n nodes: a.alluvial.nodes.map((v) => Object.assign({}, v)),\n links: i.map((v) => Object.assign({}, v))\n }), this.graph.nodes = this.graph.nodes.filter((v) => v.value !== 0);\n const h = {};\n this.graph.nodes.forEach((v) => {\n const S = v.x0;\n v.category && (h[S] = v == null ? void 0 : v.category);\n }), t.append(\"g\").classed(\"header-arrows\", !0).selectAll(\"g\").data(Object.keys(h)).join(\"g\").attr(\"transform\", (v) => `translate(${v}, 0)`).append(\"text\").attr(\n \"id\",\n (v, S) => this.services.domUtils.generateElementIDString(`alluvial-category-${S}`)\n ).style(\"font-size\", \"14px\").text((v) => h[v] ? h[v] : \"\").attr(\"y\", 20).attr(\"x\", (v, S) => {\n const O = this.services.domUtils.generateElementIDString(\n `alluvial-category-${S}`\n ), { width: L } = E.getSVGElementSize(x(`text#${O}`), { useBBox: !0 });\n let w = 0;\n return v + w >= L && (w = -L + 4), w;\n });\n const g = t.append(\"g\").attr(\"fill\", \"none\").selectAll(\"g\").data(this.graph.links);\n if (g.exit().remove(), o) {\n const v = y(this.getOptions(), \"color\", \"scale\");\n v && g.enter().append(\"linearGradient\").attr(\"id\", (S) => `${this.gradient_id}-link-${S.index}`).attr(\"gradientUnits\", \"userSpaceOnUse\").call(\n (S) => S.append(\"stop\").attr(\"offset\", \"0%\").attr(\"stop-color\", (O) => v[O.source.name])\n ).call(\n (S) => S.append(\"stop\").attr(\"offset\", \"100%\").attr(\"stop-color\", (O) => v[O.target.name])\n ), g.exit().remove();\n }\n g.enter().append(\"path\").classed(\"link\", !0).attr(\"d\", $n()).attr(\n \"id\",\n (v) => this.services.domUtils.generateElementIDString(`alluvial-line-${v.index}`)\n ).attr(\"class\", (v) => a.alluvial.monochrome ? this.model.getColorClassName({\n classNameTypes: [$.STROKE],\n dataGroupName: 0,\n originalClassName: \"link\"\n }) : this.model.getColorClassName({\n classNameTypes: [$.STROKE],\n dataGroupName: v.source.index,\n originalClassName: \"link\"\n })).style(\"stroke\", (v) => o ? `url(#${this.gradient_id}-link-${v.index})` : this.model.getFillColor(v.source.name)).attr(\"stroke-width\", (v) => Math.max(1, v.width)).style(\"stroke-opacity\", pe.opacity.default).attr(\n \"aria-label\",\n (v) => `${v.source.name} → ${v.target.name} (${v.value}${a.alluvial.units ? \" \" + a.alluvial.units : \"\"})`\n );\n const m = t.append(\"g\").selectAll(\"g\").data(this.graph.nodes).enter().append(\"g\").attr(\n \"id\",\n (v) => this.services.domUtils.generateElementIDString(`alluvial-node-${v.index}`)\n ).classed(\"node-group\", !0).attr(\"transform\", (v) => `translate(${v.x0}, ${v.y0})`);\n m.append(\"rect\").classed(\"node\", !0).attr(\"height\", (v) => v.y1 - v.y0).attr(\"width\", (v) => v.x1 - v.x0).attr(\"fill\", \"black\");\n const b = m.append(\"g\").attr(\n \"id\",\n (v) => this.services.domUtils.generateElementIDString(`alluvial-node-title-${v.index}`)\n );\n b.append(\"text\").attr(\n \"id\",\n (v) => this.services.domUtils.generateElementIDString(`alluvial-node-text-${v.index}`)\n ).attr(\"class\", \"node-text\").style(\"font-size\", \"12px\").attr(\"text-anchor\", \"start\").attr(\"fill\", \"white\").attr(\"x\", 4).attr(\"dy\", 13).text((v) => `${v.name} (${v.value})`).attr(\"aria-label\", (v) => `${v.name} (${v.value})`), b.append(\"rect\").classed(\"node-text-bg\", !0).attr(\"width\", (v, S) => {\n const O = this.services.domUtils.generateElementIDString(\n `alluvial-node-text-${S}`\n ), { width: L } = E.getSVGElementSize(x(`text#${O}`), { useBBox: !0 });\n return L + 8;\n }).attr(\"height\", 18).attr(\"stroke-width\", 2).lower(), b.attr(\"transform\", (v, S) => {\n const O = this.services.domUtils.generateElementIDString(\n `alluvial-node-text-${S}`\n ), { width: L } = E.getSVGElementSize(x(`text#${O}`), { useBBox: !0 }), w = (v.y1 - v.y0) / 2 - 9;\n let T = v.x1 - v.x0;\n return v.x1 >= L ? T = T - (L + 16) : T += 4, `translate(${T}, ${w})`;\n }), this.addLineEventListener(), this.addNodeEventListener();\n }\n addLineEventListener() {\n const e = this.getOptions(), t = this, s = gt((n, a = \"mouseover\") => {\n const i = t.parent.selectAll(\"path.link\").transition().call(\n (o) => t.services.transitions.setupTransition({\n transition: o,\n name: \"alluvial-links-mouse-highlight\"\n })\n );\n a === \"mouseout\" ? (x(n).lower(), i.style(\"stroke-opacity\", pe.opacity.default)) : i.style(\"stroke-opacity\", function() {\n return n === this ? (x(this).raise(), pe.opacity.selected) : pe.opacity.unfocus;\n });\n }, 33);\n this.parent.selectAll(\"path.link\").on(\"mouseover\", function(n, a) {\n const i = x(this);\n s(this, \"mouseover\"), i.classed(\"link-hovered\", !0);\n const o = getComputedStyle(this).getPropertyValue(\"stroke\");\n t.services.events.dispatchEvent(f.Alluvial.LINE_MOUSEOVER, {\n event: n,\n element: i,\n datum: a\n }), t.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: n,\n hoveredElement: i,\n items: [\n {\n label: a.target.name,\n value: a.value + (e.alluvial.units ? ` ${e.alluvial.units}` : \"\"),\n color: o,\n labelIcon: t.getRightArrowIcon()\n }\n ]\n });\n }).on(\"mousemove\", function(n, a) {\n t.services.events.dispatchEvent(f.Alluvial.LINE_MOUSEMOVE, {\n event: n,\n element: x(this),\n datum: a\n }), t.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: n\n });\n }).on(\"click\", function(n, a) {\n t.services.events.dispatchEvent(f.Alluvial.LINE_CLICK, {\n event: n,\n element: x(this),\n datum: a\n });\n }).on(\"mouseout\", function(n, a) {\n const i = x(this);\n s(this, \"mouseout\"), i.classed(\"link-hovered\", !1), t.services.events.dispatchEvent(f.Alluvial.LINE_MOUSEOUT, {\n event: n,\n element: i,\n datum: a\n }), t.services.events.dispatchEvent(f.Tooltip.HIDE, {\n event: n,\n hoveredElement: i\n });\n });\n }\n addNodeEventListener() {\n const e = this, t = gt((s = [], n = \"mouseover\") => {\n if (n === \"mouseout\" || s.length === 0) {\n e.parent.selectAll(\"path.link\").classed(\"link-hovered\", !1).data(this.graph.links, (i) => i.index).order().style(\"stroke-opacity\", pe.opacity.default);\n return;\n }\n e.parent.selectAll(\"path.link\").transition().call(\n (i) => this.services.transitions.setupTransition({\n transition: i,\n name: \"alluvial-link-mouse-highlight\"\n })\n ).style(\"stroke-opacity\", function(i) {\n return s.some((o) => o === i.index) ? (x(this).classed(\"link-hovered\", !0).raise(), pe.opacity.selected) : pe.opacity.unfocus;\n });\n }, 66);\n e.parent.selectAll(\".node-group\").on(\"mouseover\", function(s, n) {\n const a = x(this), i = [];\n if (e.traverse({ link: \"sourceLinks\", node: \"target\" }, n, i), e.traverse({ link: \"targetLinks\", node: \"source\" }, n, i), i.length) {\n const o = Pe(a.attr(\"transform\"));\n if (a.attr(\"transform\", `translate(${o.x - 2}, ${o.y})`), a.classed(\"node-hovered\", !0).selectAll(\"rect.node\").attr(\"width\", 8), n.x0 - 2 === 0) {\n const c = e.services.domUtils.generateElementIDString(\n `alluvial-node-title-${n.index}`\n ), d = e.parent.select(`g#${c}`), p = Pe(d.attr(\"transform\"));\n d.attr(\"transform\", `translate(${p.x + 4},${p.y})`);\n }\n const l = e.services.domUtils.generateElementIDString(\n `alluvial-node-text-${n.index}`\n );\n e.parent.select(`text#${l}`).style(\"font-weight\", \"bold\"), t(i, \"mouseover\"), e.services.events.dispatchEvent(f.Alluvial.NODE_MOUSEOVER, {\n event: s,\n element: a,\n datum: n\n });\n }\n }).on(\"mousemove\", function(s, n) {\n e.services.events.dispatchEvent(f.Alluvial.NODE_MOUSEMOVE, {\n event: s,\n element: x(this),\n datum: n\n }), e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: s\n });\n }).on(\"click\", function(s, n) {\n e.services.events.dispatchEvent(f.Alluvial.NODE_CLICK, {\n event: s,\n element: x(this),\n datum: n\n });\n }).on(\"mouseout\", function(s, n) {\n const a = x(this), i = Pe(a.attr(\"transform\"));\n if (a.classed(\"node-hovered\", !1).attr(\"transform\", `translate(${i.x + 2}, ${i.y})`).select(\"rect.node\").attr(\"width\", pe.nodeWidth), n.x0 - 2 === 0) {\n const l = e.services.domUtils.generateElementIDString(\n `alluvial-node-title-${n.index}`\n ), c = e.parent.select(`g#${l}`), d = Pe(c.attr(\"transform\"));\n c.attr(\"transform\", `translate(${d.x - 4},${d.y})`);\n }\n const o = e.services.domUtils.generateElementIDString(\n `alluvial-node-text-${n.index}`\n );\n e.parent.select(`text#${o}`).style(\"font-weight\", \"normal\"), t([], \"mouseout\"), e.services.events.dispatchEvent(f.Alluvial.NODE_MOUSEOUT, {\n event: s,\n element: a,\n datum: n\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: a\n });\n });\n }\n // Traverse graph and get all connected links to node\n traverse(e, t, s = []) {\n t[e.link].map((a) => (s.push(a.index), a[e.node])).forEach((a) => this.traverse(e, a, s));\n }\n getRightArrowIcon() {\n return `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"arrow-right\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n\t\t\t<polygon points=\"18 6 16.57 7.393 24.15 15 4 15 4 17 24.15 17 16.57 24.573 18 26 28 16 18 6\"/>\n\t\t\t<rect width=\"32\" height=\"32\"/>\n\t\t</svg>`;\n }\n // Remove event listeners\n destroy() {\n this.parent.selectAll(\"path.line,.node-group\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"click\", null).on(\"mouseout\", null);\n }\n}\nclass uc extends z {\n constructor() {\n super(...arguments), this.type = \"grid\", this.renderType = H.SVG;\n }\n render(e = !0) {\n const t = y(this.getOptions(), \"grid\", \"x\", \"enabled\"), s = y(this.getOptions(), \"grid\", \"y\", \"enabled\");\n this.drawBackdrop(t, s), !(!t && !s) && (t && (E.appendOrSelect(this.backdrop, \"g.x.grid\"), this.drawXGrid(e)), s && (E.appendOrSelect(this.backdrop, \"g.y.grid\"), this.drawYGrid(e)));\n }\n drawXGrid(e) {\n const t = this.parent, s = this.backdrop.attr(\"height\"), n = this.services.cartesianScales.getMainXScale(), a = Dt(n).tickSizeInner(-s).tickSizeOuter(0);\n if (y(this.getOptions(), \"grid\", \"x\", \"alignWithAxisTicks\")) {\n const l = this.services.cartesianScales.getDomainAxisPosition(), c = y(this.getOptions(), \"axes\", l, \"ticks\", \"values\");\n c && a.tickValues(c);\n } else {\n const l = y(this.getOptions(), \"grid\", \"x\", \"numberOfTicks\");\n a.ticks(l);\n }\n const o = t.select(\".x.grid\").attr(\"transform\", `translate(${-this.backdrop.attr(\"x\")}, ${s})`);\n e ? o.transition().call(\n (l) => this.services.transitions.setupTransition({\n transition: l,\n name: \"grid-update\",\n animate: e\n })\n ).call(a) : o.call(a), this.cleanGrid(o);\n }\n drawYGrid(e) {\n const t = this.parent, s = this.backdrop.attr(\"width\"), n = this.services.cartesianScales.getMainYScale(), a = fs(n).tickSizeInner(-s).tickSizeOuter(0);\n if (y(this.getOptions(), \"grid\", \"y\", \"alignWithAxisTicks\")) {\n const l = this.services.cartesianScales.getRangeAxisPosition(), c = y(this.getOptions(), \"axes\", l, \"ticks\", \"values\");\n c && a.tickValues(c);\n } else {\n const l = y(this.getOptions(), \"grid\", \"y\", \"numberOfTicks\");\n a.ticks(l);\n }\n const o = t.select(\".y.grid\").attr(\"transform\", `translate(0, ${-this.backdrop.attr(\"y\")})`);\n e ? o.transition().call(\n (l) => this.services.transitions.setupTransition({\n transition: l,\n name: \"grid-update\",\n animate: e\n })\n ).call(a) : o.call(a), this.cleanGrid(o);\n }\n /**\n * Returns the threshold for the gridline tooltips based on the mouse location.\n * Calculated based on the mouse position between the two closest gridlines or edges of chart.\n */\n getGridlineThreshold(e) {\n const t = this.parent, s = t.selectAll(\".x.grid .tick\").nodes().sort((d, p) => Number(ge(d).tx) - Number(ge(p).tx));\n let n = -1;\n if (!s.length)\n return;\n s.forEach((d) => {\n e[0] >= +ge(d).tx && n++;\n });\n const a = n + 1 < s.length ? n + 1 : s.length, i = s[n], o = s[a];\n let l;\n if (!i)\n l = +ge(o).tx;\n else if (o)\n l = +ge(o).tx - +ge(i).tx;\n else {\n const d = t.select(\"rect.chart-grid-backdrop\").node();\n l = E.getSVGElementSize(d).width - +ge(i).tx;\n }\n const { threshold: c } = this.getOptions().tooltip.gridline;\n return l * c;\n }\n /**\n * Returns the active gridlines based on the gridline threshold and mouse position.\n * @param position mouse positon\n */\n getActiveGridline(e) {\n const t = y(this.getOptions, \"tooltip\", \"gridline\", \"threshold\"), s = t || this.getGridlineThreshold(e);\n return this.parent.selectAll(\".x.grid .tick\").filter(function() {\n const i = ge(this), o = {\n min: Number(i.tx) - s,\n max: Number(i.tx) + s\n };\n return o.min <= e[0] && e[0] <= o.max;\n });\n }\n drawBackdrop(e, t) {\n const s = this.parent, n = this.services.cartesianScales.getMainXScale(), a = this.services.cartesianScales.getMainYScale(), [i, o] = n.range(), [l, c] = a.range();\n this.backdrop = E.appendOrSelect(s, \"svg.chart-grid-backdrop\");\n const d = E.appendOrSelect(\n this.backdrop,\n e || t ? \"rect.chart-grid-backdrop.stroked\" : \"rect.chart-grid-backdrop\"\n );\n this.backdrop.merge(d).attr(\"x\", i).attr(\"y\", c).attr(\"width\", Math.abs(o - i)).attr(\"height\", Math.abs(l - c)).lower(), d.attr(\"width\", \"100%\").attr(\"height\", \"100%\");\n }\n cleanGrid(e) {\n e.selectAll(\"text\").remove(), e.select(\".domain\").remove();\n }\n}\nclass pc extends z {\n constructor() {\n super(...arguments), this.type = \"area\", this.renderType = H.SVG, this.gradient_id = \"gradient-id-\" + Math.floor(Math.random() * 99999999999), this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail;\n this.parent.selectAll(\"path.area\").transition(\"legend-hover-area\").call(\n (s) => this.services.transitions.setupTransition({\n transition: s,\n name: \"legend-hover-area\"\n })\n ).attr(\"opacity\", (s) => s.name !== t.datum().name ? fe.opacity.unselected : fe.opacity.selected);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"path.area\").transition(\"legend-mouseout-area\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-area\"\n })\n ).attr(\"opacity\", fe.opacity.selected);\n };\n }\n init() {\n const e = this.services.events;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e = !0) {\n const t = this.getComponentContainer({ withinChartClip: !0 }), s = this.getOptions();\n let n = [0, 0];\n const { cartesianScales: a } = this.services, i = a.getOrientation(), o = kt().curve(this.services.curves.getD3Curve()).defined((w) => {\n const T = a.getRangeIdentifier(), k = w[T];\n return k != null;\n }), l = this.model.getGroupedData(this.configs.groups), c = y(s, \"bounds\"), d = c && l && l.length === 1;\n !d && c && console.warn(\n `Bounds can only be shown when having 1 single datagroup, you've supplied ${l.length}`\n );\n let p = 0;\n const h = (w, T) => {\n y(s, \"axes\", w, \"includeZero\") === !1 && T[0] > 0 && T[1] > 0 && (p = T[0]);\n }, u = (w) => d ? a.getBoundedScaledValues(w)[0] : a.getRangeValue(p), g = (w) => d ? a.getBoundedScaledValues(w)[1] : a.getRangeValue(w);\n i === le.VERTICAL ? (n = a.getMainYScale().domain(), h(a.getMainYAxisPosition(), n), o.x((w) => a.getDomainValue(w)).y0((w) => u(w)).y1((w) => g(w))) : (n = a.getMainXScale().domain(), h(a.getMainXAxisPosition(), n), o.x0((w) => u(w)).x1((w) => g(w)).y((w) => a.getDomainValue(w)));\n const m = y(s, \"color\", \"gradient\", \"enabled\"), b = l && l.length === 1 && m;\n l.length > 1 && m && console.error(\"Gradients can only be enabled when having 1 single dataset\");\n const v = t.selectAll(\"path.area\").data(l, (w) => w.name), S = x(this.services.domUtils.getMainContainer());\n if (v.exit().attr(\"opacity\", 0).remove(), !l.length)\n return;\n if (b) {\n const w = S.select(\n `path.${this.model.getColorClassName({\n classNameTypes: [$.STROKE],\n dataGroupName: l[0].name\n })}`\n ).node();\n let T;\n if (w)\n T = getComputedStyle(w, null).getPropertyValue(\n \"stroke\"\n );\n else {\n const k = y(this.model.getOptions(), \"color\", \"scale\");\n if (k !== null) {\n const _ = Object.keys(k);\n T = k[_[0]];\n }\n }\n Zt.appendOrUpdateLinearGradient({\n svg: this.parent,\n id: this.services.domUtils.generateElementIDString(\n `${l[0].name.replace(\" \", \"\")}_${this.gradient_id}`\n ),\n x1: \"0%\",\n x2: \"0%\",\n y1: \"0%\",\n y2: \"100%\",\n stops: Zt.getStops(n, T)\n });\n } else\n this.parent.selectAll(\"defs linearGradient\").empty() || this.parent.selectAll(\"defs linearGradient\").each(function() {\n this.parentNode.remove();\n });\n const O = this, L = v.enter().append(\"path\");\n b ? L.merge(v).style(\n \"fill\",\n (w) => `url(#${this.services.domUtils.generateElementIDString(\n `${w.name.replace(\" \", \"\")}_${this.gradient_id}`\n )})`\n ).attr(\"class\", \"area\").attr(\n \"class\",\n (w) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: w.name,\n originalClassName: \"area\"\n })\n ).attr(\"d\", (w) => {\n const { data: T } = w;\n return o(T);\n }) : (L.attr(\"opacity\", 0).merge(v).attr(\"class\", \"area\").attr(\n \"class\",\n (w) => this.model.getColorClassName({\n classNameTypes: [$.FILL, $.STROKE],\n dataGroupName: w.name,\n originalClassName: \"area\"\n })\n ).style(\"fill\", (w) => O.model.getFillColor(w.name)).transition().call(\n (w) => this.services.transitions.setupTransition({\n transition: w,\n name: \"area-update-enter\",\n animate: e\n })\n ).attr(\"opacity\", d ? 1 : fe.opacity.selected).attr(\"d\", (w) => {\n const { data: T } = w;\n return o(T);\n }), d && L.attr(\"fill-opacity\", fe.opacity.selected).style(\"stroke\", (w) => O.model.getStrokeColor(w.name)).style(\"stroke-dasharray\", \"2, 2\").attr(\"stroke-width\", 0.7 + \"px\"));\n }\n destroy() {\n const e = this.services.events;\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n}\nclass gc extends z {\n constructor() {\n super(...arguments), this.type = \"line\", this.renderType = H.SVG, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail;\n this.parent.selectAll(\"path.line\").transition(\"legend-hover-line\").call(\n (s) => this.services.transitions.setupTransition({\n transition: s,\n name: \"legend-hover-line\"\n })\n ).attr(\"opacity\", (s) => s.name !== t.datum().name ? me.opacity.unselected : me.opacity.selected);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"path.line\").transition(\"legend-mouseout-line\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-line\"\n })\n ).attr(\"opacity\", me.opacity.selected);\n };\n }\n init() {\n const { events: e } = this.services;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e = !0) {\n const t = this.getComponentContainer({ withinChartClip: !0 }), { cartesianScales: s, curves: n } = this.services, a = (g) => s.getDomainValue(g), i = (g) => s.getRangeValue(g), [o, l] = ve(\n a,\n i,\n s.getOrientation()\n ), c = this.getOptions(), d = It().x(o).y(l).curve(n.getD3Curve()).defined((g) => {\n const m = s.getRangeIdentifier(g), b = g[m];\n return b != null;\n });\n let p = [];\n if (this.configs.stacked) {\n const g = Object.keys(c.axes).some((v) => c.axes[v].percentage), { groupMapsTo: m } = c.data;\n p = this.model.getStackedData({\n groups: this.configs.groups,\n percentage: g\n }).map((v) => {\n const S = this.services.cartesianScales.getDomainIdentifier(v), O = this.services.cartesianScales.getRangeIdentifier(v);\n return {\n name: y(v, 0, m),\n data: v.map((L) => ({\n [S]: L.data.sharedStackKey,\n [m]: L[m],\n [O]: L[1]\n })),\n hidden: !Na(v, (L) => L[0] !== L[1])\n };\n });\n } else\n p = this.model.getGroupedData(this.configs.groups);\n const h = t.selectAll(\"path.line\").data(p, (g) => g.name);\n h.exit().attr(\"opacity\", 0).remove(), h.enter().append(\"path\").classed(\"line\", !0).attr(\"opacity\", 0).merge(h).data(p, (g) => g.name).attr(\n \"class\",\n (g) => this.model.getColorClassName({\n classNameTypes: [$.STROKE],\n dataGroupName: g.name,\n originalClassName: \"line\"\n })\n ).style(\"stroke\", (g) => this.model.getStrokeColor(g.name)).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"line\").attr(\"aria-label\", (g) => {\n const { data: m } = g;\n return m.map((b) => {\n const v = this.services.cartesianScales.getRangeIdentifier(b);\n return b[v];\n }).join(\",\");\n }).transition().call(\n (g) => this.services.transitions.setupTransition({\n transition: g,\n name: \"line-update-enter\",\n animate: e\n })\n ).attr(\"opacity\", (g) => g.hidden ? 0 : 1).attr(\"d\", (g) => {\n const { data: m } = g;\n return d(m);\n });\n }\n destroy() {\n const e = this.services.events;\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n}\nconst cs = 5;\nfunction or(r, e) {\n return r > e - cs && r < e + cs;\n}\nclass js extends z {\n constructor() {\n super(...arguments), this.type = \"ruler\", this.renderType = H.SVG, this.isXGridEnabled = y(this.getOptions(), \"grid\", \"x\", \"enabled\"), this.isYGridEnabled = y(this.getOptions(), \"grid\", \"y\", \"enabled\"), this.isEventListenerAdded = !1;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = y(this.getOptions(), \"ruler\", \"enabled\");\n this.drawBackdrop(), t && !this.isEventListenerAdded ? this.addBackdropEventListeners() : !t && this.isEventListenerAdded && this.removeBackdropEventListeners();\n }\n removeBackdropEventListeners() {\n this.isEventListenerAdded = !1, this.backdrop.on(\"mousemove mouseover mouseout\", null);\n }\n formatTooltipData(e) {\n return e;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n showRuler(e, [t, s]) {\n const n = this.parent, a = this.services.cartesianScales.getOrientation(), i = this.model.getDisplayData(), o = this.services.cartesianScales.getRangeScale(), [l, c] = o.range(), d = a === le.HORIZONTAL ? s : t, p = E.appendOrSelect(n, \"g.ruler\").attr(\"aria-label\", \"ruler\"), h = E.appendOrSelect(p, \"line.ruler-line\"), u = n.selectAll(\"[role=graphics-symbol]\"), g = i.map((b) => ({\n domainValue: this.services.cartesianScales.getDomainValue(b),\n originalData: b\n })).filter((b) => or(b.domainValue, d));\n if (this.pointsWithinLine && g.length === this.pointsWithinLine.length && g.map((b) => b.domainValue).join() === this.pointsWithinLine.map((b) => b.domainValue).join())\n return this.pointsWithinLine = g, this.services.events.dispatchEvent(f.Tooltip.MOVE, {\n mousePosition: [t, s]\n });\n this.pointsWithinLine = g;\n const m = this.pointsWithinLine.reduce((b, v) => {\n if (b.length === 0)\n return b.push(v), b;\n const S = b[0].domainValue, O = Math.abs(d - v.domainValue), L = Math.abs(d - S);\n return O > L || (O < L ? b = [v] : b.push(v)), b;\n }, []);\n if (m.length > 0) {\n const b = m.map((L) => L.originalData).filter((L) => {\n const w = this.services.cartesianScales.getRangeIdentifier(L), T = L[w];\n return T != null;\n }), v = m.map(\n (L) => L.domainValue\n ), S = u.filter((L) => {\n const w = this.services.cartesianScales.getDomainValue(L);\n return v.includes(w);\n });\n this.elementsToHighlight && this.elementsToHighlight.size() > 0 && !Ns(this.elementsToHighlight, S) && this.hideRuler(), S.dispatch(\"mouseover\"), this.elementsToHighlight = S, this.services.events.dispatchEvent(f.Tooltip.SHOW, {\n mousePosition: [t, s],\n hoveredElement: h,\n data: this.formatTooltipData(b)\n }), p.attr(\"opacity\", 1);\n const O = m[0];\n a === \"horizontal\" ? h.attr(\"x1\", c).attr(\"x2\", l).attr(\"y1\", O.domainValue).attr(\"y2\", O.domainValue) : h.attr(\"y1\", c).attr(\"y2\", l).attr(\"x1\", O.domainValue).attr(\"x2\", O.domainValue);\n } else\n this.hideRuler();\n }\n hideRuler() {\n const e = this.parent, t = E.appendOrSelect(e, \"g.ruler\");\n e.selectAll(\"[role=graphics-symbol]\").dispatch(\"mouseout\"), this.services.events.dispatchEvent(f.Tooltip.HIDE), t.attr(\"opacity\", 0);\n }\n /**\n * Adds the listener on the X grid to trigger multiple point tooltips along the x axis.\n */\n addBackdropEventListeners() {\n this.isEventListenerAdded = !0;\n const e = this, t = this.services.domUtils.getHolder(), s = this.model.getDisplayData();\n let n = function(a) {\n const i = qe(a, e.parent.node());\n e.showRuler(a, i);\n };\n if (s.length > 100) {\n const a = s.length % 50 * 12.5;\n n = Mn(\n function(i) {\n const { mousePosition: o } = this;\n e.showRuler(i, o);\n },\n a,\n t\n );\n }\n this.backdrop.on(\"mousemove mouseover\", n).on(\"mouseout\", this.hideRuler.bind(this));\n }\n drawBackdrop() {\n const e = this.parent;\n this.backdrop = E.appendOrSelect(e, \"svg.chart-grid-backdrop\");\n }\n}\nclass Vt extends z {\n constructor() {\n super(...arguments), this.type = \"scatter\", this.renderType = H.SVG, this.handleChartHolderOnHover = () => {\n if (!this.parent)\n throw new Error(\"Parent not defined\");\n this.parent.selectAll(\"circle.dot\").transition(\"chart-holder-hover-scatter\").call(\n (e) => {\n var t;\n return (t = this.services.transitions) == null ? void 0 : t.setupTransition({\n transition: e,\n name: \"chart-holder-hover-scatter\"\n });\n }\n ).attr(\"opacity\", 1);\n }, this.handleChartHolderOnMouseOut = () => {\n if (!this.parent)\n throw new Error(\"Parent not defined\");\n this.parent.selectAll(\"circle.dot\").transition(\"chart-holder-mouseout-scatter\").call(\n (e) => {\n var t;\n return (t = this.services.transitions) == null ? void 0 : t.setupTransition({\n transition: e,\n name: \"chart-holder-mouseout-scatter\"\n });\n }\n ).attr(\"opacity\", 0);\n }, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail, { groupMapsTo: s } = this.getOptions().data;\n if (!this.parent)\n throw new Error(\"Parent not defined\");\n this.parent.selectAll(\"circle.dot\").transition(\"legend-hover-scatter\").call(\n (n) => {\n var a;\n return (a = this.services.transitions) == null ? void 0 : a.setupTransition({\n transition: n,\n name: \"legend-hover-scatter\"\n });\n }\n ).attr(\"opacity\", (n) => n[s] !== t.datum().name ? 0.3 : 1);\n }, this.handleLegendMouseOut = () => {\n if (!this.parent)\n throw new Error(\"Parent not defined\");\n this.parent.selectAll(\"circle.dot\").transition(\"legend-mouseout-scatter\").call(\n (e) => {\n var t;\n return (t = this.services.transitions) == null ? void 0 : t.setupTransition({\n transition: e,\n name: \"legend-mouseout-scatter\"\n });\n }\n ).attr(\"opacity\", 1);\n };\n }\n init() {\n const { events: e } = this.services;\n if (!e)\n throw new Error(\"Services events are undefined.\");\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n const { fadeInOnChartHolderMouseover: t } = this.configs;\n t && (e.addEventListener(f.Chart.MOUSEOVER, this.handleChartHolderOnHover), e.addEventListener(f.Chart.MOUSEOUT, this.handleChartHolderOnMouseOut));\n }\n filterBasedOnZoomDomain(e) {\n const { cartesianScales: t } = this.services;\n if (!t)\n throw new Error(\"Services cartesianScales are undefined.\");\n const s = t.getDomainIdentifier(e), n = this.model.get(\"zoomDomain\");\n return n !== void 0 ? e.filter(\n (a) => a[s].getTime() >= n[0].getTime() && a[s].getTime() <= n[1].getTime()\n ) : e;\n }\n getScatterData() {\n const e = this.getOptions(), { stacked: t } = this.configs;\n let s;\n if (t) {\n const n = Object.keys(e.axes).some((a) => e.axes[a].percentage);\n s = this.model.getStackedData({\n groups: this.configs.groups,\n percentage: n\n });\n } else {\n const { cartesianScales: n } = this.services;\n if (!n)\n throw new Error(\"Services cartesianScales are undefined.\");\n s = this.model.getDisplayData(this.configs.groups).filter((a) => {\n const i = n.getRangeIdentifier(a);\n return a[i] !== void 0 && a[i] !== null;\n });\n }\n return this.filterBasedOnZoomDomain(s);\n }\n render(e) {\n if (!(y(this.getOptions(), \"points\", \"enabled\") || y(this.getOptions(), \"bubble\", \"enabled\")))\n return;\n const s = this.getComponentContainer({ withinChartClip: !0 }), n = this.getOptions(), { groupMapsTo: a } = n.data, { cartesianScales: i } = this.services;\n if (!i)\n throw new Error(\"Services cartesianScales are undefined.\");\n const o = i.getDomainIdentifier(), l = s.selectAll(\"circle.dot\").data(\n this.getScatterData(),\n (p) => `${p[a]}-${p[o]}`\n );\n l.exit().attr(\"opacity\", 0).remove();\n const d = l.enter().append(\"circle\").classed(\"dot\", !0).attr(\"opacity\", 0).merge(l);\n this.styleCircles(d, e), this.addEventListeners();\n }\n // A value is an anomaly if is above all defined domain and range thresholds\n isDatapointThresholdAnomaly(e) {\n const { handleThresholds: t } = this.configs;\n if (!t)\n return !1;\n const { cartesianScales: s } = this.services;\n if (!s)\n throw new Error(\"Cartesian scales service is undefined\");\n const n = s.getOrientation(), [a, i] = ve(\n s.getHighestDomainThreshold(),\n s.getHighestRangeThreshold(),\n n\n ), [o, l] = ve(\n (p) => s.getDomainValue(p),\n (p) => s.getRangeValue(p),\n n\n ), c = o(e), d = l(e);\n return i && a ? d <= i.scaleValue && c >= a.scaleValue : i ? d <= i.scaleValue : a ? c >= a.scaleValue : !1;\n }\n styleCircles(e, t) {\n const s = this.getOptions(), { filled: n, fillOpacity: a } = s.points, { cartesianScales: i } = this.services;\n if (!i)\n throw new Error(\"Cartesian scales service is undefined\");\n const { groupMapsTo: o } = s.data, l = (u) => i.getDomainValue(u), c = (u) => i.getRangeValue(u), [d, p] = ve(\n l,\n c,\n i.getOrientation()\n ), { fadeInOnChartHolderMouseover: h } = this.configs;\n e.raise().classed(\"dot\", !0).attr(\"class\", (u) => {\n const g = i.getDomainIdentifier(u), b = this.model.getIsFilled(u[o], u[g], u, n) ? [$.FILL, $.STROKE] : [$.STROKE];\n return this.model.getColorClassName({\n classNameTypes: b,\n dataGroupName: u[o],\n originalClassName: \"dot\"\n }) || \"\";\n }).classed(\"threshold-anomaly\", (u) => this.isDatapointThresholdAnomaly(u)).classed(\"filled\", (u) => {\n const g = i.getDomainIdentifier(u);\n return this.model.getIsFilled(u[o], u[g], u, n);\n }).classed(\"unfilled\", (u) => {\n const g = i.getDomainIdentifier(u);\n return !this.model.getIsFilled(u[o], u[g], u, n);\n }).transition().call(\n (u) => {\n var g;\n return (g = this.services.transitions) == null ? void 0 : g.setupTransition({\n transition: u,\n name: \"scatter-update-enter\",\n animate: t\n });\n }\n ).attr(\"cx\", d).attr(\"cy\", p).attr(\"r\", s.points.radius).style(\"fill\", (u) => {\n const g = i.getDomainIdentifier(u);\n if (this.model.getIsFilled(u[o], u[g], u, n))\n return this.model.getFillColor(u[o], u[g], u);\n }).style(\"stroke\", (u) => {\n const g = i.getDomainIdentifier(u);\n return this.model.getStrokeColor(u[o], u[g], u);\n }).attr(\"fill-opacity\", n ? a : 1).attr(\"opacity\", h ? 0 : 1).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"point\").attr(\"aria-label\", (u) => {\n const g = i.getRangeIdentifier(u);\n return u[g];\n }), this.addEventListeners();\n }\n // Extended in bubble graphs\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getTooltipAdditionalItems(e) {\n return null;\n }\n addEventListeners() {\n const e = this, { groupMapsTo: t } = e.getOptions().data;\n if (!this.parent)\n throw new Error(\"Parent not defined\");\n this.parent.selectAll(\"circle\").on(\"mouseover\", function(s, n) {\n var i, o;\n const a = x(this);\n a.classed(\"hovered\", !0).attr(\n \"class\",\n (l) => e.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: l[t],\n originalClassName: a.attr(\"class\")\n })\n ).style(\"fill\", (l) => {\n var d;\n const c = (d = e.services.cartesianScales) == null ? void 0 : d.getDomainIdentifier(l);\n return e.model.getFillColor(l[t], l[c], l);\n }).classed(\"unfilled\", !1), (i = e.services.events) == null || i.dispatchEvent(f.Tooltip.SHOW, {\n event: s,\n hoveredElement: a,\n data: [n],\n additionalItems: e.getTooltipAdditionalItems(n)\n }), (o = e.services.events) == null || o.dispatchEvent(f.Scatter.SCATTER_MOUSEOVER, {\n event: s,\n element: a,\n datum: n\n });\n }).on(\"mousemove\", function(s, n) {\n var i, o;\n const a = x(this);\n (i = e.services.events) == null || i.dispatchEvent(f.Scatter.SCATTER_MOUSEMOVE, {\n event: s,\n element: a,\n datum: n\n }), (o = e.services.events) == null || o.dispatchEvent(f.Tooltip.MOVE, {\n event: s\n });\n }).on(\"click\", function(s, n) {\n var a;\n (a = e.services.events) == null || a.dispatchEvent(f.Scatter.SCATTER_CLICK, {\n event: s,\n element: x(this),\n datum: n\n });\n }).on(\"mouseout\", function(s, n) {\n var i, o, l;\n const a = x(this);\n if (a.classed(\"hovered\", !1), !e.configs.filled) {\n const { filled: c } = e.getOptions().points, d = (i = e.services.cartesianScales) == null ? void 0 : i.getDomainIdentifier(n), p = e.model.getIsFilled(\n n[t],\n n[d],\n n,\n c\n );\n a.classed(\"unfilled\", !p).style(\"fill\", (h) => p || c ? e.model.getFillColor(h[t], h[d], h) : null);\n }\n (o = e.services.events) == null || o.dispatchEvent(f.Scatter.SCATTER_MOUSEOUT, {\n event: s,\n element: a,\n datum: n\n }), (l = e.services.events) == null || l.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: a\n });\n });\n }\n destroy() {\n var t;\n (t = this.parent) == null || t.selectAll(\"circle\").on(\"mousemove\", null).on(\"mouseout\", null);\n const { events: e } = this.services;\n if (!e)\n throw new Error(\"Services events undefined\");\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut), e.removeEventListener(f.Chart.MOUSEOVER, this.handleChartHolderOnHover), e.removeEventListener(f.Chart.MOUSEOUT, this.handleChartHolderOnMouseOut);\n }\n}\nclass Zs extends z {\n constructor(e, t, s) {\n super(e, t, s), this.type = \"axes\", this.renderType = H.SVG, this.truncation = {\n [P.LEFT]: !1,\n [P.RIGHT]: !1,\n [P.TOP]: !1,\n [P.BOTTOM]: !1\n }, s && (this.configs = s), this.margins = this.configs.margins;\n }\n render(e = !0) {\n const { position: t } = this.configs, s = this.getOptions(), n = y(s, \"axes\", t, \"visible\"), a = this.getComponentContainer(), { width: i, height: o } = E.getSVGElementSize(a, {\n useAttrs: !0\n }), l = E.appendOrSelect(a, `g.axis.${t}`);\n let c, d;\n if (t === P.BOTTOM || t === P.TOP ? (c = this.configs.axes[P.LEFT] ? this.margins.left : 0, d = this.configs.axes[P.RIGHT] ? i - this.margins.right : i) : (c = o - this.margins.bottom, d = this.margins.top), !this.services.cartesianScales)\n throw new Error(\"Services cartesianScales undefineds\");\n const p = this.services.cartesianScales.getScaleByPosition(t);\n this.scaleType === te.LABELS || this.scaleType === te.LABELS_RATIO ? p.rangeRound([c, d]) : p.range([c, d]);\n let h;\n switch (t) {\n case P.LEFT:\n h = fs;\n break;\n case P.BOTTOM:\n h = Dt;\n break;\n case P.RIGHT:\n h = qs;\n break;\n case P.TOP:\n h = Ys;\n break;\n }\n l.attr(\"aria-label\", `${t} axis`);\n const u = !l.select(\"g.ticks\").empty();\n let g = E.appendOrSelect(l, \"g.ticks\");\n u || (g.attr(\"role\", `${U.GRAPHICS_OBJECT} ${U.GROUP}`), g.attr(\"aria-label\", `${t} ticks`));\n const m = E.appendOrSelect(l, \"g.ticks.invisible\").style(\"opacity\", \"0\").style(\"pointer-events\", \"none\").attr(\"aria-hidden\", !0).attr(\"aria-label\", `invisible ${t} ticks`), b = y(s, \"axes\", t), v = this.scaleType === te.TIME || b.scaleType === te.TIME, S = t === P.LEFT || t === P.RIGHT, O = this.model.get(\"zoomDomain\");\n if (O && v && !S && p.domain(O), !n) {\n g.attr(\"aria-hidden\", !0);\n return;\n }\n const L = y(b, \"scaleType\"), w = y(s, \"data\", \"loading\"), T = y(b, \"ticks\", \"number\"), k = y(b, \"ticks\", \"values\"), _ = y(b, \"truncation\", \"type\"), F = y(b, \"truncation\", \"threshold\"), V = y(b, \"truncation\", \"numCharacter\"), A = T !== null, M = y(s, \"timeScale\"), G = E.appendOrSelect(m, \"g.tick\"), D = E.appendOrSelect(G, \"text\").text(\"0\"), X = E.getSVGElementSize(D.node(), {\n useBBox: !0\n }).height;\n G.remove();\n const re = this.scaleType || b.scaleType || te.LINEAR, W = h(p).tickSizeOuter(0);\n if (p.ticks) {\n let B;\n if (A ? B = T : (B = W.ticks.number, S && (B = this.getNumberOfFittingTicks(\n o,\n X,\n W.ticks.verticalSpaceRatio\n ))), p.ticks().length === 1 && p.ticks()[0] === 0 && (B = 0), W.ticks(B), v)\n if (!p.ticks(B).length)\n W.tickValues([]);\n else {\n const j = y(s, \"timeScale\", \"addSpaceOnEdges\"), q = y(s, \"axes\", t, \"domain\"), K = p.copy();\n j && !q && K.nice(B);\n const oe = K.ticks(B);\n j && oe.length > 2 && !q && (oe.splice(oe.length - 1, 1), oe.splice(0, 1)), W.tickValues(oe);\n }\n }\n let N;\n const ae = y(b, \"ticks\", \"formatter\");\n if (v) {\n const B = ht(W.tickValues());\n ae === null ? N = (j, q) => ut(j, q, W.tickValues(), B, M) : N = (j, q) => {\n const K = ut(\n j,\n q,\n W.tickValues(),\n B,\n M\n );\n return ae(j, q, K);\n };\n } else\n ae === null ? re === te.LINEAR && (N = (B) => B.toLocaleString()) : N = ae;\n W.tickFormat(N);\n const [Qe, et] = this.services.cartesianScales.getScaleByPosition(t).domain();\n let Re;\n if (k) {\n if (v)\n k.forEach((B, j) => {\n B.getTime === void 0 && (k[j] = new Date(B));\n }), Re = k.filter((B) => {\n const j = B.getTime();\n return j >= new Date(Qe).getTime() && j <= new Date(et).getTime();\n });\n else if (L === te.LABELS) {\n const B = this.services.cartesianScales.getScaleByPosition(t).domain();\n Re = k.filter((j) => B.includes(j));\n } else\n Re = k.filter(\n (B) => B >= Qe && B <= et\n );\n W.tickValues(Re);\n }\n switch (t) {\n case P.LEFT:\n g.attr(\"transform\", `translate(${this.margins.left}, 0)`);\n break;\n case P.BOTTOM:\n g.attr(\"transform\", `translate(0, ${o - this.margins.bottom})`);\n break;\n case P.RIGHT:\n g.attr(\"transform\", `translate(${i - this.margins.right}, 0)`);\n break;\n case P.TOP:\n g.attr(\"transform\", `translate(0, ${this.margins.top})`);\n break;\n }\n const Gt = this.model.isDataEmpty();\n if (b.title) {\n const B = E.appendOrSelect(l, \"text.axis-title\").html(\n Gt || w ? \"\" : b.title\n ), j = y(b, \"titleOrientation\");\n let q;\n switch (t) {\n case P.LEFT:\n j === Wt.RIGHT ? B.attr(\"transform\", \"rotate(90)\").attr(\"y\", 0).attr(\"x\", p.range()[0] / 2).attr(\"dy\", \"-0.5em\").style(\"text-anchor\", \"middle\") : B.attr(\"transform\", \"rotate(-90)\").attr(\"y\", 0).attr(\"x\", -(p.range()[0] / 2)).attr(\"dy\", \"0.75em\").style(\"text-anchor\", \"middle\");\n break;\n case P.BOTTOM:\n B.attr(\n \"transform\",\n `translate(${this.margins.left / 2 + p.range()[1] / 2}, ${o + 4})`\n ).style(\"text-anchor\", \"middle\");\n break;\n case P.RIGHT:\n j === Wt.LEFT ? B.attr(\"transform\", \"rotate(-90)\").attr(\"y\", i).attr(\"x\", -(p.range()[0] / 2)).style(\"text-anchor\", \"middle\") : B.attr(\"transform\", \"rotate(90)\").attr(\"y\", -i).attr(\"x\", p.range()[0] / 2).attr(\"dy\", \"0.75em\").style(\"text-anchor\", \"middle\");\n break;\n case P.TOP:\n ({ height: q } = E.getSVGElementSize(B, {\n useBBox: !0\n })), B.attr(\n \"transform\",\n `translate(${this.margins.left / 2 + p.range()[1] / 2}, ${q / 2})`\n ).style(\"text-anchor\", \"middle\");\n break;\n }\n }\n if (v) {\n const B = ht(W.tickValues()), j = M.showDayName, q = g;\n e && (g = g.transition().call(\n (oe) => this.services.transitions.setupTransition({\n transition: oe,\n name: \"axis-update\",\n animate: e\n })\n )), g = g.call(W), q.selectAll(\".tick\").data(W.tickValues(), p).order().select(\"text\").style(\"font-weight\", (oe, Ge) => An(oe, Ge, W.tickValues(), B, j) ? \"bold\" : \"normal\");\n } else\n !e || !u ? g = g.call(W) : g = g.transition().call(\n (B) => this.services.transitions.setupTransition({\n transition: B,\n name: \"axis-update\",\n animate: e\n })\n ).call(W);\n if (m.call(W), t === P.BOTTOM || t === P.TOP) {\n let B = !1;\n const j = y(b, \"ticks\", \"rotation\");\n if (j === st.ALWAYS)\n B = !0;\n else if (j === st.NEVER)\n B = !1;\n else if (!j || j === st.AUTO)\n if (p.step)\n B = m.selectAll(\"g.tick text\").nodes().some(\n (K) => E.getSVGElementSize(K, {\n useBBox: !0\n }).width >= p.step()\n );\n else {\n B = !1;\n const q = m.append(\"text\").text(\"A\"), K = E.getSVGElementSize(q.node(), {\n useBBox: !0\n }).width;\n let oe;\n m.selectAll(\"g.tick\").each(function() {\n const Ge = x(this), C = parseFloat(y(ge(this), \"tx\"));\n C !== null && oe + Ge.text().length * K * 0.8 >= C && (B = !0), oe = C;\n }), q.remove();\n }\n B ? (A || (W.ticks(\n this.getNumberOfFittingTicks(i, X, W.ticks.horizontalSpaceRatio)\n ), m.call(W), g.call(W)), l.selectAll(\"g.ticks g.tick text\").attr(\"transform\", \"rotate(-45)\").attr(\"text-anchor\", t === P.TOP ? \"start\" : \"end\")) : l.selectAll(\"g.ticks g.tick text\").attr(\"transform\", null).attr(\"text-anchor\", null);\n }\n if (w ? l.attr(\"opacity\", 0) : l.attr(\"opacity\", 1), g.selectAll(\"g.tick\").attr(\"aria-label\", (B) => B), m.selectAll(\"g.tick\").attr(\"aria-label\", (B) => B), _ !== ke.NONE && L === te.LABELS && !k) {\n const B = this.services.cartesianScales.getScaleDomain(t);\n if (B.length > 0) {\n const j = a.select(`g.axis.${t} g.ticks g.tick`).html();\n l.selectAll(\"g.ticks g.tick\").html(j);\n const q = this;\n l.selectAll(\"g.tick text\").data(B).text(function(K) {\n return K.length > F ? (q.truncation[t] = !0, $e(K, _, V)) : K;\n }), this.getInvisibleAxisRef().selectAll(\"g.tick text\").data(B).text(function(K) {\n return K.length > F ? $e(K, _, V) : K;\n }), l.selectAll(\"g.ticks\").html(this.getInvisibleAxisRef().html()), l.selectAll(\"g.tick text\").data(B);\n }\n }\n this.addEventListeners();\n }\n addEventListeners() {\n const e = this.getComponentContainer(), { position: t } = this.configs, s = E.appendOrSelect(e, `g.axis.${t}`), n = this.getOptions(), a = y(n, \"axes\", t), i = y(a, \"scaleType\"), o = y(a, \"truncation\", \"threshold\"), l = this;\n s.selectAll(\"g.tick text\").on(\"mouseover\", function(c, d) {\n l.services.events.dispatchEvent(f.Axis.LABEL_MOUSEOVER, {\n event: c,\n element: x(this),\n datum: d\n }), i === te.LABELS && d.length > o && l.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: c,\n hoveredElement: x(this),\n content: d\n });\n }).on(\"mousemove\", function(c, d) {\n l.services.events.dispatchEvent(f.Axis.LABEL_MOUSEMOVE, {\n event: c,\n element: x(this),\n datum: d\n }), i === te.LABELS && d.length > o && l.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: c\n });\n }).on(\"click\", function(c, d) {\n l.services.events.dispatchEvent(f.Axis.LABEL_CLICK, {\n event: c,\n element: x(this),\n datum: d\n });\n }).on(\"mouseout\", function(c, d) {\n l.services.events.dispatchEvent(f.Axis.LABEL_MOUSEOUT, {\n event: c,\n element: x(this),\n datum: d\n }), i === te.LABELS && l.services.events.dispatchEvent(f.Tooltip.HIDE);\n });\n }\n getInvisibleAxisRef() {\n const { position: e } = this.configs;\n return this.getComponentContainer().select(`g.axis.${e} g.ticks.invisible`);\n }\n getTitleRef() {\n const { position: e } = this.configs;\n return this.getComponentContainer().select(`g.axis.${e} text.axis-title`);\n }\n getNumberOfFittingTicks(e, t, s) {\n const n = Math.floor(e / (t * s));\n return Gs(n, 2, pt.ticks.number);\n }\n destroy() {\n const e = this.getComponentContainer(), { position: t } = this.configs;\n E.appendOrSelect(e, `g.axis.${t}`).selectAll(\"g.tick text\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"mouseout\", null);\n }\n}\nclass lr extends Zs {\n constructor(e, t, s) {\n super(e, t, s);\n }\n render(e = !0) {\n super.render(e), super.destroy();\n const t = this.configs.position, s = this.getComponentContainer(), n = E.appendOrSelect(s, `g.axis.${t}`), a = this;\n n.selectAll(\"g.tick\").each(function(i, o) {\n const l = x(this);\n l.classed(\"tick-hover\", !0).attr(\"tabindex\", o === 0 ? 0 : -1);\n const c = l.select(\"text\"), { width: d, height: p } = E.getSVGElementSize(c, {\n useBBox: !0\n }), h = E.appendOrSelect(l, \"rect.axis-holder\");\n let u = 0, g = 0;\n switch (t) {\n case P.LEFT:\n u = -d + Number(c.attr(\"x\")), g = -(p / 2);\n break;\n case P.RIGHT:\n u = Math.abs(Number(c.attr(\"x\"))), g = -(p / 2);\n break;\n case P.TOP:\n u = -(d / 2), g = -p + Number(c.attr(\"y\")) / 2, a.truncation[t] && (u = 0, h.attr(\"transform\", \"rotate(-45)\"));\n break;\n case P.BOTTOM:\n u = -(d / 2), g = p / 2 - 2, a.truncation[t] && (u = -d, h.attr(\"transform\", \"rotate(-45)\"));\n break;\n }\n h.attr(\"x\", u - pt.hover.rectanglePadding).attr(\"y\", g).attr(\"width\", d + pt.hover.rectanglePadding * 2).attr(\"height\", p).lower();\n }), this.addEventListeners();\n }\n addEventListeners() {\n const e = this.getComponentContainer(), { position: t } = this.configs, s = E.appendOrSelect(e, `g.axis.${t}`), n = this.getOptions(), a = y(n, \"axes\", t), i = y(a, \"scaleType\"), o = y(a, \"truncation\", \"threshold\"), l = this;\n s.selectAll(\"g.tick.tick-hover\").on(\"mouseover\", function(c) {\n const d = x(this).select(\"text\"), p = d.datum();\n l.services.events.dispatchEvent(f.Axis.LABEL_MOUSEOVER, {\n event: c,\n element: d,\n datum: p\n }), i === te.LABELS && p.length > o && l.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: c,\n element: d,\n datum: p\n });\n }).on(\"mousemove\", function(c) {\n const d = x(this).select(\"text\"), p = d.datum();\n l.services.events.dispatchEvent(f.Axis.LABEL_MOUSEMOVE, {\n event: c,\n element: d,\n datum: p\n }), l.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: c\n });\n }).on(\"click\", function(c) {\n l.services.events.dispatchEvent(f.Axis.LABEL_CLICK, {\n event: c,\n element: x(this).select(\"text\"),\n datum: x(this).select(\"text\").datum()\n });\n }).on(\"mouseout\", function(c) {\n l.services.events.dispatchEvent(f.Axis.LABEL_MOUSEOUT, {\n event: c,\n element: x(this).select(\"text\"),\n datum: x(this).select(\"text\").datum()\n }), i === te.LABELS && l.services.events.dispatchEvent(f.Tooltip.HIDE);\n }).on(\"focus\", function(c) {\n const d = { clientX: 0, clientY: 0 };\n if (c.target) {\n c.target.focus();\n const p = c.target.getBoundingClientRect();\n d.clientX = p.x, d.clientY = p.y;\n }\n l.services.events.dispatchEvent(f.Axis.LABEL_FOCUS, {\n event: { ...c, ...d },\n element: x(this),\n datum: x(this).select(\"text\").datum()\n });\n }).on(\"blur\", function(c) {\n l.services.events.dispatchEvent(f.Axis.LABEL_BLUR, {\n event: c,\n element: x(this),\n datum: x(this).select(\"text\").datum()\n });\n }).on(\"keydown\", function(c) {\n c.key && c.key === \"Escape\" && (l.services.events.dispatchEvent(f.Tooltip.HIDE), l.services.events.dispatchEvent(f.Axis.LABEL_BLUR, {\n event: c,\n element: x(this),\n datum: x(this).select(\"text\").datum()\n })), t === P.LEFT || t === P.RIGHT ? c.key && c.key === \"ArrowUp\" ? l.goNext(this, c) : c.key && c.key === \"ArrowDown\" && l.goPrevious(this, c) : c.key && c.key === \"ArrowLeft\" ? l.goPrevious(this, c) : c.key && c.key === \"ArrowRight\" && l.goNext(this, c);\n });\n }\n // Focus on the next HTML element sibling\n goNext(e, t) {\n e.nextElementSibling && e.nextElementSibling.tagName !== \"path\" && e.nextElementSibling.dispatchEvent(new Event(\"focus\")), t.preventDefault();\n }\n // Focus on the previous HTML element sibling\n goPrevious(e, t) {\n e.previousElementSibling && e.previousElementSibling.tagName !== \"path\" && e.previousElementSibling.dispatchEvent(new Event(\"focus\")), t.preventDefault();\n }\n destroy() {\n const e = this.getComponentContainer(), { position: t } = this.configs;\n E.appendOrSelect(e, `g.axis.${t}`).selectAll(\"g.tick.tick-hover\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"mouseout\", null).on(\"focus\", null).on(\"blur\", null);\n }\n}\nclass mc extends z {\n constructor() {\n super(...arguments), this.type = \"2D-axes\", this.renderType = H.SVG, this.children = {}, this.thresholds = [], this.margins = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n }\n render(e = !1) {\n const t = {}, s = Object.keys(P), n = y(this.getOptions(), \"axes\");\n s.forEach((o) => {\n n[P[o]] && (t[P[o]] = !0);\n }), this.configs.axes = t, s.forEach((o) => {\n const l = P[o];\n if (this.configs.axes[l] && !this.children[l]) {\n const c = {\n position: l,\n axes: this.configs.axes,\n margins: this.margins\n }, d = this.model.axisFlavor === Rn.DEFAULT ? new Zs(this.model, this.services, c) : new lr(this.model, this.services, c);\n d.setModel(this.model), d.setServices(this.services), d.setParent(this.parent), this.children[l] = d;\n }\n }), Object.keys(this.children).forEach((o) => {\n this.children[o].render(e);\n });\n const a = {};\n Object.keys(this.children).forEach((o) => {\n const l = this.children[o], c = l.configs.position, d = l.getInvisibleAxisRef(), { width: p, height: h } = E.getSVGElementSize(d, { useBBox: !0 });\n let u;\n switch (l.getTitleRef().empty() ? u = 0 : (u = E.getSVGElementSize(l.getTitleRef(), {\n useBBox: !0\n }).height, (c === P.LEFT || c === P.RIGHT) && (u += 5)), c) {\n case P.TOP:\n a.top = h + u;\n break;\n case P.BOTTOM:\n a.bottom = h + u;\n break;\n case P.LEFT:\n a.left = p + u;\n break;\n case P.RIGHT:\n a.right = p + u;\n break;\n }\n }), this.services.events.dispatchEvent(f.Axis.RENDER_COMPLETE), Object.keys(a).some((o) => this.margins[o] !== a[o]) && (this.margins = Object.assign(this.margins, a), this.model.set({ axesMargins: this.margins }, { skipUpdate: !0 }), this.services.events.dispatchEvent(f.ZoomBar.UPDATE), Object.keys(this.children).forEach((o) => {\n const l = this.children[o];\n l.margins = this.margins;\n }), this.render(!0));\n }\n}\nclass cr extends z {\n constructor() {\n super(...arguments), this.type = \"skeleton\";\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = y(this.getOptions(), \"data\", \"loading\");\n t ? this.renderSkeleton(t) : this.removeSkeleton();\n }\n renderSkeleton(e) {\n if (this.configs.skeleton === Ne.GRID)\n this.renderGridSkeleton(e);\n else if (this.configs.skeleton === Ne.VERT_OR_HORIZ)\n this.renderVertOrHorizSkeleton(e);\n else if (this.configs.skeleton === Ne.PIE)\n this.renderPieSkeleton(e);\n else if (this.configs.skeleton === Ne.DONUT)\n this.renderDonutSkeleton(e);\n else\n throw new Error(`\"${this.configs.skeleton}\" is not a valid Skeleton type.`);\n }\n renderGridSkeleton(e) {\n this.setScales(), this.drawBackdrop(e), this.drawXGrid(e), this.drawYGrid(e), e && this.setShimmerEffect(\"shimmer-lines\");\n }\n renderVertOrHorizSkeleton(e) {\n const t = this.services.cartesianScales.getOrientation();\n this.setScales(), this.drawBackdrop(e), t === le.VERTICAL && this.drawYGrid(e), t === le.HORIZONTAL && this.drawXGrid(e), this.setShimmerEffect(\"shimmer-lines\");\n }\n renderPieSkeleton(e) {\n const t = this.computeOuterRadius(), s = 0;\n this.drawRing(t, s, e), e && this.setShimmerEffect(\"shimmer-areas\");\n }\n renderDonutSkeleton(e) {\n const t = this.computeOuterRadius(), s = this.computeInnerRadius();\n this.drawRing(t, s, e), e && this.setShimmerEffect(\"shimmer-areas\");\n }\n setScales() {\n const e = this.services.cartesianScales.getMainXScale().range(), t = this.services.cartesianScales.getMainYScale().range();\n this.xScale = Oe().domain([0, 1]).range(e), this.yScale = Oe().domain([0, 1]).range(t);\n }\n drawBackdrop(e) {\n const t = this.parent, { width: s, height: n } = E.getSVGElementSize(t, {\n useAttrs: !0\n });\n this.backdrop = E.appendOrSelect(t, \"svg.chart-skeleton.DAII\").attr(\"width\", s).attr(\"height\", n);\n const a = E.appendOrSelect(this.backdrop, \"rect.chart-skeleton-backdrop\");\n a.attr(\"width\", \"100%\").attr(\"height\", \"100%\");\n const [i] = this.xScale.range(), [, o] = this.yScale.range();\n this.backdrop.merge(a).attr(\"x\", i).attr(\"y\", o), a.classed(\"shimmer-effect-lines\", e).classed(\"empty-state-lines\", !e).style(\n \"stroke\",\n e ? `url(#${this.services.domUtils.generateElementIDString(\"shimmer-lines\")})` : null\n );\n }\n drawXGrid(e) {\n const t = +this.backdrop.attr(\"width\"), s = y(this.getOptions(), \"grid\", \"x\", \"numberOfTicks\"), n = this.xScale.ticks(s).map((o) => o * t), a = E.appendOrSelect(this.backdrop, \"g.x.skeleton\"), i = a.selectAll(\"line\").data(n);\n i.enter().append(\"line\").merge(i).attr(\"x1\", (o) => o).attr(\"x2\", (o) => o).attr(\"y1\", 0).attr(\"y2\", \"100%\"), a.selectAll(\"line\").classed(\"shimmer-effect-lines\", e).classed(\"empty-state-lines\", !e).style(\n \"stroke\",\n e ? `url(#${this.services.domUtils.generateElementIDString(\"shimmer-lines\")})` : null\n );\n }\n drawYGrid(e) {\n const t = +this.backdrop.attr(\"height\"), s = this.backdrop.attr(\"width\"), n = y(this.getOptions(), \"grid\", \"y\", \"numberOfTicks\"), a = this.xScale.ticks(n).map((l) => l * t), i = E.appendOrSelect(this.backdrop, \"g.y.skeleton\"), o = i.selectAll(\"line\").data(a);\n o.enter().append(\"line\").merge(o).attr(\"x1\", 0).attr(\"x2\", s).attr(\"y1\", (l) => l).attr(\"y2\", (l) => l), i.selectAll(\"line\").classed(\"shimmer-effect-lines\", e).classed(\"empty-state-lines\", !e).style(\n \"stroke\",\n e ? `url(#${this.services.domUtils.generateElementIDString(\"shimmer-lines\")})` : null\n );\n }\n drawRing(e, t, s = !0) {\n const n = this.parent, { width: a, height: i } = E.getSVGElementSize(n, {\n useAttrs: !0\n }), o = E.appendOrSelect(n, \"svg.chart-skeleton\").attr(\"width\", a).attr(\"height\", i), l = t === 0 ? \"pie\" : \"donut\", c = y(this.getOptions(), l, \"alignment\");\n E.appendOrSelect(o, \"rect.chart-skeleton-area-container\").attr(\"width\", a).attr(\"height\", i).attr(\"fill\", \"none\");\n const d = Be().innerRadius(t).outerRadius(e).startAngle(0).endAngle(Math.PI * 2), p = e + Math.abs(Z.radiusOffset), h = e + (Math.min(a, i) - e * 2) / 2, u = E.appendOrSelect(o, \"path\").attr(\"class\", \"skeleton-area-shape\").attr(\"transform\", `translate(${p}, ${h})`).attr(\"d\", d).classed(\"shimmer-effect-areas\", s).classed(\"empty-state-areas\", !s).style(\n \"fill\",\n s ? `url(#${this.services.domUtils.generateElementIDString(\"shimmer-areas\")})` : null\n );\n let g = e + Z.xOffset;\n c === ue.CENTER ? g = a / 2 : c === ue.RIGHT && (g = a - e - Z.xOffset);\n const m = e + Z.yOffset;\n u.attr(\"transform\", `translate(${g}, ${m})`);\n }\n // same logic in pie\n computeOuterRadius() {\n const { width: e, height: t } = E.getSVGElementSize(this.parent, {\n useAttrs: !0\n });\n return Math.min(e, t) / 2 + Z.radiusOffset;\n }\n // same logic in donut\n computeInnerRadius() {\n return this.computeOuterRadius() * (3 / 4);\n }\n setShimmerEffect(e) {\n const a = \"stop-bg-shimmer\", i = \"stop-shimmer\", o = this.parent.select(\".chart-skeleton\"), { width: l } = E.getSVGElementSize(this.parent, {\n useAttrs: !0\n }), c = 0, d = l, p = E.appendOrSelect(o, \"defs\").lower(), h = E.appendOrSelect(p, \"linearGradient\").attr(\"id\", this.services.domUtils.generateElementIDString(e)).attr(\"class\", e).attr(\"x1\", c - 3 * 0.2 * l).attr(\"x2\", d).attr(\"y1\", 0).attr(\"y2\", 0).attr(\"gradientUnits\", \"userSpaceOnUse\").attr(\"gradientTransform\", \"translate(0, 0)\"), u = `\n\t\t\t<stop class=\"${a}\" offset=\"${c}\"></stop>\n\t\t\t<stop class=\"${i}\" offset=\"${c + 0.2}\"></stop>\n\t\t\t<stop class=\"${a}\" offset=\"${c + 2 * 0.2}\"></stop>\n\t\t`;\n h.html(u), g();\n function g() {\n h.attr(\"gradientTransform\", `translate(${c - 3 * 0.2 * l}, 0)`).transition().duration(2e3).delay(1e3).ease(Ks).attr(\"gradientTransform\", `translate(${d + 3 * 0.2 * l}, 0)`).on(\"end\", g);\n }\n }\n removeSkeleton() {\n this.parent.select(\".chart-skeleton\").remove();\n }\n}\nclass fc extends z {\n constructor() {\n super(...arguments), this.type = \"boxplot\", this.renderType = H.SVG;\n }\n render(e) {\n const t = this.getComponentContainer({ withinChartClip: !0 }), s = this.getOptions(), { groupMapsTo: n } = s.data, a = this.model.getDataGroupNames(), i = this.services.cartesianScales.getMainXScale(), o = this.services.cartesianScales.getMainYScale(), [l, c] = i.range(), [d, p] = o.range(), h = c - l, u = d - p;\n if (h === 0)\n return;\n const { cartesianScales: g } = this.services, m = g.getOrientation(), b = m === le.VERTICAL, [v, S] = ve(\n (A) => this.services.cartesianScales.getDomainValue(A),\n (A) => this.services.cartesianScales.getRangeValue(A),\n m\n ), O = Math.floor((b ? h : u) / a.length), L = Math.min(O / 2, 16), w = this.model.getBoxplotData(), T = t.selectAll(\".box-group\").data(w);\n T.exit().remove();\n const k = T.enter().append(\"g\").attr(\"class\", \"box-group\"), _ = T.merge(k);\n k.append(\"path\").merge(T.select(\"path.vertical-line.start\")).attr(\n \"class\",\n () => this.model.getColorClassName({\n classNameTypes: [$.STROKE],\n originalClassName: \"vertical-line start\"\n })\n ).attr(\"stroke-width\", ce.strokeWidth.default).attr(\"fill\", \"none\").transition().call(\n (A) => this.services.transitions.setupTransition({\n transition: A,\n name: \"boxplot-update-verticalstartline\",\n animate: e\n })\n ).attr(\"d\", (A) => {\n const M = g.getDomainValue(A[n]), G = M, D = g.getRangeValue(A.whiskers.min), X = g.getRangeValue(A.quartiles.q_25);\n return ie({ x0: M, x1: G, y0: D, y1: X }, m);\n }), k.append(\"path\").merge(T.select(\"path.vertical-line.end\")).attr(\n \"class\",\n () => this.model.getColorClassName({\n classNameTypes: [$.STROKE],\n originalClassName: \"vertical-line end\"\n })\n ).attr(\"stroke-width\", ce.strokeWidth.default).attr(\"fill\", \"none\").transition().call(\n (A) => this.services.transitions.setupTransition({\n transition: A,\n name: \"boxplot-update-verticalendline\",\n animate: e\n })\n ).attr(\"d\", (A) => {\n const M = g.getDomainValue(A[n]), G = M, D = g.getRangeValue(A.whiskers.max), X = g.getRangeValue(A.quartiles.q_75);\n return ie({ x0: M, x1: G, y0: D, y1: X }, m);\n }), k.append(\"path\").merge(T.select(\"path.box\")).attr(\n \"class\",\n () => this.model.getColorClassName({\n classNameTypes: [$.FILL, $.STROKE],\n originalClassName: \"box\"\n })\n ).attr(\"fill-opacity\", ce.box.opacity.default).attr(\"stroke-width\", ce.strokeWidth.default).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"box\").attr(\"aria-label\", (A) => A[n]).transition().call(\n (A) => this.services.transitions.setupTransition({\n transition: A,\n name: \"boxplot-update-quartiles\",\n animate: e\n })\n ).attr(\"d\", (A) => {\n const M = g.getDomainValue(A[n]) - L / 2, G = M + L, D = g.getRangeValue(\n Math[b ? \"max\" : \"min\"](A.quartiles.q_75, A.quartiles.q_25)\n ), X = D + Math.abs(\n g.getRangeValue(A.quartiles.q_75) - g.getRangeValue(A.quartiles.q_25)\n );\n return ie({ x0: M, x1: G, y0: D, y1: X }, m);\n }), k.append(\"path\").merge(T.select(\"path.highlight-area\")).attr(\"class\", \"highlight-area\").attr(\"opacity\", 0).attr(\"d\", (A) => {\n const M = g.getDomainValue(A[n]) - L / 2, G = M + L, D = g.getRangeValue(A.whiskers.min), X = g.getRangeValue(A.whiskers.max);\n return ie({ x0: M, x1: G, y0: D, y1: X }, m);\n }), k.append(\"path\").merge(T.select(\"path.whisker.start\")).attr(\n \"class\",\n () => this.model.getColorClassName({\n classNameTypes: [$.STROKE],\n originalClassName: \"whisker start\"\n })\n ).attr(\"stroke-width\", ce.strokeWidth.thicker).attr(\"fill\", \"none\").transition().call(\n (A) => this.services.transitions.setupTransition({\n transition: A,\n name: \"boxplot-update-startingwhisker\",\n animate: e\n })\n ).attr(\"d\", (A) => {\n const M = g.getDomainValue(A[n]) - L / 4, G = M + L / 2, D = g.getRangeValue(A.whiskers.min), X = g.getRangeValue(A.whiskers.min);\n return ie({ x0: M, x1: G, y0: D, y1: X }, m);\n }), k.append(\"path\").merge(T.select(\"path.median\")).attr(\"fill\", \"none\").attr(\n \"class\",\n () => this.model.getColorClassName({\n classNameTypes: [$.STROKE],\n originalClassName: \"median\"\n })\n ).attr(\"stroke-width\", 2).transition().call(\n (A) => this.services.transitions.setupTransition({\n transition: A,\n name: \"boxplot-update-median\",\n animate: e\n })\n ).attr(\"d\", (A) => {\n const M = g.getDomainValue(A[n]) - L / 2, G = M + L, D = g.getRangeValue(A.quartiles.q_50);\n return ie({ x0: M, x1: G, y0: D, y1: D }, m);\n }), k.append(\"path\").merge(T.select(\"path.whisker.end\")).attr(\n \"class\",\n () => this.model.getColorClassName({\n classNameTypes: [$.STROKE],\n originalClassName: \"whisker end\"\n })\n ).attr(\"stroke-width\", ce.strokeWidth.thicker).attr(\"fill\", \"none\").transition().call(\n (A) => this.services.transitions.setupTransition({\n transition: A,\n name: \"boxplot-update-endingwhisker\",\n animate: e\n })\n ).attr(\"d\", (A) => {\n const M = g.getDomainValue(A[n]) - L / 4, G = M + L / 2, D = g.getRangeValue(A.whiskers.max), X = g.getRangeValue(A.whiskers.max);\n return ie({ x0: M, x1: G, y0: D, y1: X }, m);\n });\n const F = _.selectAll(\"circle.outlier\").data(\n (A) => A.outliers.map((M) => ({\n min: A.whiskers.min,\n max: A.whiskers.max,\n [n]: A[n],\n value: M\n }))\n );\n F.exit().remove();\n const V = F.enter().append(\"circle\");\n F.merge(V).attr(\"r\", ce.circle.radius).attr(\n \"class\",\n () => this.model.getColorClassName({\n classNameTypes: [$.FILL, $.STROKE],\n originalClassName: \"outlier\"\n })\n ).attr(\"fill-opacity\", ce.circle.opacity.default).attr(\"cx\", v).transition().call(\n (A) => this.services.transitions.setupTransition({\n transition: A,\n name: \"boxplot-update-circles\",\n animate: e\n })\n ).attr(\"cy\", S), this.addBoxEventListeners(), this.addCircleEventListeners();\n }\n addBoxEventListeners() {\n const e = this, t = this.getOptions(), { groupMapsTo: s } = t.data;\n this.parent.selectAll(\"path.highlight-area\").on(\"mouseover\", function(n, a) {\n const i = x(this);\n x(this.parentNode).select(\"path.box\").classed(\"hovered\", !0).attr(\"fill-opacity\", ce.box.opacity.hovered), e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: n,\n hoveredElement: i,\n items: [\n {\n label: t.tooltip.groupLabel,\n value: a[s],\n class: e.model.getColorClassName({\n classNameTypes: [$.TOOLTIP]\n })\n },\n {\n label: \"Minimum\",\n value: a.whiskers.min\n },\n {\n label: \"Q1\",\n value: a.quartiles.q_25\n },\n {\n label: \"Median\",\n value: a.quartiles.q_50\n },\n {\n label: \"Q3\",\n value: a.quartiles.q_75\n },\n {\n label: \"Maximum\",\n value: a.whiskers.max\n },\n {\n label: \"IQR\",\n value: a.quartiles.q_75 - a.quartiles.q_25\n }\n ]\n }), e.services.events.dispatchEvent(f.Boxplot.BOX_MOUSEOVER, {\n event: n,\n element: i,\n datum: a\n });\n }).on(\"mousemove\", function(n, a) {\n const i = x(this);\n e.services.events.dispatchEvent(f.Boxplot.BOX_MOUSEMOVE, {\n event: n,\n element: i,\n datum: a\n }), e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: n\n });\n }).on(\"click\", function(n, a) {\n e.services.events.dispatchEvent(f.Boxplot.BOX_CLICK, {\n event: n,\n element: x(this),\n datum: a\n });\n }).on(\"mouseout\", function(n, a) {\n const i = x(this);\n x(this.parentNode).select(\"path.box\").classed(\"hovered\", !1).attr(\"fill-opacity\", ce.box.opacity.default), e.services.events.dispatchEvent(f.Boxplot.BOX_MOUSEOUT, {\n event: n,\n element: i,\n datum: a\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: i\n });\n });\n }\n addCircleEventListeners() {\n const e = this, t = this.getOptions(), { groupMapsTo: s } = t.data, n = this.services.cartesianScales.getRangeIdentifier();\n this.parent.selectAll(\"circle\").on(\"mouseover\", function(a, i) {\n const o = x(this);\n o.classed(\"hovered\", !0).attr(\"fill-opacity\", ce.circle.opacity.hovered).classed(\"unfilled\", !1), e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: a,\n hoveredElement: o,\n items: [\n {\n label: t.tooltip.groupLabel,\n value: i[s],\n class: e.model.getColorClassName({\n classNameTypes: [$.TOOLTIP]\n })\n },\n {\n label: \"Outlier\",\n value: i[n]\n }\n ]\n }), e.services.events.dispatchEvent(f.Boxplot.OUTLIER_MOUSEOVER, {\n event: a,\n element: o,\n datum: i\n });\n }).on(\"mousemove\", function(a, i) {\n const o = x(this);\n e.services.events.dispatchEvent(f.Boxplot.OUTLIER_MOUSEMOVE, {\n event: a,\n element: o,\n datum: i\n }), e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: a\n });\n }).on(\"click\", function(a, i) {\n e.services.events.dispatchEvent(f.Boxplot.OUTLIER_CLICK, {\n event: a,\n element: x(this),\n datum: i\n });\n }).on(\"mouseout\", function(a, i) {\n const o = x(this);\n o.classed(\"hovered\", !1).attr(\"fill-opacity\", ce.circle.opacity.default), e.services.events.dispatchEvent(f.Boxplot.OUTLIER_MOUSEOUT, {\n event: a,\n element: o,\n datum: i\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: o\n });\n });\n }\n}\nclass vc extends z {\n constructor() {\n super(...arguments), this.type = \"zero-line\", this.renderType = H.SVG;\n }\n render(e) {\n const t = this.services.cartesianScales.getRangeAxisPosition({\n groups: this.configs.groups\n }), s = this.services.cartesianScales.getScaleByPosition(t), [n, a] = s.domain(), i = n > 0 && a < 0 || n < 0 && a > 0, o = this.getComponentContainer();\n if (!i) {\n o.selectAll(\"line.domain\").remove();\n return;\n }\n const [l, c] = this.services.cartesianScales.getDomainScale().range();\n let d = +s(0) + 0.5;\n d || (d = s.range()[0]);\n const p = Cn(\n {\n x0: l,\n x1: c,\n y0: d,\n y1: d\n },\n this.services.cartesianScales.getOrientation()\n );\n E.appendOrSelect(o, \"line.domain\").transition().call(\n (u) => this.services.transitions.setupTransition({\n transition: u,\n name: \"zero-line-update\",\n animate: e\n })\n ).attr(\"y1\", p.y0).attr(\"y2\", p.y1).attr(\"x1\", p.x0).attr(\"x2\", p.x1);\n }\n}\nclass yc extends Vt {\n constructor() {\n super(...arguments), this.type = \"bubble\", this.renderType = H.SVG;\n }\n getRadiusScale(e) {\n const t = this.getOptions(), { radiusMapsTo: s } = t.bubble, n = e.data(), a = n.map((c) => c[s]).filter((c) => c), i = E.getHTMLElementSize(this.services.domUtils.getMainContainer()), o = a.length > 0, l = o ? Ke(a) : [1, 1];\n return Oe().domain(l).range(o ? t.bubble.radiusRange(i, n) : [4, 4]);\n }\n styleCircles(e, t) {\n const s = this.getOptions(), { radiusMapsTo: n } = s.bubble, a = this.getRadiusScale(e), { groupMapsTo: i } = s.data, { cartesianScales: o } = this.services, l = (h) => o.getDomainValue(h), c = (h) => o.getRangeValue(h), [d, p] = ve(\n l,\n c,\n o.getOrientation()\n );\n e.raise().classed(\"dot\", !0).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-label\", (h) => {\n const u = o.getRangeIdentifier(h);\n return h[u];\n }).transition().call(\n (h) => this.services.transitions.setupTransition({\n transition: h,\n name: \"bubble-update-enter\",\n animate: t\n })\n ).attr(\"cx\", d).attr(\"cy\", p).attr(\"r\", (h) => a(h[n] || 1)).attr(\n \"class\",\n (h) => this.model.getColorClassName({\n classNameTypes: [$.FILL, $.STROKE],\n dataGroupName: h[i],\n originalClassName: \"dot\"\n })\n ).style(\"fill\", (h) => {\n const u = this.services.cartesianScales.getDomainIdentifier(h);\n return this.model.getFillColor(h[i], h[u], h);\n }).style(\"stroke\", (h) => {\n const u = this.services.cartesianScales.getDomainIdentifier(h);\n return this.model.getStrokeColor(h[i], h[u], h);\n }).attr(\"fill-opacity\", s.bubble.fillOpacity).attr(\"opacity\", 1);\n }\n getTooltipAdditionalItems(e) {\n const t = y(this.getOptions(), \"bubble\");\n return [\n {\n label: y(t, \"radiusLabel\"),\n value: e[y(t, \"radiusMapsTo\")]\n }\n ];\n }\n}\nclass bc extends z {\n constructor() {\n super(...arguments), this.type = \"bullet\", this.renderType = H.SVG, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail, { groupMapsTo: s } = this.getOptions().data;\n this.parent.selectAll(\"path.bar\").transition(\"legend-hover-simple-bar\").call(\n (n) => this.services.transitions.setupTransition({\n transition: n,\n name: \"legend-hover-simple-bar\"\n })\n ).attr(\"opacity\", (n) => n[s] !== t.datum().name ? 0.3 : 1);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"path.bar\").transition(\"legend-mouseout-simple-bar\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-simple-bar\"\n })\n ).attr(\"opacity\", 1);\n };\n }\n init() {\n const e = this.services.events;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e) {\n const t = this.getOptions(), { groupMapsTo: s } = t.data, n = this.getComponentContainer({ withinChartClip: !0 }), a = this.model.getDisplayData(this.configs.groups), i = this.services.cartesianScales.getRangeScale(), o = this.services.cartesianScales.getRangeIdentifier(), [l, c] = i.range(), [, d] = i.domain(), p = () => {\n const m = [];\n a.forEach((S) => {\n S.ranges ? S.ranges.forEach((O, L) => {\n O != null && O < d && m.push({\n datum: S,\n value: O,\n order: L + 1\n });\n }) : m.push({\n datum: S,\n order: 1\n });\n });\n const b = E.appendOrSelect(n, \"g.range-boxes\").selectAll(\"path.range-box\").data(m, (S) => `${S[s]}-${S.order}`);\n b.exit().attr(\"opacity\", 0).remove(), b.enter().append(\"path\").attr(\"opacity\", 0).merge(b).attr(\"class\", (S) => `range-box order-${S.order}`).transition().call(\n (S) => this.services.transitions.setupTransition({\n transition: S,\n name: \"bullet-range-box-update-enter\",\n animate: e\n })\n ).attr(\"d\", (S) => {\n let L, w, T, k;\n return S.order === 1 ? (L = this.services.cartesianScales.getDomainValue(S.datum) - 16 / 2, w = L + 16, T = c - 2, k = l + 1) : (L = this.services.cartesianScales.getDomainValue(S.datum) - 16 / 2, w = L + 16, T = this.services.cartesianScales.getRangeValue(S.value), k = c), ie(\n { x0: L, x1: w, y0: T, y1: k },\n this.services.cartesianScales.getOrientation()\n );\n }).attr(\"opacity\", 1);\n }, h = () => {\n const m = E.appendOrSelect(n, \"g.bars\").selectAll(\"path.bar\").data(a, (v) => v[s]);\n m.exit().attr(\"opacity\", 0).remove(), m.enter().append(\"path\").attr(\"opacity\", 0).merge(m).classed(\"bar\", !0).transition().call(\n (v) => this.services.transitions.setupTransition({\n transition: v,\n name: \"bullet-bar-update-enter\",\n animate: e\n })\n ).attr(\n \"class\",\n (v) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: v[s],\n originalClassName: \"bar\"\n })\n ).style(\"fill\", (v) => this.model.getFillColor(v[s])).attr(\"d\", (v) => {\n const O = this.services.cartesianScales.getDomainValue(v) - 4, L = O + 8, w = this.services.cartesianScales.getRangeValue(0) + 1, T = this.services.cartesianScales.getRangeValue(v);\n return ie(\n { x0: O, x1: L, y0: w, y1: T },\n this.services.cartesianScales.getOrientation()\n );\n }).attr(\"opacity\", 1).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"bar\").attr(\"aria-label\", (v) => v.value);\n }, u = () => {\n const m = E.appendOrSelect(n, \"g.markers\").selectAll(\"path.marker\").data(\n a.filter((v) => y(v, \"marker\") !== null),\n (v) => v[s]\n );\n m.exit().attr(\"opacity\", 0).remove(), m.enter().append(\"path\").attr(\"opacity\", 0).merge(m).classed(\"marker\", !0).transition().call(\n (v) => this.services.transitions.setupTransition({\n transition: v,\n name: \"bullet-marker-update-enter\",\n animate: e\n })\n ).attr(\"d\", (v) => {\n const O = this.services.cartesianScales.getDomainValue(v) - 12, L = O + 24, w = this.services.cartesianScales.getRangeValue(v.marker);\n return ie(\n { x0: O, x1: L, y0: w, y1: w },\n this.services.cartesianScales.getOrientation()\n );\n }).attr(\"opacity\", 1);\n }, g = () => {\n let m = [];\n a.filter((S) => y(S, \"marker\") !== null).forEach((S) => {\n const O = S.marker, L = S[o];\n m = m.concat([\n { datum: S, value: O * 0.25, barValue: L },\n { datum: S, value: O * 0.5, barValue: L },\n { datum: S, value: O * 0.75, barValue: L }\n ]);\n });\n const b = E.appendOrSelect(n, \"g.quartiles\").selectAll(\"path.quartile\").data(m, (S) => S[s]);\n b.exit().attr(\"opacity\", 0).remove(), b.enter().append(\"path\").attr(\"opacity\", 0).merge(b).attr(\"class\", (S) => `quartile ${S.value <= S.barValue ? \"over-bar\" : \"\"}`).transition().call(\n (S) => this.services.transitions.setupTransition({\n transition: S,\n name: \"bullet-quartile-update-enter\",\n animate: e\n })\n ).attr(\"d\", ({ datum: S, value: O }) => {\n let L = 4;\n S.ranges && S.ranges.indexOf(O) !== -1 && (L = 8);\n const w = this.services.cartesianScales.getDomainValue(S) - L / 2, T = w + L, k = this.services.cartesianScales.getRangeValue(O);\n return ie(\n { x0: w, x1: T, y0: k, y1: k },\n this.services.cartesianScales.getOrientation()\n );\n }).attr(\"opacity\", 1);\n };\n p(), h(), u(), g(), this.addEventListeners();\n }\n addEventListeners() {\n const e = this, t = this.getOptions(), { groupMapsTo: s } = t.data, n = this.services.cartesianScales.getRangeIdentifier();\n this.parent.selectAll(\"path.bar\").on(\"mouseover\", function(a, i) {\n const o = x(this);\n o.classed(\"hovered\", !0), e.services.events.dispatchEvent(f.Bar.BAR_MOUSEOVER, {\n event: a,\n element: o,\n datum: i\n });\n const l = y(t, \"bullet\", \"performanceAreaTitles\"), c = e.model.getMatchingRangeIndexForDatapoint(i);\n e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: a,\n hoveredElement: o,\n items: [\n {\n label: t.tooltip.groupLabel || \"Group\",\n value: i[s],\n class: e.model.getColorClassName({\n classNameTypes: [$.TOOLTIP],\n dataGroupName: i[s]\n })\n },\n {\n label: \"Value\",\n value: i[n]\n },\n {\n label: \"Target\",\n value: i.marker\n },\n {\n label: \"Percentage\",\n value: `${Math.floor(i[n] / i.marker * 100)}%`\n },\n {\n label: \"Performance\",\n value: l[c]\n }\n ]\n });\n }).on(\"mousemove\", function(a, i) {\n e.services.events.dispatchEvent(f.Bar.BAR_MOUSEMOVE, {\n event: a,\n element: x(this),\n datum: i\n }), e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: a\n });\n }).on(\"click\", function(a, i) {\n e.services.events.dispatchEvent(f.Bar.BAR_CLICK, {\n event: a,\n element: x(this),\n datum: i\n });\n }).on(\"mouseout\", function(a, i) {\n const o = x(this);\n o.classed(\"hovered\", !1), e.services.events.dispatchEvent(f.Bar.BAR_MOUSEOUT, {\n event: a,\n element: o,\n datum: i\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: o\n });\n });\n }\n destroy() {\n this.parent.selectAll(\"path.bar\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"mouseout\", null);\n const e = this.services.events;\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n}\nfunction dr(r) {\n return r;\n}\nfunction hr(r) {\n if (r == null)\n return dr;\n var e, t, s = r.scale[0], n = r.scale[1], a = r.translate[0], i = r.translate[1];\n return function(o, l) {\n l || (e = t = 0);\n var c = 2, d = o.length, p = new Array(d);\n for (p[0] = (e += o[0]) * s + a, p[1] = (t += o[1]) * n + i; c < d; )\n p[c] = o[c], ++c;\n return p;\n };\n}\nfunction ur(r, e) {\n for (var t, s = r.length, n = s - e; n < --s; )\n t = r[n], r[n++] = r[s], r[s] = t;\n}\nfunction pr(r, e) {\n return typeof e == \"string\" && (e = r.objects[e]), e.type === \"GeometryCollection\" ? { type: \"FeatureCollection\", features: e.geometries.map(function(t) {\n return ds(r, t);\n }) } : ds(r, e);\n}\nfunction ds(r, e) {\n var t = e.id, s = e.bbox, n = e.properties == null ? {} : e.properties, a = Bt(r, e);\n return t == null && s == null ? { type: \"Feature\", properties: n, geometry: a } : s == null ? { type: \"Feature\", id: t, properties: n, geometry: a } : { type: \"Feature\", id: t, bbox: s, properties: n, geometry: a };\n}\nfunction Bt(r, e) {\n var t = hr(r.transform), s = r.arcs;\n function n(d, p) {\n p.length && p.pop();\n for (var h = s[d < 0 ? ~d : d], u = 0, g = h.length; u < g; ++u)\n p.push(t(h[u], u));\n d < 0 && ur(p, g);\n }\n function a(d) {\n return t(d);\n }\n function i(d) {\n for (var p = [], h = 0, u = d.length; h < u; ++h)\n n(d[h], p);\n return p.length < 2 && p.push(p[0]), p;\n }\n function o(d) {\n for (var p = i(d); p.length < 4; )\n p.push(p[0]);\n return p;\n }\n function l(d) {\n return d.map(o);\n }\n function c(d) {\n var p = d.type, h;\n switch (p) {\n case \"GeometryCollection\":\n return { type: p, geometries: d.geometries.map(c) };\n case \"Point\":\n h = a(d.coordinates);\n break;\n case \"MultiPoint\":\n h = d.coordinates.map(a);\n break;\n case \"LineString\":\n h = i(d.arcs);\n break;\n case \"MultiLineString\":\n h = d.arcs.map(i);\n break;\n case \"Polygon\":\n h = l(d.arcs);\n break;\n case \"MultiPolygon\":\n h = d.arcs.map(l);\n break;\n default:\n return null;\n }\n return { type: p, coordinates: h };\n }\n return c(e);\n}\nfunction gr(r, e) {\n var t = {}, s = {}, n = {}, a = [], i = -1;\n e.forEach(function(c, d) {\n var p = r.arcs[c < 0 ? ~c : c], h;\n p.length < 3 && !p[1][0] && !p[1][1] && (h = e[++i], e[i] = c, e[d] = h);\n }), e.forEach(function(c) {\n var d = o(c), p = d[0], h = d[1], u, g;\n if (u = n[p])\n if (delete n[u.end], u.push(c), u.end = h, g = s[h]) {\n delete s[g.start];\n var m = g === u ? u : u.concat(g);\n s[m.start = u.start] = n[m.end = g.end] = m;\n } else\n s[u.start] = n[u.end] = u;\n else if (u = s[h])\n if (delete s[u.start], u.unshift(c), u.start = p, g = n[p]) {\n delete n[g.end];\n var b = g === u ? u : g.concat(u);\n s[b.start = g.start] = n[b.end = u.end] = b;\n } else\n s[u.start] = n[u.end] = u;\n else\n u = [c], s[u.start = p] = n[u.end = h] = u;\n });\n function o(c) {\n var d = r.arcs[c < 0 ? ~c : c], p = d[0], h;\n return r.transform ? (h = [0, 0], d.forEach(function(u) {\n h[0] += u[0], h[1] += u[1];\n })) : h = d[d.length - 1], c < 0 ? [h, p] : [p, h];\n }\n function l(c, d) {\n for (var p in c) {\n var h = c[p];\n delete d[h.start], delete h.start, delete h.end, h.forEach(function(u) {\n t[u < 0 ? ~u : u] = 1;\n }), a.push(h);\n }\n }\n return l(n, s), l(s, n), e.forEach(function(c) {\n t[c < 0 ? ~c : c] || a.push([c]);\n }), a;\n}\nfunction mr(r) {\n for (var e = -1, t = r.length, s, n = r[t - 1], a = 0; ++e < t; )\n s = n, n = r[e], a += s[0] * n[1] - s[1] * n[0];\n return Math.abs(a);\n}\nfunction fr(r) {\n return Bt(r, vr.apply(this, arguments));\n}\nfunction vr(r, e) {\n var t = {}, s = [], n = [];\n e.forEach(a);\n function a(l) {\n switch (l.type) {\n case \"GeometryCollection\":\n l.geometries.forEach(a);\n break;\n case \"Polygon\":\n i(l.arcs);\n break;\n case \"MultiPolygon\":\n l.arcs.forEach(i);\n break;\n }\n }\n function i(l) {\n l.forEach(function(c) {\n c.forEach(function(d) {\n (t[d = d < 0 ? ~d : d] || (t[d] = [])).push(l);\n });\n }), s.push(l);\n }\n function o(l) {\n return mr(Bt(r, { type: \"Polygon\", arcs: [l] }).coordinates[0]);\n }\n return s.forEach(function(l) {\n if (!l._) {\n var c = [], d = [l];\n for (l._ = 1, n.push(c); l = d.pop(); )\n c.push(l), l.forEach(function(p) {\n p.forEach(function(h) {\n t[h < 0 ? ~h : h].forEach(function(u) {\n u._ || (u._ = 1, d.push(u));\n });\n });\n });\n }\n }), s.forEach(function(l) {\n delete l._;\n }), {\n type: \"MultiPolygon\",\n arcs: n.map(function(l) {\n var c = [], d;\n if (l.forEach(function(m) {\n m.forEach(function(b) {\n b.forEach(function(v) {\n t[v < 0 ? ~v : v].length < 2 && c.push(v);\n });\n });\n }), c = gr(r, c), (d = c.length) > 1)\n for (var p = 1, h = o(c[0]), u, g; p < d; ++p)\n (u = o(c[p])) > h && (g = c[0], c[0] = c[p], c[p] = g, h = u);\n return c;\n }).filter(function(l) {\n return l.length > 0;\n })\n };\n}\nclass Ec extends js {\n constructor() {\n super(...arguments), this.type = \"ruler-binned\", this.renderType = H.SVG;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n showRuler(e, [t, s]) {\n const n = this.parent, a = this.model.getOptions(), { cartesianScales: i } = this.services, o = i.getOrientation(), l = i.getRangeScale(), [c, d] = l.range(), p = i.getDomainScale(), h = p.invert(\n o === le.VERTICAL ? t : s\n ), u = E.appendOrSelect(n, \"g.ruler\").attr(\"aria-label\", \"ruler\"), g = E.appendOrSelect(u, \"line.ruler-line\"), b = n.selectAll(\"[role=graphics-symbol]\").filter((v) => {\n if (parseFloat(Q(v, \"data.x0\")) <= h && parseFloat(Q(v, \"data.x1\")) >= h)\n return !0;\n });\n if (b.size() > 0) {\n this.elementsToHighlight && this.elementsToHighlight.size() > 0 && !Ns(this.elementsToHighlight, b) && this.hideRuler(), b.dispatch(\"mouseover\"), this.elementsToHighlight = b;\n const v = x(b.nodes()[0]).datum(), S = parseFloat(Q(v, \"data.x0\")), O = parseFloat(Q(v, \"data.x1\")), L = this.model.getActiveDataGroupNames(), w = L.reverse().map((k) => ({\n label: k,\n value: Q(v, `data.${k}`),\n class: this.model.getColorClassName({\n classNameTypes: [$.TOOLTIP],\n dataGroupName: k\n })\n })).filter((k) => k.value !== 0);\n if (w.length > 0) {\n this.services.events.dispatchEvent(f.Tooltip.SHOW, {\n mousePosition: [t, s],\n hoveredElement: g,\n items: [\n {\n label: Q(a, \"bins.rangeLabel\") || \"Range\",\n value: `${S} – ${O}`\n },\n ...w,\n ...y(a, \"tooltip\", \"showTotal\") === !0 ? [\n {\n label: Q(a, \"tooltip.totalLabel\") || \"Total\",\n value: L.reduce(\n (_, F) => _ + parseFloat(Q(v, `data.${F}`)),\n 0\n )\n }\n ] : []\n ]\n }), u.attr(\"opacity\", 1);\n const k = p((S + O) / 2);\n o === \"horizontal\" ? g.attr(\"x1\", d).attr(\"x2\", c).attr(\"y1\", k).attr(\"y2\", k) : g.attr(\"y1\", d).attr(\"y2\", c).attr(\"x1\", k).attr(\"x2\", k);\n } else\n this.hideRuler();\n } else\n this.hideRuler();\n }\n}\nclass Sc extends js {\n formatTooltipData(e) {\n return e.reverse();\n }\n}\nconst xc = (r, e) => {\n const t = r.x, s = r.y, n = e.x, a = e.y, i = Rt();\n return i.moveTo(t, s), i.lineTo(n, a), i.toString();\n}, Oc = (r, e, t = 0.5) => {\n const s = r.x, n = r.y, a = e.x, i = e.y, o = Rt();\n return o.moveTo(s, n), o.lineTo(s + (a - s) * t, n), o.lineTo(s + (a - s) * t, i), o.lineTo(a, i), o.toString();\n}, Tc = (r, e, t, s, n, a) => {\n const i = r.x, o = r.y, l = e.x, c = e.y, d = Rt();\n return d.moveTo(i, o), d.bezierCurveTo(t, s, n, a, l, c), d.toString();\n}, Lc = {\n d: \"M7 0v8L0 4z\",\n height: 8,\n width: 7.5,\n id: \"arrowLeft\"\n}, wc = {\n d: \"M0 0v8l7-4z\",\n height: 8,\n width: 7.5,\n id: \"arrowRight\"\n}, Mc = {\n d: \"M5.32 9.513a4.75 4.75 0 100-9.5 4.75 4.75 0 000 9.5z\",\n height: 10,\n width: 10,\n id: \"circle\"\n}, Ac = {\n d: \"M5.03517654-1e-7l4.99999996 5-4.99999996 5-5-5L2.4517844 2.58339204z\",\n height: 10,\n width: 10,\n id: \"diamond\"\n}, Cc = {\n d: \"M0 .44974747h8v8H0v-3.6830331z\",\n height: 9,\n width: 8,\n id: \"square\"\n}, kc = {\n d: \"M0 0h1.5v8H0z\",\n height: 8,\n width: 2,\n id: \"tee\"\n};\nclass Ic extends nr {\n constructor(e, t, s) {\n super(e, t, s), this.type = \"color-legend\", this.renderType = H.SVG, this.gradient_id = `gradient-id-${Math.floor(Math.random() * 99999999999)}`, this.handleAxisCompleteEvent = () => {\n const n = this.getComponentContainer(), { width: a } = E.getSVGElementSize(n, {\n useAttrs: !0\n }), i = y(this.getOptions(), \"data\", \"loading\");\n if (a > J.color.barWidth && !i) {\n const o = y(this.getOptions(), \"heatmap\", \"colorLegend\", \"title\"), { cartesianScales: l } = this.services, d = l.getMainXScale().range();\n if (d[0] > 1 && (n.select(\"g.legend\").attr(\"transform\", `translate(${d[0]}, 0)`), o)) {\n const { width: p } = E.getSVGElementSize(\n n.select(\"g.legend-title\").select(\"text\"),\n { useBBox: !0 }\n ), h = d[0] - p - 9;\n h > 1 ? n.select(\"g.legend-title\").attr(\"transform\", `translate(${h}, 0)`) : (n.select(\"g.legend\").attr(\"transform\", `translate(${d[0]}, 16)`), n.select(\"g.legend-title\").attr(\"transform\", `translate(${d[0]}, 0)`));\n }\n } else\n n.select(\"g.legend-title\").attr(\"transform\", \"translate(0, 0)\");\n }, this.chartType = s.chartType;\n }\n init() {\n this.chartType === \"heatmap\" && this.services.events.addEventListener(\n f.Axis.RENDER_COMPLETE,\n this.handleAxisCompleteEvent\n );\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = this.getOptions(), s = this.getComponentContainer(), { width: n } = E.getSVGElementSize(s, {\n useAttrs: !0\n }), a = y(t, \"color\", \"gradient\", \"colors\"), i = y(\n t,\n this.chartType,\n \"colorLegend\",\n \"type\"\n );\n let o = y(t, \"color\", \"pairing\", \"option\");\n const l = y(t, \"heatmap\", \"colorLegend\", \"title\");\n if (y(this.getOptions(), \"data\", \"loading\")) {\n s.html(\"\");\n return;\n }\n const d = !Ts(a), p = kn(this.model.getDisplayData()), h = !(n <= J.color.barWidth), u = h ? J.color.barWidth : n, g = E.appendOrSelect(s, \"g.legend\"), m = E.appendOrSelect(g, \"g.legend-axis\");\n if (l) {\n const _ = E.appendOrSelect(s, \"g.legend-title\");\n E.appendOrSelect(_, \"text\").text(l).attr(\"dy\", \"0.7em\"), g.attr(\"transform\", \"translate(0, 16)\");\n }\n const b = p[0] < 0 && p[1] > 0 ? \"diverge\" : \"mono\";\n (o < 1 && o > 4 && b === \"mono\" || o < 1 && o > 2 && b === \"diverge\") && (o = 1);\n let v = [];\n const S = b === \"diverge\" ? 17 : 11;\n if (d)\n v = a;\n else\n for (let _ = 1; _ < S + 1; _++)\n v.push(\n i === nt.LINEAR ? `stop-color-${b}-${o}-${_}` : `fill-${b}-${o}-${_}`\n );\n const O = vs(p[0], p[1]), L = Js(O, 3), w = Oe().domain(p).range([0, u]), T = Dt(w).tickSize(0).tickValues(L);\n let k;\n switch (i) {\n case nt.LINEAR:\n this.drawLinear(v, g, u);\n break;\n case nt.QUANTIZE:\n k = this.drawQuantize(\n v,\n b,\n d,\n g,\n u\n ), w.range([k, u]);\n break;\n default:\n throw Error(\"Entered color legend type is not supported.\");\n }\n m.attr(\"transform\", `translate(0,${J.color.axisYTranslation})`).call(T), m.select(\".domain\").remove(), m.select(\"g.tick:last-of-type text\").style(\"text-anchor\", h ? \"middle\" : \"end\"), m.select(\"g.tick:first-of-type text\").style(\n \"text-anchor\",\n h && this.chartType !== \"choropleth\" ? \"middle\" : \"start\"\n );\n }\n // Renders gradient legend\n drawLinear(e, t, s) {\n const n = 100 / (e.length - 1);\n E.appendOrSelect(t, \"linearGradient\").attr(\"id\", `${this.gradient_id}-legend`).selectAll(\"stop\").data(e).enter().append(\"stop\").attr(\"offset\", (o, l) => `${l * n}%`).attr(\"class\", (o, l) => e[l]).attr(\"stop-color\", (o) => o), E.appendOrSelect(t, \"rect\").attr(\"width\", s).attr(\"height\", J.color.barHeight).style(\"fill\", `url(#${this.gradient_id}-legend)`);\n }\n /**\n * Renders quantized legend\n * @returns number (range start)\n */\n drawQuantize(e, t, s, n, a) {\n !s && t === \"diverge\" && e.splice(e.length / 2, 1);\n const i = _t().domain(e).range([0, a]);\n return E.appendOrSelect(n, \"g.quantized-rect\").selectAll(\"rect\").data(i.domain()).join(\"rect\").attr(\"x\", (l) => i(l)).attr(\"y\", 0).attr(\"width\", Math.max(0, i.bandwidth() - 1)).attr(\"height\", J.color.barHeight).attr(\"class\", (l) => l).attr(\"fill\", (l) => l), (!s && t) === \"mono\" ? i.bandwidth() - 1 : 0;\n }\n destroy() {\n this.chartType === \"heatmap\" && this.services.events.removeEventListener(\n f.Axis.RENDER_COMPLETE,\n this.handleAxisCompleteEvent\n );\n }\n}\nclass Dc extends sr {\n constructor() {\n super(...arguments), this.type = \"meter-title\", this.renderType = H.SVG;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = y(this.model.getDisplayData(), 0), s = this.getOptions(), n = this.getComponentContainer(), { groupMapsTo: a } = s.data;\n if (y(s, \"meter\", \"proportional\"))\n this.displayTotal(), this.displayBreakdownTitle();\n else {\n const c = n.selectAll(\"text.meter-title\").data([t[a]]);\n c.enter().append(\"text\").classed(\"meter-title\", !0).merge(c).attr(\"x\", 0).attr(\"y\", \"1em\").text((d) => d), c.exit().remove(), this.appendPercentage();\n }\n this.displayStatus();\n const o = this.getMaxTitleWidth(), l = E.appendOrSelect(n, \"text.meter-title\");\n o > 0 && l.node().getComputedTextLength() > o && this.truncateTitle(l, o);\n }\n displayBreakdownTitle() {\n const e = this.getComponentContainer(), t = this.getOptions(), s = this.model.getMaximumDomain(this.model.getDisplayData()), n = y(t, \"meter\", \"proportional\", \"total\"), a = y(t, \"meter\", \"proportional\", \"unit\") ? y(t, \"meter\", \"proportional\", \"unit\") : \"\";\n let i;\n if (s === n)\n i = null;\n else {\n const d = n !== null ? n - s : s, p = y(t, \"meter\", \"proportional\", \"breakdownFormatter\");\n i = p !== null ? p({\n datasetsTotal: s,\n total: n\n }) : `${s} ${a} used (${d} ${a} available)`;\n }\n const o = e.selectAll(\"text.proportional-meter-title\").data([i]);\n o.enter().append(\"text\").classed(\"proportional-meter-title\", !0).merge(o).attr(\"x\", 0).attr(\"y\", \"1em\").text((d) => d), o.exit().remove();\n const l = this.getMaxTitleWidth(), c = E.appendOrSelect(e, \"text.proportional-meter-title\");\n l > 0 && c.node().getComputedTextLength() > l && this.truncateTitle(c, l);\n }\n // show the total for prop meter\n displayTotal() {\n const e = this.getComponentContainer(), t = this.getOptions(), s = y(t, \"meter\", \"proportional\", \"total\"), n = s ? y(t, \"meter\", \"proportional\", \"total\") : this.model.getMaximumDomain(this.model.getDisplayData()), a = y(t, \"meter\", \"proportional\", \"unit\") ? y(t, \"meter\", \"proportional\", \"unit\") : \"\", i = y(t, \"meter\", \"proportional\", \"totalFormatter\"), o = i !== null ? i(n) : `${s} ${a} total`, l = E.getHTMLElementSize(this.services.domUtils.getMainContainer()), c = l.width ? l.width : this.parent.node().getAttribute(\"width\"), d = e.selectAll(\"text.proportional-meter-total\").data([o]);\n d.enter().append(\"text\").classed(\"proportional-meter-total\", !0).merge(d).attr(\n \"x\",\n this.model.getStatus() && typeof c != \"string\" ? c - se.total.paddingRight : c\n ).attr(\"y\", \"1em\").attr(\"text-anchor\", \"end\").text((p) => p), d.exit().remove();\n }\n /**\n * Appends the corresponding status based on the value and the peak.\n */\n displayStatus() {\n const e = this, t = this.getComponentContainer(), s = E.getHTMLElementSize(this.services.domUtils.getMainContainer()), n = s.width ? s.width : 0, a = this.model.getStatus(), i = se.status.indicatorSize / 2, o = E.appendOrSelect(t, \"g.status-indicator\").attr(\"class\", a !== null ? `status-indicator status--${a}` : \"\").attr(\"transform\", `translate(${n - i}, 0)`), l = a ? [a] : [], c = o.selectAll(\"circle.status\").data(l);\n c.enter().append(\"circle\").merge(c).attr(\"class\", \"status\").attr(\"r\", i).attr(\"cx\", 0).attr(\"cy\", 8);\n const d = o.selectAll(\"path.innerFill\").data(l);\n d.enter().append(\"path\").merge(d).attr(\"d\", e.getStatusIconPathString(a)).attr(\"transform\", `translate(-${i}, 0)`).attr(\"class\", \"innerFill\"), d.exit().remove(), c.exit().remove();\n }\n /**\n * Appends the associated percentage to the end of the title\n */\n appendPercentage() {\n const e = y(this.model.getDisplayData(), 0, \"value\"), t = this.getComponentContainer(), s = E.appendOrSelect(t, \"text.meter-title\"), n = y(this.getOptions(), \"meter\", \"statusBar\", \"percentageIndicator\", \"enabled\") === !0 ? [e] : [], a = t.selectAll(\"text.percent-value\").data(n), i = se.statusBar.paddingRight;\n a.enter().append(\"text\").classed(\"percent-value\", !0).merge(a).text((o) => `${o}%`).attr(\"x\", +s.attr(\"x\") + s.node().getComputedTextLength() + i).attr(\"y\", s.attr(\"y\")), a.exit().remove();\n }\n /**\n * Uses the parent class truncate logic\n * @param title d3 selection of title element that will be truncated\n * @param titlestring the original string that needs truncation\n * @param maxWidth the max width the title can take\n */\n truncateTitle(e, t) {\n super.truncateTitle(e, t);\n const s = E.appendOrSelect(this.parent, \"tspan\"), n = se.statusBar.paddingRight, a = Math.ceil(s.node().getComputedTextLength());\n E.appendOrSelect(this.parent, \"text.percent-value\").attr(\n \"x\",\n +e.attr(\"x\") + e.node().getComputedTextLength() + a + n\n );\n }\n // computes the maximum space a title can take\n getMaxTitleWidth() {\n const e = E.getHTMLElementSize(this.services.domUtils.getMainContainer()), t = y(this.getOptions(), \"meter\", \"proportional\"), s = e.width ? e.width : this.parent.node().getBoundingClientRect().width;\n if (t !== null) {\n const n = E.appendOrSelect(this.parent, \"text.proportional-meter-total\").node(), a = E.getSVGElementSize(n, {\n useBBox: !0\n }).width;\n return s - a - se.total.paddingLeft;\n } else {\n const n = E.appendOrSelect(this.parent, \"text.percent-value\"), a = se.statusBar.paddingRight, i = n.node().getComputedTextLength(), o = E.appendOrSelect(this.parent, \"g.status-indicator\").node(), l = E.getSVGElementSize(o, { useBBox: !0 }).width + se.status.paddingLeft;\n return s - i - a - l;\n }\n }\n /**\n * Get the associated status icon for the data\n * @param status the active status for the meter chart\n */\n getStatusIconPathString(e) {\n switch (e) {\n case at.SUCCESS:\n return \"M6.875 11.3125 3.75 8.1875 4.74375 7.25 6.875 9.34375 11.50625 4.75 12.5 5.7375 Z\";\n case at.DANGER:\n return \"M10.7 11.5 4.5 5.3 5.3 4.5 11.5 10.7 Z\";\n case at.WARNING:\n return \"M7.9375,11.125 C7.41973305,11.125 7,11.544733 7,12.0625 C7,12.580267 7.41973305,13 7.9375,13 C8.45526695,13 8.875,12.580267 8.875,12.0625 C8.875,11.544733 8.45526695,11.125 7.9375,11.125 M7.3125, 3 8.5625, 3 8.5625, 9.875 7.3125, 9.875, 7.3125, 3 Z\";\n }\n }\n}\nclass $t extends z {\n // Gets the correct width for bars based on options & configurations\n getBarWidth() {\n const e = this.getOptions();\n if (e.bars.width)\n return e.bars.width;\n const t = this.model.getDisplayData().length, s = this.services.cartesianScales.getMainXScale(), n = E.getSVGElementSize(this.parent, {\n useAttrs: !0\n }).width;\n if (!s.step) {\n const a = y(e, \"bars\", \"spacingFactor\");\n return Math.min(e.bars.maxWidth, n * a / t);\n }\n return Math.min(e.bars.maxWidth, s.step() / 2);\n }\n isOutsideZoomedDomain(e, t) {\n if (this.model.getDisplayData().length <= 1)\n return !1;\n const n = this.model.get(\"zoomDomain\");\n if (n !== void 0) {\n const a = this.services.cartesianScales.getDomainScale();\n return e < a(n[0]) || t > a(n[1]);\n }\n return !1;\n }\n}\nclass Rc extends z {\n constructor() {\n super(...arguments), this.type = \"circle-pack\", this.renderType = H.SVG, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail;\n this.parent.selectAll(\"circle.node\").transition(\"legend-hover-circlepack\").call(\n (s) => this.services.transitions.setupTransition({\n transition: s,\n name: \"legend-hover-circlepack\"\n })\n ).attr(\"opacity\", (s) => s.data.dataGroupName === t.datum().name ? 1 : _e.circles.fillOpacity);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"circle.node\").transition(\"legend-mouseout-circlepack\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-circlepack\"\n })\n ).attr(\"opacity\", 1);\n };\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = this.getComponentContainer({ withinChartClip: !0 }), { width: s, height: n } = E.getSVGElementSize(this.parent, {\n useAttrs: !0\n });\n if (s < 1 || n < 1)\n return;\n let a = this.model.getDisplayData();\n const i = this.model.hasParentNode(), o = this.model.getHierarchyLevel(), l = this.getOptions(), c = y(l, \"canvasZoom\", \"enabled\");\n i && y(a, 0, \"children\") && (a = y(a, 0, \"children\"));\n const d = Pt({ children: a }).sum((m) => m.value).sort((m, b) => b.value - m.value), h = Qs().size([s, n]).padding((m) => m.depth >= 1 ? _e.padding.children + 3 : _e.padding.mainGroup + 3)(d).descendants().splice(1).filter((m) => m.depth <= o), u = t.selectAll(\"circle.node\").data(h);\n u.exit().attr(\"width\", 0).attr(\"height\", 0).remove();\n const g = u.enter().append(\"circle\").classed(\"node\", !0);\n g.merge(u).attr(\"class\", (m) => {\n const b = c && o === 3 ? this.getZoomClass(m) : \"\";\n return this.model.getColorClassName({\n classNameTypes: [$.FILL, $.STROKE],\n dataGroupName: m.data.dataGroupName,\n originalClassName: m.children ? `node ${b}` : `node node-leaf ${b}`\n });\n }).style(\"fill\", (m) => this.model.getFillColor(m.data.dataGroupName)).style(\"stroke\", (m) => this.model.getFillColor(m.data.dataGroupName)).attr(\"cx\", (m) => m.x).attr(\"cy\", (m) => m.y).transition(\"circlepack-leaf-update-enter\").call(\n (m) => this.services.transitions.setupTransition({\n transition: m,\n name: \"circlepack-leaf-update-enter\"\n })\n ).attr(\"r\", (m) => m.r).attr(\"opacity\", 1).attr(\"fill-opacity\", _e.circles.fillOpacity), c === !0 && this.focal && (this.services.canvasZoom.zoomIn(this.focal, g, tt), this.setBackgroundListeners()), i || this.addLegendListeners(), this.addEventListeners();\n }\n // turn off the highlight class on children circles\n unhighlightChildren(e) {\n const t = e.map((s) => s.data);\n this.parent.selectAll(\"circle.node\").filter((s) => t.some((n) => n === s.data) && s.depth > 1).style(\"stroke\", (s) => this.model.getFillColor(s.data.dataGroupName));\n }\n // highlight the children circles with a stroke\n highlightChildren(e) {\n const t = e.map((s) => s.data);\n this.parent.selectAll(\"circle.node\").filter((s) => t.some((n) => n === s.data) && s.depth > 1).style(\"stroke\", _e.circles.hover.stroke);\n }\n getZoomClass(e) {\n return this.model.getHierarchyLevel() === 3 && this.focal && (e.data === this.focal.data || this.focal.children.some((t) => t.data === e.data)) ? \"focal\" : \"non-focal\";\n }\n addLegendListeners() {\n const { events: e } = this.services;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n removeBackgroundListeners() {\n x(this.services.domUtils.getMainContainer()).on(\"click\", () => null);\n }\n setBackgroundListeners() {\n const e = x(this.services.domUtils.getMainContainer()), t = this, s = this.parent.selectAll(\"circle.node\"), n = y(Os, \"canvasZoomSettings\");\n e.on(\"click\", () => {\n t.focal = null, t.model.updateHierarchyLevel(2), e.classed(\"zoomed-in\", !1), t.services.canvasZoom.zoomOut(s, n);\n });\n }\n // Zoom icon to be appended to the label in the tooltip\n getZoomIcon() {\n return `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\">\n\t\t\t<polygon points=\"5.93 3.71 4.45 3.71 4.45 2.23 3.71 2.23 3.71 3.71 2.23 3.71 2.23 4.45 3.71 4.45 3.71 5.93 4.45 5.93 4.45 4.45 5.93 4.45 5.93 3.71\"/>\n\t\t\t<path d=\"M7.2,6.67a4,4,0,0,0,1-2.59A4.08,4.08,0,1,0,4.07,8.15h0a4,4,0,0,0,2.59-1L9.48,10,10,9.48Zm-3.12.77A3.34,3.34,0,1,1,7.41,4.08,3.34,3.34,0,0,1,4.08,7.44Z\"/>\n\t\t</svg>`;\n }\n // add event listeners for tooltip on the circles\n addEventListeners() {\n const e = this;\n this.parent.selectAll(\"circle.node\").on(\"mouseover\", function(t, s) {\n const n = x(this);\n n.classed(\"hovered\", !0);\n const a = e.model.getHierarchyLevel(), i = a > 2 && !n.classed(\"focal\"), o = y(e.model.getOptions(), \"canvasZoom\", \"enabled\");\n let l = !1;\n if (!i) {\n let c = [], d = [], p = null;\n if (s.children) {\n s.depth > 1 && o && (l = !0, n.classed(\"clickable\", !0)), c = s.children.map((g) => {\n if (g !== null)\n return typeof g.data.value == \"number\" ? {\n label: g.data.name,\n value: g.data.value\n } : {\n label: g.data.name,\n labelIcon: o && a <= 2 ? e.getZoomIcon() : null,\n value: g.value\n };\n });\n const u = e.model.getOptions();\n d = [\n {\n label: Q(u, \"tooltip.totalLabel\") || \"Total\",\n value: s.value,\n bold: !0\n }\n ], e.highlightChildren(s.children);\n } else\n p = s.value;\n const h = getComputedStyle(this, null).getPropertyValue(\"fill\");\n e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: t,\n hoveredElement: n,\n items: [\n {\n color: h,\n label: s.data.name,\n labelIcon: l && o && a <= 2 ? e.getZoomIcon() : null,\n value: p\n },\n ...c,\n ...d\n ]\n });\n }\n e.services.events.dispatchEvent(f.CirclePack.CIRCLE_MOUSEOVER, {\n event: t,\n element: n,\n datum: s\n });\n }).on(\"mousemove\", function(t, s) {\n const n = x(this);\n e.services.events.dispatchEvent(f.CirclePack.CIRCLE_MOUSEMOVE, {\n event: t,\n element: n,\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: t\n });\n }).on(\"mouseout\", function(t, s) {\n const n = x(this);\n n.classed(\"hovered\", !1), s.children && e.unhighlightChildren(s.children), e.services.events.dispatchEvent(f.CirclePack.CIRCLE_MOUSEOUT, {\n event: t,\n element: n,\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: n\n });\n }).on(\"click\", function(t, s) {\n const n = x(this), a = n.classed(\"non-focal\"), i = y(e.model.getOptions(), \"canvasZoom\", \"enabled\");\n if (i && e.model.getHierarchyLevel() > 2) {\n const o = e.parent.selectAll(\"circle.node\");\n x(e.services.domUtils.getMainContainer()).classed(\"zoomed-in\", !1), e.focal = null, e.model.updateHierarchyLevel(2), e.services.canvasZoom.zoomOut(o, tt);\n } else if (s.depth === 2 && s.children && !a && i) {\n const o = e.parent.selectAll(\"circle.node\");\n x(e.services.domUtils.getMainContainer()).classed(\"zoomed-in\", !0), e.focal = s, e.model.updateHierarchyLevel(3), e.services.canvasZoom.zoomIn(s, o, tt), t.stopPropagation();\n }\n e.services.events.dispatchEvent(f.CirclePack.CIRCLE_CLICK, {\n event: t,\n element: n,\n datum: s\n });\n });\n }\n destroy() {\n this.parent.selectAll(\"circle.node\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"mouseout\", null).on(\"click\", null);\n const e = this.services.events;\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut), this.removeBackgroundListeners();\n }\n}\nfunction yr(r, e) {\n const t = tn(this._current, r);\n return (s) => (this._current = t(s), e(this._current));\n}\nclass br extends z {\n constructor() {\n super(...arguments), this.type = \"pie\", this.renderType = H.SVG, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail, { groupMapsTo: s } = this.getOptions().data;\n this.parent.selectAll(\"path.slice\").transition(\"legend-hover-bar\").call(\n (n) => this.services.transitions.setupTransition({\n transition: n,\n name: \"legend-hover-bar\"\n })\n ).attr(\n \"opacity\",\n (n) => n.data[s] !== t.datum().name ? 0.3 : 1\n );\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"path.slice\").transition(\"legend-mouseout-bar\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-bar\"\n })\n ).attr(\"opacity\", 1);\n };\n }\n init() {\n const e = this.services.events;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n getInnerRadius() {\n return Z.innerRadius;\n }\n render(e = !0) {\n const t = this, s = this.getComponentContainer(), n = this.getOptions(), { groupMapsTo: a } = n.data, { valueMapsTo: i } = n.pie, o = this.model.getDisplayData().filter((M) => M[i] > 0), l = this.computeRadius();\n this.arc = Be().innerRadius(this.getInnerRadius()).outerRadius(l), this.hoverArc = Be().innerRadius(this.getInnerRadius()).outerRadius(l + Z.hoverArc.outerRadiusOffset);\n const d = en().value((M) => M[i]).sort(y(n, \"pie\", \"sortFunction\")).padAngle(Z.padAngle)(o), h = E.appendOrSelect(s, \"g.slices\").attr(\"role\", U.GROUP).attr(\"data-name\", \"slices\").selectAll(\"path.slice\").data(d, (M) => M.data[a]);\n h.exit().attr(\"opacity\", 0).remove(), h.enter().append(\"path\").classed(\"slice\", !0).attr(\"opacity\", 0).merge(h).attr(\n \"class\",\n (M) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: M.data[a],\n originalClassName: \"slice\"\n })\n ).style(\"fill\", (M) => t.model.getFillColor(M.data[a])).attr(\"d\", this.arc).transition().call(\n (M) => this.services.transitions.setupTransition({\n transition: M,\n name: \"pie_slice_enter_update\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"slice\").attr(\n \"aria-label\",\n (M) => `${M[i]}, ${zt(M.data[i], o, i) + \"%\"}`\n ).attrTween(\"d\", function(M) {\n return yr.bind(this)(M, t.arc);\n });\n const m = n.pie.labels.enabled, b = m ? d.filter((M) => M.data[i] > 0) : [], S = E.appendOrSelect(s, \"g.labels\").attr(\"role\", U.GROUP).attr(\"data-name\", \"labels\").selectAll(\"text.pie-label\").data(b, (M) => M.data[a]);\n S.exit().attr(\"opacity\", 0).remove();\n const O = S.enter().append(\"text\").classed(\"pie-label\", !0), L = [];\n O.merge(S).style(\"text-anchor\", \"middle\").text((M) => n.pie.labels.formatter ? n.pie.labels.formatter(M) : zt(M.data[i], o, i) + \"%\").datum(function(M) {\n const G = l + 7, D = (M.endAngle - M.startAngle) / 2 + M.startAngle, X = D / Math.PI * 180, re = this.getComputedTextLength();\n return M.textOffsetX = re / 2, M.textOffsetY = X > 90 && X < 270 ? 10 : 0, M.xPosition = (M.textOffsetX + G) * Math.sin(D), M.yPosition = (M.textOffsetY + G) * -Math.cos(D), M;\n }).attr(\"transform\", function(M, G) {\n const D = b.length, X = (M.endAngle - M.startAngle) * (180 / Math.PI);\n if (G >= D - 2 && X < Z.callout.minSliceDegree) {\n let re, W;\n return M.index === D - 1 ? (re = M.xPosition + Z.callout.offsetX + Z.callout.textMargin + M.textOffsetX, W = M.yPosition - Z.callout.offsetY, M.direction = it.RIGHT, L.push(M)) : (re = M.xPosition - Z.callout.offsetX - M.textOffsetX - Z.callout.textMargin, W = M.yPosition - Z.callout.offsetY, M.direction = it.LEFT, L.push(M)), `translate(${re}, ${W})`;\n }\n return `translate(${M.xPosition}, ${M.yPosition})`;\n }), this.renderCallouts(L);\n const w = y(n, \"donut\") ? \"donut\" : \"pie\", T = y(n, w, \"alignment\"), { width: k } = E.getSVGElementSize(this.getParent(), {\n useAttrs: !0\n }), _ = m ? Z.xOffset : 0, F = m ? Z.yOffset : 0;\n let V = l + _;\n T === ue.CENTER ? V = k / 2 : T === ue.RIGHT && (V = k - l - Z.xOffset);\n let A = l + F;\n L.length > 0 && (A += Z.yOffsetCallout), s.attr(\"x\", V + 7).attr(\"y\", A), this.addEventListeners();\n }\n renderCallouts(e) {\n const t = E.appendOrSelect(this.getComponentContainer(), \"g.callouts\").attr(\"role\", U.GROUP).attr(\"data-name\", \"callouts\"), s = t.selectAll(\"g.callout\").data(e);\n s.exit().remove();\n const n = s.enter().append(\"g\").classed(\"callout\", !0).attr(\"role\", U.GROUP).attr(\"aria-roledescription\", \"label callout\");\n n.merge(s).datum(function(o) {\n const { xPosition: l, yPosition: c, direction: d } = o;\n return d === it.RIGHT ? (o.startPos = {\n x: l,\n y: c + o.textOffsetY\n }, o.endPos = {\n x: l + Z.callout.offsetX,\n y: c - Z.callout.offsetY + o.textOffsetY\n }, o.intersectPointX = o.endPos.x - Z.callout.horizontalLineLength) : (o.startPos = {\n x: l,\n y: c + o.textOffsetY\n }, o.endPos = {\n x: l - Z.callout.offsetX,\n y: c - Z.callout.offsetY + o.textOffsetY\n }, o.intersectPointX = o.endPos.x + Z.callout.horizontalLineLength), o;\n }), n.append(\"line\").classed(\"vertical-line\", !0).merge(t.selectAll(\"line.vertical-line\")).datum(function() {\n return x(this.parentNode).datum();\n }).style(\"stroke-width\", \"1px\").attr(\"x1\", (o) => o.startPos.x).attr(\"y1\", (o) => o.startPos.y).attr(\"x2\", (o) => o.intersectPointX).attr(\"y2\", (o) => o.endPos.y), n.append(\"line\").classed(\"horizontal-line\", !0).merge(t.selectAll(\"line.horizontal-line\")).datum(function() {\n return x(this.parentNode).datum();\n }).style(\"stroke-width\", \"1px\").attr(\"x1\", (o) => o.intersectPointX).attr(\"y1\", (o) => o.endPos.y).attr(\"x2\", (o) => o.endPos.x).attr(\"y2\", (o) => o.endPos.y);\n }\n addEventListeners() {\n const e = this;\n this.parent.selectAll(\"path.slice\").on(\"mouseover\", function(t, s) {\n const n = x(this);\n n.classed(\"hovered\", !0).transition(\"pie_slice_mouseover\").call(\n (o) => e.services.transitions.setupTransition({\n transition: o,\n name: \"pie_slice_mouseover\"\n })\n ).attr(\"d\", e.hoverArc), e.services.events.dispatchEvent(f.Pie.SLICE_MOUSEOVER, {\n event: t,\n element: x(this),\n datum: s\n });\n const { groupMapsTo: a } = e.getOptions().data, { valueMapsTo: i } = e.getOptions().pie;\n e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: t,\n hoveredElement: n,\n items: [\n {\n label: s.data[a],\n value: s.data[i]\n }\n ]\n });\n }).on(\"mousemove\", function(t, s) {\n const n = x(this);\n e.services.events.dispatchEvent(f.Pie.SLICE_MOUSEMOVE, {\n event: t,\n element: n,\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: t\n });\n }).on(\"click\", function(t, s) {\n e.services.events.dispatchEvent(f.Pie.SLICE_CLICK, {\n event: t,\n element: x(this),\n datum: s\n });\n }).on(\"mouseout\", function(t, s) {\n const n = x(this);\n n.classed(\"hovered\", !1).transition(\"pie_slice_mouseout\").call(\n (a) => e.services.transitions.setupTransition({\n transition: a,\n name: \"pie_slice_mouseout\"\n })\n ).attr(\"d\", e.arc), e.services.events.dispatchEvent(f.Pie.SLICE_MOUSEOUT, {\n event: t,\n element: n,\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: n\n });\n });\n }\n // Helper functions\n computeRadius() {\n const { width: e, height: t } = E.getSVGElementSize(this.parent, {\n useAttrs: !0\n }), s = this.getOptions(), n = Math.min(e, t) / 2;\n return s.pie.labels.enabled ? n + Z.radiusOffset : n;\n }\n}\nclass _c extends br {\n constructor() {\n super(...arguments), this.type = \"donut\", this.renderType = H.SVG;\n }\n render(e = !0) {\n super.render(e);\n const t = this;\n if (this.model.isDataEmpty()) {\n this.getComponentContainer().select(\"g.center\").remove();\n return;\n }\n const s = E.appendOrSelect(this.getComponentContainer(), \"g.center\"), n = this.getOptions(), a = this.computeRadius(), i = y(n, \"donut\", \"center\", \"label\");\n E.appendOrSelect(s, \"text.donut-figure\").attr(\"text-anchor\", \"middle\").style(\"dominant-baseline\", () => i === null || i === \"\" ? \"central\" : \"initial\").style(\"font-size\", () => n.donut.center.numberFontSize(a)).transition().call(\n (o) => this.services.transitions.setupTransition({\n transition: o,\n name: \"donut-figure-enter-update\",\n animate: e\n })\n ).tween(\"text\", function() {\n return t.centerNumberTween(x(this));\n }), i !== null && i !== \"\" && E.appendOrSelect(s, \"text.donut-title\").attr(\"text-anchor\", \"middle\").style(\"font-size\", () => n.donut.center.titleFontSize(a)).attr(\"y\", n.donut.center.titleYPosition(a)).text(i);\n }\n getInnerRadius() {\n return this.computeRadius() * (3 / 4);\n }\n centerNumberTween(e) {\n const t = this.getOptions();\n let s = y(t, \"donut\", \"center\", \"number\");\n s === null && (s = this.model.getDisplayData().reduce((o, l) => o + l[t.pie.valueMapsTo], 0));\n const n = parseInt(e.text().replace(/[, ]+/g, \"\"), 10) || 0;\n let a;\n n % 1 === 0 && s % 1 === 0 ? a = sn : a = vs;\n const i = a(n, s);\n return (o) => {\n const { numberFormatter: l } = t.donut.center;\n e.text(l(i(o)));\n };\n }\n}\nconst hs = \"4,10 8,6 12,10\", us = \"12,6 8,10 4,6\";\nclass Pc extends z {\n constructor() {\n super(...arguments), this.type = \"gauge\", this.renderType = H.SVG;\n }\n getValue() {\n var s;\n return ((s = this.model.getData().find((n) => n.group === \"value\")) == null ? void 0 : s.value) ?? null;\n }\n getValueRatio() {\n return Gs(this.getValue(), 0, 100) / 100;\n }\n getDelta() {\n var s;\n return ((s = this.model.getData().find((n) => n.group === \"delta\")) == null ? void 0 : s.value) ?? null;\n }\n getArcRatio() {\n const e = this.getOptions();\n return y(e, \"gauge\", \"type\") === He.FULL ? 1 : 0.5;\n }\n getArcSize() {\n return this.getArcRatio() * Math.PI * 2;\n }\n getStartAngle() {\n const e = this.getArcSize();\n return e === 2 * Math.PI ? 0 : -e / 2;\n }\n // use provided arrow direction or default to using the delta\n getArrow(e) {\n const t = this.getOptions();\n switch (y(t, \"gauge\", \"deltaArrow\", \"direction\")) {\n case jt.UP:\n return hs;\n case jt.DOWN:\n return us;\n default:\n return e > 0 ? hs : us;\n }\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = this.getComponentContainer().attr(\"width\", \"100%\").attr(\"height\", \"100%\"), s = this.getOptions(), n = this.getValue(), a = this.getValueRatio(), i = this.getArcSize(), o = this.getStartAngle(), l = a * i, c = o + l, d = o + i, p = this.computeRadius(), h = this.getInnerRadius();\n this.backgroundArc = Be().innerRadius(h).outerRadius(p).startAngle(c).endAngle(d), this.arc = Be().innerRadius(h).outerRadius(p).startAngle(o).endAngle(c), E.appendOrSelect(t, \"path.arc-background\").attr(\"d\", this.backgroundArc);\n const u = t.selectAll(\"path.arc-foreground\").data([n]);\n u.enter().append(\"path\").merge(u).attr(\n \"class\",\n this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: \"value\",\n originalClassName: \"arc-foreground\"\n })\n ).style(\"fill\", () => y(this.getOptions(), \"color\", \"scale\", \"value\")).attr(\"d\", this.arc).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"value\").attr(\"aria-label\", (S) => S), this.drawValueNumber(), this.drawDelta(), u.exit().remove();\n const m = y(s, \"gauge\", \"alignment\"), { width: b } = E.getSVGElementSize(this.getParent(), {\n useAttrs: !0\n });\n let v = p;\n m === ue.CENTER ? v = b / 2 : m === ue.RIGHT && (v = b - p), t.attr(\"x\", v).attr(\"y\", p), this.addEventListeners();\n }\n /**\n * draws the value number associated with the Gauge component in the center\n */\n drawValueNumber() {\n const e = this.getComponentContainer(), t = this.getOptions(), s = y(t, \"gauge\", \"type\"), n = this.getValue(), a = this.getDelta(), i = this.computeRadius(), o = y(t, \"gauge\", \"valueFontSize\"), l = y(t, \"gauge\", \"deltaFontSize\"), c = y(t, \"gauge\", \"numberSpacing\"), d = y(t, \"gauge\", \"showPercentageSymbol\");\n let p = 0;\n s === He.FULL && !a ? p = l(i) : s === He.SEMI && a && (p = -(l(i) + c));\n const h = E.appendOrSelect(e, \"g.gauge-numbers\").attr(\n \"transform\",\n `translate(0, ${p})`\n ), u = o(i), g = E.appendOrSelect(h, \"g.gauge-value-number\"), m = y(t, \"gauge\", \"numberFormatter\"), b = g.selectAll(\"text.gauge-value-number\").data([n]);\n b.enter().append(\"text\").attr(\"class\", \"gauge-value-number\").merge(b).style(\"font-size\", `${u}px`).attr(\"text-anchor\", \"middle\").text((k) => m(k));\n const { width: v } = E.getSVGElementSize(\n E.appendOrSelect(e, \"text.gauge-value-number\"),\n { useBBox: !0 }\n ), S = u / 2, O = d ? \"%\" : \"\", L = E.appendOrSelect(g, \"text.gauge-value-symbol\").style(\"font-size\", `${S}px`).attr(\"x\", v / 2).text(O), { width: w, height: T } = E.getSVGElementSize(L, {\n useBBox: !0\n });\n L.attr(\"y\", `-${T / 2}px`), g.attr(\"transform\", `translate(-${w / 2}, 0)`);\n }\n /**\n * adds the delta number for the gauge\n */\n drawDelta() {\n const e = this, t = this.getComponentContainer(), s = this.getOptions(), n = this.getDelta();\n if (n) {\n const a = this.computeRadius(), i = n ? y(s, \"gauge\", \"deltaFontSize\") : () => 0, o = n ? y(s, \"gauge\", \"numberFormatter\") : () => null, l = y(s, \"gauge\", \"deltaArrow\", \"size\"), c = y(s, \"gauge\", \"numberSpacing\"), d = y(s, \"gauge\", \"showPercentageSymbol\"), p = E.appendOrSelect(t, \"g.gauge-numbers\"), h = E.appendOrSelect(p, \"g.gauge-delta\").attr(\n \"transform\",\n `translate(0, ${i(a) + c})`\n ), u = E.appendOrSelect(h, \"text.gauge-delta-number\"), g = d ? \"%\" : \"\";\n u.data(n === null ? [] : [n]), u.enter().append(\"text\").classed(\"gauge-delta-number\", !0).merge(u).attr(\"text-anchor\", \"middle\").style(\"font-size\", `${i(a)}px`).text((S) => `${o(S)}${g}`);\n const { width: m } = E.getSVGElementSize(\n E.appendOrSelect(t, \".gauge-delta-number\"),\n { useBBox: !0 }\n ), b = y(s, \"gauge\", \"deltaArrow\", \"enabled\"), v = h.selectAll(\"svg.gauge-delta-arrow\").data(n !== null && b ? [n] : []);\n v.enter().append(\"svg\").merge(v).attr(\"class\", \"gauge-delta-arrow\").attr(\"x\", -l(a) - m / 2).attr(\"y\", -l(a) / 2 - i(a) * 0.35).attr(\"width\", l(a)).attr(\"height\", l(a)).attr(\"viewBox\", \"0 0 16 16\").each(function() {\n const S = x(this);\n E.appendOrSelect(S, \"rect.gauge-delta-arrow-backdrop\").attr(\"width\", \"16\").attr(\"height\", \"16\").attr(\"fill\", \"none\");\n const O = y(s, \"gauge\", \"status\");\n E.appendOrSelect(S, \"polygon.gauge-delta-arrow\").attr(\"class\", O !== null ? `gauge-delta-arrow status--${O}` : \"\").attr(\"points\", e.getArrow(n));\n }), v.exit().remove(), u.exit().remove();\n } else {\n const a = t.select(\"g.gauge-delta\");\n a.empty() || a.remove();\n }\n }\n getInnerRadius() {\n const e = this.computeRadius(), t = y(this.getOptions(), \"gauge\", \"arcWidth\");\n return e - t;\n }\n addEventListeners() {\n const e = this;\n this.parent.selectAll(\"path.arc-foreground\").on(\"mouseover\", function(t, s) {\n e.services.events.dispatchEvent(f.Gauge.ARC_MOUSEOVER, {\n event: t,\n element: x(this),\n datum: s\n });\n }).on(\"mousemove\", function(t, s) {\n const n = x(this);\n e.services.events.dispatchEvent(f.Gauge.ARC_MOUSEMOVE, {\n event: t,\n element: n,\n datum: s\n });\n }).on(\"click\", function(t, s) {\n e.services.events.dispatchEvent(f.Gauge.ARC_CLICK, {\n event: t,\n element: x(this),\n datum: s\n });\n }).on(\"mouseout\", function(t, s) {\n const n = x(this);\n e.services.events.dispatchEvent(f.Gauge.ARC_MOUSEOUT, {\n event: t,\n element: n,\n datum: s\n });\n });\n }\n // Helper functions\n computeRadius() {\n const e = this.getOptions(), t = y(e, \"gauge\", \"type\"), { width: s, height: n } = E.getSVGElementSize(this.parent, {\n useAttrs: !0\n });\n return t === He.SEMI ? Math.min(s / 2, n) : Math.min(s / 2, n / 2);\n }\n}\nclass Vc extends $t {\n constructor() {\n super(...arguments), this.type = \"grouped-bar\", this.renderType = H.SVG, this.padding = 5, this.defaultStepFactor = 70, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail, { groupMapsTo: s } = this.getOptions().data;\n this.parent.selectAll(\"path.bar\").transition(\"legend-hover-bar\").call(\n (n) => this.services.transitions.setupTransition({\n transition: n,\n name: \"legend-hover-bar\"\n })\n ).attr(\"opacity\", (n) => n[s] !== t.datum().name ? 0.3 : 1);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"path.bar\").transition(\"legend-mouseout-bar\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-bar\"\n })\n ).attr(\"opacity\", 1);\n };\n }\n init() {\n const e = this.services.events;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e) {\n const t = this.model.getDisplayData(this.configs.groups), s = this.getOptions(), { groupMapsTo: n } = s.data;\n this.setGroupScale();\n const a = this.getComponentContainer({ withinChartClip: !0 }), i = In(\n t.map((h) => {\n const u = this.services.cartesianScales.getDomainIdentifier(h);\n return h[u] && typeof h[u].toString == \"function\" ? h[u].toString() : h[u];\n })\n ), o = a.selectAll(\"g.bars\").data(i, (h) => h);\n o.exit().attr(\"opacity\", 0).remove();\n const c = o.enter().append(\"g\").classed(\"bars\", !0).attr(\"role\", U.GROUP).attr(\"data-name\", \"bars\").merge(o);\n c.transition().call(\n (h) => this.services.transitions.setupTransition({\n transition: h,\n name: \"bar-group-update-enter\",\n animate: e\n })\n ).attr(\"transform\", (h) => {\n const g = this.services.cartesianScales.getDomainValue(h) - this.getGroupWidth() / 2;\n return this.services.cartesianScales.getOrientation() === le.VERTICAL ? `translate(${g}, 0)` : `translate(0, ${g})`;\n });\n const d = c.selectAll(\"path.bar\").data(\n (h) => this.getDataCorrespondingToLabel(h),\n (h) => h[n]\n );\n d.exit().attr(\"opacity\", 0).remove(), d.enter().append(\"path\").attr(\"opacity\", 0).merge(d).classed(\"bar\", !0).transition().call(\n (h) => this.services.transitions.setupTransition({\n transition: h,\n name: \"bar-update-enter\",\n animate: e\n })\n ).attr(\n \"class\",\n (h) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: h[n],\n originalClassName: \"bar\"\n })\n ).style(\"fill\", (h) => this.model.getFillColor(h[n])).attr(\"d\", (h) => {\n const u = this.groupScale(h[n]), g = this.getBarWidth(), m = u, b = u + g, v = this.services.cartesianScales.getRangeAxisPosition({ datum: h }), S = this.services.cartesianScales.getValueThroughAxisPosition(v, 0), O = this.services.cartesianScales.getRangeValue(h), L = this.services.cartesianScales.getDomainValue(h) - g / 2, w = L + g;\n if (!this.isOutsideZoomedDomain(L, w))\n return ie(\n { x0: m, x1: b, y0: S, y1: O },\n this.services.cartesianScales.getOrientation()\n );\n }).attr(\"opacity\", 1).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"bar\").attr(\"aria-label\", (h) => h.value), this.addEventListeners();\n }\n addEventListeners() {\n const e = this;\n this.parent.selectAll(\"path.bar\").on(\"mouseover\", function(t, s) {\n const n = x(this);\n n.classed(\"hovered\", !0), e.services.events.dispatchEvent(f.Bar.BAR_MOUSEOVER, {\n event: t,\n element: n,\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: t,\n hoveredElement: n,\n data: [s]\n });\n }).on(\"mousemove\", function(t, s) {\n const n = x(this);\n e.services.events.dispatchEvent(f.Bar.BAR_MOUSEMOVE, {\n event: t,\n element: n,\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: t\n });\n }).on(\"click\", function(t, s) {\n e.services.events.dispatchEvent(f.Bar.BAR_CLICK, {\n event: t,\n element: x(this),\n datum: s\n });\n }).on(\"mouseout\", function(t, s) {\n const n = x(this);\n n.classed(\"hovered\", !1), e.services.events.dispatchEvent(f.Bar.BAR_MOUSEOUT, {\n event: t,\n element: n,\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: n\n });\n });\n }\n destroy() {\n this.parent.selectAll(\"path.bar\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"mouseout\", null);\n const e = this.services.events;\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n getDataCorrespondingToLabel(e) {\n return this.model.getDisplayData(this.configs.groups).filter((s) => {\n const n = this.services.cartesianScales.getDomainIdentifier(s);\n return s[n].toString() === e;\n });\n }\n getGroupWidth() {\n const e = this.model.getGroupedData(this.configs.groups), t = this.getTotalGroupPadding();\n return this.getBarWidth() * e.length + t;\n }\n getDomainScaleStep() {\n const e = this.services.cartesianScales.getDomainScale(), t = this.model.getGroupedData(this.configs.groups);\n let s = this.defaultStepFactor;\n if (typeof e.step == \"function\")\n s = e.step();\n else if (t.length > 0) {\n const n = t.find((a) => {\n var i;\n return ((i = a.data) == null ? void 0 : i.length) > 1;\n });\n if (n) {\n const a = this.services.cartesianScales.getDomainIdentifier(n.data[0]);\n s = Math.abs(\n e(n.data[1][a]) - e(n.data[0][a])\n );\n }\n }\n return s;\n }\n getTotalGroupPadding() {\n const e = this.model.getGroupedData(this.configs.groups);\n return e.length === 1 ? 0 : Math.min(5, 5 * (this.getDomainScaleStep() / this.defaultStepFactor)) * (e.length - 1);\n }\n // Gets the correct width for bars based on options & configurations\n getBarWidth() {\n const e = this.getOptions(), t = y(e, \"bars\", \"width\"), s = y(e, \"bars\", \"maxWidth\");\n if (t !== null && (s === null || t <= s))\n return t;\n const a = this.model.getGroupedData(this.configs.groups).length, i = this.getTotalGroupPadding();\n return Math.min(\n s,\n (this.getDomainScaleStep() - i) / a\n );\n }\n setGroupScale() {\n const e = this.model.getActiveDataGroupNames(this.configs.groups);\n this.groupScale = _t().domain(e).rangeRound([0, this.getGroupWidth()]);\n }\n}\nclass Bc extends z {\n constructor() {\n super(...arguments), this.type = \"heatmap\", this.renderType = H.SVG, this.matrix = {}, this.xBandwidth = 0, this.yBandwidth = 0, this.translationUnits = {\n x: 0,\n y: 0\n }, this.handleAxisOnHover = (e) => {\n const { detail: t } = e, { datum: s } = t, n = this.model.getUniqueRanges(), a = this.model.getUniqueDomain(), i = this.services.cartesianScales.getDomainLabel(), o = this.services.cartesianScales.getRangeLabel(), l = this.services.cartesianScales.getMainXScale(), c = this.services.cartesianScales.getMainYScale();\n let d = \"\", p = null, h = null, u = null;\n this.matrix[s] !== void 0 ? (d = i, n.forEach((g) => {\n if (typeof this.matrix[s][g].value == \"number\") {\n const m = this.matrix[s][g].value;\n if (p === null) {\n p = m, h = m, u = m;\n return;\n }\n p += m, h = m < h ? m : h, u = m > u ? m : u;\n }\n })) : (d = o, a.forEach((g) => {\n if (typeof this.matrix[g][s].value == \"number\") {\n const m = this.matrix[g][s].value;\n if (p === null) {\n p = m, h = m, u = m;\n return;\n }\n p += m, h = m < h ? m : h, u = m > u ? m : u;\n }\n })), l(s) !== void 0 ? this.parent.select(\"g.multi-cell.column-highlight\").classed(\"highlighter-hidden\", !1).attr(\"transform\", `translate(${l(s)}, ${dt(c.range())})`) : c(s) !== void 0 && this.parent.select(\"g.multi-cell.row-highlight\").classed(\"highlighter-hidden\", !1).attr(\"transform\", `translate(${dt(l.range())},${c(s)})`), this.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: t.event,\n hoveredElement: x(e.detail.element),\n items: [\n {\n label: d,\n value: s,\n bold: !0\n },\n {\n label: \"Min\",\n value: h !== null ? h : \"-\"\n },\n {\n label: \"Max\",\n value: u !== null ? u : \"-\"\n },\n {\n label: \"Average\",\n value: p !== null ? p / a.length : \"-\"\n }\n ]\n });\n }, this.handleAxisMouseOut = (e) => {\n this.parent.selectAll(\"g.multi-cell\").classed(\"highlighter-hidden\", !0), this.services.events.dispatchEvent(f.Tooltip.HIDE, {\n event: e\n });\n };\n }\n init() {\n const e = this.services.events;\n e.addEventListener(f.Axis.LABEL_MOUSEOVER, this.handleAxisOnHover), e.addEventListener(f.Axis.LABEL_MOUSEOUT, this.handleAxisMouseOut), e.addEventListener(f.Axis.LABEL_FOCUS, this.handleAxisOnHover), e.addEventListener(f.Axis.LABEL_BLUR, this.handleAxisMouseOut);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = this.getComponentContainer({ withinChartClip: !0 });\n t.lower();\n const { cartesianScales: s } = this.services;\n if (this.matrix = this.model.getMatrix(), t.html(\"\"), y(this.getOptions(), \"data\", \"loading\"))\n return;\n const n = s.getMainXScale(), a = s.getMainYScale(), i = s.getDomainIdentifier(), o = s.getRangeIdentifier(), l = this.model.getUniqueDomain(), c = this.model.getUniqueRanges(), d = this.model.getMatrixAsArray(), p = n.range(), h = a.range();\n this.xBandwidth = Math.abs((p[1] - p[0]) / l.length), this.yBandwidth = Math.abs((h[1] - h[0]) / c.length);\n const u = this.services.domUtils.generateElementIDString(\"heatmap-pattern-stripes\");\n t.append(\"defs\").append(\"pattern\").attr(\"id\", u).attr(\"width\", 3).attr(\"height\", 3).attr(\"patternUnits\", \"userSpaceOnUse\").attr(\"patternTransform\", \"rotate(45)\").append(\"rect\").classed(\"pattern-fill\", !0).attr(\"width\", 0.5).attr(\"height\", 8);\n const g = t.selectAll().data(d).enter().append(\"g\").attr(\"class\", (m) => `heat-${m.index}`).classed(\"cell\", !0).attr(\n \"transform\",\n (m) => `translate(${n(m[i])}, ${a(m[o])})`\n ).append(\"rect\").attr(\n \"class\",\n (m) => this.model.getColorClassName({\n value: m.value,\n originalClassName: `heat-${m.index}`\n })\n ).classed(\"heat\", !0).classed(\"null-state\", (m) => m.index === -1 || m.value === null).attr(\"width\", this.xBandwidth).attr(\"height\", this.yBandwidth).style(\"fill\", (m) => m.index === -1 || m.value === null ? `url(#${u})` : this.model.getFillColor(Number(m.value))).attr(\"aria-label\", (m) => m.value);\n this.createOuterBox(\"g.cell-highlight\", this.xBandwidth, this.yBandwidth), this.createOuterBox(\n \"g.multi-cell.column-highlight\",\n this.xBandwidth,\n Math.abs(h[1] - h[0])\n ), this.createOuterBox(\n \"g.multi-cell.row-highlight\",\n Math.abs(p[1] - p[0]),\n this.yBandwidth\n ), this.determineDividerStatus() && (g.style(\"stroke-width\", \"1px\"), this.parent.select(\"g.cell-highlight\").classed(\"cell-2\", !0)), this.addEventListener();\n }\n /**\n * Generates a box using lines to create a hover effect\n * The lines have drop shadow in their respective direction\n * @param parentTag - tag name\n * @param xBandwidth - X length\n * @param yBandwidth - y length\n */\n createOuterBox(e, t, s) {\n const n = E.appendOrSelect(this.parent, e).classed(\"shadows\", !0).classed(\"highlighter-hidden\", !0);\n E.appendOrSelect(n, \"line.top\").attr(\"x1\", -1).attr(\"x2\", t + 1), E.appendOrSelect(n, \"line.left\").attr(\"x1\", 0).attr(\"y1\", -1).attr(\"x2\", 0).attr(\"y2\", s + 1), E.appendOrSelect(n, \"line.down\").attr(\"x1\", -1).attr(\"x2\", t + 1).attr(\"y1\", s).attr(\"y2\", s), E.appendOrSelect(n, \"line.right\").attr(\"x1\", t).attr(\"x2\", t).attr(\"y1\", -1).attr(\"y2\", s + 1);\n }\n determineDividerStatus() {\n const e = y(this.getOptions(), \"heatmap\", \"divider\", \"state\");\n return e !== rt.OFF && (e === rt.AUTO && Ft.minCellDividerDimension <= this.xBandwidth && Ft.minCellDividerDimension <= this.yBandwidth || e === rt.ON);\n }\n addEventListener() {\n const e = this, { cartesianScales: t } = this.services, s = this.getOptions(), n = Q(s, \"tooltip.totalLabel\"), a = t.getDomainIdentifier(), i = t.getRangeIdentifier(), o = t.getDomainLabel(), l = t.getRangeLabel();\n this.parent.selectAll(\"g.cell\").on(\"mouseover\", function(c, d) {\n const p = x(this), h = p.select(\"rect.heat\");\n if (!h.classed(\"null-state\")) {\n const g = Pe(p.attr(\"transform\"));\n e.parent.select(\"g.cell-highlight\").attr(\n \"transform\",\n `translate(${g.x + e.translationUnits.x}, ${g.y + e.translationUnits.y})`\n ).classed(\"highlighter-hidden\", !1), e.services.events.dispatchEvent(f.Heatmap.HEATMAP_MOUSEOVER, {\n event: c,\n element: h,\n datum: d\n }), e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: c,\n items: [\n {\n label: o,\n value: d[a]\n },\n {\n label: l,\n value: d[i]\n },\n {\n label: n || \"Total\",\n value: d.value,\n color: h.style(\"fill\")\n }\n ]\n });\n }\n }).on(\"mousemove\", function(c, d) {\n e.services.events.dispatchEvent(f.Heatmap.HEATMAP_MOUSEMOVE, {\n event: c,\n element: x(this),\n datum: d\n }), e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: c\n });\n }).on(\"click\", function(c, d) {\n e.services.events.dispatchEvent(f.Heatmap.HEATMAP_CLICK, {\n event: c,\n element: x(this),\n datum: d\n });\n }).on(\"mouseout\", function(c, d) {\n const h = x(this).select(\"rect.heat\"), u = h.classed(\"null-state\");\n e.parent.select(\"g.cell-highlight\").classed(\"highlighter-hidden\", !0), u || (e.services.events.dispatchEvent(f.Heatmap.HEATMAP_MOUSEOUT, {\n event: c,\n element: h,\n datum: d\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n event: c,\n hoveredElement: h\n }));\n });\n }\n // Remove event listeners\n destroy() {\n this.parent.selectAll(\"rect.heat\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"click\", null).on(\"mouseout\", null);\n const e = this.services.events;\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleAxisOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleAxisMouseOut);\n }\n}\nclass $c extends z {\n constructor() {\n super(...arguments), this.type = \"histogram\", this.renderType = H.SVG, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail, s = this.getOptions(), { groupMapsTo: n } = s.data;\n this.parent.selectAll(\"path.bar\").transition(\"legend-hover-bar\").call(\n (a) => this.services.transitions.setupTransition({\n transition: a,\n name: \"legend-hover-bar\"\n })\n ).attr(\"opacity\", (a) => a[n] !== t.datum().name ? 0.3 : 1);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"path.bar\").transition(\"legend-mouseout-bar\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-bar\"\n })\n ).attr(\"opacity\", 1);\n };\n }\n init() {\n const e = this.services.events;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e) {\n const t = this.getComponentContainer(), s = this.model.getOptions(), { groupIdentifier: n } = s, { groupMapsTo: a } = s.data, i = this.model.getBinnedStackedData(), o = this.services.cartesianScales.getMainXScale(), l = t.selectAll(\"g.bars\").data(i, (d) => Q(d, `0.${a}`));\n l.exit().attr(\"opacity\", 0).remove(), l.enter().append(\"g\").classed(\"bars\", !0).attr(\"role\", U.GROUP);\n const c = t.selectAll(\"g.bars\").selectAll(\"path.bar\").data((d) => d);\n c.exit().remove(), c.enter().append(\"path\").merge(c).classed(\"bar\", !0).attr(n, (d, p) => p).transition().call(\n (d) => this.services.transitions.setupTransition({\n transition: d,\n name: \"histogram-bar-update-enter\",\n animate: e\n })\n ).attr(\n \"class\",\n (d) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: d[a],\n originalClassName: \"bar\"\n })\n ).style(\"fill\", (d) => this.model.getFillColor(d[a])).attr(\"d\", (d) => {\n const p = Q(d, \"data\");\n if (!p)\n return;\n const h = o(p.x1) - o(p.x0) - 1, u = this.services.cartesianScales.getDomainValue(p.x0), g = u + h, m = this.services.cartesianScales.getRangeValue(d[0]);\n let b = this.services.cartesianScales.getRangeValue(d[1]);\n return Math.abs(b - m) > 0 && Math.abs(b - m) > s.bars.dividerSize && (this.services.cartesianScales.getOrientation() === le.VERTICAL ? b += 1 : b -= 1), ie(\n { x0: u, x1: g, y0: m, y1: b },\n this.services.cartesianScales.getOrientation()\n );\n }).attr(\"opacity\", 1).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"bar\").attr(\"aria-label\", (d) => y(d, \"data\", d[a])), this.addEventListeners();\n }\n addEventListeners() {\n const e = this.model.getOptions(), { groupMapsTo: t } = e.data, s = this;\n this.parent.selectAll(\"path.bar\").on(\"mouseover\", function(n, a) {\n const i = x(this);\n i.classed(\"hovered\", !0);\n const o = parseFloat(Q(a, \"data.x0\")), l = parseFloat(Q(a, \"data.x1\")), c = s.services.cartesianScales.getRangeAxisPosition(), d = s.services.cartesianScales.getScaleLabel(c);\n s.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: n,\n hoveredElement: i,\n items: [\n {\n label: Q(e, \"bins.rangeLabel\") || \"Range\",\n value: `${o} – ${l}`\n },\n {\n label: e.tooltip.groupLabel || \"Group\",\n value: a[t],\n class: s.model.getColorClassName({\n classNameTypes: [$.TOOLTIP],\n dataGroupName: a[t]\n })\n },\n {\n label: d,\n value: Q(a, `data.${a[t]}`)\n }\n ]\n });\n }).on(\"mousemove\", function(n) {\n s.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: n\n });\n }).on(\"mouseout\", function() {\n x(this).classed(\"hovered\", !1), s.services.events.dispatchEvent(f.Tooltip.HIDE);\n });\n }\n destroy() {\n this.parent.selectAll(\"path.bar\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"mouseout\", null);\n const e = this.services.events;\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n}\nclass Gc extends Vt {\n constructor() {\n super(...arguments), this.type = \"lollipop\", this.renderType = H.SVG, this.handleScatterOnHover = (e) => {\n const t = e.detail, s = this.getOptions(), { groupMapsTo: n } = s.data;\n this.parent.selectAll(\"line.line\").attr(\"stroke-width\", (a) => a[n] !== t.datum[n] ? me.weight.unselected : me.weight.selected);\n }, this.handleScatterOnMouseOut = () => {\n this.parent.selectAll(\"line.line\").attr(\"stroke-width\", me.weight.unselected);\n }, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail, s = this.getOptions(), { groupMapsTo: n } = s.data;\n this.parent.selectAll(\"line.line\").transition(\"legend-hover-line\").call(\n (a) => this.services.transitions.setupTransition({\n transition: a,\n name: \"legend-hover-line\"\n })\n ).attr(\"opacity\", (a) => a[n] !== t.datum().name ? me.opacity.unselected : me.opacity.selected);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"line.line\").transition(\"legend-mouseout-line\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-line\"\n })\n ).attr(\"opacity\", me.opacity.selected);\n };\n }\n init() {\n const { events: e } = this.services;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e) {\n const t = this.getComponentContainer({ withinChartClip: !0 }), s = this.model.getOptions(), { groupMapsTo: n } = s.data, { cartesianScales: a } = this.services, i = a.getMainXScale(), o = a.getMainYScale(), l = a.getDomainIdentifier(), c = (v) => a.getDomainValue(v), d = (v) => a.getRangeValue(v), p = a.getOrientation(), [h, u] = ve(\n c,\n d,\n p\n ), g = t.selectAll(\"line.line\").data(\n this.getScatterData(),\n (v) => `${v[n]}-${v[l]}`\n );\n g.exit().attr(\"opacity\", 0).remove();\n const b = g.enter().append(\"line\").attr(\"opacity\", 0).merge(g).classed(\"line\", !0).attr(\n \"class\",\n (v) => this.model.getColorClassName({\n classNameTypes: [$.STROKE],\n dataGroupName: v[n],\n originalClassName: \"line\"\n })\n ).transition().call(\n (v) => this.services.transitions.setupTransition({\n transition: v,\n name: \"lollipop-line-update-enter\",\n animate: e\n })\n ).style(\"stroke\", (v) => this.model.getFillColor(v[n], v[l], v)).attr(\"opacity\", 1);\n p === le.HORIZONTAL ? b.attr(\"y1\", u).attr(\"y2\", u).attr(\"x1\", i.range()[0]).attr(\"x2\", (v) => h(v) - s.points.radius) : b.attr(\"x1\", h).attr(\"x2\", h).attr(\"y1\", o.range()[0]).attr(\"y2\", (v) => u(v) + s.points.radius), this.addScatterPointEventListeners();\n }\n // listen for when individual datapoints are hovered\n addScatterPointEventListeners() {\n this.services.events.addEventListener(\n f.Scatter.SCATTER_MOUSEOVER,\n this.handleScatterOnHover\n ), this.services.events.addEventListener(\n f.Scatter.SCATTER_MOUSEOUT,\n this.handleScatterOnMouseOut\n );\n }\n destroy() {\n const e = this.services.events;\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut), e.removeEventListener(f.Scatter.SCATTER_MOUSEOVER, this.handleScatterOnHover), e.removeEventListener(\n f.Scatter.SCATTER_MOUSEOUT,\n this.handleScatterOnMouseOut\n );\n }\n}\nclass Nc extends z {\n constructor() {\n super(...arguments), this.type = \"meter\", this.renderType = H.SVG;\n }\n getStackedBounds(e, t) {\n let s = 0;\n return e.map((a, i) => i !== 0 ? (s += t(a.value), {\n ...a,\n width: Math.abs(t(a.value) - se.dividerWidth),\n x: s - t(a.value)\n }) : (s = t(a.value), {\n ...a,\n width: Math.abs(t(a.value) - se.dividerWidth),\n x: 0\n }));\n }\n render(e = !0) {\n const t = this, s = this.getComponentContainer(), n = this.getOptions(), a = y(n, \"meter\", \"proportional\"), i = this.model.getDisplayData(), o = this.model.getStatus(), { width: l } = E.getSVGElementSize(s, {\n useAttrs: !0\n }), { groupMapsTo: c } = n.data;\n let d;\n if (y(n, \"meter\", \"proportional\") === null)\n d = 100;\n else {\n const O = y(n, \"meter\", \"proportional\", \"total\");\n d = O || this.model.getMaximumDomain(this.model.getDisplayData());\n }\n const p = Oe().domain([0, d]).range([0, l]), h = this.getStackedBounds(i, p), u = y(n, \"meter\", \"height\");\n E.appendOrSelect(s, \"rect.container\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", l).attr(\n \"height\",\n u || (a ? se.height.proportional : se.height.default)\n ), E.appendOrSelect(s, \"line.rangeIndicator\").attr(\"x1\", l).attr(\"x2\", l).attr(\"y1\", 0).attr(\n \"y2\",\n u || (a ? se.height.proportional : se.height.default)\n );\n const g = s.selectAll(\"rect.value\").data(h), m = o != null && !t.model.isUserProvidedColorScaleValid() && !a ? `value status--${o}` : \"value\";\n g.enter().append(\"rect\").classed(\"value\", !0).merge(g).attr(\"x\", (O) => O.x).attr(\"y\", 0).attr(\"height\", () => {\n const O = y(n, \"meter\", \"height\");\n return O || (a ? se.height.proportional : se.height.default);\n }).attr(\n \"class\",\n (O) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: O[c],\n originalClassName: m\n })\n ).transition().call(\n (O) => this.services.transitions.setupTransition({\n transition: O,\n name: \"meter-bar-update\",\n animate: e\n })\n ).attr(\"width\", (O) => O.value > d ? p(d) : O.width).style(\"fill\", (O) => t.model.getFillColor(O[c])).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"value\").attr(\"aria-label\", (O) => O.value), g.exit().remove();\n const b = y(n, \"meter\", \"peak\");\n let v = b;\n b !== null && (b > d ? v = d : b < i[0].value && (v = i[0].value > d ? d : i[0].value));\n const S = s.selectAll(\"line.peak\").data(v == null ? [] : [v]);\n S.enter().append(\"line\").classed(\"peak\", !0).merge(S).attr(\"y1\", 0).attr(\"y2\", () => {\n const O = y(n, \"meter\", \"height\");\n return O || (a ? se.height.proportional : se.height.default);\n }).transition().call(\n (O) => this.services.transitions.setupTransition({\n transition: O,\n name: \"peak-line-update\",\n animate: e\n })\n ).attr(\"x1\", (O) => p(O)).attr(\"x2\", (O) => p(O)).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"peak\").attr(\"aria-label\", (O) => O), S.exit().remove(), this.services.domUtils.setSVGMaxHeight(), this.addEventListeners();\n }\n // add event listeners for tooltips on proportional meter bars\n addEventListeners() {\n const e = this.getOptions(), { groupMapsTo: t } = e.data, s = this, n = y(e, \"meter\", \"proportional\");\n this.parent.selectAll(\"rect.value\").on(\"mouseover\", function(a, i) {\n const o = x(this);\n s.services.events.dispatchEvent(f.Meter.METER_MOUSEOVER, {\n event: a,\n element: o,\n datum: i\n }), n && (o.classed(\"hovered\", !0), s.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: a,\n hoveredElement: o,\n items: [\n {\n label: i[t],\n value: i.value\n }\n ]\n }));\n }).on(\"mousemove\", function(a, i) {\n const o = x(this);\n s.services.events.dispatchEvent(f.Meter.METER_MOUSEMOVE, {\n event: a,\n element: o,\n datum: i\n }), n && s.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: a\n });\n }).on(\"click\", function(a, i) {\n s.services.events.dispatchEvent(f.Meter.METER_CLICK, {\n event: a,\n element: x(this),\n datum: i\n });\n }).on(\"mouseout\", function(a, i) {\n const o = x(this);\n s.services.events.dispatchEvent(f.Meter.METER_MOUSEOUT, {\n event: a,\n element: o,\n datum: i\n }), n && (o.classed(\"hovered\", !1), s.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: o\n }));\n });\n }\n destroy() {\n this.parent.selectAll(\"rect.value\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"mouseout\", null).on(\"click\", null);\n }\n}\nclass Hc extends z {\n constructor() {\n super(...arguments), this.type = \"radar\", this.renderType = H.SVG, this.getLabelDimensions = (e) => {\n const t = E.appendOrSelect(this.getComponentContainer(), \"g.tmp-tick\"), s = E.appendOrSelect(t, \"text\").text(e), { width: n, height: a } = E.getSVGElementSize(s.node(), { useBBox: !0 });\n return t.remove(), { width: n, height: a };\n }, this.normalizeFlatData = (e) => {\n const t = this.getOptions(), { angle: s, value: n } = y(t, \"radar\", \"axes\"), a = y(t, \"data\", \"groupMapsTo\"), i = Ba(\n this.uniqueKeys.map((o) => this.uniqueGroups.map((l) => ({\n [s]: o,\n [a]: l,\n [n]: null\n })))\n );\n return Ie(i, e);\n }, this.normalizeGroupedData = (e) => {\n const t = this.getOptions(), { angle: s, value: n } = y(t, \"radar\", \"axes\"), a = y(t, \"data\", \"groupMapsTo\");\n return e.map(({ name: i, data: o }) => {\n const l = this.uniqueKeys.map((c) => ({\n [a]: i,\n [s]: c,\n [n]: null\n }));\n return { name: i, data: Ie(l, o) };\n });\n }, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail;\n this.parent.selectAll(\"g.blobs path\").transition(\"legend-hover-blob\").call(\n (s) => this.services.transitions.setupTransition({\n transition: s,\n name: \"legend-hover-blob\"\n })\n ).style(\"fill-opacity\", (s) => s.name !== t.datum().name ? Ee.opacity.unselected : Ee.opacity.selected).style(\"stroke-opacity\", (s) => s.name !== t.datum().name ? Ee.opacity.unselected : 1);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"g.blobs path\").transition(\"legend-mouseout-blob\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-blob\"\n })\n ).style(\"fill-opacity\", Ee.opacity.selected).style(\"stroke-opacity\", 1);\n };\n }\n init() {\n const { events: e } = this.services;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e = !0) {\n const t = this.getComponentContainer(), { width: s, height: n } = E.getSVGElementSize(t, {\n useAttrs: !0\n }), a = this.model.getData(), i = this.model.getGroupedData(), o = this.getOptions(), l = y(o, \"data\", \"groupMapsTo\"), c = y(o, \"radar\", \"axes\", \"value\"), { angle: d, value: p } = y(o, \"radar\", \"axes\"), { xLabelPadding: h, yLabelPadding: u, yTicksNumber: g, minRange: m, xAxisRectHeight: b } = Ee;\n this.uniqueKeys = Array.from(new Set(a.map((C) => C[d]))), this.uniqueGroups = Array.from(new Set(a.map((C) => C[l]))), this.fullDataNormalized = this.normalizeFlatData(a), this.groupedDataNormalized = this.normalizeGroupedData(i);\n const S = 2 * (this.getLabelDimensions(this.uniqueKeys[0]).height + u), w = (Math.min(s, n) - S) / 2;\n if (w <= 0)\n return;\n const T = _t().domain(this.fullDataNormalized.map((C) => C[d])).range([0, 2 * Math.PI].map((C) => C - Math.PI / 2)), k = dt(this.fullDataNormalized.map((C) => C[p])), _ = Oe().domain([\n k >= 0 ? 0 : k,\n Nt(this.fullDataNormalized.map((C) => C[p]))\n ]).range([m, w]).nice(g), F = _.ticks(g), V = (C) => this.model.getFillColor(C), A = nn().angle((C) => T(C[d]) + Math.PI / 2).radius((C) => _(C[p])).curve(an), M = this.uniqueKeys.map((C) => {\n const I = this.getLabelDimensions(C).width, R = Pn(\n T(C),\n w\n );\n return I + R;\n }), D = {\n x: Nt(M) + h,\n y: n / 2\n }, re = E.appendOrSelect(t, \"g.y-axes\").attr(\"role\", U.GROUP).selectAll(\"path\").data(F, (C) => C), W = (C) => this.uniqueKeys.map((I) => ({ [d]: I, [p]: C }));\n re.join(\n (C) => C.append(\"path\").attr(\"opacity\", 0).attr(\"transform\", `translate(${D.x}, ${D.y})`).attr(\"fill\", \"none\").call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_y_axes_enter\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\"d\", (R) => A(W(R)))\n ),\n (C) => C.call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_y_axes_update\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\"transform\", `translate(${D.x}, ${D.y})`).attr(\"d\", (R) => A(W(R)))\n ),\n (C) => C.call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_y_axes_exit\",\n animate: e\n })\n ).attr(\"d\", (R) => A(W(R))).attr(\"opacity\", 0).remove()\n )\n ), E.appendOrSelect(t, \"g.x-axes\").attr(\"role\", U.GROUP).selectAll(\"line\").data(this.uniqueKeys, (C) => C).join(\n (C) => C.append(\"line\").attr(\"opacity\", 0).attr(\"class\", (I) => `x-axis-${we(I)}`).attr(\"stroke-dasharray\", \"0\").attr(\"x1\", (I) => Y(T(I), 0, D).x).attr(\"y1\", (I) => Y(T(I), 0, D).y).attr(\"x2\", (I) => Y(T(I), 0, D).x).attr(\"y2\", (I) => Y(T(I), 0, D).y).call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_x_axes_enter\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\"x1\", (R) => Y(T(R), _.range()[0], D).x).attr(\"y1\", (R) => Y(T(R), _.range()[0], D).y).attr(\"x2\", (R) => Y(T(R), _.range()[1], D).x).attr(\"y2\", (R) => Y(T(R), _.range()[1], D).y)\n ),\n (C) => C.call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_x_axes_update\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\"x1\", (R) => Y(T(R), _.range()[0], D).x).attr(\"y1\", (R) => Y(T(R), _.range()[0], D).y).attr(\"x2\", (R) => Y(T(R), _.range()[1], D).x).attr(\"y2\", (R) => Y(T(R), _.range()[1], D).y)\n ),\n (C) => C.call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_x_axes_exit\",\n animate: e\n })\n ).attr(\"opacity\", 0).remove()\n )\n ), E.appendOrSelect(t, \"g.x-labels\").attr(\"role\", U.GROUP).selectAll(\"text\").data(this.uniqueKeys).join(\n (C) => C.append(\"text\").text((I) => I).attr(\"opacity\", 0).attr(\n \"x\",\n (I) => Y(T(I), _.range()[1] + h, D).x\n ).attr(\n \"y\",\n (I) => Y(T(I), _.range()[1] + h, D).y\n ).style(\"text-anchor\", (I) => Xt(T(I)).textAnchor).style(\n \"dominant-baseline\",\n (I) => Xt(T(I)).dominantBaseline\n ).call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_x_labels_enter\",\n animate: e\n })\n ).attr(\"opacity\", 1)\n ),\n (C) => C.call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_x_labels_update\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\n \"x\",\n (R) => Y(T(R), _.range()[1] + h, D).x\n ).attr(\n \"y\",\n (R) => Y(T(R), _.range()[1] + h, D).y\n ).end().finally(() => {\n const R = y(o, \"radar\", \"alignment\"), be = this.getAlignmentXOffset(R, t, this.getParent());\n t.attr(\"x\", be);\n })\n ),\n (C) => C.call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_x_labels_exit\",\n animate: e\n })\n ).attr(\"opacity\", 0).remove()\n )\n ), E.appendOrSelect(t, \"g.blobs\").attr(\"role\", U.GROUP).selectAll(\"path\").data(this.groupedDataNormalized, (C) => C.name).join(\n (C) => C.append(\"path\").attr(\n \"class\",\n (I) => this.model.getColorClassName({\n classNameTypes: [$.FILL, $.STROKE],\n dataGroupName: I.name,\n originalClassName: \"blob\"\n })\n ).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-label\", (I) => I.name).attr(\"opacity\", 0).attr(\n \"transform\",\n e ? () => `translate(${D.x}, ${D.y}) scale(${1 + Math.random() * 0.35})` : `translate(${D.x}, ${D.y})`\n ).style(\"fill\", (I) => V(I.name)).style(\"fill-opacity\", Ee.opacity.selected).style(\"stroke\", (I) => V(I.name)).call((I) => {\n const R = I.transition().call(\n (be) => this.services.transitions.setupTransition({\n transition: be,\n name: \"radar_blobs_enter\",\n animate: e\n })\n );\n e && R.delay(() => Math.random() * 30).attr(\"transform\", `translate(${D.x}, ${D.y})`), R.attr(\"opacity\", 1).attr(\"d\", (be) => A(be.data));\n }),\n (C) => (C.attr(\n \"class\",\n (I) => this.model.getColorClassName({\n classNameTypes: [$.FILL, $.STROKE],\n dataGroupName: I.name,\n originalClassName: \"blob\"\n })\n ).style(\"fill\", (I) => V(I.name)).style(\"stroke\", (I) => V(I.name)), C.call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_blobs_update\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\"transform\", `translate(${D.x}, ${D.y})`).attr(\"d\", (R) => A(R.data))\n ), C),\n (C) => C.call((I) => {\n const R = I.transition().call(\n (be) => this.services.transitions.setupTransition({\n transition: be,\n name: \"radar_blobs_exit\",\n animate: e\n })\n );\n e && R.delay(() => Math.random() * 30).attr(\n \"transform\",\n () => `translate(${D.x}, ${D.y}) scale(${1 + Math.random() * 0.35})`\n ), R.attr(\"opacity\", 0).remove();\n })\n ), E.appendOrSelect(t, \"g.dots\").attr(\"role\", U.GROUP).selectAll(\"circle\").data(this.fullDataNormalized.filter((C) => y(C, p) !== null)).join(\n (C) => C.append(\"circle\").attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-label\", (I) => I[c]),\n (C) => C,\n (C) => C.remove()\n ).attr(\n \"class\",\n (C) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: C[l],\n originalClassName: we(C[d])\n })\n ).attr(\"cx\", (C) => Y(T(C[d]), _(C[p]), D).x).attr(\"cy\", (C) => Y(T(C[d]), _(C[p]), D).y).attr(\"r\", 0).attr(\"opacity\", 0).style(\"fill\", (C) => V(C[l])), E.appendOrSelect(t, \"g.x-axes-rect\").attr(\"role\", U.GROUP).selectAll(\"rect\").data(this.uniqueKeys).join(\n (C) => C.append(\"rect\"),\n (C) => C,\n (C) => C.remove()\n ).attr(\"x\", D.x).attr(\"y\", D.y - b / 2).attr(\"width\", _.range()[1]).attr(\"height\", b).style(\"fill\", \"red\").style(\"fill-opacity\", 0).attr(\"transform\", (C) => `rotate(${Vn(T(C))}, ${D.x}, ${D.y})`), E.appendOrSelect(t, \"g.y-labels\").attr(\"role\", U.GROUP).selectAll(\"text\").data(Ke(F)).join(\n (C) => C.append(\"text\").attr(\"opacity\", 0).text((I) => I).attr(\n \"x\",\n (I) => Y(-Math.PI / 2, _(I), D).x + u\n ).attr(\"y\", (I) => Y(-Math.PI / 2, _(I), D).y).style(\"text-anchor\", \"start\").style(\"dominant-baseline\", \"middle\").call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_y_labels_enter\",\n animate: e\n })\n ).attr(\"opacity\", 1)\n ),\n (C) => C.call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_y_labels_update\",\n animate: e\n })\n ).text((R) => R).attr(\"opacity\", 1).attr(\n \"x\",\n (R) => Y(-Math.PI / 2, _(R), D).x + u\n ).attr(\"y\", (R) => Y(-Math.PI / 2, _(R), D).y)\n ),\n (C) => C.call(\n (I) => I.transition().call(\n (R) => this.services.transitions.setupTransition({\n transition: R,\n name: \"radar_y_labels_exit\",\n animate: e\n })\n ).attr(\"opacity\", 0).remove()\n )\n ), this.addEventListeners();\n }\n getAlignmentXOffset(e, t, s) {\n const n = E.getSVGElementSize(t, {\n useBBox: !0\n }), { width: a } = E.getSVGElementSize(s, {\n useAttrs: !0\n });\n let i = 0;\n return e === ue.CENTER ? i = Math.floor((a - n.width) / 2) : e === ue.RIGHT && (i = a - n.width), i;\n }\n destroy() {\n this.parent.selectAll(\".x-axes-rect > rect\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"mouseout\", null);\n const e = this.services.events;\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n addEventListeners() {\n const e = this, {\n axes: { angle: t }\n } = y(this.getOptions(), \"radar\");\n this.parent.selectAll(\".x-axes-rect > rect\").on(\"mouseover\", function(s, n) {\n const a = x(this);\n e.services.events.dispatchEvent(f.Radar.X_AXIS_MOUSEOVER, {\n event: s,\n element: a,\n datum: n\n });\n const i = e.parent.select(`.x-axes .x-axis-${we(n)}`), o = e.parent.selectAll(`.dots circle.${we(n)}`), l = e.model.getActiveDataGroupNames(), c = e.getOptions(), { groupMapsTo: d } = c.data, p = y(c, \"radar\", \"axes\", \"value\");\n i.classed(\"hovered\", !0).attr(\"stroke-dasharray\", \"4 4\"), o.classed(\"hovered\", !0).attr(\n \"opacity\",\n (u) => l.indexOf(u[d]) !== -1 ? 1 : 0\n ).attr(\"r\", Ee.dotsRadius);\n const h = e.fullDataNormalized.filter(\n (u) => u[t] === n && l.indexOf(u[d]) !== -1\n );\n e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: s,\n hoveredElement: a,\n items: h.filter((u) => typeof u[p] == \"number\").map((u) => ({\n label: u[d],\n value: u[p],\n color: e.model.getFillColor(u[d]),\n class: e.model.getColorClassName({\n classNameTypes: [$.TOOLTIP],\n dataGroupName: u[d]\n })\n }))\n });\n }).on(\"mousemove\", function(s, n) {\n const a = x(this);\n e.services.events.dispatchEvent(f.Radar.X_AXIS_MOUSEMOVE, {\n event: s,\n element: a,\n datum: n\n }), e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: s\n });\n }).on(\"click\", function(s, n) {\n e.services.events.dispatchEvent(f.Radar.X_AXIS_CLICK, {\n event: s,\n element: x(this),\n datum: n\n });\n }).on(\"mouseout\", function(s, n) {\n const a = x(this), i = e.parent.select(`.x-axes .x-axis-${we(n)}`), o = e.parent.selectAll(`.dots circle.${we(n)}`);\n i.classed(\"hovered\", !1).attr(\"stroke-dasharray\", \"0\"), o.classed(\"hovered\", !1).attr(\"opacity\", 0).attr(\"r\", 0), e.services.events.dispatchEvent(f.Radar.X_AXIS_MOUSEOUT, {\n event: s,\n element: a,\n datum: n\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE);\n });\n }\n}\nclass Uc extends $t {\n constructor() {\n super(...arguments), this.type = \"simple-bar\", this.renderType = H.SVG, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail, { groupMapsTo: s } = this.getOptions().data;\n this.parent.selectAll(\"path.bar\").transition(\"legend-hover-simple-bar\").call(\n (n) => this.services.transitions.setupTransition({\n transition: n,\n name: \"legend-hover-simple-bar\"\n })\n ).attr(\"opacity\", (n) => n[s] !== t.datum().name ? 0.3 : 1);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"path.bar\").transition(\"legend-mouseout-simple-bar\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-simple-bar\"\n })\n ).attr(\"opacity\", 1);\n };\n }\n init() {\n const e = this.services.events;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e) {\n const t = this.getOptions(), { groupMapsTo: s } = t.data, n = this.getComponentContainer({ withinChartClip: !0 }), a = this.model.getDisplayData(this.configs.groups), i = this.services.cartesianScales.getOrientation(), o = n.selectAll(\"path.bar\").data(a, (c) => c[s]);\n o.exit().attr(\"opacity\", 0).remove(), o.enter().append(\"path\").attr(\"opacity\", 0).merge(o).classed(\"bar\", !0).attr(\"width\", this.getBarWidth.bind(this)).transition().call(\n (c) => this.services.transitions.setupTransition({\n transition: c,\n name: \"bar-update-enter\",\n animate: e\n })\n ).attr(\n \"class\",\n (c) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: c[s],\n originalClassName: \"bar\"\n })\n ).style(\"fill\", (c) => this.model.getFillColor(c[s])).attr(\"d\", (c) => {\n const d = this.services.cartesianScales.getRangeIdentifier(), p = this.getBarWidth(), h = c[d], u = this.services.cartesianScales.getDomainValue(c) - p / 2, g = u + p;\n let m, b;\n if (Array.isArray(h) && h.length === 2)\n m = this.services.cartesianScales.getRangeValue(h[0]), b = this.services.cartesianScales.getRangeValue(h[1]);\n else {\n const O = this.services.cartesianScales.getRangeScale().domain()[0];\n m = this.services.cartesianScales.getRangeValue(Math.max(0, O)), b = this.services.cartesianScales.getRangeValue(c);\n }\n const v = Math.abs(b - m);\n if (v !== 0 && v < 2 && (h > 0 && i === le.VERTICAL || h < 0 && i === le.HORIZONTAL ? b = m - 2 : b = m + 2), !this.isOutsideZoomedDomain(u, g))\n return ie({ x0: u, x1: g, y0: m, y1: b }, i);\n }).attr(\"opacity\", 1).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"bar\").attr(\"aria-label\", (c) => c.value), this.addEventListeners();\n }\n addEventListeners() {\n const e = this;\n this.parent.selectAll(\"path.bar\").on(\"mouseover\", function(t, s) {\n const n = x(this);\n n.classed(\"hovered\", !0), e.services.events.dispatchEvent(f.Bar.BAR_MOUSEOVER, {\n event: t,\n element: n,\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: t,\n hoveredElement: n,\n data: [s]\n });\n }).on(\"mousemove\", function(t, s) {\n e.services.events.dispatchEvent(f.Bar.BAR_MOUSEMOVE, {\n event: t,\n element: x(this),\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: t\n });\n }).on(\"click\", function(t, s) {\n e.services.events.dispatchEvent(f.Bar.BAR_CLICK, {\n event: t,\n element: x(this),\n datum: s\n });\n }).on(\"mouseout\", function(t, s) {\n const n = x(this);\n n.classed(\"hovered\", !1), e.services.events.dispatchEvent(f.Bar.BAR_MOUSEOUT, {\n event: t,\n element: n,\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: n\n });\n });\n }\n destroy() {\n this.parent.selectAll(\"path.bar\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"mouseout\", null);\n const e = this.services.events;\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n}\nclass zc extends cr {\n constructor() {\n super(...arguments), this.type = \"skeleton-lines\";\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = y(this.getOptions(), \"data\", \"loading\"), s = !y(this.getOptions(), \"grid\", \"x\", \"enabled\") && !y(this.getOptions(), \"grid\", \"y\", \"enabled\") && !y(this.getOptions(), \"axes\", \"bottom\", \"visible\") && !y(this.getOptions(), \"axes\", \"left\", \"visible\");\n t && !s ? super.renderGridSkeleton(t) : t && s ? this.renderSparklineSkeleton(t) : this.removeSkeleton();\n }\n renderSparklineSkeleton(e) {\n this.setScales(), this.drawBackdrop(e), this.drawSparkline(e), this.updateBackdropStyle(), e && this.setShimmerEffect(\"shimmer-lines\");\n }\n drawSparkline(e) {\n const t = this.backdrop.attr(\"width\"), s = [100], n = E.appendOrSelect(this.backdrop, \"g.y.skeleton\"), a = n.selectAll(\"line\").data(s);\n a.enter().append(\"line\").merge(a).attr(\"x1\", 0).attr(\"x2\", t).attr(\"y1\", (i) => i).attr(\"y2\", (i) => i), n.selectAll(\"line\").classed(\"shimmer-effect-lines\", e).classed(\"empty-state-lines\", !e).style(\n \"stroke\",\n e ? `url(#${this.services.domUtils.generateElementIDString(\"shimmer-lines\")})` : null\n );\n }\n updateBackdropStyle() {\n const e = this.parent;\n this.backdrop = E.appendOrSelect(e, \"svg.chart-skeleton.DAII\"), E.appendOrSelect(this.backdrop, \"rect.chart-skeleton-backdrop\").classed(\"shimmer-effect-lines\", !1).classed(\"shimmer-effect-sparkline\", !0).style(\"stroke\", null);\n }\n}\nclass Fc extends z {\n constructor() {\n super(...arguments), this.type = \"area-stacked\", this.renderType = H.SVG, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail, s = this.getOptions(), { groupMapsTo: n } = s.data;\n this.parent.selectAll(\"path.area\").transition(\"legend-hover-area\").call(\n (a) => this.services.transitions.setupTransition({\n transition: a,\n name: \"legend-hover-area\"\n })\n ).attr(\"opacity\", (a) => y(a, 0, n) !== t.datum().name ? fe.opacity.unselected : fe.opacity.selected);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"path.area\").transition(\"legend-mouseout-area\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-area\"\n })\n ).attr(\"opacity\", fe.opacity.selected);\n };\n }\n init() {\n const e = this.services.events;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e = !0) {\n const t = this.getComponentContainer({ withinChartClip: !0 }), s = this, n = this.getOptions(), { groupMapsTo: a } = n.data, i = Object.keys(n.axes).some((g) => n.axes[g].percentage), o = this.model.getStackedData({\n percentage: i,\n groups: this.configs.groups\n }), l = y(o, 0, 0), c = this.services.cartesianScales.getDomainAxisPosition({ datum: l }), d = this.services.cartesianScales.getRangeAxisPosition({ datum: l }), p = this.services.cartesianScales.getScaleByPosition(d), h = t.selectAll(\"path.area\").data(o, (g) => y(g, 0, a));\n this.areaGenerator = kt().x(\n (g) => this.services.cartesianScales.getValueThroughAxisPosition(\n c,\n g.data.sharedStackKey\n )\n ).y0((g) => p(g[0])).y1((g) => p(g[1])).curve(this.services.curves.getD3Curve()), h.exit().attr(\"opacity\", 0).remove(), h.enter().append(\"path\").attr(\"opacity\", 0).merge(h).data(o, (g) => y(g, 0, a)).attr(\"class\", \"area\").attr(\n \"class\",\n (g) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: y(g, 0, a),\n originalClassName: \"area\"\n })\n ).style(\"fill\", (g) => s.model.getFillColor(y(g, 0, a))).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"area\").attr(\"aria-label\", (g) => y(g, 0, a)).transition().call(\n (g) => this.services.transitions.setupTransition({\n transition: g,\n name: \"area-update-enter\",\n animate: e\n })\n ).attr(\"opacity\", fe.opacity.selected).attr(\"d\", this.areaGenerator);\n }\n}\nclass Wc extends $t {\n constructor() {\n super(...arguments), this.type = \"stacked-bar\", this.renderType = H.SVG, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail, { groupMapsTo: s } = this.model.getOptions().data;\n this.parent.selectAll(\"path.bar\").transition(\"legend-hover-bar\").call(\n (n) => this.services.transitions.setupTransition({\n transition: n,\n name: \"legend-hover-bar\"\n })\n ).attr(\"opacity\", (n) => n[s] !== t.datum().name ? 0.3 : 1);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"path.bar\").transition(\"legend-mouseout-bar\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-bar\"\n })\n ).attr(\"opacity\", 1);\n };\n }\n init() {\n const e = this.services.events;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e) {\n const t = this.getComponentContainer({ withinChartClip: !0 }), s = this.getOptions(), { groupMapsTo: n } = s.data, a = this.model.getStackedData({\n groups: this.configs.groups,\n divergent: !0\n }), i = this.model.getActiveDataGroupNames(), o = t.selectAll(\"g.bars\").data(a, (c) => y(c, 0, n));\n o.exit().attr(\"opacity\", 0).remove(), o.enter().append(\"g\").classed(\"bars\", !0).attr(\"role\", U.GROUP).attr(\"data-name\", \"bars\");\n const l = t.selectAll(\"g.bars\").selectAll(\"path.bar\").data(\n (c) => c,\n (c) => c.data.sharedStackKey\n );\n l.exit().remove(), l.enter().append(\"path\").merge(l).classed(\"bar\", !0).transition().call(\n (c) => this.services.transitions.setupTransition({\n transition: c,\n name: \"bar-update-enter\",\n animate: e\n })\n ).attr(\n \"class\",\n (c) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: c[n],\n originalClassName: \"bar\"\n })\n ).style(\"fill\", (c) => this.model.getFillColor(c[n])).attr(\"d\", (c) => {\n const d = c.data.sharedStackKey, p = this.getBarWidth(), h = this.services.cartesianScales.getDomainValue(d) - p / 2, u = h + p, g = this.services.cartesianScales.getRangeValue(c[0]);\n let m = this.services.cartesianScales.getRangeValue(c[1]);\n if (!this.isOutsideZoomedDomain(h, u)) {\n if (Math.abs(m - g) > 0 && Math.abs(m - g) > s.bars.dividerSize) {\n const b = c[0] < 0 && c[1] <= 0;\n b && i.length > 1 ? this.services.cartesianScales.getOrientation() === le.VERTICAL ? m += c[1] === 0 ? 2 : 1 : m -= 1 : b || (this.services.cartesianScales.getOrientation() === le.VERTICAL ? m += 1 : m -= 1);\n }\n return ie(\n { x0: h, x1: u, y0: g, y1: m },\n this.services.cartesianScales.getOrientation()\n );\n }\n }).attr(\"opacity\", 1).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"bar\").attr(\"aria-label\", (c) => c[1] - c[0]), this.addEventListeners();\n }\n addEventListeners() {\n const e = this.getOptions(), { groupMapsTo: t } = e.data, s = this;\n this.parent.selectAll(\"path.bar\").on(\"mouseover\", function(n, a) {\n const i = x(this);\n i.classed(\"hovered\", !0), s.services.events.dispatchEvent(f.Bar.BAR_MOUSEOVER, {\n event: n,\n element: i,\n datum: a\n });\n let l = s.model.getDisplayData(s.configs.groups).find((c) => {\n const d = s.services.cartesianScales.getDomainIdentifier(c), p = s.services.cartesianScales.getRangeIdentifier(c);\n return c[p] === a.data[a[t]] && c[d].toString() === a.data.sharedStackKey && c[t] === a[t];\n });\n if (l === void 0) {\n const c = s.services.cartesianScales.getDomainIdentifier(), d = s.services.cartesianScales.getRangeIdentifier();\n l = {\n [c]: a.data.sharedStackKey,\n [d]: a.data[a[t]],\n [t]: a[t]\n };\n }\n s.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: n,\n hoveredElement: i,\n data: [l]\n });\n }).on(\"mousemove\", function(n, a) {\n const i = x(this);\n s.services.events.dispatchEvent(f.Bar.BAR_MOUSEMOVE, {\n event: n,\n element: i,\n datum: a\n }), s.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: n\n });\n }).on(\"click\", function(n, a) {\n s.services.events.dispatchEvent(f.Bar.BAR_CLICK, {\n event: n,\n element: x(this),\n datum: a\n });\n }).on(\"mouseout\", function(n, a) {\n const i = x(this);\n i.classed(\"hovered\", !1), s.services.events.dispatchEvent(f.Bar.BAR_MOUSEOUT, {\n event: n,\n element: i,\n datum: a\n }), s.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: i\n });\n });\n }\n getBarWidth() {\n const e = this.getOptions();\n if (y(e, \"bars\", \"width\"))\n return e.bars.width;\n const t = this.services.cartesianScales.getMainXScale(), s = E.getSVGElementSize(this.parent, {\n useAttrs: !0\n }).width, n = this.model.getStackKeys().length, a = y(e, \"bars\", \"spacingFactor\");\n return t.step ? Math.min(e.bars.maxWidth, t.step() / 2) : Math.min(e.bars.maxWidth, s * a / n);\n }\n destroy() {\n this.parent.selectAll(\"path.bar\").on(\"mouseover\", null).on(\"mousemove\", null).on(\"mouseout\", null);\n const e = this.services.events;\n e.removeEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.removeEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n}\nclass jc extends Vt {\n constructor() {\n super(...arguments), this.type = \"scatter-stacked\", this.renderType = H.SVG;\n }\n render(e) {\n if (!y(this.getOptions(), \"points\", \"enabled\"))\n return;\n const s = this.getComponentContainer({ withinChartClip: !0 }), n = this.getOptions(), { groupMapsTo: a } = n.data, i = Object.keys(n.axes).some((u) => n.axes[u].percentage), o = this.model.getStackedData({\n groups: this.configs.groups,\n percentage: i\n }), l = s.selectAll(\"g.dots\").data(o, (u) => y(u, 0, a));\n l.exit().attr(\"opacity\", 0).remove();\n const d = l.enter().append(\"g\").classed(\"dots\", !0).attr(\"role\", U.GROUP).merge(l).selectAll(\"circle.dot\").data((u) => u);\n d.exit().attr(\"opacity\", 0).remove();\n const h = d.enter().append(\"circle\").classed(\"dot\", !0).attr(\"opacity\", 0).merge(d).datum((u) => {\n const g = u[a], m = this.services.cartesianScales.getDomainIdentifier(u), b = this.services.cartesianScales.getRangeIdentifier(u);\n return {\n [a]: g,\n [m]: u.data.sharedStackKey,\n [b]: u[1]\n };\n });\n this.styleCircles(h, e), this.addEventListeners();\n }\n getTooltipData(e, t) {\n const s = this.getOptions(), { groupMapsTo: n } = s.data, a = Object.keys(s.axes).some((l) => s.axes[l].percentage), i = this.model.getStackedData({\n groups: this.configs.groups,\n percentage: a\n }), o = [];\n return i.forEach((l, c) => {\n l.forEach((d, p) => {\n const h = d[n], u = d.data.sharedStackKey;\n let g = d.data[h];\n const m = d[1], b = this.services.cartesianScales.getDomainIdentifier(d), v = this.services.cartesianScales.getRangeIdentifier(d);\n g != null && e === this.services.cartesianScales.getDomainValue(u) && t === this.services.cartesianScales.getRangeValue(m) && (a && (g = this.model.getStackedData({\n groups: this.configs.groups\n })[c][p].data[h]), g !== null && o.push({\n [n]: h,\n [b]: u,\n [v]: g\n }));\n });\n }), this.model.getDisplayData(this.configs.groups).filter((l) => {\n const c = this.services.cartesianScales.getDomainIdentifier(l), d = this.services.cartesianScales.getRangeIdentifier(l);\n return o.find((p) => p[n] == l[n] && p[c] == l[c] && p[d] == l[d]) !== void 0;\n });\n }\n}\nconst Ae = 6;\nclass Zc extends z {\n constructor() {\n super(...arguments), this.type = \"tree\", this.renderType = H.SVG;\n }\n getLongestLabel(e) {\n let t = \"\";\n return e.forEach((s) => {\n const n = s.children ? this.getLongestLabel(s.children) : \"\";\n (n.length > t.length || s.name.length > t.length) && (t = n.length > s.name.length ? n : s.name);\n }), t;\n }\n getMockLabelWidth(e, t) {\n const s = e.append(\"text\").attr(\"dy\", \"0.31em\").attr(\"x\", 0).attr(\"text-anchor\", \"end\").text(t), { width: n } = E.getSVGElementSize(s.node(), {\n useBBox: !0\n });\n return s.remove(), n;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n const t = this.getComponentContainer();\n t.html(\"\");\n const { width: s, height: n } = E.getSVGElementSize(this.parent, {\n useAttrs: !0\n });\n if (s < 1 || n < 1)\n return;\n const a = this.model.getOptions(), i = this.model.getDisplayData(), o = y(a, \"tree\", \"rootTitle\") || \"Tree\", l = this.getMockLabelWidth(t, o), c = this.getLongestLabel(i), d = this.getMockLabelWidth(t, c), p = {\n top: 0,\n right: 0,\n bottom: 0,\n left: l > 0 ? l + Ae : 30 - Ae\n }, h = Pt({\n name: o,\n children: i\n }), u = 10, g = s / 6, m = (T) => {\n const k = h.descendants().reverse(), _ = h.links();\n let F = h, V = h;\n h.eachBefore((N) => {\n N.x < F.x && (F = N), N.x > V.x && (V = N);\n });\n const A = V.x - F.x, M = t.transition().call(\n (N) => this.services.transitions.setupTransition({\n transition: N,\n name: \"tree-update-viewbox\",\n animate: !0\n })\n ).attr(\"viewBox\", [-p.left, F.x, s, A].join(\" \")), G = w.selectAll(\"g\").data(k, (N) => N.id), D = this, X = G.enter().append(\"g\").attr(\"transform\", () => `translate(${T.y0},${T.x0})`).attr(\n \"class\",\n (N) => N.depth !== 0 && N.children && N.children.length > 0 ? \"clickable\" : null\n ).on(\"mouseover\", function(N, ae) {\n D.services.events.dispatchEvent(f.Tree.NODE_MOUSEOVER, {\n event: N,\n element: x(this),\n datum: ae\n });\n }).on(\"click\", function(N, ae) {\n ae.depth !== 0 && (ae.children = ae.children ? null : ae._children, m(ae)), D.services.events.dispatchEvent(f.Tree.NODE_CLICK, {\n event: N,\n element: x(this),\n datum: ae\n });\n }).on(\"mouseout\", function(N, ae) {\n D.services.events.dispatchEvent(f.Tree.NODE_MOUSEOUT, {\n event: N,\n element: x(this),\n datum: ae\n });\n });\n X.append(\"circle\").attr(\"r\", 2.5).attr(\"class\", (N) => N._children ? \"parent\" : \"child\").attr(\"stroke-width\", 10), X.append(\"text\").attr(\"dy\", \"0.31em\").attr(\"x\", (N) => N._children ? -Ae : Ae).attr(\"text-anchor\", (N) => N._children ? \"end\" : \"start\").text((N) => N.data.name).clone(!0).attr(\"class\", \"text-stroke\").lower(), G.merge(X).transition(M).attr(\"transform\", (N) => `translate(${N.y},${N.x})`).attr(\"fill-opacity\", 1).attr(\"stroke-opacity\", 1), G.exit().transition(M).remove().attr(\"transform\", () => `translate(${T.y},${T.x})`).attr(\"fill-opacity\", 0).attr(\"stroke-opacity\", 0);\n const re = L.selectAll(\"path\").data(_, (N) => N.target.id), W = re.enter().append(\"path\").attr(\"d\", () => {\n const N = { x: T.x0, y: T.y0 };\n return O({ source: N, target: N });\n });\n re.merge(W).transition(M).attr(\"d\", O), re.exit().transition(M).remove().attr(\"d\", () => {\n const N = { x: T.x, y: T.y };\n return O({ source: N, target: N });\n }), h.eachBefore((N) => {\n N.x0 = N.x, N.y0 = N.y;\n });\n }, b = h.descendants(), v = b[b.length - 1].depth, S = y(a, \"tree\", \"type\") === _n.DENDROGRAM ? rn().size([\n n,\n s - d - v * Ae - l\n ]) : on().nodeSize([u, g]).size([\n n,\n s - d - v * Ae - l\n ]), O = ln().x((T) => T.y).y((T) => T.x);\n h.x0 = g / 2, h.y0 = 0, h.descendants().forEach((T, k) => {\n T.id = k, T._children = T.children;\n }), S(h), t.attr(\"viewBox\", [-p.left, -p.top, s, u]).style(\"user-select\", \"none\");\n const L = t.append(\"g\").attr(\"class\", \"links\"), w = t.append(\"g\").attr(\"class\", \"nodes\");\n m(h);\n }\n}\nvar Er = \"#000000\", Sr = \"#ffffff\", xr = \"#fcf4d6\", Or = \"#fddc69\", Tr = \"#f1c21b\", Lr = \"#d2a106\", wr = \"#b28600\", Mr = \"#8e6a00\", Ar = \"#684e00\", Cr = \"#483700\", kr = \"#302400\", Ir = \"#1c1500\", Dr = {\n 10: xr,\n 20: Or,\n 30: Tr,\n 40: Lr,\n 50: wr,\n 60: Mr,\n 70: Ar,\n 80: Cr,\n 90: kr,\n 100: Ir\n}, Rr = \"#fff2e8\", _r = \"#ffd9be\", Pr = \"#ffb784\", Vr = \"#ff832b\", Br = \"#eb6200\", $r = \"#ba4e00\", Gr = \"#8a3800\", Nr = \"#5e2900\", Hr = \"#3e1a00\", Ur = \"#231000\", zr = {\n 10: Rr,\n 20: _r,\n 30: Pr,\n 40: Vr,\n 50: Br,\n 60: $r,\n 70: Gr,\n 80: Nr,\n 90: Hr,\n 100: Ur\n}, Fr = \"#fff1f1\", Wr = \"#ffd7d9\", jr = \"#ffb3b8\", Zr = \"#ff8389\", Xr = \"#fa4d56\", Yr = \"#da1e28\", qr = \"#a2191f\", Kr = \"#750e13\", Jr = \"#520408\", Qr = \"#2d0709\", eo = {\n 10: Fr,\n 20: Wr,\n 30: jr,\n 40: Zr,\n 50: Xr,\n 60: Yr,\n 70: qr,\n 80: Kr,\n 90: Jr,\n 100: Qr\n}, to = \"#fff0f7\", so = \"#ffd6e8\", no = \"#ffafd2\", ao = \"#ff7eb6\", io = \"#ee5396\", ro = \"#d02670\", oo = \"#9f1853\", lo = \"#740937\", co = \"#510224\", ho = \"#2a0a18\", uo = {\n 10: to,\n 20: so,\n 30: no,\n 40: ao,\n 50: io,\n 60: ro,\n 70: oo,\n 80: lo,\n 90: co,\n 100: ho\n}, po = \"#f6f2ff\", go = \"#e8daff\", mo = \"#d4bbff\", fo = \"#be95ff\", vo = \"#a56eff\", yo = \"#8a3ffc\", bo = \"#6929c4\", Eo = \"#491d8b\", So = \"#31135e\", xo = \"#1c0f30\", Oo = {\n 10: po,\n 20: go,\n 30: mo,\n 40: fo,\n 50: vo,\n 60: yo,\n 70: bo,\n 80: Eo,\n 90: So,\n 100: xo\n}, To = \"#edf5ff\", Lo = \"#d0e2ff\", wo = \"#a6c8ff\", Mo = \"#78a9ff\", Ao = \"#4589ff\", Co = \"#0f62fe\", ko = \"#0043ce\", Io = \"#002d9c\", Do = \"#001d6c\", Ro = \"#001141\", _o = {\n 10: To,\n 20: Lo,\n 30: wo,\n 40: Mo,\n 50: Ao,\n 60: Co,\n 70: ko,\n 80: Io,\n 90: Do,\n 100: Ro\n}, Po = \"#e5f6ff\", Vo = \"#bae6ff\", Bo = \"#82cfff\", $o = \"#33b1ff\", Go = \"#1192e8\", No = \"#0072c3\", Ho = \"#00539a\", Uo = \"#003a6d\", zo = \"#012749\", Fo = \"#061727\", Wo = {\n 10: Po,\n 20: Vo,\n 30: Bo,\n 40: $o,\n 50: Go,\n 60: No,\n 70: Ho,\n 80: Uo,\n 90: zo,\n 100: Fo\n}, jo = \"#d9fbfb\", Zo = \"#9ef0f0\", Xo = \"#3ddbd9\", Yo = \"#08bdba\", qo = \"#009d9a\", Ko = \"#007d79\", Jo = \"#005d5d\", Qo = \"#004144\", el = \"#022b30\", tl = \"#081a1c\", sl = {\n 10: jo,\n 20: Zo,\n 30: Xo,\n 40: Yo,\n 50: qo,\n 60: Ko,\n 70: Jo,\n 80: Qo,\n 90: el,\n 100: tl\n}, nl = \"#defbe6\", al = \"#a7f0ba\", il = \"#6fdc8c\", rl = \"#42be65\", ol = \"#24a148\", ll = \"#198038\", cl = \"#0e6027\", dl = \"#044317\", hl = \"#022d0d\", ul = \"#071908\", pl = {\n 10: nl,\n 20: al,\n 30: il,\n 40: rl,\n 50: ol,\n 60: ll,\n 70: cl,\n 80: dl,\n 90: hl,\n 100: ul\n}, gl = \"#f2f4f8\", ml = \"#dde1e6\", fl = \"#c1c7cd\", vl = \"#a2a9b0\", yl = \"#878d96\", bl = \"#697077\", El = \"#4d5358\", Sl = \"#343a3f\", xl = \"#21272a\", Ol = \"#121619\", Tl = {\n 10: gl,\n 20: ml,\n 30: fl,\n 40: vl,\n 50: yl,\n 60: bl,\n 70: El,\n 80: Sl,\n 90: xl,\n 100: Ol\n}, Ll = \"#f4f4f4\", wl = \"#e0e0e0\", Ml = \"#c6c6c6\", Al = \"#a8a8a8\", Cl = \"#8d8d8d\", kl = \"#6f6f6f\", Il = \"#525252\", Dl = \"#393939\", Rl = \"#262626\", _l = \"#161616\", Pl = {\n 10: Ll,\n 20: wl,\n 30: Ml,\n 40: Al,\n 50: Cl,\n 60: kl,\n 70: Il,\n 80: Dl,\n 90: Rl,\n 100: _l\n}, Vl = \"#f7f3f2\", Bl = \"#e5e0df\", $l = \"#cac5c4\", Gl = \"#ada8a8\", Nl = \"#8f8b8b\", Hl = \"#726e6e\", Ul = \"#565151\", zl = \"#3c3838\", Fl = \"#272525\", Wl = \"#171414\", jl = {\n 10: Vl,\n 20: Bl,\n 30: $l,\n 40: Gl,\n 50: Nl,\n 60: Hl,\n 70: Ul,\n 80: zl,\n 90: Fl,\n 100: Wl\n}, ps = {\n black: {\n 100: Er\n },\n blue: _o,\n coolGray: Tl,\n cyan: Wo,\n gray: Pl,\n green: pl,\n magenta: uo,\n orange: zr,\n purple: Oo,\n red: eo,\n teal: sl,\n warmGray: jl,\n white: {\n 0: Sr\n },\n yellow: Dr\n};\nconst Zl = (r) => {\n if (!r)\n return null;\n for (const e of Object.keys(ps)) {\n const t = ps[e];\n for (const s of Object.keys(t))\n if (t[+s] === r)\n return s;\n }\n return null;\n}, gs = function() {\n const r = x(this.parentNode).select(\"rect.leaf\"), e = getComputedStyle(r.node(), null).getPropertyValue(\n \"fill\"\n ), t = bs(e);\n let s;\n if (t && (s = Zl(t ? t.hex() : null)), s == null) {\n const n = ys(t).l;\n s = Math.abs(n * 100 - 100);\n }\n return s > 50 ? \"white\" : \"black\";\n};\nlet Xl = 0;\nclass Xc extends z {\n constructor() {\n super(...arguments), this.type = \"treemap\", this.renderType = H.SVG, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail;\n this.parent.selectAll(\"g[data-name='leaf']\").transition(\"legend-hover-treemap\").call(\n (s) => this.services.transitions.setupTransition({\n transition: s,\n name: \"legend-hover-treemap\"\n })\n ).attr(\n \"opacity\",\n (s) => s.parent.data.name === t.datum().name ? 1 : 0.3\n );\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"g[data-name='leaf']\").transition(\"legend-mouseout-treemap\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-treemap\"\n })\n ).attr(\"opacity\", 1);\n };\n }\n init() {\n const { events: e } = this.services;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e = !0) {\n const t = this.getComponentContainer();\n this.model.getData();\n const s = this.model.getDisplayData(), n = this.model.getOptions(), a = y(window, \"location\"), { width: i, height: o } = E.getSVGElementSize(t, {\n useAttrs: !0\n }), l = Pt({\n name: n.title || \"Treemap\",\n children: s\n }).sum((m) => m.value).sort((m, b) => b.value - m.value), c = cn().size([i, o]).paddingInner(1).paddingOuter(0).round(!0)(\n l\n ), d = t.selectAll(\"g[data-name='leaf']\").data(c.leaves(), (m) => m.data.name);\n d.exit().attr(\"opacity\", 0).remove();\n const h = d.enter().append(\"g\").attr(\"data-name\", \"leaf\").attr(\"data-uid\", () => Xl++).merge(d);\n h.attr(\"data-name\", \"leaf\").transition().call(\n (m) => this.services.transitions.setupTransition({\n transition: m,\n name: \"treemap-group-update\",\n animate: e\n })\n ).attr(\"transform\", (m) => `translate(${m.x0},${m.y0})`);\n const u = h.selectAll(\"rect.leaf\").data((m) => [m]);\n u.exit().attr(\"width\", 0).attr(\"height\", 0).remove(), u.enter().append(\"rect\").classed(\"leaf\", !0).merge(u).attr(\"width\", 0).attr(\"height\", 0).attr(\"id\", function() {\n const m = x(this.parentNode).attr(\"data-uid\");\n return `${n.style.prefix}-leaf-${m}`;\n }).attr(\"class\", (m) => {\n for (; m.depth > 1; )\n m = m.parent;\n return this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: m.data.name,\n originalClassName: \"leaf\"\n });\n }).transition().call(\n (m) => this.services.transitions.setupTransition({\n transition: m,\n name: \"treemap-leaf-update-enter\",\n animate: e\n })\n ).attr(\"width\", (m) => m.x1 - m.x0).attr(\"height\", (m) => m.y1 - m.y0).style(\"fill\", (m) => {\n for (; m.depth > 1; )\n m = m.parent;\n return this.model.getFillColor(m.data.name);\n }), h.selectAll(\"clipPath\").data(\n (m) => m.data.showLabel !== !0 ? [] : [1],\n (m) => m\n ).join(\n (m) => m.append(\"clipPath\").attr(\"id\", function() {\n const b = x(this.parentNode).attr(\"data-uid\");\n return `${n.style.prefix}-clip-${b}`;\n }).append(\"use\").attr(\"xlink:href\", function() {\n const b = x(this.parentNode.parentNode).attr(\"data-uid\"), v = `${n.style.prefix}-leaf-${b}`;\n return new URL(`#${v}`, a) + \"\";\n }),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n (m) => null,\n (m) => m.remove()\n ), h.selectAll(\"text\").data(\n (m) => {\n if (m.data.showLabel !== !0)\n return [];\n let b = m;\n for (; b.depth > 1; )\n b = b.parent;\n const v = ys(this.model.getFillColor(b.data.name));\n return [\n {\n text: m.data.name,\n color: v.l < 0.5 ? \"white\" : \"black\"\n }\n ];\n },\n (m) => m\n ).join(\n (m) => {\n const b = m.append(\"text\").text((v) => v.text).style(\"fill\", gs).attr(\"x\", 7).attr(\"y\", 18);\n return a && b.attr(\"clip-path\", function() {\n const v = x(this.parentNode).attr(\"data-uid\"), S = `${n.style.prefix}-clip-${v}`;\n return `url(${new URL(`#${S}`, a) + \"\"})`;\n }), b;\n },\n (m) => m.text((b) => b.text).style(\"fill\", gs),\n (m) => m.remove()\n ), this.addEventListeners();\n }\n addEventListeners() {\n const e = this;\n this.parent.selectAll(\"rect.leaf\").on(\"mouseover\", function(t, s) {\n const n = x(this);\n let a = getComputedStyle(this, null).getPropertyValue(\"fill\"), i = s;\n for (; i.depth > 1; )\n i = i.parent;\n n.transition(\"graph_element_mouseover_fill_update\").call(\n (o) => e.services.transitions.setupTransition({\n transition: o,\n name: \"graph_element_mouseover_fill_update\"\n })\n ).style(\"fill\", (o) => {\n const l = e.model.getFillColor(o.parent.data.name);\n return l && (a = l), bs(a).darker(0.7).toString();\n }), e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: t,\n hoveredElement: n,\n items: [\n {\n color: a,\n label: i.data.name,\n bold: !0\n },\n {\n label: s.data.name,\n value: s.data.value\n }\n ]\n }), e.services.events.dispatchEvent(f.Treemap.LEAF_MOUSEOVER, {\n event: t,\n element: n,\n datum: s\n });\n }).on(\"mousemove\", function(t, s) {\n const n = x(this);\n e.services.events.dispatchEvent(f.Treemap.LEAF_MOUSEMOVE, {\n event: t,\n element: n,\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: t\n });\n }).on(\"click\", function(t, s) {\n e.services.events.dispatchEvent(f.Treemap.LEAF_CLICK, {\n event: t,\n element: x(this),\n datum: s\n });\n }).on(\"mouseout\", function(t, s) {\n const n = x(this);\n n.classed(\"hovered\", !1);\n let a = s;\n for (; a.depth > 1; )\n a = a.parent;\n n.transition().call(\n (i) => e.services.transitions.setupTransition({\n transition: i,\n name: \"graph_element_mouseout_fill_update\"\n })\n ).style(\"fill\", (i) => e.model.getFillColor(i.parent.data.name)), e.services.events.dispatchEvent(f.Treemap.LEAF_MOUSEOUT, {\n event: t,\n element: n,\n datum: s\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: n\n });\n });\n }\n}\nclass Yc extends z {\n constructor() {\n super(...arguments), this.type = \"wordcloud\", this.renderType = H.SVG, this.handleLegendOnHover = (e) => {\n const { hoveredElement: t } = e.detail, { groupMapsTo: s } = this.getOptions().data;\n this.parent.selectAll(\"text.word\").transition(\"legend-hover-wordcloud\").call(\n (n) => this.services.transitions.setupTransition({\n transition: n,\n name: \"legend-hover-wordcloud\"\n })\n ).attr(\"opacity\", (n) => n[s] !== t.datum().name ? 0.3 : 1);\n }, this.handleLegendMouseOut = () => {\n this.parent.selectAll(\"text.word\").transition(\"legend-mouseout-wordcloud\").call(\n (e) => this.services.transitions.setupTransition({\n transition: e,\n name: \"legend-mouseout-wordcloud\"\n })\n ).attr(\"opacity\", 1);\n };\n }\n init() {\n const e = this.services.events;\n e.addEventListener(f.Legend.ITEM_HOVER, this.handleLegendOnHover), e.addEventListener(f.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);\n }\n render(e = !0) {\n const t = this, s = this.getComponentContainer().attr(\"width\", \"100%\").attr(\"height\", \"100%\"), n = this.model.getDisplayData(), a = this.getFontSizeScale(n), i = this.getOptions(), { fontSizeMapsTo: o, wordMapsTo: l } = i.wordCloud, { groupMapsTo: c } = i.data, { width: d, height: p } = E.getSVGElementSize(s, {\n useAttrs: !0\n });\n if (d === 0 || p === 0)\n return;\n const h = Un().size([d, p]).words(\n n.map(function(g) {\n const m = g[o];\n if (typeof g[o] != \"number\")\n throw Error(\n \"Badly formatted WordCloud data. `value` should only be an integer or float\"\n );\n return {\n [c]: g[c],\n text: g[l],\n size: m,\n value: m\n };\n })\n ).padding(5).rotate(0).fontSize((g) => a(g.size)).on(\"end\", u);\n h.start();\n function u(g) {\n const m = E.appendOrSelect(s, \"g.words\");\n m.attr(\"transform\", `translate(${h.size()[0] / 2}, ${h.size()[1] / 2})`);\n const b = m.selectAll(\"text\").data(g, (S) => `${S[c]}-${S.text}`);\n b.exit().attr(\"opacity\", 0).remove(), b.enter().append(\"text\").attr(\"opacity\", 0).merge(b).style(\"font-size\", (S) => `${S.size}px`).text(function(S) {\n return S.text;\n }).attr(\n \"class\",\n (S) => t.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: S[c],\n originalClassName: `word ${S.size > 32 ? \"light\" : \"\"}`\n })\n ).style(\"fill\", (S) => t.model.getFillColor(S[c], S.text, S)).attr(\"text-anchor\", \"middle\").transition().call(\n (S) => t.services.transitions.setupTransition({\n transition: S,\n name: \"wordcloud-text-update-enter\",\n animate: e\n })\n ).attr(\"transform\", (S) => `translate(${S.x}, ${S.y})`).attr(\"opacity\", 1);\n }\n this.addEventListeners();\n }\n getFontSizeScale(e) {\n const t = this.getOptions(), { fontSizeMapsTo: s } = t.wordCloud, n = e.map((l) => l[s]).filter((l) => l), a = E.getHTMLElementSize(this.services.domUtils.getMainContainer()), i = n.length > 0, o = i ? Ke(n) : [1, 1];\n return Oe().domain(o).range(i ? t.wordCloud.fontSizeRange(a, e) : [4, 4]);\n }\n addEventListeners() {\n const e = this.getOptions(), { groupMapsTo: t } = e.data, s = this, n = gt((a) => {\n const i = s.parent.selectAll(\"text.word\").transition(\"wordcloud-word-mouse-highlight\").call(\n (o) => s.services.transitions.setupTransition({\n transition: o,\n name: \"wordcloud-word-mouse-highlight\"\n })\n );\n a === null ? i.attr(\"opacity\", 1) : i.attr(\"opacity\", function() {\n return a === this ? 1 : 0.3;\n });\n }, 6);\n this.parent.selectAll(\"text.word\").on(\"mouseover\", function(a, i) {\n const o = this;\n n(o), s.services.events.dispatchEvent(f.WordCloud.WORD_MOUSEOVER, {\n event: a,\n element: x(this),\n datum: i\n }), s.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: a,\n hoveredElement: o,\n items: [\n {\n label: e.tooltip.wordLabel,\n value: i.text\n },\n {\n label: e.tooltip.valueLabel,\n value: i.value\n },\n {\n label: e.tooltip.groupLabel,\n value: i[t],\n class: s.model.getColorClassName({\n classNameTypes: [$.TOOLTIP],\n dataGroupName: i[t]\n })\n }\n ]\n });\n }).on(\"mousemove\", function(a, i) {\n const o = x(this);\n s.services.events.dispatchEvent(f.WordCloud.WORD_MOUSEMOVE, {\n element: o,\n datum: i\n }), s.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: a\n });\n }).on(\"click\", function(a, i) {\n s.services.events.dispatchEvent(f.WordCloud.WORD_CLICK, {\n event: a,\n element: x(this),\n datum: i\n });\n }).on(\"mouseout\", function(a, i) {\n const o = x(this);\n n(null), s.services.events.dispatchEvent(f.WordCloud.WORD_MOUSEOUT, {\n event: a,\n element: o,\n datum: i\n }), s.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: o\n });\n });\n }\n}\nclass Yl extends z {\n constructor() {\n super(...arguments), this.type = \"geo\", this.renderType = H.SVG;\n }\n render() {\n const e = this.getComponentContainer({ withinChartClip: !0 }), { width: t, height: s } = E.getSVGElementSize(e, {\n useAttrs: !0\n });\n if (t < 1 || s < 1)\n return;\n const n = this.getProjection(), a = y(this.getOptions(), \"geoData\"), i = this.model.getCombinedData(), o = {}, l = {};\n Object.keys(i).forEach((v) => {\n typeof i[v].value == \"number\" ? o[v] = i[v] : l[v] = i[v];\n });\n const c = fr(a, Object.values(l)), d = pr(a, {\n // We need to specify that we are converting geometry collections\n type: \"GeometryCollection\",\n geometries: Object.values(o)\n }), p = n.fitSize([t, s], d), h = dn().projection(p);\n E.appendOrSelect(e, \"g.geo\").selectAll(\"path\").data(d.features).join(\"path\").attr(\"d\", h);\n const g = this.services.domUtils.generateElementIDString(\"geo-pattern-stripes\"), m = E.appendOrSelect(e, \"defs\");\n E.appendOrSelect(m, \"pattern\").attr(\"id\", g).attr(\"width\", 5).attr(\"height\", 10).attr(\"patternUnits\", \"userSpaceOnUse\").attr(\"patternTransform\", \"rotate(45)\").append(\"path\").classed(\"pattern-fill\", !0).attr(\n \"d\",\n It()([\n [0, 0],\n [0, 10]\n ])\n );\n const b = E.appendOrSelect(e, \"g.missing-data\");\n E.appendOrSelect(b, \"path\").datum(c).attr(\"d\", h).style(\"fill\", `url(#${g})`);\n }\n /**\n * @info\n * Depending on projection, we may need to provide additional configuration\n * e.g. sizing\n *\n * In such case, function can be refactored so that\n * projection should return an object with the configuraiton & function\n */\n getProjection() {\n let e = null;\n switch (y(this.getOptions(), \"thematic\", \"projection\")) {\n case xe.geoEqualEarth:\n e = vn();\n break;\n case xe.geoAlbers:\n e = fn();\n break;\n case xe.geoConicEqualArea:\n e = mn();\n break;\n case xe.geoConicEquidistant:\n e = gn();\n break;\n case xe.geoEquirectangular:\n e = pn();\n break;\n case xe.geoMercator:\n e = un();\n break;\n case xe.geoNaturalEarth1:\n e = hn();\n break;\n default:\n throw new Error(\"Projection is not supported.\");\n }\n return e;\n }\n}\nclass qc extends Yl {\n constructor() {\n super(...arguments), this.type = \"choropleth\";\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e = !0) {\n super.render();\n const t = this.model.getCombinedData();\n this.getComponentContainer({ withinChartClip: !0 }).select(\"g.geo\").selectAll(\"path\").classed(\"border\", !0).attr(\"class\", (a) => this.model.getColorClassName({\n value: t[a.properties.NAME].value,\n originalClassName: \"border\"\n })), this.addCountryAreaEventListener();\n }\n addCountryAreaEventListener() {\n const e = this, t = this.model.getCombinedData();\n this.parent.selectAll(\"path.border\").on(\"mouseover\", function(s, n) {\n const a = x(this);\n e.services.events.dispatchEvent(Ue.CHOROPLETH_MOUSEOVER, {\n event: s,\n element: a,\n datum: t[n.properties.NAME]\n }), e.services.events.dispatchEvent(ot.SHOW, {\n event: s,\n hoveredElement: a,\n items: [\n {\n label: n.properties.NAME,\n value: t[n.properties.NAME].value\n }\n ]\n });\n }).on(\"mousemove\", function(s, n) {\n e.services.events.dispatchEvent(Ue.CHOROPLETH_MOUSEMOVE, {\n event: s,\n element: x(this),\n datum: t[n.properties.NAME]\n }), e.services.events.dispatchEvent(ot.MOVE, {\n event: s\n });\n }).on(\"click\", function(s, n) {\n e.services.events.dispatchEvent(Ue.CHOROPLETH_CLICK, {\n event: s,\n element: x(this),\n datum: t[n.properties.NAME]\n });\n }).on(\"mouseout\", function(s, n) {\n const a = x(this);\n e.services.events.dispatchEvent(Ue.CHOROPLETH_MOUSEOUT, {\n event: s,\n element: a,\n datum: t[n.properties.NAME]\n }), e.services.events.dispatchEvent(ot.HIDE, {\n event: s,\n hoveredElement: a\n });\n });\n }\n}\nexport {\n wc as $,\n dc as A,\n fc as B,\n rc as C,\n _c as D,\n Bc as E,\n Ec as F,\n uc as G,\n cc as H,\n $c as I,\n zc as J,\n Gc as K,\n nr as L,\n ic as M,\n Dc as N,\n Nc as O,\n br as P,\n Hc as Q,\n js as R,\n ac as S,\n sr as T,\n Zc as U,\n Xc as V,\n Yc as W,\n Zs as X,\n lr as Y,\n oc as Z,\n Lc as _,\n Ha as a,\n Tc as a0,\n Oc as a1,\n xc as a2,\n Mc as a3,\n Ac as a4,\n Cc as a5,\n kc as a6,\n Yl as a7,\n $t as a8,\n z as a9,\n Ua as b,\n Da as c,\n ir as d,\n ar as e,\n rr as f,\n lc as g,\n hc as h,\n mc as i,\n gc as j,\n pc as k,\n Vt as l,\n cr as m,\n vc as n,\n yc as o,\n bc as p,\n Ic as q,\n qc as r,\n Rc as s,\n Fc as t,\n jc as u,\n Sc as v,\n Uc as w,\n Vc as x,\n Wc as y,\n Pc as z\n};\n//# sourceMappingURL=choropleth-f473ea0d.mjs.map\n","import { af as g, ag as f, ah as x, ai as b, aj as H, X as se, s as z, g as l, J as Y, n as X, ab as ie, L as oe } from \"./color-scale-utils-5eb3eeaa.mjs\";\nimport { S as O, D as ae } from \"./angle-utils-8b6ce998.mjs\";\nimport { _ as B, e as u, i as k, S as d } from \"./enums-a96ef472.mjs\";\nimport { select as re, max as le, extent as q, scaleTime as ue, scaleLog as ce, scaleBand as me, scaleLinear as de, curveLinear as ge, curveLinearClosed as he, curveBasis as fe, curveBasisClosed as pe, curveBasisOpen as ve, curveBundle as De, curveCardinal as xe, curveCardinalClosed as ye, curveCardinalOpen as Oe, curveCatmullRom as Ae, curveCatmullRomClosed as Te, curveCatmullRomOpen as Me, curveMonotoneX as Se, curveMonotoneY as Pe, curveNatural as Re, curveStep as Be, curveStepAfter as Le, curveStepBefore as Ee } from \"d3\";\nfunction J(i, e) {\n g(2, arguments);\n var t = f(i), n = x(e);\n return isNaN(n) ? /* @__PURE__ */ new Date(NaN) : (n && t.setDate(t.getDate() + n), t);\n}\nfunction C(i, e) {\n g(2, arguments);\n var t = f(i), n = x(e);\n if (isNaN(n))\n return /* @__PURE__ */ new Date(NaN);\n if (!n)\n return t;\n var s = t.getDate(), o = new Date(t.getTime());\n o.setMonth(t.getMonth() + n + 1, 0);\n var a = o.getDate();\n return s >= a ? o : (t.setFullYear(o.getFullYear(), o.getMonth(), s), t);\n}\nvar Ie = 36e5;\nfunction Q(i, e) {\n g(2, arguments);\n var t = x(e);\n return b(i, t * Ie);\n}\nfunction G(i) {\n g(1, arguments);\n var e = f(i);\n return e.setHours(0, 0, 0, 0), e;\n}\nvar be = 864e5;\nfunction Ce(i, e) {\n g(2, arguments);\n var t = G(i), n = G(e), s = t.getTime() - H(t), o = n.getTime() - H(n);\n return Math.round((s - o) / be);\n}\nvar we = 6e4;\nfunction E(i, e) {\n g(2, arguments);\n var t = x(e);\n return b(i, t * we);\n}\nfunction I(i, e) {\n g(2, arguments);\n var t = x(e);\n return b(i, t * 1e3);\n}\nfunction ee(i, e) {\n g(2, arguments);\n var t = x(e);\n return C(i, t * 12);\n}\nfunction M(i, e) {\n g(2, arguments);\n var t = f(i), n = f(e), s = t.getTime() - n.getTime();\n return s < 0 ? -1 : s > 0 ? 1 : s;\n}\nvar Ze = 6e4, Ne = 36e5;\nfunction Fe(i, e) {\n g(2, arguments);\n var t = f(i), n = f(e), s = t.getFullYear() - n.getFullYear(), o = t.getMonth() - n.getMonth();\n return s * 12 + o;\n}\nfunction Ve(i, e) {\n g(2, arguments);\n var t = f(i), n = f(e);\n return t.getFullYear() - n.getFullYear();\n}\nfunction _(i, e) {\n var t = i.getFullYear() - e.getFullYear() || i.getMonth() - e.getMonth() || i.getDate() - e.getDate() || i.getHours() - e.getHours() || i.getMinutes() - e.getMinutes() || i.getSeconds() - e.getSeconds() || i.getMilliseconds() - e.getMilliseconds();\n return t < 0 ? -1 : t > 0 ? 1 : t;\n}\nfunction He(i, e) {\n g(2, arguments);\n var t = f(i), n = f(e), s = _(t, n), o = Math.abs(Ce(t, n));\n t.setDate(t.getDate() - s * o);\n var a = +(_(t, n) === -s), r = s * (o - a);\n return r === 0 ? 0 : r;\n}\nfunction w(i, e) {\n return g(2, arguments), f(i).getTime() - f(e).getTime();\n}\nvar U = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function(e) {\n return e < 0 ? Math.ceil(e) : Math.floor(e);\n }\n // Math.trunc is not supported by IE\n}, ze = \"trunc\";\nfunction Z(i) {\n return i ? U[i] : U[ze];\n}\nfunction Ye(i, e, t) {\n g(2, arguments);\n var n = w(i, e) / Ne;\n return Z(t == null ? void 0 : t.roundingMethod)(n);\n}\nfunction $(i, e, t) {\n g(2, arguments);\n var n = w(i, e) / Ze;\n return Z(t == null ? void 0 : t.roundingMethod)(n);\n}\nfunction Xe(i) {\n g(1, arguments);\n var e = f(i);\n return e.setHours(23, 59, 59, 999), e;\n}\nfunction ke(i) {\n g(1, arguments);\n var e = f(i), t = e.getMonth();\n return e.setFullYear(e.getFullYear(), t + 1, 0), e.setHours(23, 59, 59, 999), e;\n}\nfunction Ge(i) {\n g(1, arguments);\n var e = f(i);\n return Xe(e).getTime() === ke(e).getTime();\n}\nfunction _e(i, e) {\n g(2, arguments);\n var t = f(i), n = f(e), s = M(t, n), o = Math.abs(Fe(t, n)), a;\n if (o < 1)\n a = 0;\n else {\n t.getMonth() === 1 && t.getDate() > 27 && t.setDate(30), t.setMonth(t.getMonth() - s * o);\n var r = M(t, n) === -s;\n Ge(f(i)) && o === 1 && M(i, n) === 1 && (r = !1), a = s * (o - Number(r));\n }\n return a === 0 ? 0 : a;\n}\nfunction j(i, e, t) {\n g(2, arguments);\n var n = w(i, e) / 1e3;\n return Z(t == null ? void 0 : t.roundingMethod)(n);\n}\nfunction Ue(i, e) {\n g(2, arguments);\n var t = f(i), n = f(e), s = M(t, n), o = Math.abs(Ve(t, n));\n t.setFullYear(1584), n.setFullYear(1584);\n var a = M(t, n) === -s, r = s * (o - Number(a));\n return r === 0 ? 0 : r;\n}\nfunction $e(i, e) {\n g(2, arguments);\n var t = x(e);\n return J(i, -t);\n}\nfunction je(i, e) {\n g(2, arguments);\n var t = x(e);\n return C(i, -t);\n}\nfunction Ke(i, e) {\n g(2, arguments);\n var t = x(e);\n return Q(i, -t);\n}\nfunction K(i, e) {\n g(2, arguments);\n var t = x(e);\n return E(i, -t);\n}\nfunction W(i, e) {\n g(2, arguments);\n var t = x(e);\n return I(i, -t);\n}\nfunction We(i, e) {\n g(2, arguments);\n var t = x(e);\n return ee(i, -t);\n}\nfunction qe(i) {\n var e = i == null ? 0 : i.length;\n return e ? se(i, 1) : [];\n}\nclass it extends O {\n /**\n * focal: object to zoom into\n * canvasElements: all the elements to translate and zoom on the chart area\n * zoomSettings: object containing duration, easing and zoomlevel for the zoom behaviours\n * */\n zoomIn(e, t, n) {\n let s, o, a;\n const r = n || z;\n e && (s = e.x, o = e.y, a = 2);\n const { width: c, height: h } = ae.getSVGElementSize(this.services.domUtils.getHolder(), {\n useClientDimensions: !0\n });\n t.transition().duration(r.duration).ease(r.ease).attr(\n \"transform\",\n `translate(${c / 2}, ${h / 2}) scale(${a}) translate(${-s},${-o})`\n ), this.services.events.dispatchEvent(B.CanvasZoom.CANVAS_ZOOM_IN, {\n element: re(e)\n });\n }\n zoomOut(e, t) {\n const n = t || z;\n e.transition().duration(n.duration).ease(n.ease).attr(\"transform\", \"\"), this.services.events.dispatchEvent(B.CanvasZoom.CANVAS_ZOOM_OUT);\n }\n}\nclass ot extends O {\n init() {\n this.documentFragment = document.createDocumentFragment();\n }\n addEventListener(e, t) {\n this.documentFragment.addEventListener(e, t);\n }\n removeEventListener(e, t) {\n this.documentFragment.removeEventListener(e, t);\n }\n dispatchEvent(e, t) {\n let n;\n t ? n = new CustomEvent(e, {\n detail: t\n }) : (n = document.createEvent(\"Event\"), n.initEvent(e, !1, !0)), this.documentFragment.dispatchEvent(n);\n }\n}\nclass at extends O {\n constructor(e, t) {\n super(e, t);\n }\n downloadCSV(e, t) {\n const n = document.createElement(\"a\"), s = \"text/csv;encoding:utf-8\";\n if (navigator.msSaveBlob)\n navigator.msSaveBlob(\n new Blob([e], {\n type: s\n }),\n t\n );\n else if (URL && \"download\" in n) {\n const o = URL.createObjectURL(\n new Blob([e], {\n type: s\n })\n );\n n.href = o, n.setAttribute(\"download\", t), document.body.appendChild(n), n.click(), document.body.removeChild(n), URL.revokeObjectURL(o);\n } else\n location.href = `data:application/octet-stream,${encodeURIComponent(e)}`;\n }\n downloadImage(e, t) {\n const n = document.createElement(\"a\");\n n.download = t, n.href = e, document.body.appendChild(n), n.click(), document.body.removeChild(n);\n }\n}\nclass rt extends O {\n constructor() {\n super(...arguments), this.pendingTransitions = {};\n }\n init() {\n var e;\n (e = this.services.events) == null || e.addEventListener(B.Model.UPDATE, () => {\n this.pendingTransitions = {};\n });\n }\n setupTransition({ transition: e, name: t, animate: n }) {\n return this.pendingTransitions[e._id] = e, e.on(\"end interrupt cancel\", () => {\n delete this.pendingTransitions[e._id];\n }), this.model.getOptions().animations === !1 || n === !1 ? e.duration(0) : e.duration(l(Y, t, \"duration\") || Y.default.duration);\n }\n getPendingTransitions() {\n return this.pendingTransitions;\n }\n}\nclass lt extends O {\n constructor() {\n super(...arguments), this.scaleTypes = {\n top: null,\n right: null,\n bottom: null,\n left: null\n }, this.scales = {\n // null or function\n top: null,\n right: null,\n bottom: null,\n left: null\n };\n }\n getDomainAxisPosition({ datum: e = null } = {}) {\n if (this.dualAxes && e) {\n const t = this.model.getOptions(), { groupMapsTo: n } = t.data, s = l(t, \"axes\", this.secondaryDomainAxisPosition), o = e[n];\n if (s != null && s.correspondingDatasets && s.correspondingDatasets.includes(o))\n return this.secondaryDomainAxisPosition;\n }\n return this.domainAxisPosition;\n }\n getRangeAxisPosition({ datum: e = null, groups: t = null } = {}) {\n if (this.dualAxes) {\n const n = this.model.getOptions(), { groupMapsTo: s } = n.data, o = l(n, \"axes\", this.secondaryRangeAxisPosition);\n let a;\n if (e !== null ? a = e[s] : t && t.length > 0 && (a = t[0]), o != null && o.correspondingDatasets && o.correspondingDatasets.includes(a))\n return this.secondaryRangeAxisPosition;\n }\n return this.rangeAxisPosition;\n }\n getAxisOptions(e) {\n return l(this.model.getOptions(), \"axes\", e);\n }\n getDomainAxisOptions() {\n const e = this.getDomainAxisPosition();\n return this.getAxisOptions(e);\n }\n getRangeAxisOptions() {\n const e = this.getRangeAxisPosition();\n return this.getAxisOptions(e);\n }\n getScaleLabel(e) {\n const n = this.getAxisOptions(e).title;\n return n || (e === u.BOTTOM || e === u.TOP ? \"x-value\" : \"y-value\");\n }\n getDomainLabel() {\n return this.getScaleLabel(this.getDomainAxisPosition());\n }\n getRangeLabel() {\n return this.getScaleLabel(this.getRangeAxisPosition());\n }\n update() {\n this.determineAxisDuality(), this.findDomainAndRangeAxes(), this.determineOrientation(), Object.keys(u).map(\n (t) => u[t]\n ).forEach((t) => {\n this.scales[t] = this.createScale(t);\n });\n }\n findDomainAndRangeAxes() {\n const e = this.findVerticalAxesPositions(), t = this.findHorizontalAxesPositions(), n = this.findDomainAndRangeAxesPositions(\n e,\n t\n );\n this.domainAxisPosition = n.primaryDomainAxisPosition, this.rangeAxisPosition = n.primaryRangeAxisPosition, this.isDualAxes() && (this.secondaryDomainAxisPosition = n.secondaryDomainAxisPosition, this.secondaryRangeAxisPosition = n.secondaryRangeAxisPosition);\n }\n determineOrientation() {\n (this.rangeAxisPosition === u.LEFT || this.rangeAxisPosition === u.RIGHT) && (this.domainAxisPosition === u.BOTTOM || this.domainAxisPosition === u.TOP) ? this.orientation = k.VERTICAL : this.orientation = k.HORIZONTAL;\n }\n isDualAxes() {\n return this.dualAxes;\n }\n // if any of the axes objects have correspondingDatasets [] asserted we flag the chart as dual axes\n // it does not count as dual axes if it just has another axis turned on but is not actually using it to map a dataset\n determineAxisDuality() {\n var n, s, o, a;\n const e = this.model.getOptions(), t = l(e, \"axes\");\n ((n = t[u.LEFT]) != null && n.correspondingDatasets && t[u.RIGHT] || (s = t[u.RIGHT]) != null && s.correspondingDatasets && t[u.LEFT] || (o = t[u.TOP]) != null && o.correspondingDatasets && t[u.BOTTOM] || (a = t[u.BOTTOM]) != null && a.correspondingDatasets && t[u.TOP]) && (this.dualAxes = !0);\n }\n getCustomDomainValuesByposition(e) {\n const t = l(this.model.getOptions(), \"axes\", e, \"domain\");\n if (t && !Array.isArray(t))\n throw new Error(`Domain in ${e} axis is not a valid array`);\n if (Array.isArray(t) && (this.scaleTypes[e] === d.LINEAR || this.scaleTypes[e] === d.TIME) && t.length !== 2)\n throw new Error(\n `There can only be 2 elements in domain for scale type: ${this.scaleTypes[e]}`\n );\n return t;\n }\n getOrientation() {\n return this.orientation;\n }\n getScaleByPosition(e) {\n return this.scales[e];\n }\n getScaleTypeByPosition(e) {\n return this.scaleTypes[e];\n }\n getDomainAxisScaleType() {\n const e = this.getDomainAxisPosition();\n return this.getScaleTypeByPosition(e);\n }\n getRangeAxisScaleType() {\n const e = this.getRangeAxisPosition();\n return this.getScaleTypeByPosition(e);\n }\n getDomainScale() {\n return this.scales[this.domainAxisPosition];\n }\n getRangeScale() {\n return this.scales[this.rangeAxisPosition];\n }\n // Find the main x-axis out of the 2 x-axis on the chart (when 2D axis is used)\n getMainXAxisPosition() {\n const e = [u.BOTTOM, u.TOP];\n return [this.domainAxisPosition, this.rangeAxisPosition].find(\n (t) => e.indexOf(t) > -1\n );\n }\n // Find the main y-axis out of the 2 y-axis on the chart (when 2D axis is used)\n getMainYAxisPosition() {\n const e = [u.LEFT, u.RIGHT];\n return [this.domainAxisPosition, this.rangeAxisPosition].find(\n (t) => e.indexOf(t) > -1\n );\n }\n getMainXScale() {\n return this.scales[this.getMainXAxisPosition()];\n }\n getMainYScale() {\n return this.scales[this.getMainYAxisPosition()];\n }\n getValueFromScale(e, t, n, s) {\n const o = this.model.getOptions(), r = l(o, \"axes\")[n], { mapsTo: c } = r, h = l(s, c) !== null ? s[c] : s;\n let v;\n switch (t) {\n case d.LABELS:\n v = e(h) + e.step() / 2;\n break;\n case d.TIME:\n v = e(new Date(h));\n break;\n default:\n v = e(h);\n }\n return v;\n }\n getBoundedScaledValues(e) {\n const { bounds: t } = this.model.getOptions(), n = this.getRangeAxisPosition({ datum: e }), s = this.scales[n], o = this.model.getOptions(), r = l(o, \"axes\")[n], { mapsTo: c } = r, h = e[c] !== void 0 ? e[c] : e;\n return [\n s(\n l(e, t.upperBoundMapsTo) !== null ? e[t.upperBoundMapsTo] : h\n ),\n s(\n l(e, t.lowerBoundMapsTo) !== null ? e[t.lowerBoundMapsTo] : h\n )\n ];\n }\n getValueThroughAxisPosition(e, t) {\n const n = this.scaleTypes[e], s = this.scales[e];\n return this.getValueFromScale(s, n, e, t);\n }\n getDomainValue(e) {\n const t = this.getDomainAxisPosition({ datum: e });\n return this.getValueThroughAxisPosition(t, e);\n }\n getRangeValue(e) {\n const t = this.getRangeAxisPosition({ datum: e });\n return this.getValueThroughAxisPosition(t, e);\n }\n getMainXScaleType() {\n return this.getScaleTypeByPosition(this.getMainXAxisPosition());\n }\n getMainYScaleType() {\n return this.getScaleTypeByPosition(this.getMainYAxisPosition());\n }\n getDomainIdentifier(e) {\n const t = this.model.getOptions();\n return l(t, \"axes\", this.getDomainAxisPosition({ datum: e }), \"mapsTo\");\n }\n getRangeIdentifier(e) {\n const t = this.model.getOptions();\n return l(t, \"axes\", this.getRangeAxisPosition({ datum: e }), \"mapsTo\");\n }\n extendsDomain(e, t) {\n const n = this.model.getOptions(), s = l(n, \"axes\", e);\n if (s.scaleType === d.TIME) {\n const o = l(n, \"timeScale\", \"addSpaceOnEdges\");\n return Je(t, o);\n } else\n return Qe(t, X.paddingRatio, s.scaleType);\n }\n findVerticalAxesPositions() {\n const e = this.model.getOptions(), t = l(e, \"axes\"), n = this.isDualAxes();\n return l(t, u.LEFT) === null && l(t, u.RIGHT) !== null || l(t, u.RIGHT, \"main\") === !0 || n && l(t, u.LEFT, \"correspondingDatasets\") ? {\n primary: u.RIGHT,\n secondary: u.LEFT\n } : { primary: u.LEFT, secondary: u.RIGHT };\n }\n findHorizontalAxesPositions() {\n const e = this.model.getOptions(), t = l(e, \"axes\"), n = this.isDualAxes();\n return l(t, u.BOTTOM) === null && l(t, u.TOP) !== null || l(t, u.TOP, \"main\") === !0 || n && l(t, u.BOTTOM, \"correspondingDatasets\") ? {\n primary: u.TOP,\n secondary: u.BOTTOM\n } : { primary: u.BOTTOM, secondary: u.TOP };\n }\n findDomainAndRangeAxesPositions(e, t) {\n const n = this.model.getOptions(), s = l(n, \"axes\", e.primary), o = l(n, \"axes\", t.primary), a = s.scaleType || d.LINEAR, r = o.scaleType || d.LINEAR, c = {\n primaryDomainAxisPosition: null,\n secondaryDomainAxisPosition: null,\n primaryRangeAxisPosition: null,\n secondaryRangeAxisPosition: null\n };\n return c.primaryDomainAxisPosition = t.primary, c.primaryRangeAxisPosition = e.primary, c.secondaryDomainAxisPosition = t.secondary, c.secondaryRangeAxisPosition = e.secondary, (!(r === d.LABELS || r === d.TIME) && a === d.LABELS || a === d.TIME) && (c.primaryDomainAxisPosition = e.primary, c.primaryRangeAxisPosition = t.primary, c.secondaryDomainAxisPosition = e.secondary, c.secondaryRangeAxisPosition = t.secondary), c;\n }\n getScaleDomain(e) {\n const t = this.model.getOptions(), n = l(t, \"axes\", e), s = l(t, \"bounds\"), { includeZero: o } = n, a = l(n, \"scaleType\") || d.LINEAR;\n if (this.model.isDataEmpty())\n return [];\n if (n.binned) {\n const { bins: m } = this.model.getBinConfigurations();\n return [0, le(m, (p) => p.length)];\n } else if (n.limitDomainToBins) {\n const { bins: m } = this.model.getBinConfigurations(), p = this.model.getStackKeys({ bins: m });\n return [p[0].split(\"-\")[0], p[p.length - 1].split(\"-\")[1]];\n }\n const r = this.model.getDisplayData(), { extendLinearDomainBy: c, mapsTo: h, percentage: v, thresholds: y } = n, { reference: A, compareTo: S } = X.ratio;\n if (n.domain)\n return a === d.LABELS ? n.domain : (a === d.TIME && (n.domain = n.domain.map(\n (m) => m.getTime === void 0 ? new Date(m) : m\n )), this.extendsDomain(e, n.domain));\n if (v)\n return [0, 100];\n if (n && a === d.LABELS)\n return ie(r.map((m) => m[h]));\n let P, D;\n const L = this.model.getDataGroupNames();\n if (a === d.LABELS_RATIO)\n return r.map((m) => `${m[A]}/${m[S]}`);\n if (a === d.TIME)\n D = r.map((m) => +new Date(m[h]));\n else if (s && t.axes)\n D = [], r.forEach((m) => {\n D.push(m[h]), m[s.upperBoundMapsTo] && D.push(m[s.upperBoundMapsTo]), m[s.lowerBoundMapsTo] && D.push(m[s.lowerBoundMapsTo]);\n });\n else if (n.stacked === !0 && L && e === this.getRangeAxisPosition()) {\n const { groupMapsTo: m } = t.data, p = this.model.getDataValuesGroupedByKeys({\n groups: L\n }), te = r.filter(\n (T) => !L.includes(T[m])\n ), N = [];\n p.forEach((T) => {\n const { ...ne } = T;\n let F = 0, V = 0;\n Object.values(ne).forEach((R) => {\n isNaN(R) || (R < 0 ? V += R : F += R);\n }), N.push([V, F]);\n }), D = [\n ...qe(N),\n ...te.map((T) => T[h])\n ];\n } else\n D = [], r.forEach((m) => {\n const p = m[h];\n Array.isArray(p) && p.length === 2 ? (D.push(p[0]), D.push(p[1])) : (c && D.push(Math.max(m[h], m[c])), D.push(p));\n });\n return a !== d.TIME && a !== d.LOG && o && D.push(0), y && y.length > 0 && y.forEach((m) => {\n const p = l(m, \"value\");\n p !== null && D.push(p);\n }), P = q(D), P = this.extendsDomain(e, P), P;\n }\n createScale(e) {\n const t = this.model.getOptions(), n = l(t, \"axes\", e);\n if (!n)\n return null;\n const s = l(n, \"scaleType\") || d.LINEAR;\n this.scaleTypes[e] = s;\n let o;\n return s === d.TIME ? o = ue() : s === d.LOG ? o = ce().base(n.base || 10) : s === d.LABELS || s === d.LABELS_RATIO ? o = me() : o = de(), o.domain(this.getScaleDomain(e)), o;\n }\n getHighestDomainThreshold() {\n const e = l(this.model.getOptions(), \"axes\"), t = this.getDomainAxisPosition(), { thresholds: n } = e[t];\n if (!Array.isArray(n) || Array.isArray(n) && !n.length)\n return null;\n const s = this.getDomainScale(), o = n.sort((r, c) => c.value - r.value)[0];\n return this.getScaleTypeByPosition(t) === d.TIME && (typeof o.value == \"string\" || o.value.getTime === void 0) && (o.value = new Date(o.value)), {\n threshold: o,\n scaleValue: s(o.value)\n };\n }\n getHighestRangeThreshold() {\n const e = l(this.model.getOptions(), \"axes\"), t = this.getRangeAxisPosition(), { thresholds: n } = e[t];\n if (!Array.isArray(n) || Array.isArray(n) && !n.length)\n return null;\n const s = this.getRangeScale(), o = n.sort((a, r) => r.value - a.value)[0];\n return {\n threshold: o,\n scaleValue: s(o.value)\n };\n }\n}\nfunction Je(i, e) {\n const t = new Date(i[0]), n = new Date(i[1]);\n return Ue(n, t) > 1 ? [We(t, e), ee(n, e)] : _e(n, t) > 1 ? [je(t, e), C(n, e)] : He(n, t) > 1 ? [$e(t, e), J(n, e)] : Ye(n, t) > 1 ? [Ke(t, e), Q(n, e)] : $(n, t) > 30 ? [\n K(t, e * 30),\n E(n, e * 30)\n ] : $(n, t) > 1 ? [K(t, e), E(n, e)] : j(n, t) > 15 ? [\n W(t, e * 15),\n I(n, e * 15)\n ] : j(n, t) > 1 ? [W(t, e), I(n, e)] : [t, n];\n}\nfunction Qe([i, e], t, n) {\n const o = (e - i) * t, a = e <= 0 && e + o > 0 ? 0 : e + o;\n let r = i >= 0 && i - o < 0 ? 0 : i - o;\n if (n === d.LOG && r <= 0) {\n if (i <= 0)\n throw Error(\"Data must have values greater than 0 if log scale type is used.\");\n r = i;\n }\n return [r, a];\n}\nclass ut extends O {\n constructor() {\n super(...arguments), this.curveTypes = {\n curveLinear: ge,\n curveLinearClosed: he,\n curveBasis: fe,\n curveBasisClosed: pe,\n curveBasisOpen: ve,\n curveBundle: De,\n curveCardinal: xe,\n curveCardinalClosed: ye,\n curveCardinalOpen: Oe,\n curveCatmullRom: Ae,\n curveCatmullRomClosed: Te,\n curveCatmullRomOpen: Me,\n curveMonotoneX: Se,\n curveMonotoneY: Pe,\n curveNatural: Re,\n curveStep: Be,\n curveStepAfter: Le,\n curveStepBefore: Ee\n };\n }\n getD3Curve() {\n let e = \"curveLinear\";\n const t = this.model.getOptions().curve;\n if (t && (typeof t == \"string\" ? e = t : e = t.name), this.curveTypes[e]) {\n let n = this.curveTypes[e];\n return t && Object.keys(t).forEach((s) => {\n n[s] && (n = n[s](t[s]));\n }), n;\n }\n return console.warn(`The curve type '${e}' is invalid, using 'curveLinear' instead`), this.curveTypes.curveLinear;\n }\n}\nclass ct extends O {\n isZoomBarEnabled() {\n if (!this.services.cartesianScales || !l(this.model.getOptions(), \"zoomBar\", \"top\", \"enabled\"))\n return !1;\n this.services.cartesianScales.findDomainAndRangeAxes();\n const e = this.services.cartesianScales.getMainXAxisPosition(), t = l(\n this.model.getOptions(),\n \"axes\",\n e,\n \"scaleType\"\n );\n return e === u.BOTTOM && t === d.TIME;\n }\n // get display data for zoom bar\n // basically it's sum of value grouped by time\n getZoomBarData() {\n const e = this.model.getZoomBarData();\n return e && e.length > 1 ? e : this.model.getDisplayData();\n }\n getDefaultZoomBarDomain(e) {\n if (!this.services.zoom)\n throw new Error(\"Services zoom not defined\");\n const t = e || this.services.zoom.getZoomBarData(), { cartesianScales: n } = this.services;\n if (!n)\n throw new Error(\"Services cartesianScales undefined\");\n const s = n.getMainXAxisPosition(), o = n.getDomainIdentifier(), a = l(this.model.getOptions(), \"axes\", s, \"domain\");\n if (Array.isArray(a) && a.length === 2)\n return a;\n if (!s)\n throw new Error(\"Not defined: mainXAxisPosition\");\n return n.extendsDomain(\n s,\n q(t, (r) => r[o])\n );\n }\n handleDomainChange(e, t = { dispatchEvent: !0 }) {\n var n;\n this.model.set({ zoomDomain: e }, { animate: !1 }), t.dispatchEvent && ((n = this.services.events) == null || n.dispatchEvent(B.ZoomDomain.CHANGE, {\n newDomain: e\n }));\n }\n getZoomRatio() {\n return l(this.model.getOptions(), \"zoomBar\", \"zoomRatio\");\n }\n // filter out data not inside zoom domain\n // to get better range value for axis label\n filterDataForRangeAxis(e, t) {\n var a;\n const n = this.model.get(\"zoomDomain\"), s = Object.assign(\n { stacked: !1 },\n // default configs\n t\n ), o = l(this.model.getOptions(), \"zoomBar\", \"updateRangeAxis\");\n if (this.isZoomBarEnabled() && o && n) {\n const r = s.stacked ? \"sharedStackKey\" : (a = this.services.cartesianScales) == null ? void 0 : a.getDomainIdentifier(), c = e.filter(\n (h) => new Date(h[r]) >= n[0] && new Date(h[r]) <= n[1]\n );\n if (c.length > 0)\n return c;\n }\n return e;\n }\n zoomIn(e = this.getZoomRatio()) {\n var S;\n const t = this.model.get(\"zoomDomain\"), n = oe.handleWidth, s = (S = this.services.cartesianScales) == null ? void 0 : S.getMainXScale().copy();\n s.domain(this.getDefaultZoomBarDomain());\n const o = s(t[0]), a = s(t[1]);\n if (a - o < n + 1)\n return;\n const r = s.range(), c = a - o, h = Math.min((r[1] - r[0]) / 2 * (e / 2), c / 2);\n let v = o + h, y = a - h;\n v >= y && (v = o + c / 2 - n / 2, y = a - c / 2 + n / 2);\n const A = [s.invert(v), s.invert(y)];\n (t[0].valueOf() !== A[0].valueOf() || t[1].valueOf() !== A[1].valueOf()) && this.handleDomainChange(A);\n }\n zoomOut(e = this.getZoomRatio()) {\n const t = this.model.get(\"zoomDomain\");\n if (!this.services.cartesianScales)\n throw new Error(\"Services cartesianScales undefined\");\n const n = this.services.cartesianScales.getMainXScale().copy();\n n.domain(this.getDefaultZoomBarDomain());\n const s = n(t[0]), o = n(t[1]), a = n.range(), r = (a[1] - a[0]) / 2 * (e / 2), c = Math.max(s - r, a[0]), h = Math.min(o + r, a[1]), v = [n.invert(c), n.invert(h)];\n (t[0].valueOf() !== v[0].valueOf() || t[1].valueOf() !== v[1].valueOf()) && this.handleDomainChange(v);\n }\n resetZoomDomain() {\n const e = this.model.get(\"zoomDomain\"), t = this.getDefaultZoomBarDomain();\n (e[0].valueOf() !== t[0].valueOf() || e[1].valueOf() !== t[1].valueOf()) && this.handleDomainChange(t);\n }\n // check if current zoom domain is already the min zoom domain\n // when toolbar is rendered, we don't render chart yet\n // don't depend on scale range\n isMinZoomDomain() {\n const e = this.model.get(\"zoomDomain\"), t = this.getDefaultZoomBarDomain();\n if (!e || !t)\n return !1;\n const n = e[1].valueOf() - e[0].valueOf(), s = t[1].valueOf() - t[0].valueOf(), o = l(this.model.getOptions(), \"zoomBar\", \"minZoomRatio\");\n return n / s < o;\n }\n // check if current zoom domain is already the max zoom domain\n isMaxZoomDomain() {\n const e = this.model.get(\"zoomDomain\"), t = this.getDefaultZoomBarDomain();\n return !!(e && t && e[0].valueOf() === t[0].valueOf() && e[1].valueOf() === t[1].valueOf());\n }\n isEmptyState() {\n return this.getZoomBarData().length === 0;\n }\n isZoomBarLoading(e) {\n return l(this.model.getOptions(), \"zoomBar\", e, \"loading\");\n }\n isZoomBarLocked(e) {\n return l(this.model.getOptions(), \"zoomBar\", e, \"locked\");\n }\n}\nexport {\n it as C,\n ot as E,\n at as F,\n rt as T,\n ct as Z,\n lt as a,\n ut as b,\n qe as f\n};\n//# sourceMappingURL=index-a266373c.mjs.map\n","import { t as Y, g as m, m as a, o as r, f as J, h as V } from \"./color-scale-utils-5eb3eeaa.mjs\";\nimport { T as It, j as Ht, l as Gt, n as Vt, p as Nt, q as Ut, s as Zt, d as _t, u as zt, v as Wt, M as jt, C as $t, w as Kt, N as Jt, O as qt, P as Xt, Q as Qt, R as Yt, x as eo, y as so, S as to, z as oo, A as no, B as io, D as ro, E as ao, F as ho, G as co, H as mo, K as lo, I as po, J as Co, L as uo } from \"./color-scale-utils-5eb3eeaa.mjs\";\nimport { i as go } from \"./index-ec554115.mjs\";\nimport { ChartModel as Re, ChartModelCartesian as Te, AlluvialChartModel as be, BoxplotChartModel as Oe, BulletChartModel as Se, ChoroplethModel as fe, CirclePackChartModel as Ae, PieChartModel as xe, GaugeChartModel as ye, HeatmapModel as De, ChartModelBinned as Fe, MeterChartModel as Le, RadarChartModel as Pe, TreeChartModel as Me, TreemapChartModel as ke, WordCloudModel as Be } from \"./model/index.mjs\";\nimport { _ as j, r as i, q as c, L as Z, y as A, t as N, e as $, S as Ie, u as K, F as p, l as R } from \"./enums-a96ef472.mjs\";\nimport { A as Eo, a as Ro, b as To, c as bo, d as Oo, f as So, B as fo, g as Ao, C as xo, h as yo, i as Do, j as Fo, k as Lo, m as Po, n as Mo, D as ko, o as Bo, G as Io, p as Ho, s as Go, v as Vo, M as No, w as Uo, P as Zo, x as _o, R as zo, z as Wo, H as jo, T as $o, I as Ko, J as Jo, K as qo, N as Xo, O as Qo, Q as Yo, U as en, V as sn, W as tn, Z as on, X as nn, Y as rn } from \"./enums-a96ef472.mjs\";\nimport { c as He, L as ee, C as Ge, T as _, a as z, b as g, S as F, d as se, M as W, e as Ve, f as Ne, g as Ue, H as Ze, Z as _e, A as te, h as ze, i as d, G as w, R as B, j as k, k as oe, l as M, m as C, B as We, n as I, o as je, p as $e, q as ne, r as Ke, s as Je, t as ie, u as re, v as U, w as ae, x as he, y as ce, P as qe, D as Xe, z as Qe, E as Ye, F as es, I as ss, J as ts, K as os, N as ns, O as is, Q as rs, U as as, V as hs, W as cs } from \"./choropleth-f473ea0d.mjs\";\nimport { X as hn, a8 as cn, a9 as mn, a7 as ln, Y as pn, _ as dn, $ as Cn, a0 as un, a1 as vn, a2 as gn, a3 as wn, a4 as En, a5 as Rn, a6 as Tn } from \"./choropleth-f473ea0d.mjs\";\nimport { C as ms, E as ls, F as ps, T as ds, a as Cs, b as us, Z as vs, f as gs } from \"./index-a266373c.mjs\";\nimport { D as ws, G as Es } from \"./angle-utils-8b6ce998.mjs\";\nimport { S as On, d as Sn, a as fn, p as An, b as xn, r as yn } from \"./angle-utils-8b6ce998.mjs\";\nimport \"d3\";\nimport \"./index-becfb567.mjs\";\nimport \"./a11y-7bad4f48.mjs\";\nimport \"./_baseEach-603421de.mjs\";\nimport \"d3-sankey\";\nimport \"d3-cloud\";\nfunction Rs(t, e, s) {\n var o = -1, n = t.length;\n e < 0 && (e = -e > n ? 0 : n + e), s = s > n ? n : s, s < 0 && (s += n), n = e > s ? 0 : s - e >>> 0, e >>>= 0;\n for (var h = Array(n); ++o < n; )\n h[o] = t[o + e];\n return h;\n}\nfunction Ts(t, e, s) {\n var o = t.length;\n return s = s === void 0 ? o : s, !e && s >= o ? t : Rs(t, e, s);\n}\nvar bs = \"\\\\ud800-\\\\udfff\", Os = \"\\\\u0300-\\\\u036f\", Ss = \"\\\\ufe20-\\\\ufe2f\", fs = \"\\\\u20d0-\\\\u20ff\", As = Os + Ss + fs, xs = \"\\\\ufe0e\\\\ufe0f\", ys = \"\\\\u200d\", Ds = RegExp(\"[\" + ys + bs + As + xs + \"]\");\nfunction me(t) {\n return Ds.test(t);\n}\nfunction Fs(t) {\n return t.split(\"\");\n}\nvar le = \"\\\\ud800-\\\\udfff\", Ls = \"\\\\u0300-\\\\u036f\", Ps = \"\\\\ufe20-\\\\ufe2f\", Ms = \"\\\\u20d0-\\\\u20ff\", ks = Ls + Ps + Ms, Bs = \"\\\\ufe0e\\\\ufe0f\", Is = \"[\" + le + \"]\", q = \"[\" + ks + \"]\", X = \"\\\\ud83c[\\\\udffb-\\\\udfff]\", Hs = \"(?:\" + q + \"|\" + X + \")\", pe = \"[^\" + le + \"]\", de = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\", Ce = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\", Gs = \"\\\\u200d\", ue = Hs + \"?\", ve = \"[\" + Bs + \"]?\", Vs = \"(?:\" + Gs + \"(?:\" + [pe, de, Ce].join(\"|\") + \")\" + ve + ue + \")*\", Ns = ve + ue + Vs, Us = \"(?:\" + [pe + q + \"?\", q, de, Ce, Is].join(\"|\") + \")\", Zs = RegExp(X + \"(?=\" + X + \")|\" + Us + Ns, \"g\");\nfunction _s(t) {\n return t.match(Zs) || [];\n}\nfunction zs(t) {\n return me(t) ? _s(t) : Fs(t);\n}\nfunction Ws(t) {\n return function(e) {\n e = Y(e);\n var s = me(e) ? zs(e) : void 0, o = s ? s[0] : e.charAt(0), n = s ? Ts(s, 1).join(\"\") : e.slice(1);\n return o[t]() + n;\n };\n}\nvar js = Ws(\"toUpperCase\");\nconst $s = js;\nfunction Ks(t) {\n return $s(Y(t).toLowerCase());\n}\nvar Js = He(function(t, e, s) {\n return e = e.toLowerCase(), t + (s ? Ks(e) : e);\n});\nconst qs = Js;\nclass T {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n constructor(e, s) {\n this.components = [], this.services = {\n canvasZoom: ms,\n domUtils: ws,\n events: ls,\n files: ps,\n gradientUtils: Es,\n transitions: ds\n }, this.model = new Re(this.services);\n }\n // Contains the code that uses properties that are overridable by the super-class\n init(e, s) {\n this.model.set({ holder: e }, { skipUpdate: !0 }), Object.keys(this.services).forEach((o) => {\n const n = this.services[o];\n this.services[o] = new n(this.model, this.services);\n }), this.services.events.addEventListener(j.Model.UPDATE, () => {\n this.update();\n }), this.model.setData(s.data), this.services.events.addEventListener(j.Chart.RESIZE, () => {\n this.update();\n }), this.components = this.getComponents(), this.update();\n }\n getComponents() {\n return console.error(\"getComponents() method is not implemented\"), [];\n }\n update() {\n if (!this.components)\n return;\n Object.keys(this.services).forEach((o) => {\n this.services[o].update();\n }), this.components.forEach((o) => o.render(!0));\n const e = this.services.transitions.getPendingTransitions(), s = Object.keys(e).map((o) => e[o].end().catch((h) => h));\n Promise.all(s).then(\n () => this.services.events.dispatchEvent(j.Chart.RENDER_FINISHED)\n );\n }\n destroy() {\n this.components.forEach((e) => e.destroy()), this.services.domUtils.getHolder().remove(), this.model.set({ destroyed: !0 }, { skipUpdate: !0 });\n }\n getChartComponents(e, s) {\n const o = this.model.getOptions(), n = m(o, \"toolbar\", \"enabled\"), h = {\n id: \"legend\",\n components: [new ee(this.model, this.services)],\n growth: i.PREFERRED\n }, l = m(o, \"canvasZoom\", \"enabled\");\n l && l === !0 && e.push(new Ge(this.model, this.services));\n const b = !!this.model.getOptions().title, O = {\n id: \"title\",\n components: [new _(this.model, this.services)],\n growth: i.STRETCH\n }, x = {\n id: \"toolbar\",\n components: [new z(this.model, this.services)],\n growth: i.PREFERRED\n }, L = {\n id: \"header\",\n components: [\n new g(\n this.model,\n this.services,\n [\n // always add title to keep layout correct\n O,\n ...n ? [x] : []\n ],\n {\n direction: c.ROW,\n alignItems: Z.CENTER\n }\n )\n ],\n growth: i.PREFERRED\n }, y = {\n id: \"graph-frame\",\n components: e,\n growth: i.STRETCH,\n renderType: m(s, \"graphFrameRenderType\") || A.SVG\n }, D = m(s, \"excludeLegend\") !== !0 && o.legend.enabled !== !1;\n let S = c.COLUMN;\n if (D) {\n const f = m(o, \"legend\", \"position\");\n f === \"left\" ? (S = c.ROW, o.legend.orientation || (o.legend.orientation = N.VERTICAL)) : f === \"right\" ? (S = c.ROW_REVERSE, o.legend.orientation || (o.legend.orientation = N.VERTICAL)) : f === \"bottom\" && (S = c.COLUMN_REVERSE);\n }\n const P = {\n id: \"spacer\",\n components: [new F(this.model, this.services)],\n growth: i.PREFERRED\n }, v = {\n id: \"full-frame\",\n components: [\n new g(\n this.model,\n this.services,\n [\n ...D ? [h] : [],\n ...D ? [P] : [],\n y\n ],\n {\n direction: S\n }\n )\n ],\n growth: i.STRETCH\n }, E = [];\n if (b || n) {\n E.push(L);\n const f = {\n id: \"spacer\",\n components: [\n new F(this.model, this.services, n ? { size: 15 } : void 0)\n ],\n growth: i.PREFERRED\n };\n E.push(f);\n }\n return E.push(v), [\n new se(this.model, this.services),\n new W(this.model, this.services),\n new g(this.model, this.services, E, {\n direction: c.COLUMN\n })\n ];\n }\n}\nclass u extends T {\n constructor(e, s) {\n super(e, s), this.services = Object.assign(this.services, {\n cartesianScales: Cs,\n curves: us,\n zoom: vs\n }), this.model = new Te(this.services);\n }\n getAxisChartComponents(e, s) {\n const o = this.model.getOptions(), n = m(o, \"zoomBar\", $.TOP, \"enabled\"), h = m(o, \"toolbar\", \"enabled\");\n this.services.cartesianScales.determineAxisDuality(), this.services.cartesianScales.findDomainAndRangeAxes(), this.services.cartesianScales.determineOrientation();\n const l = this.services.cartesianScales.getMainXAxisPosition(), b = m(o, \"axes\", l, \"scaleType\"), O = n && l === $.BOTTOM && b === Ie.TIME, x = this.services.zoom.isZoomBarLocked($.TOP), L = !!this.model.getOptions().title, y = {\n id: \"title\",\n components: [new _(this.model, this.services)],\n growth: i.STRETCH\n }, D = {\n id: \"toolbar\",\n components: [new z(this.model, this.services)],\n growth: i.PREFERRED\n }, S = {\n id: \"header\",\n components: [\n new g(\n this.model,\n this.services,\n [\n // always add title to keep layout correct\n y,\n ...h ? [D] : []\n ],\n {\n direction: c.ROW,\n alignItems: Z.CENTER\n }\n )\n ],\n growth: i.PREFERRED\n }, P = {\n id: \"legend\",\n components: [new ee(this.model, this.services)],\n growth: i.PREFERRED\n };\n O && !x && e.push(\n new Ve(this.model, this.services),\n new Ne(this.model, this.services)\n ), e.push(new Ue(this.model, this.services)), e.push(new Ze(this.model, this.services));\n const v = {\n id: \"graph-frame\",\n components: e,\n growth: i.STRETCH,\n renderType: A.SVG\n }, E = m(s, \"legend\", \"enabled\") !== !1 && this.model.getOptions().legend.enabled !== !1;\n let f = c.COLUMN;\n if (E) {\n const G = m(this.model.getOptions(), \"legend\", \"position\");\n G === K.LEFT ? (f = c.ROW, this.model.getOptions().legend.orientation || (this.model.getOptions().legend.orientation = N.VERTICAL)) : G === K.RIGHT ? (f = c.ROW_REVERSE, this.model.getOptions().legend.orientation || (this.model.getOptions().legend.orientation = N.VERTICAL)) : G === K.BOTTOM && (f = c.COLUMN_REVERSE);\n }\n const ge = {\n id: \"spacer\",\n components: [new F(this.model, this.services)],\n growth: i.PREFERRED\n }, we = {\n id: \"full-frame\",\n components: [\n new g(\n this.model,\n this.services,\n [\n ...E ? [P] : [],\n ...E ? [ge] : [],\n v\n ],\n {\n direction: f\n }\n )\n ],\n growth: i.STRETCH\n }, Ee = {\n id: \"zoom-bar\",\n components: [new _e(this.model, this.services)],\n growth: i.PREFERRED,\n renderType: A.SVG\n }, H = [];\n if (L || h) {\n H.push(S);\n const G = {\n id: \"spacer\",\n components: [\n new F(this.model, this.services, h ? { size: 15 } : void 0)\n ],\n growth: i.PREFERRED\n };\n H.push(G);\n }\n return O && H.push(Ee), H.push(we), [\n new te(this.model, this.services),\n new W(this.model, this.services),\n new g(this.model, this.services, H, {\n direction: c.COLUMN\n })\n ];\n }\n}\nclass mt extends T {\n constructor(e, s) {\n super(e, s), this.model = new be(this.services), this.model.setOptions(a(r.alluvialChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [new ze(this.model, this.services)];\n return this.getChartComponents(e, {\n excludeLegend: !0\n });\n }\n}\nclass lt extends u {\n constructor(e, s) {\n super(e, s), this.model.setOptions(a(J(r.areaChart), s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new B(this.model, this.services),\n new k(this.model, this.services),\n new oe(this.model, this.services),\n new M(this.model, this.services, {\n fadeInOnChartHolderMouseover: !0,\n handleThresholds: !0\n }),\n new C(this.model, this.services, {\n skeleton: p.GRID\n })\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass pt extends u {\n constructor(e, s) {\n super(e, s), this.model = new Oe(this.services), this.model.setOptions(a(r.boxplotChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new We(this.model, this.services),\n new I(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.VERT_OR_HORIZ\n })\n ];\n return this.getAxisChartComponents(e, {\n legend: {\n enabled: !1\n }\n });\n }\n}\nclass dt extends u {\n constructor(e, s) {\n super(e, s), this.model.setOptions(a(r.bubbleChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new B(this.model, this.services),\n new je(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.GRID\n })\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass Ct extends u {\n constructor(e, s) {\n super(e, s), this.model = new Se(this.services), this.model.setOptions(a(r.bulletChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new $e(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.GRID\n })\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass ut extends T {\n constructor(e, s) {\n super(e, s), this.model = new fe(this.services), this.model.setOptions(\n a(r.choroplethChart, s.options)\n ), this.init(e, s);\n }\n // Custom getChartComponents - Implements getChartComponents\n // Removes zoombar support and additional `features` that are not supported in heatmap\n getChartComponents(e, s) {\n const o = this.model.getOptions(), n = m(o, \"toolbar\", \"enabled\"), h = !!this.model.getOptions().title, l = {\n id: \"title\",\n components: [new _(this.model, this.services)],\n growth: i.STRETCH\n }, b = {\n id: \"toolbar\",\n components: [new z(this.model, this.services)],\n growth: i.PREFERRED\n }, O = {\n id: \"header\",\n components: [\n new g(\n this.model,\n this.services,\n [\n // always add title to keep layout correct\n l,\n ...n ? [b] : []\n ],\n {\n direction: c.ROW,\n alignItems: Z.CENTER\n }\n )\n ],\n growth: i.PREFERRED\n }, x = {\n id: \"legend\",\n components: [\n new ne(this.model, this.services, {\n chartType: \"choropleth\"\n })\n ],\n growth: i.PREFERRED,\n renderType: A.SVG\n }, L = {\n id: \"graph-frame\",\n components: e,\n growth: i.STRETCH,\n renderType: A.SVG\n }, y = m(s, \"legend\", \"enabled\") !== !1 && this.model.getOptions().legend.enabled !== !1, D = c.COLUMN_REVERSE, S = {\n id: \"spacer\",\n components: [new F(this.model, this.services, { size: 15 })],\n growth: i.PREFERRED\n }, P = {\n id: \"full-frame\",\n components: [\n new g(\n this.model,\n this.services,\n [\n ...y ? [x] : [],\n ...y ? [S] : [],\n L\n ],\n {\n direction: D\n }\n )\n ],\n growth: i.STRETCH\n }, v = [];\n if (h || n) {\n v.push(O);\n const E = {\n id: \"spacer\",\n components: [\n new F(this.model, this.services, n ? { size: 15 } : void 0)\n ],\n growth: i.PREFERRED\n };\n v.push(E);\n }\n return v.push(P), [\n new se(this.model, this.services),\n new W(this.model, this.services),\n new g(this.model, this.services, v, {\n direction: c.COLUMN\n })\n ];\n }\n getComponents() {\n const e = [new Ke(this.model, this.services)];\n return this.getChartComponents(e);\n }\n}\nclass vt extends T {\n constructor(e, s) {\n super(e, s), this.model = new Ae(this.services), this.model.setOptions(a(r.circlePackChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [new Je(this.model, this.services)];\n return this.getChartComponents(e);\n }\n}\nconst Q = {\n [R.LINE]: [k, M],\n [R.SCATTER]: [M],\n [R.AREA]: [oe, k, M],\n [R.STACKED_AREA]: [ie, k, re, U],\n [R.SIMPLE_BAR]: [ae],\n [R.GROUPED_BAR]: [he, I],\n [R.STACKED_BAR]: [ce, U]\n};\nclass gt extends u {\n constructor(e, s) {\n super(e, s);\n const o = a(r.comboChart, s.options);\n s.options.comboChartTypes || (console.error(\"No comboChartTypes defined for the Combo Chart!\"), o.comboChartTypes = [{ type: R.LINE, correspondingDatasets: [] }]), this.model.setOptions(o), this.init(e, s);\n }\n getGraphComponents() {\n const { comboChartTypes: e } = this.model.getOptions();\n let s = 0;\n const o = e.map((n) => {\n const h = n.type;\n let l;\n if (typeof n.type == \"string\") {\n if (!Object.keys(Q).includes(n.type))\n return console.error(\n `Invalid chart type \"${n.type}\" specified for combo chart. Please refer to the ComboChart tutorial for more guidance.`\n ), null;\n let b = !1;\n const O = `${qs(n.type)}Chart`;\n return l = V(\n {},\n r[O],\n this.model.getOptions(),\n n.options\n ), n.type === R.STACKED_AREA && (b = !0), Q[n.type].map(\n (x) => new x(this.model, this.services, {\n groups: n.correspondingDatasets,\n id: s++,\n options: l,\n stacked: b\n })\n );\n } else\n return l = V({}, this.model.getOptions(), n.options), new h(this.model, this.services, {\n groups: n.correspondingDatasets,\n id: s++,\n options: l\n });\n }).filter((n) => n !== null);\n return gs(o);\n }\n getComponents() {\n const { comboChartTypes: e } = this.model.getOptions(), s = e.some(\n (h) => h.type === R.STACKED_BAR || h.type === R.STACKED_AREA\n ), o = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.GRID\n }),\n ...s ? [] : [new B(this.model, this.services)],\n ...this.getGraphComponents()\n ];\n return this.getAxisChartComponents(o);\n }\n}\nclass Xs extends T {\n // TODO - Optimize the use of \"extending\"\n constructor(e, s, o = !1) {\n super(e, s), this.model = new xe(this.services), !o && (this.model.setOptions(a(r.pieChart, s.options)), this.init(e, s));\n }\n getComponents() {\n const e = [\n new qe(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.PIE\n })\n ];\n return this.getChartComponents(e);\n }\n}\nclass wt extends Xs {\n constructor(e, s) {\n super(e, s, !0), this.model.setOptions(a(r.donutChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new Xe(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.DONUT\n })\n ];\n return this.getChartComponents(e);\n }\n}\nclass Et extends T {\n constructor(e, s) {\n super(e, s), this.model = new ye(this.services), this.model.setOptions(a(r.gaugeChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [new Qe(this.model, this.services)];\n return this.getChartComponents(e);\n }\n}\nclass Rt extends u {\n constructor(e, s) {\n super(e, s), this.model.setOptions(a(r.groupedBarChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new he(this.model, this.services),\n new I(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.VERT_OR_HORIZ\n })\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass Tt extends u {\n constructor(e, s) {\n super(e, s), this.model = new De(this.services), this.model.setOptions(a(r.heatmapChart, s.options)), this.init(e, s);\n }\n // Custom getChartComponents - Implements getChartComponents\n // Removes zoombar support and additional `features` that are not supported in heatmap\n getAxisChartComponents(e, s) {\n const o = this.model.getOptions(), n = m(o, \"toolbar\", \"enabled\");\n this.services.cartesianScales.determineAxisDuality(), this.services.cartesianScales.findDomainAndRangeAxes(), this.services.cartesianScales.determineOrientation();\n const h = !!this.model.getOptions().title, l = {\n id: \"title\",\n components: [new _(this.model, this.services)],\n growth: i.STRETCH\n }, b = {\n id: \"toolbar\",\n components: [new z(this.model, this.services)],\n growth: i.PREFERRED\n }, O = {\n id: \"header\",\n components: [\n new g(\n this.model,\n this.services,\n [\n // always add title to keep layout correct\n l,\n ...n ? [b] : []\n ],\n {\n direction: c.ROW,\n alignItems: Z.CENTER\n }\n )\n ],\n growth: i.PREFERRED\n }, x = {\n id: \"legend\",\n components: [\n new ne(this.model, this.services, {\n chartType: \"heatmap\"\n })\n ],\n growth: i.PREFERRED,\n renderType: A.SVG\n }, L = {\n id: \"graph-frame\",\n components: e,\n growth: i.STRETCH,\n renderType: A.SVG\n }, y = m(s, \"legend\", \"enabled\") !== !1 && this.model.getOptions().legend.enabled !== !1, D = c.COLUMN_REVERSE, S = {\n id: \"spacer\",\n components: [new F(this.model, this.services, { size: 15 })],\n growth: i.PREFERRED\n }, P = {\n id: \"full-frame\",\n components: [\n new g(\n this.model,\n this.services,\n [\n ...y ? [x] : [],\n ...y ? [S] : [],\n L\n ],\n {\n direction: D\n }\n )\n ],\n growth: i.STRETCH\n }, v = [];\n if (h || n) {\n v.push(O);\n const E = {\n id: \"spacer\",\n components: [\n new F(this.model, this.services, n ? { size: 15 } : void 0)\n ],\n growth: i.PREFERRED\n };\n v.push(E);\n }\n return v.push(P), [\n new te(this.model, this.services),\n new W(this.model, this.services),\n new g(this.model, this.services, v, {\n direction: c.COLUMN\n })\n ];\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new Ye(this.model, this.services)\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass bt extends u {\n constructor(e, s) {\n super(e, s), this.model = new Fe(this.services), this.model.setOptions(a(r.histogramChart, s.options)), this.init(e, s), this.update();\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new es(this.model, this.services),\n new ss(this.model, this.services)\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass Ot extends u {\n constructor(e, s) {\n super(e, s), this.model.setOptions(a(r.lineChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new B(this.model, this.services),\n new k(this.model, this.services),\n new M(this.model, this.services, { handleThresholds: !0 }),\n new ts(this.model, this.services),\n new I(this.model, this.services)\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass St extends u {\n constructor(e, s) {\n super(e, s), this.model.setOptions(a(r.lollipopChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new B(this.model, this.services),\n new os(this.model, this.services),\n new M(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.GRID\n })\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass ft extends T {\n constructor(e, s) {\n var n;\n super(e, s), this.model = new Le(this.services);\n const o = (n = s.options.meter) != null && n.proportional ? V(J(r.proportionalMeterChart), s.options) : V(J(r.meterChart), s.options);\n this.model.setOptions(o), this.init(e, s);\n }\n getComponents() {\n const s = [\n ...m(this.model.getOptions(), \"meter\", \"showLabels\") ? [\n // Meter has a unique dataset title within the graph\n {\n id: \"meter-title\",\n components: [new ns(this.model, this.services)],\n growth: i.STRETCH,\n renderType: A.SVG\n },\n // Create the title spacer\n {\n id: \"spacer\",\n components: [\n new F(this.model, this.services, {\n size: 8\n })\n ],\n growth: i.STRETCH\n }\n ] : [],\n // Specify what to render inside the graph only\n {\n id: \"meter-graph\",\n components: [new is(this.model, this.services)],\n growth: i.STRETCH,\n renderType: A.SVG\n }\n ], o = [\n new g(this.model, this.services, s, {\n direction: c.COLUMN\n })\n ];\n return this.getChartComponents(o, {\n graphFrameRenderType: A.HTML\n });\n }\n}\nclass At extends T {\n constructor(e, s) {\n super(e, s), this.model = new Pe(this.services), this.model.setOptions(a(r.radarChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [new rs(this.model, this.services)];\n return this.getChartComponents(e);\n }\n}\nclass xt extends u {\n constructor(e, s) {\n super(e, s), this.model.setOptions(a(r.scatterChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new B(this.model, this.services),\n new M(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.GRID\n })\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass yt extends T {\n constructor(e, s) {\n super(e, s), this.model = new Me(this.services), this.model.setOptions(a(r.treeChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [new as(this.model, this.services)];\n return this.getChartComponents(e, {\n excludeLegend: !0\n });\n }\n}\nclass Dt extends T {\n constructor(e, s) {\n super(e, s), this.model = new ke(this.services), this.model.setOptions(a(r.treemapChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [new hs(this.model, this.services)];\n return this.getChartComponents(e);\n }\n}\nclass Ft extends u {\n constructor(e, s) {\n super(e, s), this.model.setOptions(a(r.simpleBarChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new ae(this.model, this.services),\n new I(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.VERT_OR_HORIZ\n })\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass Lt extends u {\n constructor(e, s) {\n super(e, s), this.model.setOptions(a(r.stackedAreaChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new U(this.model, this.services),\n new ie(this.model, this.services),\n new k(this.model, this.services, { stacked: !0 }),\n new re(this.model, this.services, {\n fadeInOnChartHolderMouseover: !0,\n handleThresholds: !0,\n stacked: !0\n }),\n new C(this.model, this.services, {\n skeleton: p.GRID\n })\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass Pt extends u {\n constructor(e, s) {\n super(e, s), this.model.setOptions(a(r.stackedBarChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new d(this.model, this.services),\n new w(this.model, this.services),\n new U(this.model, this.services),\n new ce(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.VERT_OR_HORIZ\n }),\n new I(this.model, this.services)\n ];\n return this.getAxisChartComponents(e);\n }\n}\nclass Mt extends T {\n constructor(e, s) {\n super(e, s), this.model = new Be(this.services), this.model.setOptions(a(r.wordCloudChart, s.options)), this.init(e, s);\n }\n getComponents() {\n const e = [\n new cs(this.model, this.services),\n new C(this.model, this.services, {\n skeleton: p.PIE\n })\n ];\n return this.getChartComponents(e);\n }\n}\nexport {\n Eo as Alignments,\n ze as Alluvial,\n mt as AlluvialChart,\n be as AlluvialChartModel,\n oe as Area,\n lt as AreaChart,\n Ro as AreaEvent,\n To as ArrowDirections,\n hn as Axis,\n u as AxisChart,\n te as AxisChartsTooltip,\n bo as AxisEvent,\n Oo as AxisFlavor,\n $ as AxisPositions,\n So as AxisTitleOrientations,\n cn as Bar,\n fo as BarEvent,\n es as BinnedRuler,\n We as Boxplot,\n pt as BoxplotChart,\n Oe as BoxplotChartModel,\n Ao as BoxplotEvent,\n je as Bubble,\n dt as BubbleChart,\n $e as Bullet,\n Ct as BulletChart,\n Se as BulletChartModel,\n xo as CalloutDirections,\n Ge as CanvasChartClip,\n ms as CanvasZoom,\n yo as CanvasZoomEvent,\n Do as CartesianOrientations,\n Cs as CartesianScales,\n T as Chart,\n Ne as ChartBrush,\n Ve as ChartClip,\n Fo as ChartEvent,\n Re as ChartModel,\n Fe as ChartModelBinned,\n Te as ChartModelCartesian,\n Lo as ChartTheme,\n R as ChartTypes,\n Ke as Choropleth,\n fe as ChoroplethModel,\n Je as CirclePack,\n vt as CirclePackChart,\n Ae as CirclePackChartModel,\n Po as ColorClassNameTypes,\n Mo as ColorLegendType,\n ne as ColorScaleLegend,\n gt as ComboChart,\n mn as Component,\n us as Curves,\n ws as DOMUtils,\n ko as DividerStatus,\n Bo as DominantBaseline,\n Xe as Donut,\n wt as DonutChart,\n ls as Events,\n ut as ExperimentalChoroplethChart,\n ps as Files,\n Qe as Gauge,\n Et as GaugeChart,\n ye as GaugeChartModel,\n Io as GaugeEvent,\n Ho as GaugeTypes,\n ln as GeoProjection,\n Es as GradientUtils,\n w as Grid,\n he as GroupedBar,\n Rt as GroupedBarChart,\n Ye as Heatmap,\n Tt as HeatmapChart,\n De as HeatmapModel,\n Ze as Highlight,\n ss as Histogram,\n bt as HistogramChart,\n pn as HoverAxis,\n Z as LayoutAlignItems,\n g as LayoutComponent,\n c as LayoutDirection,\n i as LayoutGrowth,\n ee as Legend,\n Go as LegendItemType,\n N as LegendOrientations,\n K as LegendPositions,\n k as Line,\n Ot as LineChart,\n Vo as LineEvent,\n os as Lollipop,\n St as LollipopChart,\n is as Meter,\n ft as MeterChart,\n Le as MeterChartModel,\n ns as MeterTitle,\n W as Modal,\n No as ModalEvent,\n Uo as ModelEvent,\n qe as Pie,\n Xs as PieChart,\n xe as PieChartModel,\n Zo as PieEvent,\n _o as Projection,\n rs as Radar,\n At as RadarChart,\n Pe as RadarChartModel,\n zo as RadarEvent,\n A as RenderTypes,\n B as Ruler,\n Ie as ScaleTypes,\n M as Scatter,\n xt as ScatterChart,\n Wo as ScatterEvent,\n On as Service,\n ae as SimpleBar,\n Ft as SimpleBarChart,\n C as Skeleton,\n ts as SkeletonLines,\n p as Skeletons,\n F as Spacer,\n ie as StackedArea,\n Lt as StackedAreaChart,\n ce as StackedBar,\n Pt as StackedBarChart,\n U as StackedRuler,\n re as StackedScatter,\n jo as Statuses,\n It as TIME_INTERVALS,\n $o as TextAnchor,\n Ue as Threshold,\n Ko as ThresholdEvent,\n Jo as TickRotations,\n _ as Title,\n z as Toolbar,\n qo as ToolbarControlTypes,\n se as Tooltip,\n Xo as TooltipEvent,\n ds as Transitions,\n as as Tree,\n yt as TreeChart,\n Me as TreeChartModel,\n Qo as TreeEvent,\n Yo as TreeTypes,\n hs as Treemap,\n Dt as TreemapChart,\n ke as TreemapChartModel,\n en as TreemapEvent,\n sn as TruncationTypes,\n d as TwoDimensionalAxes,\n cs as WordCloud,\n Mt as WordCloudChart,\n tn as WordCloudEvent,\n Be as WordCloudModel,\n I as ZeroLine,\n vs as Zoom,\n _e as ZoomBar,\n on as ZoomBarTypes,\n nn as ZoomDomainEvent,\n rn as ZoombarEvent,\n Ht as alluvial,\n Gt as area,\n dn as arrowLeft,\n Cn as arrowRight,\n Vt as axis,\n Nt as baseTooltip,\n Ut as boxplot,\n un as buildBezierPathString,\n vn as buildElbowPathString,\n gn as buildStraightPathString,\n Zt as canvasZoomSettings,\n _t as carbonPrefix,\n wn as circle,\n zt as circlePack,\n Wt as color,\n jt as computeTimeIntervalName,\n $t as configurations,\n Kt as defaultLegendAdditionalItems,\n Sn as degToRad,\n En as diamond,\n fn as distanceBetweenPointOnCircAndVerticalDiameter,\n Jt as formatDateTillMilliSeconds,\n qt as formatTick,\n Xt as getColorScale,\n Qt as getDomain,\n Yt as getTimeformats,\n eo as grid,\n so as histogram,\n go as interfaces,\n to as isTickPrimary,\n oo as legend,\n no as lines,\n io as meter,\n r as options,\n ro as pie,\n An as polarToCartesianCoords,\n xn as radToDeg,\n ao as radar,\n yn as radialLabelPlacement,\n ho as ruler,\n co as spacers,\n Rn as square,\n Tn as tee,\n mo as timeScale,\n lo as toolbar,\n po as tooltips,\n Co as transitions,\n uo as zoomBar\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import React from 'react'\nimport type { Chart as BaseChartCore, BaseChartOptions, ChartTabularData } from '@carbon/charts'\n\ninterface Props<Options extends BaseChartOptions> {\n\toptions: Options\n\tdata: ChartTabularData\n}\n\n// TODO: add abstract keyword once React 16 support no longer needed\nexport default class BaseChart<\n\tOptions extends BaseChartOptions = BaseChartOptions\n> extends React.PureComponent<Props<Options>, unknown> {\n\tchart?: BaseChartCore\n\tchartRef = React.createRef<HTMLDivElement>()\n\n\t// TODO: add abstract keyword once React 16 support no longer needed then remove the next 3 comments\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: Options): BaseChartCore {\n\t\tthrow new Error('Method not implemented.')\n\t}\n\n\tcomponentDidUpdate(prevProps: Props<Options>) {\n\t\tif (this.props.data !== prevProps.data) {\n\t\t\tthis.chart?.model.setData(this.props.data)\n\t\t}\n\n\t\tif (this.props.options !== prevProps.options) {\n\t\t\tthis.chart?.model.setOptions(this.props.options)\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.chart?.destroy()\n\t}\n\n\tcomponentDidMount() {\n\t\tif (this.chartRef.current && !this.chart) {\n\t\t\tthis.chart = this.createChart(this.chartRef.current, this.props.data, this.props.options)\n\t\t}\n\t}\n\n\trender() {\n\t\treturn <div ref={this.chartRef} className=\"chart-holder\"></div>\n\t}\n}\n","import {\n\tAlluvialChart as AlluvialChartCore,\n\ttype AlluvialChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class AlluvialChart extends BaseChart<AlluvialChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: AlluvialChartOptions) {\n\t\treturn new AlluvialChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tAreaChart as AreaChartCore,\n\ttype AreaChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class AreaChart extends BaseChart<AreaChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: AreaChartOptions) {\n\t\treturn new AreaChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tBoxplotChart as BoxplotChartCore,\n\ttype BoxplotChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class BoxplotChart extends BaseChart<BoxplotChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: BoxplotChartOptions) {\n\t\treturn new BoxplotChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tBubbleChart as BubbleChartCore,\n\ttype BubbleChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class BubbleChart extends BaseChart<BubbleChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: BubbleChartOptions) {\n\t\treturn new BubbleChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tBulletChart as BulletChartCore,\n\ttype BulletChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class BulletChart extends BaseChart<BulletChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: BulletChartOptions) {\n\t\treturn new BulletChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tExperimentalChoroplethChart as ChoroplethChartCore,\n\ttype ChoroplethChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class ExperimentalChoroplethChart extends BaseChart<ChoroplethChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: ChoroplethChartOptions) {\n\t\treturn new ChoroplethChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tCirclePackChart as CirclePackChartCore,\n\ttype CirclePackChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class CirclePackChart extends BaseChart<CirclePackChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: CirclePackChartOptions) {\n\t\treturn new CirclePackChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tComboChart as ComboChartCore,\n\ttype ComboChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class ComboChart extends BaseChart<ComboChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: ComboChartOptions) {\n\t\treturn new ComboChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tDonutChart as DonutChartCore,\n\ttype DonutChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class DonutChart extends BaseChart<DonutChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: DonutChartOptions) {\n\t\treturn new DonutChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tGaugeChart as GaugeChartCore,\n\ttype GaugeChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class GaugeChart extends BaseChart<GaugeChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: GaugeChartOptions) {\n\t\treturn new GaugeChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tGroupedBarChart as GroupedBarChartCore,\n\ttype BarChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class GroupedBarChart extends BaseChart<BarChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: BarChartOptions) {\n\t\treturn new GroupedBarChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tHeatmapChart as HeatmapChartCore,\n\ttype HeatmapChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class HeatmapChart extends BaseChart<HeatmapChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: HeatmapChartOptions) {\n\t\treturn new HeatmapChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tHistogramChart as HistogramChartCore,\n\ttype HistogramChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class HistogramChart extends BaseChart<HistogramChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: HistogramChartOptions) {\n\t\treturn new HistogramChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tLineChart as LineChartCore,\n\ttype LineChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class LineChart extends BaseChart<LineChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: LineChartOptions) {\n\t\treturn new LineChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tLollipopChart as LollipopChartCore,\n\ttype LollipopChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class LollipopChart extends BaseChart<LollipopChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: LollipopChartOptions) {\n\t\treturn new LollipopChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tMeterChart as MeterChartCore,\n\ttype MeterChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class MeterChart extends BaseChart<MeterChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: MeterChartOptions) {\n\t\treturn new MeterChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tPieChart as PieChartCore,\n\ttype PieChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class PieChart extends BaseChart<PieChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: PieChartOptions) {\n\t\treturn new PieChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tRadarChart as RadarChartCore,\n\ttype RadarChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class RadarChart extends BaseChart<RadarChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: RadarChartOptions) {\n\t\treturn new RadarChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tScatterChart as ScatterChartCore,\n\ttype ScatterChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class ScatterChart extends BaseChart<ScatterChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: ScatterChartOptions) {\n\t\treturn new ScatterChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tSimpleBarChart as SimpleBarChartCore,\n\ttype BarChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class SimpleBarChart extends BaseChart<BarChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: BarChartOptions) {\n\t\treturn new SimpleBarChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tStackedAreaChart as StackedAreaChartCore,\n\ttype StackedAreaChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class StackedAreaChart extends BaseChart<StackedAreaChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: StackedAreaChartOptions) {\n\t\treturn new StackedAreaChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tStackedBarChart as StackedBarChartCore,\n\ttype StackedBarChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class StackedBarChart extends BaseChart<StackedBarChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: StackedBarChartOptions) {\n\t\treturn new StackedBarChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tTreeChart as TreeChartCore,\n\ttype TreeChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class TreeChart extends BaseChart<TreeChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: TreeChartOptions) {\n\t\treturn new TreeChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tTreemapChart as TreemapChartCore,\n\ttype TreemapChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class TreemapChart extends BaseChart<TreemapChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: TreemapChartOptions) {\n\t\treturn new TreemapChartCore(chartRef, { data, options })\n\t}\n}\n","import {\n\tWordCloudChart as WordCloudChartCore,\n\ttype WorldCloudChartOptions,\n\ttype ChartTabularData\n} from '@carbon/charts'\nimport BaseChart from './BaseChart'\n\nexport default class WordCloudChart extends BaseChart<WorldCloudChartOptions> {\n\tcreateChart(chartRef: HTMLDivElement, data: ChartTabularData, options: WorldCloudChartOptions) {\n\t\treturn new WordCloudChartCore(chartRef, { data, options })\n\t}\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export const carbonPrefix = 'cds'\n","import React from 'react'\nimport classnames from 'classnames'\nimport { carbonPrefix } from './utils'\n\ntype CssPosition = 'fixed' | 'absolute' | 'relative' | 'static' | 'sticky'\n\ntype CardNodeProps = {\n\ttag?: 'div' | 'a' | 'button'\n\thref?: string\n\tstacked?: boolean\n\tcolor?: string\n\tposition?: CssPosition\n\tchildren?: React.ReactNode\n}\n\nconst CardNode: React.FC<\n\tCardNodeProps & React.HTMLAttributes<HTMLAnchorElement | HTMLDivElement | HTMLButtonElement>\n> = ({ tag = 'div', children, color, href, position = 'static', stacked, ...rest }) => {\n\tconst Component = href ? 'a' : rest.onClick ? 'button' : tag\n\n\tconst namespace = `${carbonPrefix}--cc--card-node`\n\tconst cardClasses = classnames(namespace, {\n\t\t[`${namespace}--stacked`]: stacked,\n\t\t[`${namespace}--${Component}`]: Component,\n\t\t[rest.className as string]: rest.className\n\t})\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={cardClasses}\n\t\t\tstyle={{ borderColor: color, position }}\n\t\t\ttabIndex={0}\n\t\t\t{...rest}>\n\t\t\t{children}\n\t\t</Component>\n\t)\n}\n\n\nexport { CardNode }\n","import React from 'react'\nimport classnames from 'classnames'\nimport { carbonPrefix } from './utils'\n\ntype CardNodeColumnProps = {\n\tchildren?: React.ReactNode\n\tfarsideColumn?: boolean\n}\n\nconst CardNodeColumn: React.FC<CardNodeColumnProps & React.HTMLAttributes<HTMLDivElement>> = ({\n\tchildren,\n\tfarsideColumn = false,\n\t...rest\n}) => {\n\tconst namespace = `${carbonPrefix}--cc--card-node`\n\tconst classes = classnames(`${namespace}__column`, {\n\t\t[`${namespace}__column--farside`]: farsideColumn,\n\t\t...(rest.className ? { [rest.className]: true } : {})\n\t})\n\n\treturn (\n\t\t<div className={classes} {...rest}>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nexport { CardNodeColumn }\n","import React from 'react'\nimport classnames from 'classnames'\nimport { carbonPrefix } from './utils'\n\ntype CardNodeLabelProps = {\n\tchildren?: React.ReactNode\n}\n\nconst CardNodeLabel: React.FC<CardNodeLabelProps & React.HTMLAttributes<HTMLLabelElement>> = ({\n\tchildren,\n\t...rest\n}) => {\n\tconst namespace = `${carbonPrefix}--cc--card-node`\n\tconst classes = classnames(`${namespace}__label`, {\n\t\t...(rest.className ? { [rest.className]: true } : {})\n\t})\n\n\treturn (\n\t\t<label className={classes} {...rest}>\n\t\t\t{children}\n\t\t</label>\n\t)\n}\n\nexport { CardNodeLabel }\n","import React from 'react'\nimport classnames from 'classnames'\nimport { carbonPrefix } from './utils'\n\ntype CardNodeSubtitleProps = {\n\tchildren?: React.ReactNode\n}\n\nconst CardNodeSubtitle: React.FC<CardNodeSubtitleProps & React.HTMLAttributes<HTMLDivElement>> = ({\n\tchildren,\n\t...rest\n}) => {\n\tconst namespace = `${carbonPrefix}--cc--card-node`\n\tconst classes = classnames(`${namespace}__subtitle`, {\n\t\t...(rest.className ? { [rest.className]: true } : {})\n\t})\n\n\treturn (\n\t\t<div className={classes} {...rest}>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nexport { CardNodeSubtitle }\n","import React from 'react'\nimport classnames from 'classnames'\nimport { carbonPrefix } from './utils'\n\ntype CardNodeTitleProps = {\n\tchildren?: React.ReactNode\n}\n\nconst CardNodeTitle: React.FC<CardNodeTitleProps & React.HTMLAttributes<HTMLDivElement>> = ({\n\tchildren,\n\t...rest\n}) => {\n\tconst namespace = `${carbonPrefix}--cc--card-node`\n\tconst classes = classnames(`${namespace}__title`, {\n\t\t...(rest.className ? { [rest.className]: true } : {})\n\t})\n\n\treturn (\n\t\t<div className={classes} {...rest}>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nexport { CardNodeTitle }\n","import React from 'react'\nimport classnames from 'classnames'\nimport { buildStraightPathString } from '@carbon/charts'\nimport { carbonPrefix } from './utils'\n\ntype Coordinates = {\n\tx: number\n\ty: number\n}\n\ntype EdgeProps = {\n\tcolor?: string\n\tmarkerStart?: string\n\tmarkerEnd?: string\n\tsource?: Coordinates\n\ttarget?: Coordinates // Conflicts with React.SVGProps<SVGGElement> type for target\n\tpath?: string\n\tvariant?: string // 'dash-sm' | 'dash-md' | 'dash-lg' | 'dash-xl' | 'double' | 'tunnel'\n}\n\ntype EdgeSVGProps = Omit<React.SVGProps<SVGGElement>, 'target'>\n\nconst Edge: React.FC<EdgeProps & EdgeSVGProps> = ({\n\tcolor,\n\tmarkerEnd,\n\tmarkerStart,\n\tpath,\n\tsource,\n\ttarget,\n\tvariant = null,\n\t...rest\n}) => {\n\tconst namespace = `${carbonPrefix}--cc--edge`\n\tconst pathClasses = classnames(namespace, {\n\t\t[`${namespace}--${variant}`]: variant,\n\t\t...(rest.className ? { [rest.className]: true } : {})\n\t})\n\n\tlet d = path\n\tif (!d && source && target) {\n\t\td = buildStraightPathString(source, target)\n\t}\n\n\tif (!d) throw Error('Missing parameters for Edge component: path or source and target.')\n\n\treturn (\n\t\t<g className={pathClasses} {...rest}>\n\t\t\t<path d={d} className={`${namespace}__container`} />\n\t\t\t<path d={d} className={`${namespace}__outer`} />\n\t\t\t<path\n\t\t\t\td={d}\n\t\t\t\tclassName={`${namespace}__inner`}\n\t\t\t\tmarkerEnd={`url(#${markerEnd})`}\n\t\t\t\tmarkerStart={`url(#${markerStart})`}\n\t\t\t\tstyle={{ stroke: color }}\n\t\t\t/>\n\t\t</g>\n\t)\n}\n\nexport default Edge\n","import React, { SVGProps } from 'react'\nimport classnames from 'classnames'\nimport { carbonPrefix } from './utils'\nimport { arrowLeft, arrowRight, circle, diamond, square, tee } from '@carbon/charts'\n\ninterface MarkerProps extends SVGProps<SVGMarkerElement> {\n\tid?: string\n\td?: string\n\tcolor?: string\n\tposition?: 'start' | 'end'\n\torient?: string | number\n\theight?: number\n\twidth?: number\n\trefX?: number\n\trefY?: number\n}\n\nconst Marker: React.FC<MarkerProps> = ({\n\tcolor,\n\td,\n\tid,\n\torient = 'auto',\n\theight,\n\twidth,\n\tposition = 'end',\n\tclassName,\n\trefX,\n\trefY,\n\t...rest\n}) => {\n\tconst namespace = `${carbonPrefix}--cc--marker`\n\tconst classes = classnames(namespace, className)\n\n\tconst xPos = position === 'end' ? (width || 0) / 2 + 0.5 : 0.5\n\tconst yPos = (height || 0) / 2\n\n\treturn (\n\t\t<marker\n\t\t\tclassName={classes}\n\t\t\tmarkerHeight={height}\n\t\t\tmarkerWidth={width}\n\t\t\torient={orient}\n\t\t\tid={id}\n\t\t\trefX={refX || xPos}\n\t\t\trefY={refY || yPos}\n\t\t\tmarkerUnits=\"userSpaceOnUse\"\n\t\t\t{...rest}>\n\t\t\t<path d={d} style={{ fill: color }} />\n\t\t</marker>\n\t)\n}\n\nconst ArrowLeftMarker: React.FC<Omit<MarkerProps, 'd'>> = (props) => <Marker d={arrowLeft.d} {...props} />\nconst ArrowRightMarker: React.FC<Omit<MarkerProps, 'd'>> = (props) => <Marker d={arrowRight.d} {...props} />\nconst CircleMarker: React.FC<Omit<MarkerProps, 'd'>> = (props) => <Marker d={circle.d} {...props} />\nconst DiamondMarker: React.FC<Omit<MarkerProps, 'd'>> = (props) => <Marker d={diamond.d} {...props} />\nconst SquareMarker: React.FC<Omit<MarkerProps, 'd'>> = (props) => <Marker d={square.d} {...props} />\nconst TeeMarker: React.FC<Omit<MarkerProps, 'd'>> = (props) => <Marker d={tee.d} {...props} />\n\nexport {\n\tMarker,\n\tArrowLeftMarker,\n\tArrowRightMarker,\n\tCircleMarker,\n\tDiamondMarker,\n\tSquareMarker,\n\tTeeMarker\n}\n","import React from 'react'\nimport classnames from 'classnames'\nimport { carbonPrefix } from './utils'\n\ntype CssPosition = 'fixed' | 'absolute' | 'relative' | 'static' | 'sticky'\n\ntype ShapeNodeProps = {\n\tshape?: 'circle' | 'square' | 'rounded-square'\n\ttag?: 'div' | 'button' | 'a'\n\ttitle?: string\n\tsubtitle?: string\n\tdescription?: string\n\trenderIcon: React.ReactNode\n\thref?: string\n\tsize?: string | number\n\tposition?: CssPosition\n\tbodyPosition?: CssPosition\n\tstacked?: boolean\n}\n\nconst ShapeNode: React.FC<\n\tShapeNodeProps & React.HTMLAttributes<HTMLAnchorElement | HTMLDivElement | HTMLButtonElement>\n> = ({\n\tshape = 'circle',\n\ttag = 'div',\n\ttitle = 'Title',\n\tsubtitle,\n\tdescription,\n\trenderIcon,\n\thref,\n\tsize = 48,\n\tstacked,\n\tposition = 'fixed',\n\tbodyPosition = 'absolute',\n\t...rest\n}) => {\n\tconst Component = href ? 'a' : rest.onClick ? 'button' : tag\n\n\tconst namespace = `${carbonPrefix}--cc--shape-node`\n\tconst circleClasses = classnames(namespace, {\n\t\t[`${namespace}--stacked`]: stacked,\n\t\t[`${namespace}--${shape}`]: shape,\n\t\t[`${namespace}--${tag}`]: tag,\n\t\t[rest.className as string]: rest.className\n\t})\n\n\tconst titleElement = title ? <div className={`${namespace}__title`}>{title}</div> : null\n\tconst subtitleElement = subtitle ? (\n\t\t<div className={`${namespace}__subtitle`}>{subtitle}</div>\n\t) : null\n\tconst descriptionElement = description ? (\n\t\t<div className={`${namespace}__description`}>{description}</div>\n\t) : null\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={circleClasses}\n\t\t\tstyle={{ height: size, width: size, position }}\n\t\t\ttabIndex={0}\n\t\t\t{...rest}>\n\t\t\t<div className={`${namespace}__icon`}>{renderIcon}</div>\n\t\t\t<div className={`${namespace}__body`} style={{ position: bodyPosition }}>\n\t\t\t\t{titleElement}\n\t\t\t\t{subtitleElement}\n\t\t\t\t{descriptionElement}\n\t\t\t</div>\n\t\t</Component>\n\t)\n}\n\nexport default ShapeNode\n"],"names":["ascending","a","b","descending","bisector","f","compare1","compare2","delta","d","x","zero","left","lo","hi","mid","right","center","i","number","numbers","values","valueof","value","index","ascendingBisect","bisectRight","bisect","count","extent","min","max","Adder","p","j","y","InternMap","entries","key","keyof","intern_get","intern_set","intern_delete","_intern","_key","identity","compareDefined","compare","ascendingDefined","array","slice","constant","e10","e5","e2","tickSpec","start","stop","step","power","error","factor","i1","i2","inc","ticks","reverse","n","tickIncrement","tickStep","nice","prestep","thresholdSturges","bin","domain","threshold","sturges","histogram","data","xz","x0","x1","tz","tn","m","bins","_","quickselect","k","z","s","sd","newLeft","newRight","t","swap","quantile","i0","value0","value1","flatten","arrays","merge","range","identity$5","top","bottom","epsilon","translateX","translateY","scale","offset","entering","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","transform","context","format","spacing","range0","range1","position","selection","path","tick","tickExit","tickEnter","line","text","axisTop","axisRight","axisBottom","axisLeft","noop","dispatch","Dispatch","parseTypenames","typenames","types","name","typename","callback","T","get","set","copy","type","that","args","c","xhtml","namespaces","namespace","prefix","creatorInherit","document","uri","creatorFixed","fullname","creator","none","selector","selection_select","select","groups","subgroups","group","subgroup","node","subnode","Selection","empty","selectorAll","arrayAll","selection_selectAll","parents","matcher","childMatcher","find","childFind","match","childFirst","selection_selectChild","filter","children","childrenFilter","selection_selectChildren","selection_filter","sparse","update","selection_enter","EnterNode","parent","datum","child","next","constant$6","bindIndex","enter","exit","groupLength","dataLength","bindKey","nodeByKeyValue","keyValues","keyValue","selection_data","bind","arraylike","enterGroup","updateGroup","exitGroup","previous","selection_exit","selection_join","onenter","onupdate","onexit","selection_merge","groups0","groups1","m0","m1","merges","group0","group1","selection_order","selection_sort","compareNode","sortgroups","sortgroup","selection_call","selection_nodes","selection_node","selection_size","size","selection_empty","selection_each","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","v","attrFunctionNS","selection_attr","defaultView","styleRemove","styleConstant","priority","styleFunction","selection_style","styleValue","propertyRemove","propertyConstant","propertyFunction","selection_property","classArray","string","classList","ClassList","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant","textFunction","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise","selection_raise","lower","selection_lower","selection_append","create","constantNull","selection_insert","before","remove","selection_remove","selection_cloneShallow","clone","selection_cloneDeep","selection_clone","deep","selection_datum","contextListener","listener","event","onRemove","on","o","onAdd","options","selection_on","dispatchEvent","params","window","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","root","selection_selection","re$2","sourceEvent","qe$2","svg","point","rect","nonpassivecapture","noevent$1","dragDisable","view","noevent","yesdrag","noclick","define","constructor","factory","prototype","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","l","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","rgb","opacity","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","h","Hsl","hsl","m2","hsl2rgb","clamph","clampt","constant$5","linear","exponential","gamma","nogamma","interpolateRgb","rgbGamma","end","colorRgb","numberArray","isNumberArray","genericArray","nb","na","date$1","vs$1","object","reA","reB","one","interpolateString","bi","am","bm","bs","q","tn$1","date","sn$1","degrees","decompose","e","scaleX","scaleY","skewX","svgNode","parseCss","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","rotate","interpolateTransformCss","interpolateTransformSvg","Js$2","interpolator","samples","frame","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","now","clearNow","Timer","timer","delay","time","sleep","timerFlush","wake","nap","poke","t0","t1","t2","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","id","timing","schedules","init","self","tween","interrupt","active","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","transition","interpolate","interpolateNumber","string00","string1","interpolate0","string0","string10","transition_attr","attrInterpolate","attrInterpolateNS","attrTweenNS","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","Transition","transition_merge","onFunction","on0","on1","sit","transition_on","removeFunction","transition_remove","transition_select","transition_selectAll","inherit","transition_selection","styleNull","style","styleMaybeRemove","listener0","transition_style","styleInterpolate","styleTween","transition_styleTween","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","newId","transition_end","resolve","reject","cancel","selection_prototype","cubicInOut","defaultTiming","easeCubicInOut","selection_transition","constant$4","BrushEvent","target","mode","nopropagation","MODE_DRAG","MODE_SPACE","MODE_HANDLE","MODE_CENTER","abs","number1","number2","X","xy","Y","cursors","flipX","flipY","signsX","signsY","defaultFilter","defaultExtent","defaultTouchable","local","brushX","brush","dim","touchable","keys","listeners","handleSize","touchending","overlay","initialize","handle","redraw","started","touchmoved","touchended","emitter","state","emit","selection0","selection1","clean","Emitter","signX","signY","W","w0","w1","N","n0","n1","E","e0","e1","S","s0","s1","dx","dy","moving","shifting","lockX","lockY","points","pointer","pts","move","moved","ended","keydowned","keyupped","point0","dragEnable","pi","tau","tauEpsilon","append","strings","appendRound","digits","Path$1","y1","x2","y2","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","a1","ccw","cw","da","w","Path","formatDecimal","formatDecimalParts","coefficient","exponent","formatGroup","grouping","thousands","width","length","formatNumerals","numerals","re","formatSpecifier","specifier","FormatSpecifier","formatTrim","out","prefixExponent","formatPrefixAuto","formatRounded","formatTypes","identity$3","map","prefixes","formatLocale$1","locale","currencyPrefix","currencySuffix","decimal","percent","minus","nan","newFormat","fill","align","sign","symbol","comma","precision","trim","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","defaultLocale","formatLocale","precisionFixed","precisionPrefix","precisionRound","epsilon2","halfPi","quarterPi","radians","atan","atan2","cos","exp","log","sin","sqrt","tan","acos","asin","streamGeometry","geometry","stream","streamGeometryType","streamObjectType","features","coordinates","streamLine","streamPolygon","geometries","closed","coordinate","geoStream","spherical","cartesian","lambda","phi","cosPhi","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","cartesianNormalizeInPlace","compose","rotationIdentity","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","forward","circleStream","radius","direction","cosRadius","sinRadius","circleRadius","clipBuffer","lines","result","pointEqual","Intersection","other","entry","clipRejoin","segments","compareIntersection","startInside","subject","clip","segment","p0","p1","link","current","isSubject","longitude","polygonContains","polygon","sinPhi","normal","angle","winding","sum","ring","lambda0","phi0","sinPhi0","cosPhi0","lambda1","sinPhi1","cosPhi1","point1","phi1","absDelta","antimeridian","arc","intersection","phiArc","pointVisible","clipLine","sink","ringBuffer","ringSink","polygonStarted","lineStart","lineEnd","pointRing","ringStart","ringEnd","pointLine","ringSegments","validSegment","clipAntimeridian","clipAntimeridianLine","clipAntimeridianInterpolate","sign0","sign1","clipAntimeridianIntersect","sinLambda0Lambda1","from","to","clipCircle","cr","smallRadius","notHemisphere","visible","c0","v0","v00","point2","code","intersect","two","pa","pb","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","A","B","u","uu","polar","meridian","q1","ax","ay","bx","by","clipMax","clipMin","clipRectangle","corner","comparePoint","ca","cb","activeStream","bufferStream","x__","y__","v__","x_","y_","v_","first","clipStream","polygonStart","polygonEnd","polygonInside","b0","b1","cleanInside","linePoint","identity$2","areaSum","areaRingSum","x00","y00","areaStream","areaRingStart","areaRingEnd","area","areaPointFirst","areaPoint","pathArea","boundsStream","boundsPoint","bounds","boundsStream$1","X0","Y0","Z0","X1","Y1","Z1","X2","Y2","Z2","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroid","centroidPointFirstLine","centroidPointLine","centroidPointFirstRing","centroidPointRing","pathCentroid","PathContext","lengthSum","lengthRing","lengthStream","lengthPointFirst","lengthPoint","pathMeasure","cacheDigits","cacheAppend","cacheRadius","cacheCircle","PathString","dn$1","projection","pointRadius","projectionStream","contextStream","pathBounds","transformer","methods","TransformStream","fit","fitBounds","fitExtent","fitSize","fitWidth","fitHeight","height","maxDepth","cosMinDistance","resample","project","delta2","resampleNone","resampleLineTo","depth","d2","phi2","lambda2","dx2","dy2","dz","lambda00","a00","b00","c00","resampleStream","ringPoint","transformRadians","transformRotate","scaleTranslate","sx","sy","scaleTranslateRotate","alpha","cosAlpha","sinAlpha","ai","ci","fi","projectionMutator","projectAt","theta","preclip","postclip","projectResample","projectTransform","projectRotateTransform","cache","cacheStream","invert","reset","recenter","conicProjection","cylindricalEqualAreaRaw","conicEqualAreaRaw","sy0","r0","r0y","mn$1","fn$1","conicEqualArea","mercatorRaw","un$1","mercatorProjection","clipExtent","reclip","equirectangularRaw","pn$1","conicEquidistantRaw","cy0","gy","nx","gn$1","A1","A2","A3","A4","M","iterations","equalEarthRaw","l2","l6","fy","fpy","vn$1","naturalEarth1Raw","phi4","hn$1","defaultSeparation","meanX","meanXReduce","maxY","maxYReduce","leafLeft","leafRight","rn$1","separation","nodeSize","cluster","previousNode","node_count","node_each","node_eachBefore","nodes","node_eachAfter","node_find","node_sum","node_sort","node_path","ancestor","leastCommonAncestor","aNodes","bNodes","node_ancestors","node_descendants","node_leaves","leaves","node_links","links","node_iterator","hierarchy","mapChildren","objectChildren","Node","childs","computeHeight","node_copy","copyData","optional","required","constantZero","constant$3","lcg","array$1","shuffle","random","packEncloseRandom","circles","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","dr","encloseBasis1","r1","r2","r21","x3","y3","r3","a2","a3","b2","b3","c3","d1","d3","ab","C","place","intersects","score","circle","packSiblingsRandom","aa","sj","sk","pack","defaultRadius","Qs$1","radiusLeaf","packChildrenRandom","translateChild","roundNode","treemapDice","nextLeft","nextRight","moveSubtree","wm","wp","shift","change","executeShifts","nextAncestor","vim","TreeNode","treeRoot","tree","on$1","firstWalk","secondWalk","sizeNode","tx","kx","ky","siblings","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","treemapSlice","squarifyRatio","ratio","rows","row","nodeValue","sumValue","minValue","maxValue","newRatio","minRatio","beta","squarify","custom","cn$1","tile","round","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","treemap","positionNode","initRange","implicit","ordinal","unknown","band","ordinalRange","bandwidth","paddingOuter","rescale","sequence","constants","unit","normalize","clamper","bimap","d0","polymap","source","interpolateValue","untransform","clamp","piecewise","output","input","interpolateRound","continuous","linearish","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","powp","base","logp","reflect","loggish","logs","pows","quantize","timeInterval","floori","offseti","field","test","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","timeMinute","utcMinute","timeHour","utcHour","timeDay","utcDay","unixDay","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","utcMonth","timeYear","utcYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","timeTicks","timeTickInterval","localDate","utcDate","newDate","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","pad","pads","newParse","Z","parseSpecifier","numberRe","percentRe","requoteRe","requote","dISO","dow","UTCdISO","timeFormat","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","timeWeek","timeSecond","constant$2","withPath","shape","arcInnerRadius","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","x10","y10","x32","y32","cornerTangents","rc","ox","oy","x11","y11","D","cx0","cx1","cy1","dx0","dy0","dx1","dy1","Be$2","innerRadius","outerRadius","cornerRadius","padRadius","startAngle","endAngle","padAngle","buffer","a01","a11","a10","da0","da1","ap","rp","rc0","rc1","oc","kc","lc","Linear","ge$1","It$1","defined","curve","curveLinear","pointX","pointY","defined0","kt$1","x0z","y0z","arealine","en$1","sortValues","sort","pie","arcs","curveRadialLinear","curveRadial","Radial","radial","lineRadial","nn$1","Bump","bumpX","linkSource","linkTarget","argv","linkHorizontal","noop$1","Basis","fe$1","BasisClosed","pe$2","BasisOpen","ve$2","Bundle","De$1","bundle","Cardinal","tension","xe","cardinal","CardinalClosed","ye$1","CardinalOpen","Oe$1","CatmullRom","x23","y23","Ae$1","catmullRom","CatmullRomClosed","Te","CatmullRomOpen","Me$2","LinearClosed","he$2","slope3","h0","h1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","px","controlPoints","py","Re$1","Step","Be$1","stepBefore","stepAfter","none$1","series","order","stackValue","stackSeries","A$2","orderNone","offsetNone","stack","sz","oz","H$1","yp","yn","Transform","location","O","R","U","I","L","V","H","oE","K","F","P","G","J","Q","$","EE","rE","eE","OE","aE","uE","ke","me","Fr","Ur","nt","jr","Wr","Hr","Yr","Br","Gr","Ke","On","qr","Vr","zr","Je","Pn","Qr","Xr","kr","Kr","se","Oe","Jr","Gt","de","Bt","Zr","qt","En","ea","ta","ra","oa","ia","Vt","sa","ua","la","fa","ha","ct","ga","ma","va","ba","wa","Ta","Sa","Oa","Pa","Ea","_a","Ca","Ma","$a","Aa","Da","La","Ia","Na","Ra","Fa","Ua","ja","Rr","Le","Wa","Ha","_n","Ya","Ba","Ga","qa","Va","pt","oe","ue","za","Qa","Xa","ka","Ka","Pr","Cn","Ja","Za","eo","no","ro","ao","oo","io","so","uo","co","fo","ho","mt","Mn","go","$n","mo","po","ee","yo","An","vo","bo","Ie","wo","To","So","Oo","Po","Eo","zt","ve","_o","Pt","Co","Mo","$o","Qt","Xt","Dn","ne","Et","Ao","Do","xo","Lo","_t","Io","ft","kt","No","Ro","Fo","be","Uo","jo","Wo","Ho","Yo","Bo","Go","qo","Vo","we","zo","yt","Kt","Qo","Xo","ko","Ko","xn","Jo","Zo","ei","ti","ni","ri","Ze","oi","ii","si","ui","li","di","gi","mi","Ct","Mt","We","yi","Ln","He","Jt","vi","In","$t","Ye","wi","Ti","Si","rt","Oi","Pi","Zt","Nn","Ei","_i","Ci","_e","Mi","Rn","en","$i","Ai","Di","Ce","xi","Li","Ii","Ni","Ri","Fi","Ui","ji","Wi","Hi","Yi","Bi","Gi","qi","Vi","zi","Qi","Xi","ki","Ki","Ji","Zi","es","ts","ns","At","Fn","Re","rs","dt","as","Me","nn","os","at","is","ss","Un","jn","us","ls","cs","fs","Wn","ot","ds","hs","gs","ms","Be","ps","ys","Dt","vs","Fe","ws","Ts","Ss","Os","Ps","Es","_s","Cs","Ms","$s","pe","As","it","Ds","xs","Ls","Is","Ns","Rs","Fs","Ue","Us","js","st","Ws","Hs","Ys","Bs","ae","Gs","xt","qs","Vs","zs","Qs","Xs","ks","Ks","Hn","Js","ut","Yn","Zs","Lt","rn","eu","Bn","tu","It","nu","ru","au","Gn","ou","iu","su","lu","cu","fu","du","hu","gu","mu","qn","an","pu","sn","Vn","yu","zn","vu","bu","un","wu","Nt","Tu","Su","Ou","Qn","Pu","Xn","vt","Eu","_u","bt","Cu","wt","Mu","Ee","ln","$u","cn","fn","dn","hn","Au","Du","xu","Lu","Iu","he","$e","Nu","Ru","Fu","Uu","et","Rt","ju","Wu","Hu","gn","mn","Yu","kn","Bu","Gu","qu","Vu","zu","Qu","Xu","ku","Ku","Ju","Zu","el","tl","nl","rl","al","ol","il","sl","ul","Kn","ll","cl","pn","fl","dl","hl","gl","ml","pl","yl","vl","bl","Jn","wl","Tl","Sl","Ol","Zn","Pl","El","_l","er","Cl","Ml","$l","Al","Dl","xl","Ll","Il","Nl","Rl","Fl","Ul","jl","Wl","Hl","Yl","Xe","Bl","Gl","ql","Vl","zl","Ql","je","Xl","tr","kl","Kl","nr","Jl","Ft","Zl","ec","tc","nc","ac","ic","sc","uc","cc","fc","vn","ht","dc","hc","gc","mc","pc","yc","bn","wn","Ve","vc","Tn","bc","Ut","wc","Tc","Sc","rr","Oc","ar","Pc","Ec","_c","Cc","Mc","$c","Ac","Dc","xc","Lc","Ic","Nc","Rc","Fc","Tt","St","Ot","Uc","jc","or","Wc","Hc","Yc","Bc","Gc","qc","Vc","zc","Qc","Xc","Kc","ir","Jc","Zc","ef","tf","Wf","Hf","Er","Yf","Yt","nf","Bf","Gf","qf","Vf","Qe","ge","rf","Sn","zf","Qf","Pe","af","Ar","Ae","sr","ur","jt","lr","Ge","of","Dr","De","xr","qe","ye","sf","uf","lf","cf","Wt","ff","fr","df","hf","gf","mf","pf","hr","yf","Lr","vf","gr","bf","wf","Tf","Sf","Ir","Of","Pf","Ef","_f","Nr","Cf","Mf","Xf","gt","$f","ze","Ne","fe","kf","tt","Af","Df","Kf","_r","Jf","xf","Lf","mr","le","te","ce","ie","Se","pr","yr","vr","br","wr","Tr","lt","Sr","Or","Ht","If","Zf","Nf","Cr","Mr","ed","$r","G$1","justify","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","defaultId","defaultNodes","graph","defaultLinks","nodeById","computeLinkBreadths","Sankey","linkSort","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeHeights","computeNodeBreadths","sourceLinks","targetLinks","computeNodeLayers","columns","column","initializeNodeBreadths","reorderLinks","relaxRightToLeft","relaxLeftToRight","targetTop","reorderNodeLinks","resolveCollisions","sourceTop","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","curveHorizontal","horizontalSource","horizontalTarget","require$$0","cloudRadians","ch","d3Cloud","cloudText","font","cloudFont","fontSize","cloudFontSize","fontStyle","cloudFontNormal","fontWeight","cloudRotate","cloudPadding","spiral","archimedeanSpiral","words","cloud","canvas","cloudCanvas","functor","contextAndRatio","getContext","board","zeroArray","tags","cloudSprite","cloudBounds","tag","startX","startY","maxDelta","dxdy","cloudCollide","collideRects","sprite","sw","lx","msx","last","spirals","maxh","wcr","wsr","hcr","hsr","pixels","w32","seen","seenRow","rectangularSpiral","reactJsxRuntime_production_min","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","_len2","_key2","printWarning","level","ReactDebugCurrentFrame","argsWithFormat","item","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","provider","outerName","lazyComponent","payload","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","props","reenableLogs","ReactCurrentDispatcher","describeBuiltInComponentFrame","ownerFn","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","construct","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","describeUnknownElementTypeFrameInDEV","hasOwnProperty","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","checkPropTypes","typeSpecs","componentName","has","typeSpecName","error$1","err","ex","isArrayImpl","isArray","typeName","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","didWarnAboutStringRefs","hasValidRef","config","getter","hasValidKey","warnIfStringRefCannotBeAutoConverted","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","ref","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","fileName","lineNumber","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","iteratorFn","iterator","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","reactJsxRuntime_development","jsxRuntimeModule","require$$1","BaseChart","__publicField","chartRef","prevProps","_b","AlluvialChart","AlluvialChartCore","AreaChart","AreaChartCore","BoxplotChart","BoxplotChartCore","BubbleChart","BubbleChartCore","BulletChart","BulletChartCore","ExperimentalChoroplethChart","ChoroplethChartCore","CirclePackChart","CirclePackChartCore","ComboChart","ComboChartCore","DonutChart","DonutChartCore","GaugeChart","GaugeChartCore","GroupedBarChart","GroupedBarChartCore","HeatmapChart","HeatmapChartCore","HistogramChart","HistogramChartCore","LineChart","LineChartCore","LollipopChart","LollipopChartCore","MeterChart","MeterChartCore","PieChart","PieChartCore","RadarChart","RadarChartCore","ScatterChart","ScatterChartCore","SimpleBarChart","SimpleBarChartCore","StackedAreaChart","StackedAreaChartCore","StackedBarChart","StackedBarChartCore","TreeChart","TreeChartCore","TreemapChart","TreemapChartCore","WordCloudChart","WordCloudChartCore","hasOwn","classNames","classes","arg","argType","inner","module","carbonPrefix","CardNode","href","stacked","rest","cardClasses","classnames","CardNodeColumn","farsideColumn","CardNodeLabel","CardNodeSubtitle","CardNodeTitle","Edge","markerEnd","markerStart","variant","pathClasses","buildStraightPathString","Marker","className","refX","refY","xPos","yPos","ArrowLeftMarker","arrowLeft","ArrowRightMarker","arrowRight","CircleMarker","DiamondMarker","diamond","SquareMarker","square","TeeMarker","tee","ShapeNode","title","subtitle","description","renderIcon","bodyPosition","circleClasses","titleElement","subtitleElement","descriptionElement"],"mappings":"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A,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA;AAAA,EAEH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,277,278,279,280,281,282,283,284,285,286,287,288,289,290,294,295,296,323]}