@carbon/charts-vue 1.13.13 → 1.13.14

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs.js","sources":["../../core/dist/enums-tMKLWMMm.mjs","../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/descending.js","../../../node_modules/d3-array/src/bisector.js","../../../node_modules/d3-array/src/number.js","../../../node_modules/d3-array/src/bisect.js","../../../node_modules/d3-array/src/count.js","../../../node_modules/d3-array/src/extent.js","../../../node_modules/d3-array/src/fsum.js","../../../node_modules/d3-array/node_modules/internmap/src/index.js","../../../node_modules/d3-array/src/identity.js","../../../node_modules/d3-array/src/sort.js","../../../node_modules/d3-array/src/array.js","../../../node_modules/d3-array/src/constant.js","../../../node_modules/d3-array/src/ticks.js","../../../node_modules/d3-array/src/nice.js","../../../node_modules/d3-array/src/threshold/sturges.js","../../../node_modules/d3-array/src/bin.js","../../../node_modules/d3-array/src/max.js","../../../node_modules/d3-array/src/min.js","../../../node_modules/d3-array/src/quickselect.js","../../../node_modules/d3-array/src/quantile.js","../../../node_modules/d3-array/src/merge.js","../../../node_modules/d3-array/src/range.js","../../../node_modules/d3-axis/src/identity.js","../../../node_modules/d3-axis/src/axis.js","../../../node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/d3-selection/src/namespaces.js","../../../node_modules/d3-selection/src/namespace.js","../../../node_modules/d3-selection/src/creator.js","../../../node_modules/d3-selection/src/selector.js","../../../node_modules/d3-selection/src/selection/select.js","../../../node_modules/d3-selection/src/array.js","../../../node_modules/d3-selection/src/selectorAll.js","../../../node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/d3-selection/src/matcher.js","../../../node_modules/d3-selection/src/selection/selectChild.js","../../../node_modules/d3-selection/src/selection/selectChildren.js","../../../node_modules/d3-selection/src/selection/filter.js","../../../node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/d3-selection/src/selection/enter.js","../../../node_modules/d3-selection/src/constant.js","../../../node_modules/d3-selection/src/selection/data.js","../../../node_modules/d3-selection/src/selection/exit.js","../../../node_modules/d3-selection/src/selection/join.js","../../../node_modules/d3-selection/src/selection/merge.js","../../../node_modules/d3-selection/src/selection/order.js","../../../node_modules/d3-selection/src/selection/sort.js","../../../node_modules/d3-selection/src/selection/call.js","../../../node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/d3-selection/src/selection/node.js","../../../node_modules/d3-selection/src/selection/size.js","../../../node_modules/d3-selection/src/selection/empty.js","../../../node_modules/d3-selection/src/selection/each.js","../../../node_modules/d3-selection/src/selection/attr.js","../../../node_modules/d3-selection/src/window.js","../../../node_modules/d3-selection/src/selection/style.js","../../../node_modules/d3-selection/src/selection/property.js","../../../node_modules/d3-selection/src/selection/classed.js","../../../node_modules/d3-selection/src/selection/text.js","../../../node_modules/d3-selection/src/selection/html.js","../../../node_modules/d3-selection/src/selection/raise.js","../../../node_modules/d3-selection/src/selection/lower.js","../../../node_modules/d3-selection/src/selection/append.js","../../../node_modules/d3-selection/src/selection/insert.js","../../../node_modules/d3-selection/src/selection/remove.js","../../../node_modules/d3-selection/src/selection/clone.js","../../../node_modules/d3-selection/src/selection/datum.js","../../../node_modules/d3-selection/src/selection/on.js","../../../node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/d3-selection/src/selection/iterator.js","../../../node_modules/d3-selection/src/selection/index.js","../../../node_modules/d3-selection/src/select.js","../../../node_modules/d3-selection/src/sourceEvent.js","../../../node_modules/d3-selection/src/pointer.js","../../../node_modules/d3-drag/src/noevent.js","../../../node_modules/d3-drag/src/nodrag.js","../../../node_modules/d3-color/src/define.js","../../../node_modules/d3-color/src/color.js","../../../node_modules/d3-interpolate/src/constant.js","../../../node_modules/d3-interpolate/src/color.js","../../../node_modules/d3-interpolate/src/rgb.js","../../../node_modules/d3-interpolate/src/numberArray.js","../../../node_modules/d3-interpolate/src/array.js","../../../node_modules/d3-interpolate/src/date.js","../../../node_modules/d3-interpolate/src/number.js","../../../node_modules/d3-interpolate/src/object.js","../../../node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-interpolate/src/value.js","../../../node_modules/d3-interpolate/src/round.js","../../../node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/d3-interpolate/src/quantize.js","../../../node_modules/d3-timer/src/timer.js","../../../node_modules/d3-timer/src/timeout.js","../../../node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/d3-transition/src/interrupt.js","../../../node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/d3-transition/src/transition/tween.js","../../../node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/d3-transition/src/transition/attr.js","../../../node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/d3-transition/src/transition/delay.js","../../../node_modules/d3-transition/src/transition/duration.js","../../../node_modules/d3-transition/src/transition/ease.js","../../../node_modules/d3-transition/src/transition/easeVarying.js","../../../node_modules/d3-transition/src/transition/filter.js","../../../node_modules/d3-transition/src/transition/merge.js","../../../node_modules/d3-transition/src/transition/on.js","../../../node_modules/d3-transition/src/transition/remove.js","../../../node_modules/d3-transition/src/transition/select.js","../../../node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/d3-transition/src/transition/selection.js","../../../node_modules/d3-transition/src/transition/style.js","../../../node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/d3-transition/src/transition/text.js","../../../node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/d3-transition/src/transition/transition.js","../../../node_modules/d3-transition/src/transition/end.js","../../../node_modules/d3-transition/src/transition/index.js","../../../node_modules/d3-ease/src/linear.js","../../../node_modules/d3-ease/src/cubic.js","../../../node_modules/d3-transition/src/selection/transition.js","../../../node_modules/d3-transition/src/selection/index.js","../../../node_modules/d3-brush/src/constant.js","../../../node_modules/d3-brush/src/event.js","../../../node_modules/d3-brush/src/noevent.js","../../../node_modules/d3-brush/src/brush.js","../../../node_modules/d3-path/src/path.js","../../../node_modules/d3-format/src/formatDecimal.js","../../../node_modules/d3-format/src/exponent.js","../../../node_modules/d3-format/src/formatGroup.js","../../../node_modules/d3-format/src/formatNumerals.js","../../../node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/d3-format/src/formatTrim.js","../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/d3-format/src/formatRounded.js","../../../node_modules/d3-format/src/formatTypes.js","../../../node_modules/d3-format/src/identity.js","../../../node_modules/d3-format/src/locale.js","../../../node_modules/d3-format/src/defaultLocale.js","../../../node_modules/d3-format/src/precisionFixed.js","../../../node_modules/d3-format/src/precisionPrefix.js","../../../node_modules/d3-format/src/precisionRound.js","../../../node_modules/d3-geo/src/math.js","../../../node_modules/d3-geo/src/noop.js","../../../node_modules/d3-geo/src/stream.js","../../../node_modules/d3-geo/src/cartesian.js","../../../node_modules/d3-geo/src/compose.js","../../../node_modules/d3-geo/src/rotation.js","../../../node_modules/d3-geo/src/circle.js","../../../node_modules/d3-geo/src/clip/buffer.js","../../../node_modules/d3-geo/src/pointEqual.js","../../../node_modules/d3-geo/src/clip/rejoin.js","../../../node_modules/d3-geo/src/polygonContains.js","../../../node_modules/d3-geo/src/clip/index.js","../../../node_modules/d3-geo/src/clip/antimeridian.js","../../../node_modules/d3-geo/src/clip/circle.js","../../../node_modules/d3-geo/src/clip/line.js","../../../node_modules/d3-geo/src/clip/rectangle.js","../../../node_modules/d3-geo/src/identity.js","../../../node_modules/d3-geo/src/path/area.js","../../../node_modules/d3-geo/src/path/bounds.js","../../../node_modules/d3-geo/src/path/centroid.js","../../../node_modules/d3-geo/src/path/context.js","../../../node_modules/d3-geo/src/path/measure.js","../../../node_modules/d3-geo/src/path/string.js","../../../node_modules/d3-geo/src/path/index.js","../../../node_modules/d3-geo/src/transform.js","../../../node_modules/d3-geo/src/projection/fit.js","../../../node_modules/d3-geo/src/projection/resample.js","../../../node_modules/d3-geo/src/projection/index.js","../../../node_modules/d3-geo/src/projection/conic.js","../../../node_modules/d3-geo/src/projection/cylindricalEqualArea.js","../../../node_modules/d3-geo/src/projection/conicEqualArea.js","../../../node_modules/d3-geo/src/projection/albers.js","../../../node_modules/d3-geo/src/projection/mercator.js","../../../node_modules/d3-geo/src/projection/equirectangular.js","../../../node_modules/d3-geo/src/projection/conicEquidistant.js","../../../node_modules/d3-geo/src/projection/equalEarth.js","../../../node_modules/d3-geo/src/projection/naturalEarth1.js","../../../node_modules/d3-hierarchy/src/cluster.js","../../../node_modules/d3-hierarchy/src/hierarchy/count.js","../../../node_modules/d3-hierarchy/src/hierarchy/each.js","../../../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../node_modules/d3-hierarchy/src/hierarchy/find.js","../../../node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../node_modules/d3-hierarchy/src/hierarchy/path.js","../../../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../node_modules/d3-hierarchy/src/hierarchy/links.js","../../../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../../../node_modules/d3-hierarchy/src/hierarchy/index.js","../../../node_modules/d3-hierarchy/src/accessors.js","../../../node_modules/d3-hierarchy/src/constant.js","../../../node_modules/d3-hierarchy/src/lcg.js","../../../node_modules/d3-hierarchy/src/array.js","../../../node_modules/d3-hierarchy/src/pack/enclose.js","../../../node_modules/d3-hierarchy/src/pack/siblings.js","../../../node_modules/d3-hierarchy/src/pack/index.js","../../../node_modules/d3-hierarchy/src/treemap/round.js","../../../node_modules/d3-hierarchy/src/treemap/dice.js","../../../node_modules/d3-hierarchy/src/tree.js","../../../node_modules/d3-hierarchy/src/treemap/slice.js","../../../node_modules/d3-hierarchy/src/treemap/squarify.js","../../../node_modules/d3-hierarchy/src/treemap/index.js","../../../node_modules/d3-scale/src/init.js","../../../node_modules/d3-scale/src/ordinal.js","../../../node_modules/d3-scale/src/band.js","../../../node_modules/d3-scale/src/constant.js","../../../node_modules/d3-scale/src/number.js","../../../node_modules/d3-scale/src/continuous.js","../../../node_modules/d3-scale/src/tickFormat.js","../../../node_modules/d3-scale/src/linear.js","../../../node_modules/d3-scale/src/nice.js","../../../node_modules/d3-scale/src/log.js","../../../node_modules/d3-scale/src/quantize.js","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/millisecond.js","../../../node_modules/d3-time/src/duration.js","../../../node_modules/d3-time/src/second.js","../../../node_modules/d3-time/src/minute.js","../../../node_modules/d3-time/src/hour.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../../../node_modules/d3-time/src/ticks.js","../../../node_modules/d3-time-format/src/locale.js","../../../node_modules/d3-time-format/src/defaultLocale.js","../../../node_modules/d3-scale/src/time.js","../../../node_modules/d3/node_modules/d3-shape/src/constant.js","../../../node_modules/d3/node_modules/d3-shape/src/math.js","../../../node_modules/d3/node_modules/d3-shape/src/path.js","../../../node_modules/d3/node_modules/d3-shape/src/arc.js","../../../node_modules/d3/node_modules/d3-shape/src/array.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/linear.js","../../../node_modules/d3/node_modules/d3-shape/src/point.js","../../../node_modules/d3/node_modules/d3-shape/src/line.js","../../../node_modules/d3/node_modules/d3-shape/src/area.js","../../../node_modules/d3/node_modules/d3-shape/src/descending.js","../../../node_modules/d3/node_modules/d3-shape/src/identity.js","../../../node_modules/d3/node_modules/d3-shape/src/pie.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/radial.js","../../../node_modules/d3/node_modules/d3-shape/src/lineRadial.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/bump.js","../../../node_modules/d3/node_modules/d3-shape/src/link.js","../../../node_modules/d3/node_modules/d3-shape/src/noop.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/basis.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/basisClosed.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/basisOpen.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/bundle.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/cardinal.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/cardinalClosed.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/cardinalOpen.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/catmullRom.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/catmullRomClosed.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/catmullRomOpen.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/linearClosed.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/monotone.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/natural.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/step.js","../../../node_modules/d3/node_modules/d3-shape/src/offset/none.js","../../../node_modules/d3/node_modules/d3-shape/src/order/none.js","../../../node_modules/d3/node_modules/d3-shape/src/stack.js","../../../node_modules/d3/node_modules/d3-shape/src/offset/diverging.js","../../../node_modules/d3-zoom/src/transform.js","../../core/dist/color-scale-utils-7ngqnWVI.mjs","../../core/dist/a11y-SOU26cr5.mjs","../../core/dist/_baseEach-fTLS5z67.mjs","../../core/dist/wordcloud-eTGg6ZP6.mjs","../../core/dist/angle-utils-DHfDhGau.mjs","../../../node_modules/d3-sankey/node_modules/d3-array/src/max.js","../../../node_modules/d3-sankey/node_modules/d3-array/src/min.js","../../../node_modules/d3-sankey/node_modules/d3-array/src/sum.js","../../../node_modules/d3-sankey/src/align.js","../../../node_modules/d3-sankey/src/constant.js","../../../node_modules/d3-sankey/src/sankey.js","../../../node_modules/d3-shape/node_modules/d3-path/src/path.js","../../../node_modules/d3-shape/src/constant.js","../../../node_modules/d3-shape/src/point.js","../../../node_modules/d3-shape/src/array.js","../../../node_modules/d3-shape/src/link/index.js","../../../node_modules/d3-sankey/src/sankeyLinkHorizontal.js","../../../node_modules/d3-cloud/node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/d3-cloud/index.js","../../core/dist/choropleth-S04OahB3.mjs","../../core/dist/zoom-i_u9NbAF.mjs","../../core/dist/index.mjs","../src/components/chartFactory.ts","../src/components/CcvAlluvialChart.ts","../src/components/CcvAreaChart.ts","../src/components/CcvBoxplotChart.ts","../src/components/CcvBubbleChart.ts","../src/components/CcvBulletChart.ts","../src/components/CcvChoroplethChart.ts","../src/components/CcvCirclePackChart.ts","../src/components/CcvComboChart.ts","../src/components/CcvDonutChart.ts","../src/components/CcvGaugeChart.ts","../src/components/CcvGroupedBarChart.ts","../src/components/CcvHeatmapChart.ts","../src/components/CcvHistogramChart.ts","../src/components/CcvLineChart.ts","../src/components/CcvLollipopChart.ts","../src/components/CcvMeterChart.ts","../src/components/CcvPieChart.ts","../src/components/CcvRadarChart.ts","../src/components/CcvScatterChart.ts","../src/components/CcvSimpleBarChart.ts","../src/components/CcvStackedAreaChart.ts","../src/components/CcvStackedBarChart.ts","../src/components/CcvTreeChart.ts","../src/components/CcvTreemapChart.ts","../src/components/CcvWordCloudChart.ts","../src/index.ts"],"sourcesContent":["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-tMKLWMMm.mjs.map\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import 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","import { Z as je, s as $, V as Te, u as Gn, A as ee, k as Bn, K as te, x as Hn, p as qn, Q as Un, D as Qn, S as lt, i as Ut } from \"./enums-tMKLWMMm.mjs\";\nimport { easeCubicInOut as zn, pointer as Xn, min as kn, extent as Vn, scaleLinear as Kn, scaleQuantize as Zn } from \"d3\";\nfunction Ie(e) {\n return (t = {}) => {\n const n = t.width ? String(t.width) : e.defaultWidth;\n return e.formats[n] || e.formats[e.defaultWidth];\n };\n}\nfunction ne(e) {\n return (t, n) => {\n const r = n != null && n.context ? String(n.context) : \"standalone\";\n let a;\n if (r === \"formatting\" && e.formattingValues) {\n const o = e.defaultFormattingWidth || e.defaultWidth, s = n != null && n.width ? String(n.width) : o;\n a = e.formattingValues[s] || e.formattingValues[o];\n } else {\n const o = e.defaultWidth, s = n != null && n.width ? String(n.width) : e.defaultWidth;\n a = e.values[s] || e.values[o];\n }\n const i = e.argumentCallback ? e.argumentCallback(t) : t;\n return a[i];\n };\n}\nfunction re(e) {\n return (t, n = {}) => {\n const r = n.width, a = r && e.matchPatterns[r] || e.matchPatterns[e.defaultMatchWidth], i = t.match(a);\n if (!i)\n return null;\n const o = i[0], s = r && e.parsePatterns[r] || e.parsePatterns[e.defaultParseWidth], u = Array.isArray(s) ? er(s, (f) => f.test(o)) : (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n Jn(s, (f) => f.test(o))\n );\n let c;\n c = e.valueCallback ? e.valueCallback(u) : u, c = n.valueCallback ? (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n n.valueCallback(c)\n ) : c;\n const l = t.slice(o.length);\n return { value: c, rest: l };\n };\n}\nfunction Jn(e, t) {\n for (const n in e)\n if (Object.prototype.hasOwnProperty.call(e, n) && t(e[n]))\n return n;\n}\nfunction er(e, t) {\n for (let n = 0; n < e.length; n++)\n if (t(e[n]))\n return n;\n}\nfunction tr(e) {\n return (t, n = {}) => {\n const r = t.match(e.matchPattern);\n if (!r)\n return null;\n const a = r[0], i = t.match(e.parsePattern);\n if (!i)\n return null;\n let o = e.valueCallback ? e.valueCallback(i[0]) : i[0];\n o = n.valueCallback ? n.valueCallback(o) : o;\n const s = t.slice(a.length);\n return { value: o, rest: s };\n };\n}\nfunction D(e) {\n const t = Object.prototype.toString.call(e);\n return e instanceof Date || typeof e == \"object\" && t === \"[object Date]\" ? new e.constructor(+e) : typeof e == \"number\" || t === \"[object Number]\" || typeof t == \"string\" || t === \"[object String]\" ? new Date(e) : /* @__PURE__ */ new Date(NaN);\n}\nlet nr = {};\nfunction Me() {\n return nr;\n}\nfunction se(e, t) {\n var s, u, c, l;\n const n = Me(), r = (t == null ? void 0 : t.weekStartsOn) ?? ((u = (s = t == null ? void 0 : t.locale) == null ? void 0 : s.options) == null ? void 0 : u.weekStartsOn) ?? n.weekStartsOn ?? ((l = (c = n.locale) == null ? void 0 : c.options) == null ? void 0 : l.weekStartsOn) ?? 0, a = D(e), i = a.getDay(), o = (i < r ? 7 : 0) + i - r;\n return a.setDate(a.getDate() - o), a.setHours(0, 0, 0, 0), a;\n}\nconst rr = {\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}, ar = (e, t, n) => {\n let r;\n const a = rr[e];\n return typeof a == \"string\" ? r = a : t === 1 ? r = a.one : r = a.other.replace(\"{{count}}\", t.toString()), n != null && n.addSuffix ? n.comparison && n.comparison > 0 ? \"in \" + r : r + \" ago\" : r;\n}, ir = {\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}, or = (e, t, n, r) => ir[e], sr = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"]\n}, ur = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"]\n}, cr = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ]\n}, lr = {\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: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n}, fr = {\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}, dr = {\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}, hr = (e, t) => {\n const n = Number(e), r = n % 100;\n if (r > 20 || r < 10)\n switch (r % 10) {\n case 1:\n return n + \"st\";\n case 2:\n return n + \"nd\";\n case 3:\n return n + \"rd\";\n }\n return n + \"th\";\n}, gr = {\n ordinalNumber: hr,\n era: ne({\n values: sr,\n defaultWidth: \"wide\"\n }),\n quarter: ne({\n values: ur,\n defaultWidth: \"wide\",\n argumentCallback: (e) => e - 1\n }),\n month: ne({\n values: cr,\n defaultWidth: \"wide\"\n }),\n day: ne({\n values: lr,\n defaultWidth: \"wide\"\n }),\n dayPeriod: ne({\n values: fr,\n defaultWidth: \"wide\",\n formattingValues: dr,\n defaultFormattingWidth: \"wide\"\n })\n}, mr = /^(\\d+)(th|st|nd|rd)?/i, pr = /\\d+/i, yr = {\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}, br = {\n any: [/^b/i, /^(a|c)/i]\n}, wr = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n}, Tr = {\n any: [/1/i, /2/i, /3/i, /4/i]\n}, vr = {\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}, Or = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i\n ],\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i\n ]\n}, _r = {\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}, Sr = {\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}, Pr = {\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}, Mr = {\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}, xr = {\n ordinalNumber: tr({\n matchPattern: mr,\n parsePattern: pr,\n valueCallback: (e) => parseInt(e, 10)\n }),\n era: re({\n matchPatterns: yr,\n defaultMatchWidth: \"wide\",\n parsePatterns: br,\n defaultParseWidth: \"any\"\n }),\n quarter: re({\n matchPatterns: wr,\n defaultMatchWidth: \"wide\",\n parsePatterns: Tr,\n defaultParseWidth: \"any\",\n valueCallback: (e) => e + 1\n }),\n month: re({\n matchPatterns: vr,\n defaultMatchWidth: \"wide\",\n parsePatterns: Or,\n defaultParseWidth: \"any\"\n }),\n day: re({\n matchPatterns: _r,\n defaultMatchWidth: \"wide\",\n parsePatterns: Sr,\n defaultParseWidth: \"any\"\n }),\n dayPeriod: re({\n matchPatterns: Pr,\n defaultMatchWidth: \"any\",\n parsePatterns: Mr,\n defaultParseWidth: \"any\"\n })\n}, $r = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\"\n}, Ar = {\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}, Dr = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\"\n}, Er = {\n date: Ie({\n formats: $r,\n defaultWidth: \"full\"\n }),\n time: Ie({\n formats: Ar,\n defaultWidth: \"full\"\n }),\n dateTime: Ie({\n formats: Dr,\n defaultWidth: \"full\"\n })\n}, Qt = {\n code: \"en-US\",\n formatDistance: ar,\n formatLong: Er,\n formatRelative: or,\n localize: gr,\n match: xr,\n options: {\n weekStartsOn: 0,\n firstWeekContainsDate: 1\n }\n};\nvar Cr = typeof global == \"object\" && global && global.Object === Object && global;\nconst zt = Cr;\nvar Ir = typeof self == \"object\" && self && self.Object === Object && self, Fr = zt || Ir || Function(\"return this\")();\nconst E = Fr;\nvar Lr = E.Symbol;\nconst P = Lr;\nvar Xt = Object.prototype, Rr = Xt.hasOwnProperty, Wr = Xt.toString, ae = P ? P.toStringTag : void 0;\nfunction jr(e) {\n var t = Rr.call(e, ae), n = e[ae];\n try {\n e[ae] = void 0;\n var r = !0;\n } catch {\n }\n var a = Wr.call(e);\n return r && (t ? e[ae] = n : delete e[ae]), a;\n}\nvar Nr = Object.prototype, Yr = Nr.toString;\nfunction Gr(e) {\n return Yr.call(e);\n}\nvar Br = \"[object Null]\", Hr = \"[object Undefined]\", ft = P ? P.toStringTag : void 0;\nfunction q(e) {\n return e == null ? e === void 0 ? Hr : Br : ft && ft in Object(e) ? jr(e) : Gr(e);\n}\nfunction A(e) {\n return e != null && typeof e == \"object\";\n}\nvar qr = \"[object Symbol]\";\nfunction ze(e) {\n return typeof e == \"symbol\" || A(e) && q(e) == qr;\n}\nfunction Ur(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 Qr = Array.isArray;\nconst S = Qr;\nvar zr = 1 / 0, dt = P ? P.prototype : void 0, ht = dt ? dt.toString : void 0;\nfunction kt(e) {\n if (typeof e == \"string\")\n return e;\n if (S(e))\n return Ur(e, kt) + \"\";\n if (ze(e))\n return ht ? ht.call(e) : \"\";\n var t = e + \"\";\n return t == \"0\" && 1 / e == -zr ? \"-0\" : t;\n}\nfunction I(e) {\n var t = typeof e;\n return e != null && (t == \"object\" || t == \"function\");\n}\nfunction Xe(e) {\n return e;\n}\nvar Xr = \"[object AsyncFunction]\", kr = \"[object Function]\", Vr = \"[object GeneratorFunction]\", Kr = \"[object Proxy]\";\nfunction ke(e) {\n if (!I(e))\n return !1;\n var t = q(e);\n return t == kr || t == Vr || t == Xr || t == Kr;\n}\nvar Zr = E[\"__core-js_shared__\"];\nconst Fe = Zr;\nvar gt = function() {\n var e = /[^.]+$/.exec(Fe && Fe.keys && Fe.keys.IE_PROTO || \"\");\n return e ? \"Symbol(src)_1.\" + e : \"\";\n}();\nfunction Jr(e) {\n return !!gt && gt in e;\n}\nvar ea = Function.prototype, ta = ea.toString;\nfunction U(e) {\n if (e != null) {\n try {\n return ta.call(e);\n } catch {\n }\n try {\n return e + \"\";\n } catch {\n }\n }\n return \"\";\n}\nvar na = /[\\\\^$.*+?()[\\]{}|]/g, ra = /^\\[object .+?Constructor\\]$/, aa = Function.prototype, ia = Object.prototype, oa = aa.toString, sa = ia.hasOwnProperty, ua = RegExp(\n \"^\" + oa.call(sa).replace(na, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"\n);\nfunction ca(e) {\n if (!I(e) || Jr(e))\n return !1;\n var t = ke(e) ? ua : ra;\n return t.test(U(e));\n}\nfunction la(e, t) {\n return e == null ? void 0 : e[t];\n}\nfunction Q(e, t) {\n var n = la(e, t);\n return ca(n) ? n : void 0;\n}\nvar fa = Q(E, \"WeakMap\");\nconst Ne = fa;\nvar mt = Object.create, da = /* @__PURE__ */ function() {\n function e() {\n }\n return function(t) {\n if (!I(t))\n return {};\n if (mt)\n return mt(t);\n e.prototype = t;\n var n = new e();\n return e.prototype = void 0, n;\n };\n}();\nconst ha = da;\nfunction ga(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 ma() {\n}\nfunction Vt(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 pa = 800, ya = 16, ba = Date.now;\nfunction wa(e) {\n var t = 0, n = 0;\n return function() {\n var r = ba(), a = ya - (r - n);\n if (n = r, a > 0) {\n if (++t >= pa)\n return arguments[0];\n } else\n t = 0;\n return e.apply(void 0, arguments);\n };\n}\nfunction Ta(e) {\n return function() {\n return e;\n };\n}\nvar va = function() {\n try {\n var e = Q(Object, \"defineProperty\");\n return e({}, \"\", {}), e;\n } catch {\n }\n}();\nconst Oe = va;\nvar Oa = Oe ? function(e, t) {\n return Oe(e, \"toString\", {\n configurable: !0,\n enumerable: !1,\n value: Ta(t),\n writable: !0\n });\n} : Xe;\nconst _a = Oa;\nvar Sa = wa(_a);\nconst Pa = Sa;\nfunction Ma(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 xa(e, t, n, r) {\n for (var a = e.length, i = n + (r ? 1 : -1); r ? i-- : ++i < a; )\n if (t(e[i], i, e))\n return i;\n return -1;\n}\nfunction $a(e) {\n return e !== e;\n}\nfunction Aa(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 Da(e, t, n) {\n return t === t ? Aa(e, t, n) : xa(e, $a, n);\n}\nfunction Ea(e, t) {\n var n = e == null ? 0 : e.length;\n return !!n && Da(e, t, 0) > -1;\n}\nvar Ca = 9007199254740991, Ia = /^(?:0|[1-9]\\d*)$/;\nfunction Ve(e, t) {\n var n = typeof e;\n return t = t ?? Ca, !!t && (n == \"number\" || n != \"symbol\" && Ia.test(e)) && e > -1 && e % 1 == 0 && e < t;\n}\nfunction Ke(e, t, n) {\n t == \"__proto__\" && Oe ? Oe(e, t, {\n configurable: !0,\n enumerable: !0,\n value: n,\n writable: !0\n }) : e[t] = n;\n}\nfunction fe(e, t) {\n return e === t || e !== e && t !== t;\n}\nvar Fa = Object.prototype, La = Fa.hasOwnProperty;\nfunction Kt(e, t, n) {\n var r = e[t];\n (!(La.call(e, t) && fe(r, n)) || n === void 0 && !(t in e)) && Ke(e, t, n);\n}\nfunction de(e, t, n, r) {\n var a = !n;\n n || (n = {});\n for (var i = -1, o = t.length; ++i < o; ) {\n var s = t[i], u = r ? r(n[s], e[s], s, n, e) : void 0;\n u === void 0 && (u = e[s]), a ? Ke(n, s, u) : Kt(n, s, u);\n }\n return n;\n}\nvar pt = Math.max;\nfunction Ra(e, t, n) {\n return t = pt(t === void 0 ? e.length - 1 : t, 0), function() {\n for (var r = arguments, a = -1, i = pt(r.length - t, 0), o = Array(i); ++a < i; )\n o[a] = r[t + a];\n a = -1;\n for (var s = Array(t + 1); ++a < t; )\n s[a] = r[a];\n return s[t] = n(o), ga(e, this, s);\n };\n}\nfunction Zt(e, t) {\n return Pa(Ra(e, t, Xe), e + \"\");\n}\nvar Wa = 9007199254740991;\nfunction Ze(e) {\n return typeof e == \"number\" && e > -1 && e % 1 == 0 && e <= Wa;\n}\nfunction he(e) {\n return e != null && Ze(e.length) && !ke(e);\n}\nfunction ja(e, t, n) {\n if (!I(n))\n return !1;\n var r = typeof t;\n return (r == \"number\" ? he(n) && Ve(t, n.length) : r == \"string\" && t in n) ? fe(n[t], e) : !1;\n}\nfunction Na(e) {\n return Zt(function(t, n) {\n var r = -1, a = n.length, i = a > 1 ? n[a - 1] : void 0, o = a > 2 ? n[2] : void 0;\n for (i = e.length > 3 && typeof i == \"function\" ? (a--, i) : void 0, o && ja(n[0], n[1], o) && (i = a < 3 ? void 0 : i, a = 1), t = Object(t); ++r < a; ) {\n var s = n[r];\n s && e(t, s, r, i);\n }\n return t;\n });\n}\nvar Ya = Object.prototype;\nfunction xe(e) {\n var t = e && e.constructor, n = typeof t == \"function\" && t.prototype || Ya;\n return e === n;\n}\nfunction Ga(e, t) {\n for (var n = -1, r = Array(e); ++n < e; )\n r[n] = t(n);\n return r;\n}\nvar Ba = \"[object Arguments]\";\nfunction yt(e) {\n return A(e) && q(e) == Ba;\n}\nvar Jt = Object.prototype, Ha = Jt.hasOwnProperty, qa = Jt.propertyIsEnumerable, Ua = yt(/* @__PURE__ */ function() {\n return arguments;\n}()) ? yt : function(e) {\n return A(e) && Ha.call(e, \"callee\") && !qa.call(e, \"callee\");\n};\nconst V = Ua;\nfunction Qa() {\n return !1;\n}\nvar en = typeof exports == \"object\" && exports && !exports.nodeType && exports, bt = en && typeof module == \"object\" && module && !module.nodeType && module, za = bt && bt.exports === en, wt = za ? E.Buffer : void 0, Xa = wt ? wt.isBuffer : void 0, ka = Xa || Qa;\nconst K = ka;\nvar Va = \"[object Arguments]\", Ka = \"[object Array]\", Za = \"[object Boolean]\", Ja = \"[object Date]\", ei = \"[object Error]\", ti = \"[object Function]\", ni = \"[object Map]\", ri = \"[object Number]\", ai = \"[object Object]\", ii = \"[object RegExp]\", oi = \"[object Set]\", si = \"[object String]\", ui = \"[object WeakMap]\", ci = \"[object ArrayBuffer]\", li = \"[object DataView]\", fi = \"[object Float32Array]\", di = \"[object Float64Array]\", hi = \"[object Int8Array]\", gi = \"[object Int16Array]\", mi = \"[object Int32Array]\", pi = \"[object Uint8Array]\", yi = \"[object Uint8ClampedArray]\", bi = \"[object Uint16Array]\", wi = \"[object Uint32Array]\", p = {};\np[fi] = p[di] = p[hi] = p[gi] = p[mi] = p[pi] = p[yi] = p[bi] = p[wi] = !0;\np[Va] = p[Ka] = p[ci] = p[Za] = p[li] = p[Ja] = p[ei] = p[ti] = p[ni] = p[ri] = p[ai] = p[ii] = p[oi] = p[si] = p[ui] = !1;\nfunction Ti(e) {\n return A(e) && Ze(e.length) && !!p[q(e)];\n}\nfunction Je(e) {\n return function(t) {\n return e(t);\n };\n}\nvar tn = typeof exports == \"object\" && exports && !exports.nodeType && exports, oe = tn && typeof module == \"object\" && module && !module.nodeType && module, vi = oe && oe.exports === tn, Le = vi && zt.process, Oi = function() {\n try {\n var e = oe && oe.require && oe.require(\"util\").types;\n return e || Le && Le.binding && Le.binding(\"util\");\n } catch {\n }\n}();\nconst Z = Oi;\nvar Tt = Z && Z.isTypedArray, _i = Tt ? Je(Tt) : Ti;\nconst $e = _i;\nvar Si = Object.prototype, Pi = Si.hasOwnProperty;\nfunction nn(e, t) {\n var n = S(e), r = !n && V(e), a = !n && !r && K(e), i = !n && !r && !a && $e(e), o = n || r || a || i, s = o ? Ga(e.length, String) : [], u = s.length;\n for (var c in e)\n (t || Pi.call(e, c)) && !(o && // Safari 9 has enumerable `arguments.length` in strict mode.\n (c == \"length\" || // Node.js 0.10 has enumerable non-index properties on buffers.\n a && (c == \"offset\" || c == \"parent\") || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n i && (c == \"buffer\" || c == \"byteLength\" || c == \"byteOffset\") || // Skip index properties.\n Ve(c, u))) && s.push(c);\n return s;\n}\nfunction rn(e, t) {\n return function(n) {\n return e(t(n));\n };\n}\nvar Mi = rn(Object.keys, Object);\nconst xi = Mi;\nvar $i = Object.prototype, Ai = $i.hasOwnProperty;\nfunction an(e) {\n if (!xe(e))\n return xi(e);\n var t = [];\n for (var n in Object(e))\n Ai.call(e, n) && n != \"constructor\" && t.push(n);\n return t;\n}\nfunction Ae(e) {\n return he(e) ? nn(e) : an(e);\n}\nfunction Di(e) {\n var t = [];\n if (e != null)\n for (var n in Object(e))\n t.push(n);\n return t;\n}\nvar Ei = Object.prototype, Ci = Ei.hasOwnProperty;\nfunction Ii(e) {\n if (!I(e))\n return Di(e);\n var t = xe(e), n = [];\n for (var r in e)\n r == \"constructor\" && (t || !Ci.call(e, r)) || n.push(r);\n return n;\n}\nfunction ge(e) {\n return he(e) ? nn(e, !0) : Ii(e);\n}\nvar Fi = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/, Li = /^\\w*$/;\nfunction et(e, t) {\n if (S(e))\n return !1;\n var n = typeof e;\n return n == \"number\" || n == \"symbol\" || n == \"boolean\" || e == null || ze(e) ? !0 : Li.test(e) || !Fi.test(e) || t != null && e in Object(t);\n}\nvar Ri = Q(Object, \"create\");\nconst ue = Ri;\nfunction Wi() {\n this.__data__ = ue ? ue(null) : {}, this.size = 0;\n}\nfunction ji(e) {\n var t = this.has(e) && delete this.__data__[e];\n return this.size -= t ? 1 : 0, t;\n}\nvar Ni = \"__lodash_hash_undefined__\", Yi = Object.prototype, Gi = Yi.hasOwnProperty;\nfunction Bi(e) {\n var t = this.__data__;\n if (ue) {\n var n = t[e];\n return n === Ni ? void 0 : n;\n }\n return Gi.call(t, e) ? t[e] : void 0;\n}\nvar Hi = Object.prototype, qi = Hi.hasOwnProperty;\nfunction Ui(e) {\n var t = this.__data__;\n return ue ? t[e] !== void 0 : qi.call(t, e);\n}\nvar Qi = \"__lodash_hash_undefined__\";\nfunction zi(e, t) {\n var n = this.__data__;\n return this.size += this.has(e) ? 0 : 1, n[e] = ue && t === void 0 ? Qi : t, this;\n}\nfunction G(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}\nG.prototype.clear = Wi;\nG.prototype.delete = ji;\nG.prototype.get = Bi;\nG.prototype.has = Ui;\nG.prototype.set = zi;\nfunction Xi() {\n this.__data__ = [], this.size = 0;\n}\nfunction De(e, t) {\n for (var n = e.length; n--; )\n if (fe(e[n][0], t))\n return n;\n return -1;\n}\nvar ki = Array.prototype, Vi = ki.splice;\nfunction Ki(e) {\n var t = this.__data__, n = De(t, e);\n if (n < 0)\n return !1;\n var r = t.length - 1;\n return n == r ? t.pop() : Vi.call(t, n, 1), --this.size, !0;\n}\nfunction Zi(e) {\n var t = this.__data__, n = De(t, e);\n return n < 0 ? void 0 : t[n][1];\n}\nfunction Ji(e) {\n return De(this.__data__, e) > -1;\n}\nfunction eo(e, t) {\n var n = this.__data__, r = De(n, e);\n return r < 0 ? (++this.size, n.push([e, t])) : n[r][1] = t, this;\n}\nfunction F(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}\nF.prototype.clear = Xi;\nF.prototype.delete = Ki;\nF.prototype.get = Zi;\nF.prototype.has = Ji;\nF.prototype.set = eo;\nvar to = Q(E, \"Map\");\nconst ce = to;\nfunction no() {\n this.size = 0, this.__data__ = {\n hash: new G(),\n map: new (ce || F)(),\n string: new G()\n };\n}\nfunction ro(e) {\n var t = typeof e;\n return t == \"string\" || t == \"number\" || t == \"symbol\" || t == \"boolean\" ? e !== \"__proto__\" : e === null;\n}\nfunction Ee(e, t) {\n var n = e.__data__;\n return ro(t) ? n[typeof t == \"string\" ? \"string\" : \"hash\"] : n.map;\n}\nfunction ao(e) {\n var t = Ee(this, e).delete(e);\n return this.size -= t ? 1 : 0, t;\n}\nfunction io(e) {\n return Ee(this, e).get(e);\n}\nfunction oo(e) {\n return Ee(this, e).has(e);\n}\nfunction so(e, t) {\n var n = Ee(this, e), r = n.size;\n return n.set(e, t), this.size += n.size == r ? 0 : 1, this;\n}\nfunction L(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}\nL.prototype.clear = no;\nL.prototype.delete = ao;\nL.prototype.get = io;\nL.prototype.has = oo;\nL.prototype.set = so;\nvar uo = \"Expected a function\";\nfunction tt(e, t) {\n if (typeof e != \"function\" || t != null && typeof t != \"function\")\n throw new TypeError(uo);\n var n = function() {\n var r = arguments, a = t ? t.apply(this, r) : r[0], i = n.cache;\n if (i.has(a))\n return i.get(a);\n var o = e.apply(this, r);\n return n.cache = i.set(a, o) || i, o;\n };\n return n.cache = new (tt.Cache || L)(), n;\n}\ntt.Cache = L;\nvar co = 500;\nfunction lo(e) {\n var t = tt(e, function(r) {\n return n.size === co && n.clear(), r;\n }), n = t.cache;\n return t;\n}\nvar fo = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g, ho = /\\\\(\\\\)?/g, go = lo(function(e) {\n var t = [];\n return e.charCodeAt(0) === 46 && t.push(\"\"), e.replace(fo, function(n, r, a, i) {\n t.push(a ? i.replace(ho, \"$1\") : r || n);\n }), t;\n});\nconst mo = go;\nfunction po(e) {\n return e == null ? \"\" : kt(e);\n}\nfunction on(e, t) {\n return S(e) ? e : et(e, t) ? [e] : mo(po(e));\n}\nvar yo = 1 / 0;\nfunction Ce(e) {\n if (typeof e == \"string\" || ze(e))\n return e;\n var t = e + \"\";\n return t == \"0\" && 1 / e == -yo ? \"-0\" : t;\n}\nfunction sn(e, t) {\n t = on(t, e);\n for (var n = 0, r = t.length; e != null && n < r; )\n e = e[Ce(t[n++])];\n return n && n == r ? e : void 0;\n}\nfunction bo(e, t, n) {\n var r = e == null ? void 0 : sn(e, t);\n return r === void 0 ? n : r;\n}\nfunction nt(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 vt = P ? P.isConcatSpreadable : void 0;\nfunction wo(e) {\n return S(e) || V(e) || !!(vt && e && e[vt]);\n}\nfunction un(e, t, n, r, a) {\n var i = -1, o = e.length;\n for (n || (n = wo), a || (a = []); ++i < o; ) {\n var s = e[i];\n t > 0 && n(s) ? t > 1 ? un(s, t - 1, n, r, a) : nt(a, s) : r || (a[a.length] = s);\n }\n return a;\n}\nvar To = rn(Object.getPrototypeOf, Object);\nconst rt = To;\nvar vo = \"[object Object]\", Oo = Function.prototype, _o = Object.prototype, cn = Oo.toString, So = _o.hasOwnProperty, Po = cn.call(Object);\nfunction Mo(e) {\n if (!A(e) || q(e) != vo)\n return !1;\n var t = rt(e);\n if (t === null)\n return !0;\n var n = So.call(t, \"constructor\") && t.constructor;\n return typeof n == \"function\" && n instanceof n && cn.call(n) == Po;\n}\nfunction xo() {\n this.__data__ = new F(), this.size = 0;\n}\nfunction $o(e) {\n var t = this.__data__, n = t.delete(e);\n return this.size = t.size, n;\n}\nfunction Ao(e) {\n return this.__data__.get(e);\n}\nfunction Do(e) {\n return this.__data__.has(e);\n}\nvar Eo = 200;\nfunction Co(e, t) {\n var n = this.__data__;\n if (n instanceof F) {\n var r = n.__data__;\n if (!ce || r.length < Eo - 1)\n return r.push([e, t]), this.size = ++n.size, this;\n n = this.__data__ = new L(r);\n }\n return n.set(e, t), this.size = n.size, this;\n}\nfunction x(e) {\n var t = this.__data__ = new F(e);\n this.size = t.size;\n}\nx.prototype.clear = xo;\nx.prototype.delete = $o;\nx.prototype.get = Ao;\nx.prototype.has = Do;\nx.prototype.set = Co;\nfunction Io(e, t) {\n return e && de(t, Ae(t), e);\n}\nfunction Fo(e, t) {\n return e && de(t, ge(t), e);\n}\nvar ln = typeof exports == \"object\" && exports && !exports.nodeType && exports, Ot = ln && typeof module == \"object\" && module && !module.nodeType && module, Lo = Ot && Ot.exports === ln, _t = Lo ? E.Buffer : void 0, St = _t ? _t.allocUnsafe : void 0;\nfunction fn(e, t) {\n if (t)\n return e.slice();\n var n = e.length, r = St ? St(n) : new e.constructor(n);\n return e.copy(r), r;\n}\nfunction Ro(e, t) {\n for (var n = -1, r = e == null ? 0 : e.length, a = 0, i = []; ++n < r; ) {\n var o = e[n];\n t(o, n, e) && (i[a++] = o);\n }\n return i;\n}\nfunction dn() {\n return [];\n}\nvar Wo = Object.prototype, jo = Wo.propertyIsEnumerable, Pt = Object.getOwnPropertySymbols, No = Pt ? function(e) {\n return e == null ? [] : (e = Object(e), Ro(Pt(e), function(t) {\n return jo.call(e, t);\n }));\n} : dn;\nconst at = No;\nfunction Yo(e, t) {\n return de(e, at(e), t);\n}\nvar Go = Object.getOwnPropertySymbols, Bo = Go ? function(e) {\n for (var t = []; e; )\n nt(t, at(e)), e = rt(e);\n return t;\n} : dn;\nconst hn = Bo;\nfunction Ho(e, t) {\n return de(e, hn(e), t);\n}\nfunction gn(e, t, n) {\n var r = t(e);\n return S(e) ? r : nt(r, n(e));\n}\nfunction Ye(e) {\n return gn(e, Ae, at);\n}\nfunction qo(e) {\n return gn(e, ge, hn);\n}\nvar Uo = Q(E, \"DataView\");\nconst Ge = Uo;\nvar Qo = Q(E, \"Promise\");\nconst Be = Qo;\nvar zo = Q(E, \"Set\");\nconst k = zo;\nvar Mt = \"[object Map]\", Xo = \"[object Object]\", xt = \"[object Promise]\", $t = \"[object Set]\", At = \"[object WeakMap]\", Dt = \"[object DataView]\", ko = U(Ge), Vo = U(ce), Ko = U(Be), Zo = U(k), Jo = U(Ne), j = q;\n(Ge && j(new Ge(new ArrayBuffer(1))) != Dt || ce && j(new ce()) != Mt || Be && j(Be.resolve()) != xt || k && j(new k()) != $t || Ne && j(new Ne()) != At) && (j = function(e) {\n var t = q(e), n = t == Xo ? e.constructor : void 0, r = n ? U(n) : \"\";\n if (r)\n switch (r) {\n case ko:\n return Dt;\n case Vo:\n return Mt;\n case Ko:\n return xt;\n case Zo:\n return $t;\n case Jo:\n return At;\n }\n return t;\n});\nconst J = j;\nvar es = Object.prototype, ts = es.hasOwnProperty;\nfunction ns(e) {\n var t = e.length, n = new e.constructor(t);\n return t && typeof e[0] == \"string\" && ts.call(e, \"index\") && (n.index = e.index, n.input = e.input), n;\n}\nvar rs = E.Uint8Array;\nconst _e = rs;\nfunction it(e) {\n var t = new e.constructor(e.byteLength);\n return new _e(t).set(new _e(e)), t;\n}\nfunction as(e, t) {\n var n = t ? it(e.buffer) : e.buffer;\n return new e.constructor(n, e.byteOffset, e.byteLength);\n}\nvar is = /\\w*$/;\nfunction os(e) {\n var t = new e.constructor(e.source, is.exec(e));\n return t.lastIndex = e.lastIndex, t;\n}\nvar Et = P ? P.prototype : void 0, Ct = Et ? Et.valueOf : void 0;\nfunction ss(e) {\n return Ct ? Object(Ct.call(e)) : {};\n}\nfunction mn(e, t) {\n var n = t ? it(e.buffer) : e.buffer;\n return new e.constructor(n, e.byteOffset, e.length);\n}\nvar us = \"[object Boolean]\", cs = \"[object Date]\", ls = \"[object Map]\", fs = \"[object Number]\", ds = \"[object RegExp]\", hs = \"[object Set]\", gs = \"[object String]\", ms = \"[object Symbol]\", ps = \"[object ArrayBuffer]\", ys = \"[object DataView]\", bs = \"[object Float32Array]\", ws = \"[object Float64Array]\", Ts = \"[object Int8Array]\", vs = \"[object Int16Array]\", Os = \"[object Int32Array]\", _s = \"[object Uint8Array]\", Ss = \"[object Uint8ClampedArray]\", Ps = \"[object Uint16Array]\", Ms = \"[object Uint32Array]\";\nfunction xs(e, t, n) {\n var r = e.constructor;\n switch (t) {\n case ps:\n return it(e);\n case us:\n case cs:\n return new r(+e);\n case ys:\n return as(e, n);\n case bs:\n case ws:\n case Ts:\n case vs:\n case Os:\n case _s:\n case Ss:\n case Ps:\n case Ms:\n return mn(e, n);\n case ls:\n return new r();\n case fs:\n case gs:\n return new r(e);\n case ds:\n return os(e);\n case hs:\n return new r();\n case ms:\n return ss(e);\n }\n}\nfunction pn(e) {\n return typeof e.constructor == \"function\" && !xe(e) ? ha(rt(e)) : {};\n}\nvar $s = \"[object Map]\";\nfunction As(e) {\n return A(e) && J(e) == $s;\n}\nvar It = Z && Z.isMap, Ds = It ? Je(It) : As;\nconst Es = Ds;\nvar Cs = \"[object Set]\";\nfunction Is(e) {\n return A(e) && J(e) == Cs;\n}\nvar Ft = Z && Z.isSet, Fs = Ft ? Je(Ft) : Is;\nconst Ls = Fs;\nvar Rs = 1, Ws = 2, js = 4, yn = \"[object Arguments]\", Ns = \"[object Array]\", Ys = \"[object Boolean]\", Gs = \"[object Date]\", Bs = \"[object Error]\", bn = \"[object Function]\", Hs = \"[object GeneratorFunction]\", qs = \"[object Map]\", Us = \"[object Number]\", wn = \"[object Object]\", Qs = \"[object RegExp]\", zs = \"[object Set]\", Xs = \"[object String]\", ks = \"[object Symbol]\", Vs = \"[object WeakMap]\", Ks = \"[object ArrayBuffer]\", Zs = \"[object DataView]\", Js = \"[object Float32Array]\", eu = \"[object Float64Array]\", tu = \"[object Int8Array]\", nu = \"[object Int16Array]\", ru = \"[object Int32Array]\", au = \"[object Uint8Array]\", iu = \"[object Uint8ClampedArray]\", ou = \"[object Uint16Array]\", su = \"[object Uint32Array]\", m = {};\nm[yn] = m[Ns] = m[Ks] = m[Zs] = m[Ys] = m[Gs] = m[Js] = m[eu] = m[tu] = m[nu] = m[ru] = m[qs] = m[Us] = m[wn] = m[Qs] = m[zs] = m[Xs] = m[ks] = m[au] = m[iu] = m[ou] = m[su] = !0;\nm[Bs] = m[bn] = m[Vs] = !1;\nfunction ve(e, t, n, r, a, i) {\n var o, s = t & Rs, u = t & Ws, c = t & js;\n if (n && (o = a ? n(e, r, a, i) : n(e)), o !== void 0)\n return o;\n if (!I(e))\n return e;\n var l = S(e);\n if (l) {\n if (o = ns(e), !s)\n return Vt(e, o);\n } else {\n var f = J(e), d = f == bn || f == Hs;\n if (K(e))\n return fn(e, s);\n if (f == wn || f == yn || d && !a) {\n if (o = u || d ? {} : pn(e), !s)\n return u ? Ho(e, Fo(o, e)) : Yo(e, Io(o, e));\n } else {\n if (!m[f])\n return a ? e : {};\n o = xs(e, f, s);\n }\n }\n i || (i = new x());\n var y = i.get(e);\n if (y)\n return y;\n i.set(e, o), Ls(e) ? e.forEach(function(T) {\n o.add(ve(T, t, n, T, e, i));\n }) : Es(e) && e.forEach(function(T, v) {\n o.set(v, ve(T, t, n, v, e, i));\n });\n var w = c ? u ? qo : Ye : u ? ge : Ae, O = l ? void 0 : w(e);\n return Ma(O || e, function(T, v) {\n O && (v = T, T = e[v]), Kt(o, v, ve(T, t, n, v, e, i));\n }), o;\n}\nvar uu = 1, cu = 4;\nfunction lu(e) {\n return ve(e, uu | cu);\n}\nvar fu = \"__lodash_hash_undefined__\";\nfunction du(e) {\n return this.__data__.set(e, fu), this;\n}\nfunction hu(e) {\n return this.__data__.has(e);\n}\nfunction le(e) {\n var t = -1, n = e == null ? 0 : e.length;\n for (this.__data__ = new L(); ++t < n; )\n this.add(e[t]);\n}\nle.prototype.add = le.prototype.push = du;\nle.prototype.has = hu;\nfunction gu(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 Tn(e, t) {\n return e.has(t);\n}\nvar mu = 1, pu = 2;\nfunction vn(e, t, n, r, a, i) {\n var o = n & mu, s = e.length, u = t.length;\n if (s != u && !(o && u > s))\n return !1;\n var c = i.get(e), l = i.get(t);\n if (c && l)\n return c == t && l == e;\n var f = -1, d = !0, y = n & pu ? new le() : void 0;\n for (i.set(e, t), i.set(t, e); ++f < s; ) {\n var w = e[f], O = t[f];\n if (r)\n var T = o ? r(O, w, f, t, e, i) : r(w, O, f, e, t, i);\n if (T !== void 0) {\n if (T)\n continue;\n d = !1;\n break;\n }\n if (y) {\n if (!gu(t, function(v, b) {\n if (!Tn(y, b) && (w === v || a(w, v, n, r, i)))\n return y.push(b);\n })) {\n d = !1;\n break;\n }\n } else if (!(w === O || a(w, O, n, r, i))) {\n d = !1;\n break;\n }\n }\n return i.delete(e), i.delete(t), d;\n}\nfunction yu(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 ot(e) {\n var t = -1, n = Array(e.size);\n return e.forEach(function(r) {\n n[++t] = r;\n }), n;\n}\nvar bu = 1, wu = 2, Tu = \"[object Boolean]\", vu = \"[object Date]\", Ou = \"[object Error]\", _u = \"[object Map]\", Su = \"[object Number]\", Pu = \"[object RegExp]\", Mu = \"[object Set]\", xu = \"[object String]\", $u = \"[object Symbol]\", Au = \"[object ArrayBuffer]\", Du = \"[object DataView]\", Lt = P ? P.prototype : void 0, Re = Lt ? Lt.valueOf : void 0;\nfunction Eu(e, t, n, r, a, i, o) {\n switch (n) {\n case Du:\n if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset)\n return !1;\n e = e.buffer, t = t.buffer;\n case Au:\n return !(e.byteLength != t.byteLength || !i(new _e(e), new _e(t)));\n case Tu:\n case vu:\n case Su:\n return fe(+e, +t);\n case Ou:\n return e.name == t.name && e.message == t.message;\n case Pu:\n case xu:\n return e == t + \"\";\n case _u:\n var s = yu;\n case Mu:\n var u = r & bu;\n if (s || (s = ot), e.size != t.size && !u)\n return !1;\n var c = o.get(e);\n if (c)\n return c == t;\n r |= wu, o.set(e, t);\n var l = vn(s(e), s(t), r, a, i, o);\n return o.delete(e), l;\n case $u:\n if (Re)\n return Re.call(e) == Re.call(t);\n }\n return !1;\n}\nvar Cu = 1, Iu = Object.prototype, Fu = Iu.hasOwnProperty;\nfunction Lu(e, t, n, r, a, i) {\n var o = n & Cu, s = Ye(e), u = s.length, c = Ye(t), l = c.length;\n if (u != l && !o)\n return !1;\n for (var f = u; f--; ) {\n var d = s[f];\n if (!(o ? d in t : Fu.call(t, d)))\n return !1;\n }\n var y = i.get(e), w = i.get(t);\n if (y && w)\n return y == t && w == e;\n var O = !0;\n i.set(e, t), i.set(t, e);\n for (var T = o; ++f < u; ) {\n d = s[f];\n var v = e[d], b = t[d];\n if (r)\n var M = o ? r(b, v, d, t, e, i) : r(v, b, d, e, t, i);\n if (!(M === void 0 ? v === b || a(v, b, n, r, i) : M)) {\n O = !1;\n break;\n }\n T || (T = d == \"constructor\");\n }\n if (O && !T) {\n var C = e.constructor, ye = t.constructor;\n C != ye && \"constructor\" in e && \"constructor\" in t && !(typeof C == \"function\" && C instanceof C && typeof ye == \"function\" && ye instanceof ye) && (O = !1);\n }\n return i.delete(e), i.delete(t), O;\n}\nvar Ru = 1, Rt = \"[object Arguments]\", Wt = \"[object Array]\", be = \"[object Object]\", Wu = Object.prototype, jt = Wu.hasOwnProperty;\nfunction ju(e, t, n, r, a, i) {\n var o = S(e), s = S(t), u = o ? Wt : J(e), c = s ? Wt : J(t);\n u = u == Rt ? be : u, c = c == Rt ? be : c;\n var l = u == be, f = c == be, d = u == c;\n if (d && K(e)) {\n if (!K(t))\n return !1;\n o = !0, l = !1;\n }\n if (d && !l)\n return i || (i = new x()), o || $e(e) ? vn(e, t, n, r, a, i) : Eu(e, t, u, n, r, a, i);\n if (!(n & Ru)) {\n var y = l && jt.call(e, \"__wrapped__\"), w = f && jt.call(t, \"__wrapped__\");\n if (y || w) {\n var O = y ? e.value() : e, T = w ? t.value() : t;\n return i || (i = new x()), a(O, T, n, r, i);\n }\n }\n return d ? (i || (i = new x()), Lu(e, t, n, r, a, i)) : !1;\n}\nfunction st(e, t, n, r, a) {\n return e === t ? !0 : e == null || t == null || !A(e) && !A(t) ? e !== e && t !== t : ju(e, t, n, r, st, a);\n}\nvar Nu = 1, Yu = 2;\nfunction Gu(e, t, n, r) {\n var a = n.length, i = a, o = !r;\n if (e == null)\n return !i;\n for (e = Object(e); a--; ) {\n var s = n[a];\n if (o && s[2] ? s[1] !== e[s[0]] : !(s[0] in e))\n return !1;\n }\n for (; ++a < i; ) {\n s = n[a];\n var u = s[0], c = e[u], l = s[1];\n if (o && s[2]) {\n if (c === void 0 && !(u in e))\n return !1;\n } else {\n var f = new x();\n if (r)\n var d = r(c, l, u, e, t, f);\n if (!(d === void 0 ? st(l, c, Nu | Yu, r, f) : d))\n return !1;\n }\n }\n return !0;\n}\nfunction On(e) {\n return e === e && !I(e);\n}\nfunction Bu(e) {\n for (var t = Ae(e), n = t.length; n--; ) {\n var r = t[n], a = e[r];\n t[n] = [r, a, On(a)];\n }\n return t;\n}\nfunction _n(e, t) {\n return function(n) {\n return n == null ? !1 : n[e] === t && (t !== void 0 || e in Object(n));\n };\n}\nfunction Hu(e) {\n var t = Bu(e);\n return t.length == 1 && t[0][2] ? _n(t[0][0], t[0][1]) : function(n) {\n return n === e || Gu(n, e, t);\n };\n}\nfunction qu(e, t) {\n return e != null && t in Object(e);\n}\nfunction Uu(e, t, n) {\n t = on(t, e);\n for (var r = -1, a = t.length, i = !1; ++r < a; ) {\n var o = Ce(t[r]);\n if (!(i = e != null && n(e, o)))\n break;\n e = e[o];\n }\n return i || ++r != a ? i : (a = e == null ? 0 : e.length, !!a && Ze(a) && Ve(o, a) && (S(e) || V(e)));\n}\nfunction Qu(e, t) {\n return e != null && Uu(e, t, qu);\n}\nvar zu = 1, Xu = 2;\nfunction ku(e, t) {\n return et(e) && On(t) ? _n(Ce(e), t) : function(n) {\n var r = bo(n, e);\n return r === void 0 && r === t ? Qu(n, e) : st(t, r, zu | Xu);\n };\n}\nfunction Vu(e) {\n return function(t) {\n return t == null ? void 0 : t[e];\n };\n}\nfunction Ku(e) {\n return function(t) {\n return sn(t, e);\n };\n}\nfunction Zu(e) {\n return et(e) ? Vu(Ce(e)) : Ku(e);\n}\nfunction Ju(e) {\n return typeof e == \"function\" ? e : e == null ? Xe : typeof e == \"object\" ? S(e) ? ku(e[0], e[1]) : Hu(e) : Zu(e);\n}\nfunction ec(e) {\n return function(t, n, r) {\n for (var a = -1, i = Object(t), o = r(t), s = o.length; s--; ) {\n var u = o[e ? s : ++a];\n if (n(i[u], u, i) === !1)\n break;\n }\n return t;\n };\n}\nvar tc = ec();\nconst nc = tc;\nfunction He(e, t, n) {\n (n !== void 0 && !fe(e[t], n) || n === void 0 && !(t in e)) && Ke(e, t, n);\n}\nfunction qe(e) {\n return A(e) && he(e);\n}\nfunction Ue(e, t) {\n if (!(t === \"constructor\" && typeof e[t] == \"function\") && t != \"__proto__\")\n return e[t];\n}\nfunction rc(e) {\n return de(e, ge(e));\n}\nfunction ac(e, t, n, r, a, i, o) {\n var s = Ue(e, n), u = Ue(t, n), c = o.get(u);\n if (c) {\n He(e, n, c);\n return;\n }\n var l = i ? i(s, u, n + \"\", e, t, o) : void 0, f = l === void 0;\n if (f) {\n var d = S(u), y = !d && K(u), w = !d && !y && $e(u);\n l = u, d || y || w ? S(s) ? l = s : qe(s) ? l = Vt(s) : y ? (f = !1, l = fn(u, !0)) : w ? (f = !1, l = mn(u, !0)) : l = [] : Mo(u) || V(u) ? (l = s, V(s) ? l = rc(s) : (!I(s) || ke(s)) && (l = pn(u))) : f = !1;\n }\n f && (o.set(u, l), a(l, u, r, i, o), o.delete(u)), He(e, n, l);\n}\nfunction Sn(e, t, n, r, a) {\n e !== t && nc(t, function(i, o) {\n if (a || (a = new x()), I(i))\n ac(e, t, o, n, Sn, r, a);\n else {\n var s = r ? r(Ue(e, o), i, o + \"\", e, t, a) : void 0;\n s === void 0 && (s = i), He(e, o, s);\n }\n }, ge);\n}\nfunction ic(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 oc(e) {\n var t = e == null ? 0 : e.length;\n return t ? e[t - 1] : void 0;\n}\nvar sc = \"[object Map]\", uc = \"[object Set]\", cc = Object.prototype, lc = cc.hasOwnProperty;\nfunction fc(e) {\n if (e == null)\n return !0;\n if (he(e) && (S(e) || typeof e == \"string\" || typeof e.splice == \"function\" || K(e) || $e(e) || V(e)))\n return !e.length;\n var t = J(e);\n if (t == sc || t == uc)\n return !e.size;\n if (xe(e))\n return !an(e).length;\n for (var n in e)\n if (lc.call(e, n))\n return !1;\n return !0;\n}\nvar dc = Na(function(e, t, n) {\n Sn(e, t, n);\n});\nconst h = dc;\nvar hc = 1 / 0, gc = k && 1 / ot(new k([, -0]))[1] == hc ? function(e) {\n return new k(e);\n} : ma;\nconst mc = gc;\nvar pc = 200;\nfunction Pn(e, t, n) {\n var r = -1, a = Ea, i = e.length, o = !0, s = [], u = s;\n if (n)\n o = !1, a = ic;\n else if (i >= pc) {\n var c = t ? null : mc(e);\n if (c)\n return ot(c);\n o = !1, a = Tn, u = new le();\n } else\n u = t ? [] : s;\n e:\n for (; ++r < i; ) {\n var l = e[r], f = t ? t(l) : l;\n if (l = n || l !== 0 ? l : 0, o && f === f) {\n for (var d = u.length; d--; )\n if (u[d] === f)\n continue e;\n t && u.push(f), s.push(l);\n } else\n a(u, f, n) || (u !== s && u.push(f), s.push(l));\n }\n return s;\n}\nvar yc = Zt(function(e) {\n var t = oc(e);\n return qe(t) && (t = void 0), Pn(un(e, 1, qe, !0), Ju(t));\n});\nconst bc = yc;\nfunction Nl(e) {\n return e && e.length ? Pn(e) : [];\n}\nconst wc = \"cds\", Tc = {\n opacity: {\n unselected: 0.05,\n selected: 0.4\n }\n}, vc = {\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}, Oc = {\n duration: 1e3,\n ease: zn,\n zoomLevel: 3\n}, Mn = {\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}, _c = {\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}, Sc = {\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}, Pc = {\n defaultBins: 10\n}, Mc = {\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}, xc = {\n opacity: {\n unselected: 0.3,\n selected: 1\n },\n weight: {\n selected: 2,\n unselected: 1\n }\n}, $c = {\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}, Ac = {\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}, Dc = {\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}, Ec = {\n nodeWidth: 4,\n nodeHoveredWidth: 8,\n minNodePadding: 24,\n opacity: {\n unfocus: 0.3,\n default: 0.8,\n selected: 1\n }\n}, Cc = {\n minCellDividerDimension: 16,\n // Ensures axes lines are displayed with or without stroke disabled\n chartPadding: 0.5\n}, Ic = {\n default: {\n size: 24\n }\n}, Fc = {\n horizontalOffset: 10\n}, Lc = {\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}, Rc = {\n buttonSize: 32,\n iconSize: 20,\n height: 32,\n spacerHeight: 10,\n iconPadding: 6\n}, Wc = {\n height: {\n [je.GRAPH_VIEW]: 32,\n [je.SLIDER_VIEW]: 10\n },\n spacerHeight: 8,\n handleWidth: 5,\n handleBarWidth: 1,\n handleBarHeight: 12\n}, xn = [\n {\n type: $.RADIUS,\n name: \"Radius\"\n },\n {\n type: $.AREA,\n name: \"Poor area\"\n },\n {\n type: $.AREA,\n name: \"Satisfactory area\"\n },\n {\n type: $.AREA,\n name: \"Great area\"\n },\n {\n type: $.QUARTILE,\n name: \"Quartiles\"\n }\n], X = {\n type: Te.END_LINE,\n threshold: 16,\n numCharacter: 14\n}, jc = {\n enabled: !0,\n position: Gn.BOTTOM,\n clickable: !0,\n truncation: X,\n alignment: ee.LEFT,\n order: null,\n additionalItems: []\n}, $n = {\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}, An = {\n // enable or disable ruler\n enabled: !0\n}, ut = {\n enabled: !0,\n showTotal: !0,\n truncation: X,\n groupLabel: \"Group\"\n}, Dn = {\n top: {\n visible: !0,\n includeZero: !0,\n truncation: X\n },\n bottom: {\n visible: !0,\n includeZero: !0,\n truncation: X\n },\n left: {\n visible: !0,\n includeZero: !0,\n truncation: X\n },\n right: {\n visible: !0,\n includeZero: !0,\n truncation: X\n }\n}, me = {\n addSpaceOnEdges: 1,\n showDayName: !1,\n localeObject: Qt,\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}, Nc = typeof document < \"u\" && (document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled), _ = {\n width: null,\n height: null,\n resizable: !0,\n theme: Bn.WHITE,\n tooltip: ut,\n legend: jc,\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: te.SHOW_AS_DATATABLE\n },\n ...Nc ? [\n {\n type: te.MAKE_FULLSCREEN\n }\n ] : [],\n {\n type: te.EXPORT_CSV\n },\n {\n type: te.EXPORT_PNG\n },\n {\n type: te.EXPORT_JPG\n }\n ]\n }\n}, En = h({}, _, {\n thematic: {\n projection: Hn.geoNaturalEarth1\n }\n}), pe = h({}, _, {\n axes: Dn,\n timeScale: me,\n grid: $n,\n ruler: An,\n zoomBar: {\n zoomRatio: 0.4,\n minZoomRatio: 0.01,\n top: {\n enabled: !1,\n type: je.GRAPH_VIEW\n }\n }\n}), B = h({}, pe, {\n bars: {\n maxWidth: 16,\n spacingFactor: 0.25\n },\n timeScale: h(me, {\n addSpaceOnEdges: 1\n })\n}), Yc = h({}, B, {}), Gc = h({}, B, {}), Bc = h({}, B, {\n bars: h({}, B.bars, {\n dividerSize: 1.5\n })\n}), Hc = h({}, B, {}), ct = h({}, pe, {\n points: {\n // default point radius to 4\n radius: 4,\n fillOpacity: 0.3,\n filled: !0,\n enabled: !0\n }\n}), qc = ct, Cn = h({}, ct, {\n points: {\n // default point radius to 3\n radius: 3,\n filled: !1,\n enabled: !0\n }\n}), In = h({}, Cn, {\n timeScale: h(me, {\n addSpaceOnEdges: 0\n })\n}), Uc = In, Qc = h({}, pe, {\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: $.RADIUS,\n name: \"Radius\"\n }\n ]\n }\n}), zc = h({}, pe, {\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: $.AREA,\n name: \"Poor area\"\n },\n {\n type: $.AREA,\n name: \"Satisfactory area\"\n },\n {\n type: $.AREA,\n name: \"Great area\"\n },\n {\n type: $.QUARTILE,\n name: \"Quartiles\"\n }\n ]\n }\n}), Xc = h({}, B, {\n bars: {\n dividerSize: 1.5\n },\n timeScale: h(me, {\n addSpaceOnEdges: 0\n })\n}), kc = h({}, _, {\n tooltip: h({}, ut, {\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}), Fn = h({}, _, {\n pie: {\n labels: {\n formatter: null,\n enabled: !0\n },\n alignment: ee.LEFT,\n sortFunction: null,\n valueMapsTo: \"value\"\n }\n}), Vc = h({}, _, {\n legend: {\n enabled: !1\n },\n gauge: {\n type: qn.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: ee.LEFT\n }\n}), Kc = h({}, Fn, {\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: ee.LEFT\n }\n}), Ln = h({}, _, {\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}), Zc = h({}, Ln, {\n legend: {\n enabled: !0\n }\n}), Jc = h({}, _, {\n radar: {\n axes: {\n angle: \"key\",\n value: \"value\"\n },\n alignment: ee.LEFT\n },\n tooltip: {\n gridline: {\n enabled: !0\n },\n valueFormatter: (e) => e ?? \"N/A\"\n }\n}), el = h({}, B, {\n comboChartTypes: []\n}), tl = h(\n {\n tree: {\n type: Un.TREE\n }\n },\n _,\n {}\n), nl = h({}, _, {\n data: h(_.data, {\n groupMapsTo: \"name\"\n })\n}), rl = h({}, _, Mn, {\n data: h(_.data, {\n groupMapsTo: \"name\"\n })\n}), al = h({}, _, {\n alluvial: {\n data: h(_.data, {\n groupMapsTo: \"source\"\n }),\n nodeAlignment: ee.CENTER,\n nodePadding: 24,\n monochrome: !1,\n nodes: []\n }\n}), il = h({}, _, {\n axes: Dn,\n heatmap: {\n divider: {\n state: Qn.AUTO\n },\n colorLegend: {\n type: \"linear\"\n }\n }\n}), ol = h({}, En, {\n choropleth: {\n colorLegend: {\n type: \"linear\"\n }\n }\n}), sl = {\n alluvialChart: al,\n areaChart: In,\n axisChart: pe,\n boxplotChart: Hc,\n bubbleChart: Qc,\n bulletChart: zc,\n chart: _,\n circlePackChart: rl,\n choroplethChart: ol,\n comboChart: el,\n donutChart: Kc,\n gaugeChart: Vc,\n groupedBarChart: Gc,\n heatmapChart: il,\n histogramChart: Xc,\n lineChart: Cn,\n lollipopChart: qc,\n meterChart: Ln,\n pieChart: Fn,\n proportionalMeterChart: Zc,\n radarChart: Jc,\n scatterChart: ct,\n simpleBarChart: Yc,\n stackedAreaChart: Uc,\n stackedBarChart: Bc,\n thematicChart: En,\n treeChart: tl,\n treemapChart: nl,\n wordCloudChart: kc\n}, Yl = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n alluvial: Ec,\n area: Tc,\n axis: vc,\n baseTooltip: ut,\n boxplot: Sc,\n canvasZoomSettings: Oc,\n carbonPrefix: wc,\n circlePack: Mn,\n color: _c,\n defaultLegendAdditionalItems: xn,\n grid: $n,\n heatmap: Cc,\n histogram: Pc,\n legend: Mc,\n lines: xc,\n meter: $c,\n options: sl,\n pie: Ac,\n radar: Dc,\n ruler: An,\n spacers: Ic,\n timeScale: me,\n toolbar: Rc,\n tooltips: Fc,\n transitions: Lc,\n zoomBar: Wc\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction Gl(e, t, n) {\n let r = null;\n return function(...a) {\n const i = this;\n i.mousePosition = Xn(a[0], n), clearTimeout(r), r = setTimeout(function() {\n e.apply(i, a);\n }, t);\n };\n}\nfunction Bl(e, t) {\n var a;\n const n = lu(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 i in n.axes)\n if (r.includes(i)) {\n const o = t.axes[i];\n (o.primary || o.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 s = o.mapsTo;\n if (s == null) {\n const u = o.scaleType;\n u == null ? o.mapsTo = \"value\" : u === lt.TIME ? o.mapsTo = \"date\" : u === lt.LABELS && (o.mapsTo = \"key\");\n }\n } else\n delete n.axes[i];\n return ul(n, t), h(n, t);\n}\nfunction Hl(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 ql(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 Ul(e, t, n = \"value\", r = !1) {\n const a = e / t.reduce((i, o) => i + o[n], 0) * 100;\n return r ? a : a % 1 !== 0 ? parseFloat(a.toFixed(1)) : a;\n}\nfunction Ql(e, t, n) {\n if (n > e.length)\n return e;\n if (t === Te.MID_LINE)\n return e.substr(0, n / 2) + \"...\" + e.substr(-n / 2);\n if (t === Te.FRONT_LINE)\n return \"...\" + e.substr(-n);\n if (t === Te.END_LINE)\n return e.substr(0, n) + \"...\";\n}\nfunction ul(e, t) {\n const n = Y(e, \"legend\", \"additionalItems\"), r = Y(t, \"legend\", \"additionalItems\");\n if (n && r) {\n const a = r.map((s) => s.type), i = n.map((s) => s.type), o = xn.filter(\n (s) => i.includes(s.type) && !a.includes(s.type)\n );\n e.legend.additionalItems = o, t.legend.additionalItems = bc(\n o,\n r,\n \"name\"\n );\n }\n}\nconst Y = (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}, cl = (e, t) => t === Ut.HORIZONTAL ? {\n y0: e.x0,\n y1: e.x1,\n x0: e.y0,\n x1: e.y1\n} : e, zl = (e, t) => {\n const { x0: n, x1: r, y0: a, y1: i } = cl(e, t);\n return `M${n},${a}L${n},${i}L${r},${i}L${r},${a}L${n},${a}`;\n};\nfunction Xl(e, t, n) {\n return n === Ut.VERTICAL ? [e, t] : [t, e];\n}\nfunction ll(e) {\n return e instanceof Date || typeof e == \"object\" && Object.prototype.toString.call(e) === \"[object Date]\";\n}\nfunction fl(e) {\n if (!ll(e) && typeof e != \"number\")\n return !1;\n const t = D(e);\n return !isNaN(Number(t));\n}\nconst Rn = 6048e5, dl = 864e5, kl = 6e4, Vl = 36e5;\nfunction Nt(e) {\n const t = D(e);\n return t.setHours(0, 0, 0, 0), t;\n}\nfunction Yt(e) {\n const t = new Date(\n Date.UTC(\n e.getFullYear(),\n e.getMonth(),\n e.getDate(),\n e.getHours(),\n e.getMinutes(),\n e.getSeconds(),\n e.getMilliseconds()\n )\n );\n return t.setUTCFullYear(e.getFullYear()), e.getTime() - t.getTime();\n}\nfunction hl(e, t) {\n const n = Nt(e), r = Nt(t), a = n.getTime() - Yt(n), i = r.getTime() - Yt(r);\n return Math.round((a - i) / dl);\n}\nfunction H(e, t) {\n return e instanceof Date ? new e.constructor(t) : new Date(t);\n}\nfunction gl(e) {\n const t = D(e), n = H(e, 0);\n return n.setFullYear(t.getFullYear(), 0, 1), n.setHours(0, 0, 0, 0), n;\n}\nfunction ml(e) {\n const t = D(e);\n return hl(t, gl(t)) + 1;\n}\nfunction Se(e) {\n return se(e, { weekStartsOn: 1 });\n}\nfunction Wn(e) {\n const t = D(e), n = t.getFullYear(), r = H(e, 0);\n r.setFullYear(n + 1, 0, 4), r.setHours(0, 0, 0, 0);\n const a = Se(r), i = H(e, 0);\n i.setFullYear(n, 0, 4), i.setHours(0, 0, 0, 0);\n const o = Se(i);\n return t.getTime() >= a.getTime() ? n + 1 : t.getTime() >= o.getTime() ? n : n - 1;\n}\nfunction pl(e) {\n const t = Wn(e), n = H(e, 0);\n return n.setFullYear(t, 0, 4), n.setHours(0, 0, 0, 0), Se(n);\n}\nfunction yl(e) {\n const t = D(e), n = Se(t).getTime() - pl(t).getTime();\n return Math.round(n / Rn) + 1;\n}\nfunction jn(e, t) {\n var l, f, d, y;\n const n = D(e), r = n.getFullYear(), a = Me(), i = (t == null ? void 0 : t.firstWeekContainsDate) ?? ((f = (l = t == null ? void 0 : t.locale) == null ? void 0 : l.options) == null ? void 0 : f.firstWeekContainsDate) ?? a.firstWeekContainsDate ?? ((y = (d = a.locale) == null ? void 0 : d.options) == null ? void 0 : y.firstWeekContainsDate) ?? 1, o = H(e, 0);\n o.setFullYear(r + 1, 0, i), o.setHours(0, 0, 0, 0);\n const s = se(o, t), u = H(e, 0);\n u.setFullYear(r, 0, i), u.setHours(0, 0, 0, 0);\n const c = se(u, t);\n return n.getTime() >= s.getTime() ? r + 1 : n.getTime() >= c.getTime() ? r : r - 1;\n}\nfunction bl(e, t) {\n var s, u, c, l;\n const n = Me(), r = (t == null ? void 0 : t.firstWeekContainsDate) ?? ((u = (s = t == null ? void 0 : t.locale) == null ? void 0 : s.options) == null ? void 0 : u.firstWeekContainsDate) ?? n.firstWeekContainsDate ?? ((l = (c = n.locale) == null ? void 0 : c.options) == null ? void 0 : l.firstWeekContainsDate) ?? 1, a = jn(e, t), i = H(e, 0);\n return i.setFullYear(a, 0, r), i.setHours(0, 0, 0, 0), se(i, t);\n}\nfunction wl(e, t) {\n const n = D(e), r = se(n, t).getTime() - bl(n, t).getTime();\n return Math.round(r / Rn) + 1;\n}\nfunction g(e, t) {\n const n = e < 0 ? \"-\" : \"\", r = Math.abs(e).toString().padStart(t, \"0\");\n return n + r;\n}\nconst R = {\n // Year\n y(e, t) {\n const n = e.getFullYear(), r = n > 0 ? n : 1 - n;\n return g(t === \"yy\" ? r % 100 : r, t.length);\n },\n // Month\n M(e, t) {\n const n = e.getMonth();\n return t === \"M\" ? String(n + 1) : g(n + 1, 2);\n },\n // Day of the month\n d(e, t) {\n return g(e.getDate(), t.length);\n },\n // AM or PM\n a(e, t) {\n const n = e.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n switch (t) {\n case \"a\":\n case \"aa\":\n return n.toUpperCase();\n case \"aaa\":\n return n;\n case \"aaaaa\":\n return n[0];\n case \"aaaa\":\n default:\n return n === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n // Hour [1-12]\n h(e, t) {\n return g(e.getHours() % 12 || 12, t.length);\n },\n // Hour [0-23]\n H(e, t) {\n return g(e.getHours(), t.length);\n },\n // Minute\n m(e, t) {\n return g(e.getMinutes(), t.length);\n },\n // Second\n s(e, t) {\n return g(e.getSeconds(), t.length);\n },\n // Fraction of second\n S(e, t) {\n const n = t.length, r = e.getMilliseconds(), a = Math.floor(\n r * Math.pow(10, n - 3)\n );\n return g(a, t.length);\n }\n}, z = {\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}, Tl = {\n // Era\n G: function(e, t, n) {\n const r = e.getFullYear() > 0 ? 1 : 0;\n switch (t) {\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return n.era(r, { width: \"abbreviated\" });\n case \"GGGGG\":\n return n.era(r, { width: \"narrow\" });\n case \"GGGG\":\n default:\n return n.era(r, { width: \"wide\" });\n }\n },\n // Year\n y: function(e, t, n) {\n if (t === \"yo\") {\n const r = e.getFullYear(), a = r > 0 ? r : 1 - r;\n return n.ordinalNumber(a, { unit: \"year\" });\n }\n return R.y(e, t);\n },\n // Local week-numbering year\n Y: function(e, t, n, r) {\n const a = jn(e, r), i = a > 0 ? a : 1 - a;\n if (t === \"YY\") {\n const o = i % 100;\n return g(o, 2);\n }\n return t === \"Yo\" ? n.ordinalNumber(i, { unit: \"year\" }) : g(i, t.length);\n },\n // ISO week-numbering year\n R: function(e, t) {\n const n = Wn(e);\n return g(n, t.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(e, t) {\n const n = e.getFullYear();\n return g(n, t.length);\n },\n // Quarter\n Q: function(e, t, n) {\n const r = Math.ceil((e.getMonth() + 1) / 3);\n switch (t) {\n case \"Q\":\n return String(r);\n case \"QQ\":\n return g(r, 2);\n case \"Qo\":\n return n.ordinalNumber(r, { unit: \"quarter\" });\n case \"QQQ\":\n return n.quarter(r, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"QQQQQ\":\n return n.quarter(r, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"QQQQ\":\n default:\n return n.quarter(r, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // Stand-alone quarter\n q: function(e, t, n) {\n const r = Math.ceil((e.getMonth() + 1) / 3);\n switch (t) {\n case \"q\":\n return String(r);\n case \"qq\":\n return g(r, 2);\n case \"qo\":\n return n.ordinalNumber(r, { unit: \"quarter\" });\n case \"qqq\":\n return n.quarter(r, {\n width: \"abbreviated\",\n context: \"standalone\"\n });\n case \"qqqqq\":\n return n.quarter(r, {\n width: \"narrow\",\n context: \"standalone\"\n });\n case \"qqqq\":\n default:\n return n.quarter(r, {\n width: \"wide\",\n context: \"standalone\"\n });\n }\n },\n // Month\n M: function(e, t, n) {\n const r = e.getMonth();\n switch (t) {\n case \"M\":\n case \"MM\":\n return R.M(e, t);\n case \"Mo\":\n return n.ordinalNumber(r + 1, { unit: \"month\" });\n case \"MMM\":\n return n.month(r, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"MMMMM\":\n return n.month(r, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"MMMM\":\n default:\n return n.month(r, { width: \"wide\", context: \"formatting\" });\n }\n },\n // Stand-alone month\n L: function(e, t, n) {\n const r = e.getMonth();\n switch (t) {\n case \"L\":\n return String(r + 1);\n case \"LL\":\n return g(r + 1, 2);\n case \"Lo\":\n return n.ordinalNumber(r + 1, { unit: \"month\" });\n case \"LLL\":\n return n.month(r, {\n width: \"abbreviated\",\n context: \"standalone\"\n });\n case \"LLLLL\":\n return n.month(r, {\n width: \"narrow\",\n context: \"standalone\"\n });\n case \"LLLL\":\n default:\n return n.month(r, { width: \"wide\", context: \"standalone\" });\n }\n },\n // Local week of year\n w: function(e, t, n, r) {\n const a = wl(e, r);\n return t === \"wo\" ? n.ordinalNumber(a, { unit: \"week\" }) : g(a, t.length);\n },\n // ISO week of year\n I: function(e, t, n) {\n const r = yl(e);\n return t === \"Io\" ? n.ordinalNumber(r, { unit: \"week\" }) : g(r, t.length);\n },\n // Day of the month\n d: function(e, t, n) {\n return t === \"do\" ? n.ordinalNumber(e.getDate(), { unit: \"date\" }) : R.d(e, t);\n },\n // Day of year\n D: function(e, t, n) {\n const r = ml(e);\n return t === \"Do\" ? n.ordinalNumber(r, { unit: \"dayOfYear\" }) : g(r, t.length);\n },\n // Day of week\n E: function(e, t, n) {\n const r = e.getDay();\n switch (t) {\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return n.day(r, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"EEEEE\":\n return n.day(r, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"EEEEEE\":\n return n.day(r, {\n width: \"short\",\n context: \"formatting\"\n });\n case \"EEEE\":\n default:\n return n.day(r, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // Local day of week\n e: function(e, t, n, r) {\n const a = e.getDay(), i = (a - r.weekStartsOn + 8) % 7 || 7;\n switch (t) {\n case \"e\":\n return String(i);\n case \"ee\":\n return g(i, 2);\n case \"eo\":\n return n.ordinalNumber(i, { unit: \"day\" });\n case \"eee\":\n return n.day(a, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"eeeee\":\n return n.day(a, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"eeeeee\":\n return n.day(a, {\n width: \"short\",\n context: \"formatting\"\n });\n case \"eeee\":\n default:\n return n.day(a, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // Stand-alone local day of week\n c: function(e, t, n, r) {\n const a = e.getDay(), i = (a - r.weekStartsOn + 8) % 7 || 7;\n switch (t) {\n case \"c\":\n return String(i);\n case \"cc\":\n return g(i, t.length);\n case \"co\":\n return n.ordinalNumber(i, { unit: \"day\" });\n case \"ccc\":\n return n.day(a, {\n width: \"abbreviated\",\n context: \"standalone\"\n });\n case \"ccccc\":\n return n.day(a, {\n width: \"narrow\",\n context: \"standalone\"\n });\n case \"cccccc\":\n return n.day(a, {\n width: \"short\",\n context: \"standalone\"\n });\n case \"cccc\":\n default:\n return n.day(a, {\n width: \"wide\",\n context: \"standalone\"\n });\n }\n },\n // ISO day of week\n i: function(e, t, n) {\n const r = e.getDay(), a = r === 0 ? 7 : r;\n switch (t) {\n case \"i\":\n return String(a);\n case \"ii\":\n return g(a, t.length);\n case \"io\":\n return n.ordinalNumber(a, { unit: \"day\" });\n case \"iii\":\n return n.day(r, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"iiiii\":\n return n.day(r, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"iiiiii\":\n return n.day(r, {\n width: \"short\",\n context: \"formatting\"\n });\n case \"iiii\":\n default:\n return n.day(r, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // AM or PM\n a: function(e, t, n) {\n const a = e.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n switch (t) {\n case \"a\":\n case \"aa\":\n return n.dayPeriod(a, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"aaa\":\n return n.dayPeriod(a, {\n width: \"abbreviated\",\n context: \"formatting\"\n }).toLowerCase();\n case \"aaaaa\":\n return n.dayPeriod(a, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"aaaa\":\n default:\n return n.dayPeriod(a, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // AM, PM, midnight, noon\n b: function(e, t, n) {\n const r = e.getHours();\n let a;\n switch (r === 12 ? a = z.noon : r === 0 ? a = z.midnight : a = r / 12 >= 1 ? \"pm\" : \"am\", t) {\n case \"b\":\n case \"bb\":\n return n.dayPeriod(a, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"bbb\":\n return n.dayPeriod(a, {\n width: \"abbreviated\",\n context: \"formatting\"\n }).toLowerCase();\n case \"bbbbb\":\n return n.dayPeriod(a, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"bbbb\":\n default:\n return n.dayPeriod(a, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function(e, t, n) {\n const r = e.getHours();\n let a;\n switch (r >= 17 ? a = z.evening : r >= 12 ? a = z.afternoon : r >= 4 ? a = z.morning : a = z.night, t) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return n.dayPeriod(a, {\n width: \"abbreviated\",\n context: \"formatting\"\n });\n case \"BBBBB\":\n return n.dayPeriod(a, {\n width: \"narrow\",\n context: \"formatting\"\n });\n case \"BBBB\":\n default:\n return n.dayPeriod(a, {\n width: \"wide\",\n context: \"formatting\"\n });\n }\n },\n // Hour [1-12]\n h: function(e, t, n) {\n if (t === \"ho\") {\n let r = e.getHours() % 12;\n return r === 0 && (r = 12), n.ordinalNumber(r, { unit: \"hour\" });\n }\n return R.h(e, t);\n },\n // Hour [0-23]\n H: function(e, t, n) {\n return t === \"Ho\" ? n.ordinalNumber(e.getHours(), { unit: \"hour\" }) : R.H(e, t);\n },\n // Hour [0-11]\n K: function(e, t, n) {\n const r = e.getHours() % 12;\n return t === \"Ko\" ? n.ordinalNumber(r, { unit: \"hour\" }) : g(r, t.length);\n },\n // Hour [1-24]\n k: function(e, t, n) {\n let r = e.getHours();\n return r === 0 && (r = 24), t === \"ko\" ? n.ordinalNumber(r, { unit: \"hour\" }) : g(r, t.length);\n },\n // Minute\n m: function(e, t, n) {\n return t === \"mo\" ? n.ordinalNumber(e.getMinutes(), { unit: \"minute\" }) : R.m(e, t);\n },\n // Second\n s: function(e, t, n) {\n return t === \"so\" ? n.ordinalNumber(e.getSeconds(), { unit: \"second\" }) : R.s(e, t);\n },\n // Fraction of second\n S: function(e, t) {\n return R.S(e, t);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function(e, t, n, r) {\n const i = (r._originalDate || e).getTimezoneOffset();\n if (i === 0)\n return \"Z\";\n switch (t) {\n case \"X\":\n return Bt(i);\n case \"XXXX\":\n case \"XX\":\n return N(i);\n case \"XXXXX\":\n case \"XXX\":\n default:\n return N(i, \":\");\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function(e, t, n, r) {\n const i = (r._originalDate || e).getTimezoneOffset();\n switch (t) {\n case \"x\":\n return Bt(i);\n case \"xxxx\":\n case \"xx\":\n return N(i);\n case \"xxxxx\":\n case \"xxx\":\n default:\n return N(i, \":\");\n }\n },\n // Timezone (GMT)\n O: function(e, t, n, r) {\n const i = (r._originalDate || e).getTimezoneOffset();\n switch (t) {\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + Gt(i, \":\");\n case \"OOOO\":\n default:\n return \"GMT\" + N(i, \":\");\n }\n },\n // Timezone (specific non-location)\n z: function(e, t, n, r) {\n const i = (r._originalDate || e).getTimezoneOffset();\n switch (t) {\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + Gt(i, \":\");\n case \"zzzz\":\n default:\n return \"GMT\" + N(i, \":\");\n }\n },\n // Seconds timestamp\n t: function(e, t, n, r) {\n const a = r._originalDate || e, i = Math.floor(a.getTime() / 1e3);\n return g(i, t.length);\n },\n // Milliseconds timestamp\n T: function(e, t, n, r) {\n const i = (r._originalDate || e).getTime();\n return g(i, t.length);\n }\n};\nfunction Gt(e, t = \"\") {\n const n = e > 0 ? \"-\" : \"+\", r = Math.abs(e), a = Math.floor(r / 60), i = r % 60;\n return i === 0 ? n + String(a) : n + String(a) + t + g(i, 2);\n}\nfunction Bt(e, t) {\n return e % 60 === 0 ? (e > 0 ? \"-\" : \"+\") + g(Math.abs(e) / 60, 2) : N(e, t);\n}\nfunction N(e, t = \"\") {\n const n = e > 0 ? \"-\" : \"+\", r = Math.abs(e), a = g(Math.floor(r / 60), 2), i = g(r % 60, 2);\n return n + a + t + i;\n}\nconst Ht = (e, t) => {\n switch (e) {\n case \"P\":\n return t.date({ width: \"short\" });\n case \"PP\":\n return t.date({ width: \"medium\" });\n case \"PPP\":\n return t.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return t.date({ width: \"full\" });\n }\n}, Nn = (e, t) => {\n switch (e) {\n case \"p\":\n return t.time({ width: \"short\" });\n case \"pp\":\n return t.time({ width: \"medium\" });\n case \"ppp\":\n return t.time({ width: \"long\" });\n case \"pppp\":\n default:\n return t.time({ width: \"full\" });\n }\n}, vl = (e, t) => {\n const n = e.match(/(P+)(p+)?/) || [], r = n[1], a = n[2];\n if (!a)\n return Ht(e, t);\n let i;\n switch (r) {\n case \"P\":\n i = t.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n i = t.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n i = t.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n i = t.dateTime({ width: \"full\" });\n break;\n }\n return i.replace(\"{{date}}\", Ht(r, t)).replace(\"{{time}}\", Nn(a, t));\n}, Ol = {\n p: Nn,\n P: vl\n}, _l = [\"D\", \"DD\"], Sl = [\"YY\", \"YYYY\"];\nfunction Pl(e) {\n return _l.indexOf(e) !== -1;\n}\nfunction Ml(e) {\n return Sl.indexOf(e) !== -1;\n}\nfunction qt(e, t, n) {\n if (e === \"YYYY\")\n throw new RangeError(\n `Use \\`yyyy\\` instead of \\`YYYY\\` (in \\`${t}\\`) for formatting years to the input \\`${n}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`\n );\n if (e === \"YY\")\n throw new RangeError(\n `Use \\`yy\\` instead of \\`YY\\` (in \\`${t}\\`) for formatting years to the input \\`${n}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`\n );\n if (e === \"D\")\n throw new RangeError(\n `Use \\`d\\` instead of \\`D\\` (in \\`${t}\\`) for formatting days of the month to the input \\`${n}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`\n );\n if (e === \"DD\")\n throw new RangeError(\n `Use \\`dd\\` instead of \\`DD\\` (in \\`${t}\\`) for formatting days of the month to the input \\`${n}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`\n );\n}\nconst xl = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g, $l = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g, Al = /^'([^]*?)'?$/, Dl = /''/g, El = /[a-zA-Z]/;\nfunction Qe(e, t, n) {\n var l, f, d, y, w, O, T, v;\n const r = Me(), a = (n == null ? void 0 : n.locale) ?? r.locale ?? Qt, i = (n == null ? void 0 : n.firstWeekContainsDate) ?? ((f = (l = n == null ? void 0 : n.locale) == null ? void 0 : l.options) == null ? void 0 : f.firstWeekContainsDate) ?? r.firstWeekContainsDate ?? ((y = (d = r.locale) == null ? void 0 : d.options) == null ? void 0 : y.firstWeekContainsDate) ?? 1, o = (n == null ? void 0 : n.weekStartsOn) ?? ((O = (w = n == null ? void 0 : n.locale) == null ? void 0 : w.options) == null ? void 0 : O.weekStartsOn) ?? r.weekStartsOn ?? ((v = (T = r.locale) == null ? void 0 : T.options) == null ? void 0 : v.weekStartsOn) ?? 0, s = D(e);\n if (!fl(s))\n throw new RangeError(\"Invalid time value\");\n const u = {\n firstWeekContainsDate: i,\n weekStartsOn: o,\n locale: a,\n _originalDate: s\n };\n return t.match($l).map(function(b) {\n const M = b[0];\n if (M === \"p\" || M === \"P\") {\n const C = Ol[M];\n return C(b, a.formatLong);\n }\n return b;\n }).join(\"\").match(xl).map(function(b) {\n if (b === \"''\")\n return \"'\";\n const M = b[0];\n if (M === \"'\")\n return Cl(b);\n const C = Tl[M];\n if (C)\n return !(n != null && n.useAdditionalWeekYearTokens) && Ml(b) && qt(b, t, String(e)), !(n != null && n.useAdditionalDayOfYearTokens) && Pl(b) && qt(b, t, String(e)), C(\n s,\n b,\n a.localize,\n u\n );\n if (M.match(El))\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" + M + \"`\"\n );\n return b;\n }).join(\"\");\n}\nfunction Cl(e) {\n const t = e.match(Al);\n return t ? t[1].replace(Dl, \"'\") : e;\n}\nvar Yn = /* @__PURE__ */ ((e) => (e[\"15seconds\"] = \"15seconds\", e.minute = \"minute\", e[\"30minutes\"] = \"30minutes\", e.hourly = \"hourly\", e.daily = \"daily\", e.weekly = \"weekly\", e.monthly = \"monthly\", e.quarterly = \"quarterly\", e.yearly = \"yearly\", e))(Yn || {});\nconst We = [\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 Il(e, t, n, r, a) {\n const i = t === 0, o = Number(Qe(new Date(e), \"c\")) === 2, s = Number(Qe(new Date(e), \"q\")) === 1, u = t !== 0 ? n[t - 1] : null;\n switch (r) {\n case \"15seconds\":\n return i || we(e) || ie(e, u) || W(e);\n case \"minute\":\n return i || we(e) || ie(e, u) || W(e);\n case \"30minutes\":\n return i || we(e) || ie(e, u) || W(e);\n case \"hourly\":\n return i || we(e) || ie(e, u) || W(e);\n case \"daily\":\n return a ? i || o || W(e) : i || ie(e, u) || W(e);\n case \"weekly\":\n return i || o || W(e);\n case \"monthly\":\n return i || W(e);\n case \"quarterly\":\n return i || s;\n case \"yearly\":\n return !1;\n default:\n throw new Error(`${r} is not a valid time interval.`);\n }\n}\nfunction Kl(e, t, n, r, a) {\n const i = a.showDayName, o = r === \"daily\" && i ? \"weekly\" : r, s = new Date(e), u = Y(a, \"timeIntervalFormats\")[o], c = Y(u, \"primary\"), l = Y(u, \"secondary\");\n let f = Il(e, t, n, r, i) ? c : l;\n r === \"15seconds\" && s.getMilliseconds() !== 0 && (f = f.replace(\"pp\", \"h:mm:ss.SSS a\"));\n const d = a.localeObject;\n return Qe(s, f, { locale: d });\n}\nfunction Pe(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 Fl(e) {\n if (e)\n return e.slice(1).map((t, n) => t - e[n]);\n}\nfunction Ll(e) {\n const t = We.reduce((n, [, r], a) => {\n const i = We[n][1], o = Math.abs(i - e), s = Math.abs(r - e);\n return o < s ? n : a;\n }, 0);\n return We[t][0];\n}\nfunction Zl(e, t) {\n if (Yn[t])\n return t;\n if (e.length === 1)\n return \"15seconds\";\n const n = Fl(e), r = kn(n);\n return Ll(r);\n}\nfunction we(e) {\n const { s: t, m: n, H: r } = Pe(e);\n return r === 0 && n === 0 && t === 0;\n}\nfunction ie(e, t) {\n const n = Pe(e).M, r = Pe(t).M;\n return n !== r;\n}\nfunction W(e) {\n const { M: t, d: n, s: r, m: a, H: i } = Pe(e);\n return t === 1 && n === 1 && i === 0 && a === 0 && r === 0;\n}\nfunction Jl(e) {\n return e === void 0 ? \"\" : e.toISOString();\n}\nfunction Rl(e) {\n const t = Vn(e, (r) => r.value), n = Kn().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 ef(e, t) {\n const n = Y(t, \"gradient\", \"colors\"), r = !fc(n);\n let a = Y(t, \"pairing\", \"option\");\n const i = Rl(e), o = i[0] < 0 && i[1] > 0 ? \"diverge\" : \"mono\";\n (a < 1 && a > 4 && o === \"mono\" || a < 1 && a > 2 && o === \"diverge\") && (a = 1);\n const s = r ? n : [];\n if (!r) {\n const u = o === \"diverge\" ? 17 : 11;\n for (let c = 1; c < u + 1; c++)\n s.push(`fill-${o}-${a}-${c}`);\n }\n return Zn().domain(i).range(s);\n}\nexport {\n Dc as $,\n fc as A,\n bo as B,\n un as C,\n Oc as D,\n Lc as E,\n D as F,\n H as G,\n hl as H,\n Vl as I,\n kl as J,\n vc as K,\n Wc as L,\n po as M,\n Bl as N,\n sl as O,\n Yl as P,\n Ec as Q,\n Tc as R,\n ut as S,\n We as T,\n Sc as U,\n Mn as V,\n xn as W,\n $n as X,\n xc as Y,\n $c as Z,\n Ac as _,\n Rl as a,\n An as a0,\n Ic as a1,\n me as a2,\n Fc as a3,\n Rc as a4,\n Ur as a5,\n st as a6,\n gu as a7,\n ja as a8,\n Ql as a9,\n Xl as aa,\n ql as ab,\n Hl as ac,\n Gl as ad,\n zl as ae,\n cl as af,\n Ul as ag,\n Cc as ah,\n Kl as b,\n Zl as c,\n Pe as d,\n nc as e,\n Jl as f,\n ef as g,\n he as h,\n Il as i,\n ze as j,\n Ae as k,\n I as l,\n Y as m,\n wc as n,\n S as o,\n Ju as p,\n Ke as q,\n E as r,\n Mc as s,\n lu as t,\n Pc as u,\n Nl as v,\n ul as w,\n h as x,\n _c as y,\n Qe as z\n};\n//# sourceMappingURL=color-scale-utils-7ngqnWVI.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-SOU26cr5.mjs.map\n","import { e as f, k as h, h as t } from \"./color-scale-utils-7ngqnWVI.mjs\";\nfunction i(a, e) {\n return a && f(a, e, h);\n}\nfunction k(a, e) {\n return function(r, n) {\n if (r == null)\n return r;\n if (!t(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-fTLS5z67.mjs.map\n","import { bin as z, stack as A, stackOffsetDiverging as F, scaleOrdinal as L, quantile as E, ascending as U, min as k, max as N, extent as j, scaleLinear as K, scaleQuantize as Z } from \"d3\";\nimport { o as H, p as Q, q as W, m as u, s as S, t as G, u as X, v as M, f as P, w as V, x as _, y as R, z as Y, A as y, g as $, B as x } from \"./color-scale-utils-7ngqnWVI.mjs\";\nimport { S as D, _ as B, d as w, e as O, s as J } from \"./enums-tMKLWMMm.mjs\";\nimport { b as tt } from \"./_baseEach-fTLS5z67.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 = H(e) ? et : st, o = t ? t() : {};\n return a(e, h, Q(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, nt = it.hasOwnProperty, rt = at(function(h, t, e) {\n nt.call(h, e) ? h[e].push(t) : W(h, e, [t]);\n});\nconst lt = rt;\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((n) => t.includes(n[o]))), i && Object.keys(i).forEach((n) => {\n const r = i[n].mapsTo, l = i[n].scaleType;\n if ((l === D.LINEAR || l === D.LOG) && (s = s.map((c) => ({\n ...c,\n [r]: c[r] === null ? c[r] : Number(c[r])\n }))), r && i[n].domain)\n if (l === D.LABELS)\n s = s.filter(\n (c) => i[n].domain.includes(c[r])\n );\n else {\n const [c, p] = i[n].domain;\n s = s.filter(\n (g) => !(r in g) || g[r] >= c && g[r] <= p\n );\n }\n }), s.filter((n) => a.find((r) => r.name === n[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 (n) => n.name === i[a] && n.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: n = X.defaultBins } = o, r = Array.isArray(n), l = z().value((d) => d[a]).thresholds(n)(t);\n if (r)\n l[l.length - 1].x1 = n[n.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 = r ? [n[0], n[n.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((T) => {\n g.push({\n group: T,\n key: f,\n value: b[T] || 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, n) => Object.keys(i).filter((r) => !isNaN(r)).map((r) => {\n const l = i[r];\n return l[e] = s[n], 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((r) => `${r.x0}:${r.x1}`) : o = M(\n a.map((r) => {\n const l = this.services.cartesianScales.getDomainIdentifier(r);\n return r[l] instanceof Date ? P(r[l]) : r[l] && typeof r[l].toString == \"function\" ? r[l].toString() : r[l];\n })\n );\n const i = this.services.cartesianScales.domainAxisPosition, n = s.axes[i].scaleType;\n return n === D.TIME ? o.sort((r, l) => {\n const c = new Date(r), p = new Date(l);\n return c - p;\n }) : (n === D.LOG || n === D.LINEAR) && o.sort((r, l) => r - 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(), n = this.getStackKeys({ bins: t, groups: e });\n return t ? n.map((r) => {\n const [l, c] = r.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 }) : n.map((r) => {\n const l = { sharedStackKey: r };\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 ? P(d[f]) === r : d[f].toString() === r);\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), n = this.getDataValuesGroupedByKeys({\n groups: e\n });\n if (t) {\n const l = ot(n.map((c) => [c.sharedStackKey, 0]));\n n.forEach((c) => {\n i.forEach((p) => {\n l[c.sharedStackKey] += c[p];\n });\n }), n.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(F) : A()).keys(i)(n).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 V(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 n = a.filter((c) => c.status === e), r = this.getOptions();\n a.some((c) => c.status === s) ? r.data.selectedGroups = n.map((c) => c.name) : r.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 data\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, n) => {\n let r;\n const l = u(o, \"label\");\n if (l === null) {\n const p = u(a, n);\n p ? r = p : r = \"Ungrouped\";\n } else\n r = l;\n const c = {\n group: r,\n key: a[n]\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 (n) => n.map((r) => `\"${r === \"&ndash;\" ? \"–\" : r}\"`)\n );\n let e = \"\", s = \"\";\n t.forEach(function(n, r) {\n s = n.join(\",\"), e += r < t.length ? s + `\n` : s;\n });\n const a = this.getOptions();\n let o = \"myChart\";\n const i = u(a, \"fileDownload\", \"fileName\");\n typeof i == \"function\" ? o = i(\"csv\") : typeof i == \"string\" && (o = i), this.services.files.downloadCSV(e, `${o}.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((r) => r[e]));\n o.data.selectedGroups.length && (o.data.selectedGroups.every(\n (l) => i.includes(l)\n ) || (o.data.selectedGroups = []));\n const n = (r) => !o.data.selectedGroups.length || o.data.selectedGroups.includes(r) ? s : a;\n return i.map((r) => ({\n name: r,\n status: n(r)\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((a) => e[a]).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 = R.pairingOptions, o = e > 5 ? 14 : e, i = `${o}-color`;\n s = s <= a[i] ? s : 1;\n const n = this.allDataGroups.map(\n (r, l) => `${o}-${s}-${l % 14 + 1}`\n );\n this.colorClassNames = L().range(n).domain(this.allDataGroups);\n }\n}\nclass C 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: n, secondaryRange: r } = this.assignRangeAndDomains(), l = a.getDomainAxisScaleType();\n let c;\n return l === D.TIME && (c = (g) => Y(g, \"MMM d, yyyy\")), [\n [\n \"Group\",\n o.label,\n i.label,\n ...n ? [n.label] : [],\n ...r ? [r.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 ...n ? [\n g[n.identifier] === null ? \"&ndash;\" : g[n.identifier]\n ] : [],\n ...r ? [\n g[r.identifier] === null || isNaN(g[r.identifier]) ? \"&ndash;\" : g[r.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 n = e.map((r) => r[o].getTime());\n n = M(n).sort(), s = n.map((r) => {\n let l = 0;\n const c = {};\n return e.forEach((p) => {\n p[o].getTime() === r && (l += p[i]);\n }), c[o] = new Date(r), 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 n = i.mapsTo;\n (n !== null || n !== void 0) && s.push(n);\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 gt extends C {\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 C {\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 n = this.services.cartesianScales.getRangeIdentifier(), r = i.map((v) => v[n]).sort(U), l = {\n [e]: o,\n counts: r,\n quartiles: this.getBoxQuartiles(r),\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 = [], T = [];\n for (const v of r)\n v < d || v > f ? b.push(v) : T.push(v);\n l.outliers = b;\n const q = k(T), I = N(T);\n l.whiskers = {\n min: q || k([l.quartiles.q_25, l.quartiles.q_50, l.quartiles.q_75]),\n max: I || 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((n) => n.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 = R.pairingOptions;\n s = s <= a[\"1-color\"] ? s : 1;\n const o = this.allDataGroups.map(() => `1-${s}-1`);\n this.colorClassNames = L().range(o).domain(this.allDataGroups);\n }\n}\nclass Dt extends C {\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((n) => [\n n.title,\n n[s],\n n.value === null ? \"&ndash;\" : n.value,\n u(n, \"marker\") === null ? \"&ndash;\" : n.marker,\n u(n, \"marker\") === null ? \"&ndash;\" : `${Math.floor(n[a] / n.marker * 100)}%`,\n o[this.getMatchingRangeIndexForDatapoint(n)]\n ])\n ];\n }\n}\nclass ft 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 = $(this.getDisplayData(), t);\n }\n}\nclass mt 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 V(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((n) => n.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 n = i.name;\n let r = 0;\n if (i.children)\n i.children.length > 0 && (typeof i.value == \"number\" && (a += i.value), r += this.getChildrenDatums(i.children, n, s, r), s.push([n, o, r]), a += r);\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 yt 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, { valueMapsTo: a } = e.pie;\n return [\n [\"Group\", \"Value\"],\n ...t.map((i) => [\n i[s],\n i[a] === null ? \"&ndash;\" : i[a].toLocaleString()\n ])\n ];\n }\n sanitize(t) {\n return this.getTabularData(t).sort((s, a) => a.value - s.value);\n }\n}\nclass vt 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 xt extends C {\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 = j(this.getDisplayData(), (s) => s.value), e = K().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, n) => {\n this._matrix[i[s]][i[a]] = {\n value: i.value,\n index: n\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((n) => {\n const r = {\n value: this._matrix[i][n].value,\n index: this._matrix[i][n].index\n };\n r[s] = i, r[a] = n, o.push(r);\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 n = s ? e : [];\n if (!s) {\n const l = i === \"diverge\" ? 17 : 11;\n for (let c = 1; c < l + 1; c++)\n n.push(`fill-${i}-${a}-${c}`);\n }\n this._colorScale = Z().domain(o).range(n);\n const r = u(this.getOptions(), \"color\");\n this._colorScale = $(this.getDisplayData(), r);\n }\n}\nclass Tt extends C {\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((n) => x(n[i], `data.${x(n[i], e)}`))\n ])\n ];\n }\n}\nclass Ct 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()), s = (e == null ? void 0 : e.reduce((i, n) => i + n.value, 0)) ?? 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 (n) => n.range[0] <= a && a <= n.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 = [], n;\n if (o === null) {\n n = 100;\n const r = t[0];\n i = [\n [\"Group\", \"Value\", ...a ? [\"Status\"] : []],\n [r[s], r.value, ...a ? [a] : []]\n ];\n } else {\n const r = u(o, \"total\");\n n = r || this.getMaximumDomain(t), i = [\n [\"Group\", \"Value\", \"Percentage of total\"],\n ...t.map((l) => [\n l[s],\n l.value,\n (l.value / n * 100).toFixed(2) + \" %\"\n ])\n ];\n }\n return i;\n }\n}\nclass bt extends C {\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((n) => n[s]);\n return [\n [\"Group\", ...o],\n ...e.map((n) => [\n n.name,\n ...o.map(\n (r, l) => u(n, \"data\", l, a) !== null ? u(n, \"data\", l, a).toLocaleString() : \"&ndash;\"\n )\n ])\n ];\n }\n}\nclass St 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 Ot 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 Gt 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((n) => [\n n[a],\n n[o],\n n[s]\n ])\n ];\n }\n}\nexport {\n gt as A,\n dt as B,\n m as C,\n vt as G,\n xt as H,\n Ct as M,\n yt as P,\n bt as R,\n St as T,\n Gt as W,\n Dt as a,\n Tt as b,\n C as c,\n ft as d,\n mt as e,\n Ot as f\n};\n//# sourceMappingURL=wordcloud-eTGg6ZP6.mjs.map\n","import { select as m } from \"d3\";\nimport { j as fe, l as O, r as de, m as T, n as _ } from \"./color-scale-utils-7ngqnWVI.mjs\";\nimport { _ as P, T as E, o as b } from \"./enums-tMKLWMMm.mjs\";\nvar me = /\\s/;\nfunction ge(t) {\n for (var e = t.length; e-- && me.test(t.charAt(e)); )\n ;\n return e;\n}\nvar pe = /^\\s+/;\nfunction ye(t) {\n return t && t.slice(0, ge(t) + 1).replace(pe, \"\");\n}\nvar q = NaN, we = /^[-+]0x[0-9a-f]+$/i, Se = /^0b[01]+$/i, Ee = /^0o[0-7]+$/i, be = parseInt;\nfunction j(t) {\n if (typeof t == \"number\")\n return t;\n if (fe(t))\n return q;\n if (O(t)) {\n var e = typeof t.valueOf == \"function\" ? t.valueOf() : t;\n t = O(e) ? e + \"\" : e;\n }\n if (typeof t != \"string\")\n return t === 0 ? t : +t;\n t = ye(t);\n var n = Se.test(t);\n return n || Ee.test(t) ? be(t.slice(2), n ? 2 : 8) : we.test(t) ? q : +t;\n}\nvar xe = function() {\n return de.Date.now();\n};\nconst M = xe;\nvar Re = \"Expected a function\", Ce = Math.max, Te = Math.min;\nfunction Ie(t, e, n) {\n var r, i, s, a, c, o, u = 0, f = !1, d = !1, h = !0;\n if (typeof t != \"function\")\n throw new TypeError(Re);\n e = j(e) || 0, O(n) && (f = !!n.leading, d = \"maxWait\" in n, s = d ? Ce(j(n.maxWait) || 0, e) : s, h = \"trailing\" in n ? !!n.trailing : h);\n function w(l) {\n var S = r, C = i;\n return r = i = void 0, u = l, a = t.apply(C, S), a;\n }\n function R(l) {\n return u = l, c = setTimeout(L, e), f ? w(l) : a;\n }\n function I(l) {\n var S = l - o, C = l - u, U = e - S;\n return d ? Te(U, s - C) : U;\n }\n function z(l) {\n var S = l - o, C = l - u;\n return o === void 0 || S >= e || S < 0 || d && C >= s;\n }\n function L() {\n var l = M();\n if (z(l))\n return G(l);\n c = setTimeout(L, I(l));\n }\n function G(l) {\n return c = void 0, h && r ? w(l) : (r = i = void 0, a);\n }\n function ue() {\n c !== void 0 && clearTimeout(c), u = 0, r = o = i = c = void 0;\n }\n function he() {\n return c === void 0 ? a : G(M());\n }\n function $() {\n var l = M(), S = z(l);\n if (r = arguments, i = this, o = l, S) {\n if (c === void 0)\n return R(o);\n if (d)\n return clearTimeout(c), c = setTimeout(L, e), w(o);\n }\n return c === void 0 && (c = setTimeout(L, e)), a;\n }\n return $.cancel = ue, $.flush = he, $;\n}\nfunction Le(t, e) {\n if (t.match(/^[a-z]+:\\/\\//i))\n return t;\n if (t.match(/^\\/\\//))\n return window.location.protocol + t;\n if (t.match(/^[a-z]+:/i))\n return t;\n const n = document.implementation.createHTMLDocument(), r = n.createElement(\"base\"), i = n.createElement(\"a\");\n return n.head.appendChild(r), n.body.appendChild(i), e && (r.href = e), i.href = t, i.href;\n}\nconst De = /* @__PURE__ */ (() => {\n let t = 0;\n const e = () => (\n // eslint-disable-next-line no-bitwise\n `0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4)\n );\n return () => (t += 1, `u${e()}${t}`);\n})();\nfunction y(t) {\n const e = [];\n for (let n = 0, r = t.length; n < r; n++)\n e.push(t[n]);\n return e;\n}\nfunction v(t, e) {\n const r = (t.ownerDocument.defaultView || window).getComputedStyle(t).getPropertyValue(e);\n return r ? parseFloat(r.replace(\"px\", \"\")) : 0;\n}\nfunction ve(t) {\n const e = v(t, \"border-left-width\"), n = v(t, \"border-right-width\");\n return t.clientWidth + e + n;\n}\nfunction Ae(t) {\n const e = v(t, \"border-top-width\"), n = v(t, \"border-bottom-width\");\n return t.clientHeight + e + n;\n}\nfunction ee(t, e = {}) {\n const n = e.width || ve(t), r = e.height || Ae(t);\n return { width: n, height: r };\n}\nfunction Fe() {\n let t, e;\n try {\n e = process;\n } catch {\n }\n const n = e && e.env ? e.env.devicePixelRatio : null;\n return n && (t = parseInt(n, 10), Number.isNaN(t) && (t = 1)), t || window.devicePixelRatio || 1;\n}\nconst p = 16384;\nfunction $e(t) {\n (t.width > p || t.height > p) && (t.width > p && t.height > p ? t.width > t.height ? (t.height *= p / t.width, t.width = p) : (t.width *= p / t.height, t.height = p) : t.width > p ? (t.height *= p / t.width, t.width = p) : (t.width *= p / t.height, t.height = p));\n}\nfunction A(t) {\n return new Promise((e, n) => {\n const r = new Image();\n r.decode = () => e(r), r.onload = () => e(r), r.onerror = n, r.crossOrigin = \"anonymous\", r.decoding = \"async\", r.src = t;\n });\n}\nasync function Pe(t) {\n return Promise.resolve().then(() => new XMLSerializer().serializeToString(t)).then(encodeURIComponent).then((e) => `data:image/svg+xml;charset=utf-8,${e}`);\n}\nasync function Me(t, e, n) {\n const r = \"http://www.w3.org/2000/svg\", i = document.createElementNS(r, \"svg\"), s = document.createElementNS(r, \"foreignObject\");\n return i.setAttribute(\"width\", `${e}`), i.setAttribute(\"height\", `${n}`), i.setAttribute(\"viewBox\", `0 0 ${e} ${n}`), s.setAttribute(\"width\", \"100%\"), s.setAttribute(\"height\", \"100%\"), s.setAttribute(\"x\", \"0\"), s.setAttribute(\"y\", \"0\"), s.setAttribute(\"externalResourcesRequired\", \"true\"), i.appendChild(s), s.appendChild(t), Pe(i);\n}\nconst g = (t, e) => {\n if (t instanceof e)\n return !0;\n const n = Object.getPrototypeOf(t);\n return n === null ? !1 : n.constructor.name === e.name || g(n, e);\n};\nfunction He(t) {\n const e = t.getPropertyValue(\"content\");\n return `${t.cssText} content: '${e.replace(/'|\"/g, \"\")}';`;\n}\nfunction Oe(t) {\n return y(t).map((e) => {\n const n = t.getPropertyValue(e), r = t.getPropertyPriority(e);\n return `${e}: ${n}${r ? \" !important\" : \"\"};`;\n }).join(\" \");\n}\nfunction Be(t, e, n) {\n const r = `.${t}:${e}`, i = n.cssText ? He(n) : Oe(n);\n return document.createTextNode(`${r}{${i}}`);\n}\nfunction N(t, e, n) {\n const r = window.getComputedStyle(t, n), i = r.getPropertyValue(\"content\");\n if (i === \"\" || i === \"none\")\n return;\n const s = De();\n try {\n e.className = `${e.className} ${s}`;\n } catch {\n return;\n }\n const a = document.createElement(\"style\");\n a.appendChild(Be(s, n, r)), e.appendChild(a);\n}\nfunction ke(t, e) {\n N(t, e, \":before\"), N(t, e, \":after\");\n}\nconst X = \"application/font-woff\", J = \"image/jpeg\", Ve = {\n woff: X,\n woff2: X,\n ttf: \"application/font-truetype\",\n eot: \"application/vnd.ms-fontobject\",\n png: \"image/png\",\n jpg: J,\n jpeg: J,\n gif: \"image/gif\",\n tiff: \"image/tiff\",\n svg: \"image/svg+xml\",\n webp: \"image/webp\"\n};\nfunction We(t) {\n const e = /\\.([^./]*?)$/g.exec(t);\n return e ? e[1] : \"\";\n}\nfunction V(t) {\n const e = We(t).toLowerCase();\n return Ve[e] || \"\";\n}\nfunction ze(t) {\n return t.split(/,/)[1];\n}\nfunction B(t) {\n return t.search(/^(data:)/) !== -1;\n}\nfunction te(t, e) {\n return `data:${e};base64,${t}`;\n}\nasync function ne(t, e, n) {\n const r = await fetch(t, e);\n if (r.status === 404)\n throw new Error(`Resource \"${r.url}\" not found`);\n const i = await r.blob();\n return new Promise((s, a) => {\n const c = new FileReader();\n c.onerror = a, c.onloadend = () => {\n try {\n s(n({ res: r, result: c.result }));\n } catch (o) {\n a(o);\n }\n }, c.readAsDataURL(i);\n });\n}\nconst H = {};\nfunction Ge(t, e, n) {\n let r = t.replace(/\\?.*/, \"\");\n return n && (r = t), /ttf|otf|eot|woff2?/i.test(r) && (r = r.replace(/.*\\//, \"\")), e ? `[${e}]${r}` : r;\n}\nasync function W(t, e, n) {\n const r = Ge(t, e, n.includeQueryParams);\n if (H[r] != null)\n return H[r];\n n.cacheBust && (t += (/\\?/.test(t) ? \"&\" : \"?\") + (/* @__PURE__ */ new Date()).getTime());\n let i;\n try {\n const s = await ne(t, n.fetchRequestInit, ({ res: a, result: c }) => (e || (e = a.headers.get(\"Content-Type\") || \"\"), ze(c)));\n i = te(s, e);\n } catch (s) {\n i = n.imagePlaceholder || \"\";\n let a = `Failed to fetch resource: ${t}`;\n s && (a = typeof s == \"string\" ? s : s.message), a && console.warn(a);\n }\n return H[r] = i, i;\n}\nasync function Ue(t) {\n const e = t.toDataURL();\n return e === \"data:,\" ? t.cloneNode(!1) : A(e);\n}\nasync function _e(t, e) {\n if (t.currentSrc) {\n const s = document.createElement(\"canvas\"), a = s.getContext(\"2d\");\n s.width = t.clientWidth, s.height = t.clientHeight, a == null || a.drawImage(t, 0, 0, s.width, s.height);\n const c = s.toDataURL();\n return A(c);\n }\n const n = t.poster, r = V(n), i = await W(n, r, e);\n return A(i);\n}\nasync function qe(t) {\n var e;\n try {\n if (!((e = t == null ? void 0 : t.contentDocument) === null || e === void 0) && e.body)\n return await F(t.contentDocument.body, {}, !0);\n } catch {\n }\n return t.cloneNode(!1);\n}\nasync function je(t, e) {\n return g(t, HTMLCanvasElement) ? Ue(t) : g(t, HTMLVideoElement) ? _e(t, e) : g(t, HTMLIFrameElement) ? qe(t) : t.cloneNode(!1);\n}\nconst Ne = (t) => t.tagName != null && t.tagName.toUpperCase() === \"SLOT\";\nasync function Xe(t, e, n) {\n var r, i;\n let s = [];\n return Ne(t) && t.assignedNodes ? s = y(t.assignedNodes()) : g(t, HTMLIFrameElement) && (!((r = t.contentDocument) === null || r === void 0) && r.body) ? s = y(t.contentDocument.body.childNodes) : s = y(((i = t.shadowRoot) !== null && i !== void 0 ? i : t).childNodes), s.length === 0 || g(t, HTMLVideoElement) || await s.reduce((a, c) => a.then(() => F(c, n)).then((o) => {\n o && e.appendChild(o);\n }), Promise.resolve()), e;\n}\nfunction Je(t, e) {\n const n = e.style;\n if (!n)\n return;\n const r = window.getComputedStyle(t);\n r.cssText ? (n.cssText = r.cssText, n.transformOrigin = r.transformOrigin) : y(r).forEach((i) => {\n let s = r.getPropertyValue(i);\n i === \"font-size\" && s.endsWith(\"px\") && (s = `${Math.floor(parseFloat(s.substring(0, s.length - 2))) - 0.1}px`), g(t, HTMLIFrameElement) && i === \"display\" && s === \"inline\" && (s = \"block\"), i === \"d\" && e.getAttribute(\"d\") && (s = `path(${e.getAttribute(\"d\")})`), n.setProperty(i, s, r.getPropertyPriority(i));\n });\n}\nfunction Qe(t, e) {\n g(t, HTMLTextAreaElement) && (e.innerHTML = t.value), g(t, HTMLInputElement) && e.setAttribute(\"value\", t.value);\n}\nfunction Ye(t, e) {\n if (g(t, HTMLSelectElement)) {\n const n = e, r = Array.from(n.children).find((i) => t.value === i.getAttribute(\"value\"));\n r && r.setAttribute(\"selected\", \"\");\n }\n}\nfunction Ze(t, e) {\n return g(e, Element) && (Je(t, e), ke(t, e), Qe(t, e), Ye(t, e)), e;\n}\nasync function Ke(t, e) {\n const n = t.querySelectorAll ? t.querySelectorAll(\"use\") : [];\n if (n.length === 0)\n return t;\n const r = {};\n for (let s = 0; s < n.length; s++) {\n const c = n[s].getAttribute(\"xlink:href\");\n if (c) {\n const o = t.querySelector(c), u = document.querySelector(c);\n !o && u && !r[c] && (r[c] = await F(u, e, !0));\n }\n }\n const i = Object.values(r);\n if (i.length) {\n const s = \"http://www.w3.org/1999/xhtml\", a = document.createElementNS(s, \"svg\");\n a.setAttribute(\"xmlns\", s), a.style.position = \"absolute\", a.style.width = \"0\", a.style.height = \"0\", a.style.overflow = \"hidden\", a.style.display = \"none\";\n const c = document.createElementNS(s, \"defs\");\n a.appendChild(c);\n for (let o = 0; o < i.length; o++)\n c.appendChild(i[o]);\n t.appendChild(a);\n }\n return t;\n}\nasync function F(t, e, n) {\n return !n && e.filter && !e.filter(t) ? null : Promise.resolve(t).then((r) => je(r, e)).then((r) => Xe(t, r, e)).then((r) => Ze(t, r)).then((r) => Ke(r, e));\n}\nconst re = /url\\((['\"]?)([^'\"]+?)\\1\\)/g, et = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g, tt = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction nt(t) {\n const e = t.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\n return new RegExp(`(url\\\\(['\"]?)(${e})(['\"]?\\\\))`, \"g\");\n}\nfunction rt(t) {\n const e = [];\n return t.replace(re, (n, r, i) => (e.push(i), n)), e.filter((n) => !B(n));\n}\nasync function it(t, e, n, r, i) {\n try {\n const s = n ? Le(e, n) : e, a = V(e);\n let c;\n if (i) {\n const o = await i(s);\n c = te(o, a);\n } else\n c = await W(s, a, r);\n return t.replace(nt(e), `$1${c}$3`);\n } catch {\n }\n return t;\n}\nfunction st(t, { preferredFontFormat: e }) {\n return e ? t.replace(tt, (n) => {\n for (; ; ) {\n const [r, , i] = et.exec(n) || [];\n if (!i)\n return \"\";\n if (i === e)\n return `src: ${r};`;\n }\n }) : t;\n}\nfunction ie(t) {\n return t.search(re) !== -1;\n}\nasync function se(t, e, n) {\n if (!ie(t))\n return t;\n const r = st(t, n);\n return rt(r).reduce((s, a) => s.then((c) => it(c, a, e, n)), Promise.resolve(r));\n}\nasync function D(t, e, n) {\n var r;\n const i = (r = e.style) === null || r === void 0 ? void 0 : r.getPropertyValue(t);\n if (i) {\n const s = await se(i, null, n);\n return e.style.setProperty(t, s, e.style.getPropertyPriority(t)), !0;\n }\n return !1;\n}\nasync function at(t, e) {\n await D(\"background\", t, e) || await D(\"background-image\", t, e), await D(\"mask\", t, e) || await D(\"mask-image\", t, e);\n}\nasync function ct(t, e) {\n const n = g(t, HTMLImageElement);\n if (!(n && !B(t.src)) && !(g(t, SVGImageElement) && !B(t.href.baseVal)))\n return;\n const r = n ? t.src : t.href.baseVal, i = await W(r, V(r), e);\n await new Promise((s, a) => {\n t.onload = s, t.onerror = a;\n const c = t;\n c.decode && (c.decode = s), c.loading === \"lazy\" && (c.loading = \"eager\"), n ? (t.srcset = \"\", t.src = i) : t.href.baseVal = i;\n });\n}\nasync function ot(t, e) {\n const r = y(t.childNodes).map((i) => ae(i, e));\n await Promise.all(r).then(() => t);\n}\nasync function ae(t, e) {\n g(t, Element) && (await at(t, e), await ct(t, e), await ot(t, e));\n}\nfunction lt(t, e) {\n const { style: n } = t;\n e.backgroundColor && (n.backgroundColor = e.backgroundColor), e.width && (n.width = `${e.width}px`), e.height && (n.height = `${e.height}px`);\n const r = e.style;\n return r != null && Object.keys(r).forEach((i) => {\n n[i] = r[i];\n }), t;\n}\nconst Q = {};\nasync function Y(t) {\n let e = Q[t];\n if (e != null)\n return e;\n const r = await (await fetch(t)).text();\n return e = { url: t, cssText: r }, Q[t] = e, e;\n}\nasync function Z(t, e) {\n let n = t.cssText;\n const r = /url\\([\"']?([^\"')]+)[\"']?\\)/g, s = (n.match(/url\\([^)]+\\)/g) || []).map(async (a) => {\n let c = a.replace(r, \"$1\");\n return c.startsWith(\"https://\") || (c = new URL(c, t.url).href), ne(c, e.fetchRequestInit, ({ result: o }) => (n = n.replace(a, `url(${o})`), [a, o]));\n });\n return Promise.all(s).then(() => n);\n}\nfunction K(t) {\n if (t == null)\n return [];\n const e = [], n = /(\\/\\*[\\s\\S]*?\\*\\/)/gi;\n let r = t.replace(n, \"\");\n const i = new RegExp(\"((@.*?keyframes [\\\\s\\\\S]*?){([\\\\s\\\\S]*?}\\\\s*?)})\", \"gi\");\n for (; ; ) {\n const o = i.exec(r);\n if (o === null)\n break;\n e.push(o[0]);\n }\n r = r.replace(i, \"\");\n const s = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi, a = \"((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})\", c = new RegExp(a, \"gi\");\n for (; ; ) {\n let o = s.exec(r);\n if (o === null) {\n if (o = c.exec(r), o === null)\n break;\n s.lastIndex = c.lastIndex;\n } else\n c.lastIndex = s.lastIndex;\n e.push(o[0]);\n }\n return e;\n}\nasync function ut(t, e) {\n const n = [], r = [];\n return t.forEach((i) => {\n if (\"cssRules\" in i)\n try {\n y(i.cssRules || []).forEach((s, a) => {\n if (s.type === CSSRule.IMPORT_RULE) {\n let c = a + 1;\n const o = s.href, u = Y(o).then((f) => Z(f, e)).then((f) => K(f).forEach((d) => {\n try {\n i.insertRule(d, d.startsWith(\"@import\") ? c += 1 : i.cssRules.length);\n } catch (h) {\n console.error(\"Error inserting rule from remote css\", {\n rule: d,\n error: h\n });\n }\n })).catch((f) => {\n console.error(\"Error loading remote css\", f.toString());\n });\n r.push(u);\n }\n });\n } catch (s) {\n const a = t.find((c) => c.href == null) || document.styleSheets[0];\n i.href != null && r.push(Y(i.href).then((c) => Z(c, e)).then((c) => K(c).forEach((o) => {\n a.insertRule(o, i.cssRules.length);\n })).catch((c) => {\n console.error(\"Error loading remote stylesheet\", c);\n })), console.error(\"Error inlining remote css file\", s);\n }\n }), Promise.all(r).then(() => (t.forEach((i) => {\n if (\"cssRules\" in i)\n try {\n y(i.cssRules || []).forEach((s) => {\n n.push(s);\n });\n } catch (s) {\n console.error(`Error while reading CSS rules from ${i.href}`, s);\n }\n }), n));\n}\nfunction ht(t) {\n return t.filter((e) => e.type === CSSRule.FONT_FACE_RULE).filter((e) => ie(e.style.getPropertyValue(\"src\")));\n}\nasync function ft(t, e) {\n if (t.ownerDocument == null)\n throw new Error(\"Provided element is not within a Document\");\n const n = y(t.ownerDocument.styleSheets), r = await ut(n, e);\n return ht(r);\n}\nasync function dt(t, e) {\n const n = await ft(t, e);\n return (await Promise.all(n.map((i) => {\n const s = i.parentStyleSheet ? i.parentStyleSheet.href : null;\n return se(i.cssText, s, e);\n }))).join(`\n`);\n}\nasync function mt(t, e) {\n const n = e.fontEmbedCSS != null ? e.fontEmbedCSS : e.skipFonts ? null : await dt(t, e);\n if (n) {\n const r = document.createElement(\"style\"), i = document.createTextNode(n);\n r.appendChild(i), t.firstChild ? t.insertBefore(r, t.firstChild) : t.appendChild(r);\n }\n}\nasync function gt(t, e = {}) {\n const { width: n, height: r } = ee(t, e), i = await F(t, e, !0);\n return await mt(i, e), await ae(i, e), lt(i, e), await Me(i, n, r);\n}\nasync function ce(t, e = {}) {\n const { width: n, height: r } = ee(t, e), i = await gt(t, e), s = await A(i), a = document.createElement(\"canvas\"), c = a.getContext(\"2d\"), o = e.pixelRatio || Fe(), u = e.canvasWidth || n, f = e.canvasHeight || r;\n return a.width = u * o, a.height = f * o, e.skipAutoScale || $e(a), a.style.width = `${u}`, a.style.height = `${f}`, e.backgroundColor && (c.fillStyle = e.backgroundColor, c.fillRect(0, 0, a.width, a.height)), c.drawImage(s, 0, 0, a.width, a.height), a;\n}\nasync function pt(t, e = {}) {\n return (await ce(t, e)).toDataURL();\n}\nasync function yt(t, e = {}) {\n return (await ce(t, e)).toDataURL(\"image/jpeg\", e.quality || 1);\n}\nclass oe {\n constructor(e, n) {\n this.model = e, this.services = n, 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 wt = \"DONT_STYLE_ME_css_styles_verifier\";\nclass k extends oe {\n // initialized in initializeID() called by init()\n constructor(e, n) {\n super(e, n), this.chartID = \"\";\n }\n static getHTMLElementSize(e) {\n return {\n width: e.clientWidth,\n height: e.clientHeight\n };\n }\n static getSVGElementSize(e, n = {\n useAttrs: !1,\n useClientDimensions: !1,\n useBBox: !1,\n useBoundingRect: !1\n }) {\n e.attr || (e = m(e));\n const r = {\n width: 0,\n height: 0\n }, i = (h) => {\n h && Object.keys(r).forEach((w) => {\n if (h[w]) {\n const R = h[w], I = parseFloat(R);\n R && I > r[w] && (\"\" + R).indexOf(\"%\") === -1 && (r[w] = I);\n }\n });\n }, s = {\n width: e.attr(\"width\"),\n height: e.attr(\"height\")\n }, a = e.node();\n let c, o, u, f;\n try {\n typeof a.getBBox == \"function\" && (c = a.getBBox(), o = {\n width: c.width,\n height: c.height\n });\n } catch (h) {\n console.error(h);\n }\n try {\n typeof (a == null ? void 0 : a.getBoundingClientRect) == \"function\" && (u = a.getBoundingClientRect(), f = {\n width: u.width,\n height: u.height\n });\n } catch (h) {\n console.error(h);\n }\n let d;\n if (a instanceof SVGSVGElement && (d = {\n width: a.clientWidth,\n height: a.clientHeight\n }), n) {\n if (n.useAttrs && (i(s), r.width > 0 && r.height > 0))\n return r;\n if (n.useClientDimensions && (i(d), r.width > 0 && r.height > 0))\n return d;\n if (n.useBBox && (i(o), r.width > 0 && r.height > 0))\n return o;\n if (n.useBoundingRect && (i(f), r.width > 0 && r.height > 0))\n return f;\n }\n try {\n const h = {\n width: T(e.node(), \"width\", \"baseVal\", \"value\"),\n height: T(e.node(), \"height\", \"baseVal\", \"value\")\n };\n i(h);\n } catch {\n i(d), i(o), i(s);\n }\n return r;\n }\n static appendOrSelect(e, n) {\n const r = e.select(`${n}`);\n if (r.empty()) {\n let i = n.split(\"#\"), s, a;\n return i.length === 2 ? (s = i[0], i = i[1].split(\".\"), a = i[0]) : (i = n.split(\".\"), s = i[0]), e.append(s).attr(\"id\", a).attr(\"class\", i.slice(1).join(\" \"));\n }\n return r;\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(), n = T(e, \"style\", \"prefix\"), r = m(this.getHolder()).append(\"div\").classed(`${_}--${n}--chart-wrapper`, !0).attr(\"id\", `chart-${this.getChartID()}`).style(\"height\", \"100%\").style(\"width\", \"100%\");\n r.append(\"g\").attr(\"class\", wt), this.mainContainer = r.node();\n }\n update() {\n this.styleHolderElement();\n }\n styleHolderElement() {\n const e = this.getHolder(), { width: n, height: r, theme: i } = this.model.getOptions();\n n !== this.width && (e.style.width = n, this.width = n), r !== this.height && (e.style.height = r, this.height = r), m(this.getHolder()).classed(`${_}--chart-holder`, !0).attr(\"data-carbon-theme\", i);\n }\n getHolder() {\n return this.model.get(\"holder\");\n }\n exportToJPG() {\n const e = this, n = this.model.getOptions(), r = this.getHolder(), i = m(r);\n i.classed(\"filled\", !0), yt(this.getMainContainer(), {\n quality: 1,\n // Remove toolbar\n filter: (s) => !(s.classList && s.classList.contains(\"cds--cc--toolbar\"))\n }).then(function(s) {\n var o;\n let a = \"myChart\";\n const c = T(\n n,\n \"fileDownload\",\n \"fileName\"\n );\n typeof c == \"function\" ? a = c(\"jpg\") : typeof c == \"string\" && (a = c), (o = e.services.files) == null || o.downloadImage(s, `${a}.jpg`), i.classed(\"filled\", !1);\n });\n }\n exportToPNG() {\n const e = this, n = this.model.getOptions(), r = this.getHolder(), i = m(r);\n i.classed(\"filled\", !0), pt(this.getMainContainer(), {\n quality: 1,\n // Remove toolbar\n filter: (s) => !(s.classList && s.classList.contains(\"cds--cc--toolbar\"))\n }).then(function(s) {\n var o;\n let a = \"myChart\";\n const c = T(\n n,\n \"fileDownload\",\n \"fileName\"\n );\n typeof c == \"function\" ? a = c(\"png\") : typeof c == \"string\" && (a = c), (o = e.services.files) == null || o.downloadImage(s, `${a}.png`), i.classed(\"filled\", !1);\n }).catch(function(s) {\n console.error(\"oops, something went wrong!\", s);\n });\n }\n toggleFullscreen() {\n const e = this.getHolder();\n m(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 = m(this.getHolder()), n = e.classed(\"fullscreen\");\n e.classed(\"fullscreen\", !n);\n });\n }\n setSVGMaxHeight() {\n if (!this.model.getOptions().height) {\n const { height: e } = k.getSVGElementSize(\n m(this.mainContainer),\n {\n useBBox: !0\n }\n ), n = m(this.mainContainer).attr(\"class\"), r = m(this.mainContainer).selectAll(`.${n} > svg`);\n let i = 0;\n r.nodes().forEach(function(s) {\n i += Number(\n k.getSVGElementSize(m(s), {\n useBBox: !0\n }).height\n );\n }), i <= e ? m(this.mainContainer).attr(\"height\", i) : m(this.mainContainer).attr(\"height\", \"100%\");\n }\n }\n getMainContainer() {\n return this.mainContainer;\n }\n addHolderListeners() {\n const e = this.getHolder();\n e && m(e).on(\"mouseover\", () => {\n var n;\n (n = this.services.events) == null || n.dispatchEvent(P.Chart.MOUSEOVER);\n }).on(\"mouseout\", () => {\n var n;\n (n = this.services.events) == null || n.dispatchEvent(P.Chart.MOUSEOUT);\n });\n }\n addResizeListener() {\n const e = this.getHolder();\n if (!e)\n return;\n let n = e.clientWidth, r = e.clientHeight;\n const i = Ie(() => {\n var a;\n e && (Math.abs(n - e.clientWidth) > 1 || Math.abs(r - e.clientHeight) > 1) && (n = e.clientWidth, r = e.clientHeight, (a = this.services.events) == null || a.dispatchEvent(P.Chart.RESIZE));\n }, 12.5);\n new ResizeObserver(i).observe(e);\n }\n}\nclass le extends oe {\n static appendOrUpdateLinearGradient(e) {\n let n = e.svg.select(`defs linearGradient#${e.id}`);\n n.empty() && (n = 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)), n.selectAll(\"stop\").remove(), n.selectAll(\"stop\").data(e.stops).enter().append(\"stop\").attr(\"offset\", (r) => r.offset).style(\"stop-color\", (r) => r.color).style(\"stop-opacity\", (r) => r.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, n) {\n const r = e[0] < 0 && e[1] > 0;\n let i = [\n {\n offset: \"0%\",\n color: n,\n opacity: \"0.6\"\n },\n {\n offset: \"80%\",\n color: n,\n opacity: \"0\"\n }\n ];\n return r && (i = [\n {\n offset: \"0%\",\n color: n,\n opacity: \"0.6\"\n },\n {\n offset: le.getOffsetRatio(e),\n color: n,\n opacity: \"0\"\n },\n {\n offset: \"100%\",\n color: n,\n opacity: \"0.6\"\n }\n ]), i;\n }\n}\nfunction Ct(t) {\n const e = St(Et(t), 360);\n return x(e, [0, 10]) || x(e, [350, 0]) ? {\n textAnchor: E.START,\n dominantBaseline: b.MIDDLE\n } : x(e, [10, 80]) ? {\n textAnchor: E.START,\n dominantBaseline: b.HANGING\n } : x(e, [80, 100]) ? {\n textAnchor: E.MIDDLE,\n dominantBaseline: b.HANGING\n } : x(e, [100, 170]) ? {\n textAnchor: E.END,\n dominantBaseline: b.HANGING\n } : x(e, [170, 190]) ? {\n textAnchor: E.END,\n dominantBaseline: b.MIDDLE\n } : x(e, [190, 260]) ? {\n textAnchor: E.END,\n dominantBaseline: b.BASELINE\n } : x(e, [260, 280]) ? {\n textAnchor: E.MIDDLE,\n dominantBaseline: b.BASELINE\n } : {\n textAnchor: E.START,\n dominantBaseline: b.BASELINE\n };\n}\nfunction St(t, e) {\n return (t % e + e) % e;\n}\nfunction x(t, [e, n]) {\n return t >= e && t <= n;\n}\nfunction Et(t) {\n return t * (180 / Math.PI);\n}\nfunction Tt(t) {\n return t * (Math.PI / 180);\n}\nfunction It(t, e, n = { x: 0, y: 0 }) {\n const r = e * Math.cos(t) + n.x, i = e * Math.sin(t) + n.y;\n return { x: isNaN(r) ? 0 : r, y: isNaN(i) ? 0 : i };\n}\nfunction Lt(t, e) {\n return e * Math.sin(t - Math.PI / 2);\n}\nexport {\n k as D,\n le as G,\n oe as S,\n Lt as a,\n Et as b,\n Ie as c,\n Tt as d,\n It as p,\n Ct as r,\n j as t\n};\n//# sourceMappingURL=angle-utils-DHfDhGau.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, https://s3.amazonaws.com/static.mrfeinberg.com/bv_ch03.pdf\n\nconst dispatch = require(\"d3-dispatch\").dispatch;\n\nconst RADIANS = Math.PI / 180;\n\nconst SPIRALS = {\n archimedean: archimedeanSpiral,\n rectangular: rectangularSpiral\n};\n\nconst cw = 1 << 11 >> 5;\nconst 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 for (const d of words) {\n delete d.sprite;\n }\n return cloud;\n };\n\n function getContext(canvas) {\n const context = canvas.getContext(\"2d\", {willReadFrequently: true});\n\n canvas.width = canvas.height = 1;\n const ratio = Math.sqrt(context.getImageData(0, 0, 1, 1).data.length >> 2);\n canvas.width = (cw << 5) / ratio;\n canvas.height = ch / ratio;\n\n context.fillStyle = context.strokeStyle = \"red\";\n\n return {context, 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 || collideRects(tag, bounds)) {\n if (!cloudCollide(tag, board, size[0])) {\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 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 (~~(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 const metrics = c.measureText(d.text);\n const anchor = -Math.floor(metrics.width / 2);\n let w = (metrics.width + 1) * ratio;\n let h = d.size << 1;\n if (d.rotate) {\n var sr = Math.sin(d.rotate * RADIANS),\n cr = Math.cos(d.rotate * RADIANS),\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 * RADIANS);\n c.fillText(d.text, anchor, 0);\n if (d.padding) c.lineWidth = 2 * d.padding, c.strokeText(d.text, anchor, 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","import { M as Es, h as qs, o as Ss, a5 as Ks, p as xs, C as Js, a6 as Qs, a7 as en, a8 as tn, m as y, n as he, x as De, a1 as zt, B as Q, s as K, a9 as Ge, z as Ft, L as de, a3 as sn, A as Os, t as nn, aa as ve, c as gt, b as mt, Q as pe, ab as Be, ac as ge, R as fe, Y as me, ad as an, K as ke, i as rn, _ as Z, U as ce, ae as ie, af as on, a as ln, Z as se, V as Ve, D as Ue, ag as it, v as cn, ah as Wt, $ as Ee } from \"./color-scale-utils-7ngqnWVI.mjs\";\nimport { select as x, pointer as et, brushX as Ts, scaleTime as dn, extent as tt, area as Dt, line as _t, axisBottom as Pt, axisLeft as Ls, axisTop as hn, axisRight as un, scaleLinear as Oe, arc as Ne, easeLinear as pn, path as Vt, interpolateNumber as ws, quantize as gn, scaleBand as Bt, hierarchy as $t, pack as mn, pie as fn, interpolate as vn, interpolateRound as yn, min as ft, max as jt, lineRadial as bn, curveLinearClosed as En, cluster as Sn, tree as xn, linkHorizontal as On, treemap as Tn, hsl as Ms, color as As, geoPath as Ln, geoNaturalEarth1 as wn, geoMercator as Mn, geoEquirectangular as An, geoConicEquidistant as Cn, geoConicEqualArea as kn, geoAlbers as In, geoEqualEarth as Rn } from \"d3\";\nimport { t as rt, D as E, c as vt, G as Zt, a as Dn, p as Y, r as Xt, b as _n } from \"./angle-utils-DHfDhGau.mjs\";\nimport { y as H, _ as f, K as ee, r as ye, q as Te, L as Pn, A as ue, m as $, s as Se, V as Ie, S as te, e as V, Z as Le, i as le, f as Yt, J as ot, d as Vn, F as ze, n as lt, H as ct, C as dt, p as Fe, b as qt, D as ht, Q as Bn, x as xe, $ as We, N as ut } from \"./enums-tMKLWMMm.mjs\";\nimport { sankey as $n, sankeyLinkHorizontal as Gn, sankeyJustify as Nn, sankeyLeft as Hn, sankeyRight as Un } from \"d3-sankey\";\nimport { R as U } from \"./a11y-SOU26cr5.mjs\";\nimport { b as Cs } from \"./_baseEach-fTLS5z67.mjs\";\nimport zn from \"d3-cloud\";\nfunction Fn(o, e, t, s) {\n var n = -1, a = o == null ? 0 : o.length;\n for (s && a && (t = o[++n]); ++n < a; )\n t = e(t, o[n], n, o);\n return t;\n}\nfunction Wn(o) {\n return function(e) {\n return o == null ? void 0 : o[e];\n };\n}\nvar jn = {\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}, Zn = Wn(jn);\nconst Xn = Zn;\nvar Yn = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g, qn = \"\\\\u0300-\\\\u036f\", Kn = \"\\\\ufe20-\\\\ufe2f\", Jn = \"\\\\u20d0-\\\\u20ff\", Qn = qn + Kn + Jn, ea = \"[\" + Qn + \"]\", ta = RegExp(ea, \"g\");\nfunction sa(o) {\n return o = Es(o), o && o.replace(Yn, Xn).replace(ta, \"\");\n}\nvar na = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\nfunction aa(o) {\n return o.match(na) || [];\n}\nvar ia = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\nfunction ra(o) {\n return ia.test(o);\n}\nvar ks = \"\\\\ud800-\\\\udfff\", oa = \"\\\\u0300-\\\\u036f\", la = \"\\\\ufe20-\\\\ufe2f\", ca = \"\\\\u20d0-\\\\u20ff\", da = oa + la + ca, Is = \"\\\\u2700-\\\\u27bf\", Rs = \"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\", ha = \"\\\\xac\\\\xb1\\\\xd7\\\\xf7\", ua = \"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\", pa = \"\\\\u2000-\\\\u206f\", ga = \" \\\\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\", Ds = \"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\", ma = \"\\\\ufe0e\\\\ufe0f\", _s = ha + ua + pa + ga, Ps = \"['’]\", Kt = \"[\" + _s + \"]\", fa = \"[\" + da + \"]\", Vs = \"\\\\d+\", va = \"[\" + Is + \"]\", Bs = \"[\" + Rs + \"]\", $s = \"[^\" + ks + _s + Vs + Is + Rs + Ds + \"]\", ya = \"\\\\ud83c[\\\\udffb-\\\\udfff]\", ba = \"(?:\" + fa + \"|\" + ya + \")\", Ea = \"[^\" + ks + \"]\", Gs = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\", Ns = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\", Ce = \"[\" + Ds + \"]\", Sa = \"\\\\u200d\", Jt = \"(?:\" + Bs + \"|\" + $s + \")\", xa = \"(?:\" + Ce + \"|\" + $s + \")\", Qt = \"(?:\" + Ps + \"(?:d|ll|m|re|s|t|ve))?\", es = \"(?:\" + Ps + \"(?:D|LL|M|RE|S|T|VE))?\", Hs = ba + \"?\", Us = \"[\" + ma + \"]?\", Oa = \"(?:\" + Sa + \"(?:\" + [Ea, Gs, Ns].join(\"|\") + \")\" + Us + Hs + \")*\", Ta = \"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\", La = \"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\", wa = Us + Hs + Oa, Ma = \"(?:\" + [va, Gs, Ns].join(\"|\") + \")\" + wa, Aa = RegExp([\n Ce + \"?\" + Bs + \"+\" + Qt + \"(?=\" + [Kt, Ce, \"$\"].join(\"|\") + \")\",\n xa + \"+\" + es + \"(?=\" + [Kt, Ce + Jt, \"$\"].join(\"|\") + \")\",\n Ce + \"?\" + Jt + \"+\" + Qt,\n Ce + \"+\" + es,\n La,\n Ta,\n Vs,\n Ma\n].join(\"|\"), \"g\");\nfunction Ca(o) {\n return o.match(Aa) || [];\n}\nfunction ka(o, e, t) {\n return o = Es(o), e = t ? void 0 : e, e === void 0 ? ra(o) ? Ca(o) : aa(o) : o.match(e) || [];\n}\nvar Ia = \"['’]\", Ra = RegExp(Ia, \"g\");\nfunction Da(o) {\n return function(e) {\n return Fn(ka(sa(e).replace(Ra, \"\")), o, \"\");\n };\n}\nfunction _a(o, e, t) {\n return o === o && (t !== void 0 && (o = o <= t ? o : t), e !== void 0 && (o = o >= e ? o : e)), o;\n}\nfunction zs(o, e, t) {\n return t === void 0 && (t = e, e = void 0), t !== void 0 && (t = rt(t), t = t === t ? t : 0), e !== void 0 && (e = rt(e), e = e === e ? e : 0), _a(rt(o), e, t);\n}\nfunction Pa(o, e) {\n var t = -1, s = qs(o) ? Array(o.length) : [];\n return Cs(o, function(n, a, i) {\n s[++t] = e(n, a, i);\n }), s;\n}\nfunction Va(o, e) {\n var t = Ss(o) ? Ks : Pa;\n return t(o, xs(e));\n}\nvar Ba = 1 / 0;\nfunction $a(o, e) {\n return Js(Va(o, e), Ba);\n}\nfunction Fs(o, e) {\n return Qs(o, e);\n}\nvar Ga = Da(function(o, e, t) {\n return o + (t ? \"-\" : \"\") + e.toLowerCase();\n});\nconst we = Ga;\nfunction Na(o, e) {\n var t;\n return Cs(o, function(s, n, a) {\n return t = e(s, n, a), !t;\n }), !!t;\n}\nfunction Ha(o, e, t) {\n var s = Ss(o) ? en : Na;\n return t && tn(o, e, t) && (e = void 0), s(o, 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 r = x(`#${a}`).select(\"rect\");\n r.size() !== 0 && parseFloat(r.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 ? De({}, this.model.getOptions(), this.configs.options) : this.model.getOptions();\n }\n}\nconst Je = class Je extends z {\n constructor() {\n super(...arguments), this.type = \"toolbar\", this.renderType = H.HTML;\n }\n init() {\n const e = () => this.updateOverflowMenu(!1);\n this.services.events.addEventListener(f.Toolbar.SHOW_OVERFLOW_MENU, () => {\n this.renderOverflowMenu(), document.body.addEventListener(\"click\", e);\n }), this.services.events.addEventListener(f.Toolbar.HIDE_OVERFLOW_MENU, () => {\n document.body.removeEventListener(\"click\", e);\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(\"role\", \"toolbar\").attr(\"aria-label\", `chart-${this.services.domUtils.getChartID()} toolbar`);\n if (y(this.getOptions(), \"data\", \"loading\"))\n t.html(\"\"), this.overflowMenu = null;\n else {\n this.overflowMenu || (this.overflowMenu = t.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: n, overflowMenuItemList: a } = this.getControlConfigs();\n a && n.push(this.getOverflowButtonConfig());\n const i = t.selectAll(\"div.toolbar-control\").data(n, (c) => c.id);\n i.exit().remove();\n const r = i.enter().append(\"div\").attr(\"class\", \"toolbar-control cds--overflow-menu cds--overflow-menu\"), l = this;\n r.merge(i).classed(\"disabled\", (c) => c.shouldBeDisabled()).attr(\"aria-disabled\", (c) => c.shouldBeDisabled()).attr(\"aria-label\", (c) => c.title).html(\n (c) => `\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-${c.id}`\n )}\" aria-label=\"${c.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${c.iconSVG.content}\n\t\t\t\t</svg>\n\t\t\t</button>`\n ).each(function(c, d) {\n x(this).select(\"svg\").style(\"will-change\", \"transform\").style(\"width\", c.iconSVG.width !== void 0 ? c.iconSVG.width : \"20px\").style(\"height\", c.iconSVG.height !== void 0 ? c.iconSVG.height : \"20px\"), x(this).select(\"button\").on(\"click\", (p) => {\n c.shouldBeDisabled() || l.triggerFunctionAndEvent(c, p, this);\n }).on(\"keydown\", (p) => {\n p.key && p.key === \"Enter\" || p.key === \" \" ? (p.preventDefault(), l.triggerFunctionAndEvent(c, p, this)) : p.key && p.key === \"ArrowLeft\" ? l.focusOnPreviousEnabledToolbarItem(d) : p.key && p.key === \"ArrowRight\" && l.focusOnNextEnabledToolbarItem(d);\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: e } = this.getControlConfigs(), t = this.overflowMenu.select(\"ul\").selectAll(\"li.cds--overflow-menu-options__option\").data(e, (n) => y(n, \"id\"));\n t.exit().remove();\n const s = t.enter().append(\"li\").attr(\"id\", (n) => this.services.domUtils.generateElementIDString(`control-${n.id}`)).attr(\"class\", \"cds--overflow-menu-options__option cds--overflow-menu-options__option\").attr(\"role\", \"menuitem\").attr(\"tabindex\", 1);\n s.append(\"button\").attr(\"class\", \"cds--overflow-menu-options__btn cds--overflow-menu-options__btn\"), s.merge(t).classed(\"cds--overflow-menu-options__option--disabled\", (n) => n.shouldBeDisabled()).classed(\"cds--overflow-menu-options__option--disabled\", (n) => n.shouldBeDisabled()).attr(\"aria-disabled\", (n) => n.shouldBeDisabled()).selectAll(\"button\").text((n) => n.text);\n }\n isOverflowMenuOpen() {\n return this.overflowMenu.classed(\"is-open\");\n }\n // show/hide overflow menu\n updateOverflowMenu(e) {\n this.overflowMenu && (this.overflowMenu.classed(\"is-open\", e), this.overflowButton && (this.overflowButton.attr(\"aria-expanded\", e), x(this.overflowButton.node().parentNode).classed(\"cds--overflow-menu--open\", e).classed(\"cds--overflow-menu--open\", e)), e ? this.services.events.dispatchEvent(f.Toolbar.SHOW_OVERFLOW_MENU) : this.services.events.dispatchEvent(f.Toolbar.HIDE_OVERFLOW_MENU));\n }\n // Toolbar controllers\n focusOnPreviousEnabledToolbarItem(e) {\n const t = this.getToolbarButtonItems();\n let s = t.length;\n for (let n = e - 1; n >= 0; n--)\n if (!t[n].shouldBeDisabled()) {\n s = n;\n break;\n }\n if (s < t.length) {\n const n = x(\n `button#${this.services.domUtils.generateElementIDString(\n `control-${t[s].id}`\n )}`\n ).node();\n \"focus\" in n && n.focus();\n }\n }\n focusOnNextEnabledToolbarItem(e) {\n const t = this.getToolbarButtonItems();\n let s = -1;\n for (let n = e + 1; n < t.length; n++)\n if (!t[n].shouldBeDisabled()) {\n s = n;\n break;\n }\n if (s > -1) {\n const n = x(\n `button#${this.services.domUtils.generateElementIDString(\n `control-${t[s].id}`\n )}`\n ).node();\n \"focus\" in n && n.focus();\n }\n }\n focusOnPreviousEnabledMenuItem(e) {\n const t = this.getOverflowMenuItems();\n let s = t.length;\n for (let n = e - 1; n >= 0; n--)\n if (!t[n].shouldBeDisabled()) {\n s = n;\n break;\n }\n if (s < t.length) {\n const n = x(\n `#${this.services.domUtils.generateElementIDString(\n `control-${t[s].id}`\n )} button`\n ).node();\n \"focus\" in n && n.focus();\n }\n }\n focusOnNextEnabledMenuItem(e) {\n const t = this.getOverflowMenuItems();\n let s = -1;\n for (let n = e + 1; n < t.length; n++)\n if (!t[n].shouldBeDisabled()) {\n s = n;\n break;\n }\n if (s > -1) {\n const n = x(\n `#${this.services.domUtils.generateElementIDString(\n `control-${t[s].id}`\n )} button`\n ).node();\n \"focus\" in n && n.focus();\n }\n }\n toggleOverflowMenu(e) {\n if (this.isOverflowMenuOpen())\n this.updateOverflowMenu(!1);\n else {\n this.updateOverflowMenu(!0);\n const t = this;\n this.getOverflowMenuItems().forEach((n, a) => {\n const i = x(\n `#${this.services.domUtils.generateElementIDString(`control-${n.id}`)}`\n );\n i !== null && (i.on(\"click\", () => {\n t.triggerFunctionAndEvent(n, e, i.node()), t.updateOverflowMenu(!1);\n }), i.on(\"keydown\", (r) => {\n r && r.key === \"Enter\" ? t.triggerFunctionAndEvent(n, e, i.node()) : r && r.key === \"ArrowUp\" ? t.focusOnPreviousEnabledMenuItem(a) : r && r.key === \"ArrowDown\" ? t.focusOnNextEnabledMenuItem(a) : r && r.key === \"Escape\" && t.updateOverflowMenu(!1), r.preventDefault();\n }));\n }), t.focusOnNextEnabledMenuItem(-1);\n }\n e && e.stopImmediatePropagation();\n }\n // Calls passed function && dispatches event\n triggerFunctionAndEvent(e, t, s) {\n typeof e.shouldBeDisabled == \"function\" && e.shouldBeDisabled() || (typeof e.clickFunction == \"function\" && e.clickFunction(t), this.services.events.dispatchEvent(f.Toolbar.BUTTON_CLICK, {\n control: e,\n event: t,\n element: s\n }));\n }\n getControlConfigs() {\n const e = y(this.getOptions(), \"toolbar\", \"numberOfIcons\") - 1, t = y(this.getOptions(), \"toolbar\", \"controls\"), s = [], n = [], a = [];\n return t.forEach((i) => {\n let r = null;\n i.type === ee.CUSTOM ? (y(i, \"id\") === null && (i.id = `toolbar-button-${Je.buttonID++}`), y(i, \"shouldBeDisabled\") === null && (i.shouldBeDisabled = () => !1), r = i) : r = this.getControlConfigByType(i.type), r && (r.text = i.text ? i.text : i.type, r.id.indexOf(\"toolbar-export\") !== -1 ? s.push(r) : n.length < e ? y(r, \"iconSVG\", \"content\") === null ? a.push(r) : n.push(r) : a.push(r));\n }), a.push(...s), a.length ? {\n buttonList: n,\n overflowMenuItemList: a\n } : {\n buttonList: n\n };\n }\n getToolbarButtonItems() {\n const { buttonList: e, overflowMenuItemList: t } = this.getControlConfigs();\n return t && e.push(this.getOverflowButtonConfig()), e || [];\n }\n getOverflowMenuItems() {\n const { overflowMenuItemList: e } = this.getControlConfigs();\n return e || [];\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: (e) => this.toggleOverflowMenu(e)\n };\n }\n getControlConfigByType(e) {\n const t = this.services.zoom && this.services.zoom.isZoomBarEnabled() && !this.services.zoom.isEmptyState(), s = this.model.getDisplayData();\n let n;\n switch (e) {\n case ee.ZOOM_IN:\n t && (n = {\n id: \"toolbar-zoomIn\",\n title: \"Zoom in\",\n shouldBeDisabled: () => this.services.zoom.isMinZoomDomain(),\n iconSVG: {\n content: this.getControlIconByType(e)\n },\n clickFunction: () => this.services.zoom.zoomIn()\n });\n break;\n case ee.ZOOM_OUT:\n t && (n = {\n id: \"toolbar-zoomOut\",\n title: \"Zoom out\",\n shouldBeDisabled: () => this.services.zoom.isMaxZoomDomain(),\n iconSVG: {\n content: this.getControlIconByType(e)\n },\n clickFunction: () => this.services.zoom.zoomOut()\n });\n break;\n case ee.RESET_ZOOM:\n t && (n = {\n id: \"toolbar-resetZoom\",\n title: \"Reset zoom\",\n shouldBeDisabled: () => this.services.zoom.isMaxZoomDomain(),\n iconSVG: {\n content: this.getControlIconByType(e)\n },\n clickFunction: () => this.services.zoom.resetZoomDomain()\n });\n break;\n case ee.MAKE_FULLSCREEN:\n n = {\n id: \"toolbar-makefullscreen\",\n iconSVG: {\n content: this.getControlIconByType(e),\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 n = {\n id: \"toolbar-showasdatatable\",\n iconSVG: {\n content: this.getControlIconByType(e)\n },\n title: \"Show as table\",\n shouldBeDisabled: () => s.length === 0,\n clickFunction: () => this.services.events.dispatchEvent(f.Modal.SHOW)\n };\n break;\n case ee.EXPORT_CSV:\n n = {\n id: \"toolbar-export-CSV\",\n title: \"Export as CSV\",\n shouldBeDisabled: () => !1,\n iconSVG: {\n content: this.getControlIconByType(e)\n },\n clickFunction: () => this.model.exportToCSV()\n };\n break;\n case ee.EXPORT_PNG:\n n = {\n id: \"toolbar-export-PNG\",\n title: \"Export as PNG\",\n shouldBeDisabled: () => !1,\n iconSVG: {\n content: this.getControlIconByType(e)\n },\n clickFunction: () => this.services.domUtils.exportToPNG()\n };\n break;\n case ee.EXPORT_JPG:\n n = {\n id: \"toolbar-export-JPG\",\n title: \"Export as JPG\",\n shouldBeDisabled: () => !1,\n iconSVG: {\n content: this.getControlIconByType(e)\n },\n clickFunction: () => this.services.domUtils.exportToJPG()\n };\n break;\n default:\n throw Error(\"Not supported toolbar control type: \" + e);\n }\n return n;\n }\n getControlIconByType(e) {\n switch (e) {\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: \" + e);\n }\n }\n};\nJe.buttonID = 0;\nlet ts = Je;\nconst Qe = class Qe extends z {\n constructor(e, t, s, n) {\n super(e, t, n), this.type = \"layout\", this.configs = n, this.children = s, this._instanceID = Qe.instanceID++, this.init();\n }\n init() {\n this.children.forEach((e) => {\n e.components.forEach((t) => {\n t.init();\n });\n });\n }\n getPreferedAndFixedSizeSum() {\n const e = this.parent;\n let t = 0;\n return e.selectAll(`div.layout-child-${this._instanceID}`).filter((s) => {\n const n = y(s, \"growth\");\n return n === ye.PREFERRED || n === ye.FIXED;\n }).each(function(s) {\n t += s.size;\n }), t;\n }\n getNumOfStretchChildren() {\n return this.parent.selectAll(`div.layout-child-${this._instanceID}`).filter((t) => y(t, \"growth\") === ye.STRETCH).size();\n }\n render(e = !0) {\n const t = this.parent, { width: s, height: n } = E.getHTMLElementSize(t.node()), a = this.configs.direction === Te.ROW || this.configs.direction === Te.ROW_REVERSE, i = y(this.model.getOptions(), \"style\", \"prefix\"), r = t.classed(\n `${he}--${i}--layout-row`,\n this.configs.direction === Te.ROW\n ).classed(\n `${he}--${i}--layout-row-reverse`,\n this.configs.direction === Te.ROW_REVERSE\n ).classed(\n `${he}--${i}--layout-column`,\n this.configs.direction === Te.COLUMN\n ).classed(\n `${he}--${i}--layout-column-reverse`,\n this.configs.direction === Te.COLUMN_REVERSE\n ).classed(\n `${he}--${i}--layout-alignitems-center`,\n this.configs.alignItems === Pn.CENTER\n ).selectAll(`div.layout-child-${this._instanceID}`).data(this.children, (d) => d.id);\n r.enter().append(\"div\").merge(t.selectAll(`div.layout-child-${this._instanceID}`)).attr(\"class\", (d) => `layout-child layout-child-${this._instanceID} ${d.id}`).each(function(d) {\n d.components.forEach((p) => {\n const h = x(this), g = y(d, \"renderType\") === H.SVG;\n p.setParent(\n g ? E.appendOrSelect(h, \"svg.layout-svg-wrapper\").attr(\"width\", \"100%\").attr(\"height\", \"100%\") : h\n );\n const m = y(d, \"growth\");\n (m === ye.PREFERRED || m === ye.FIXED) && p.render(e);\n });\n }), t.selectAll(`div.layout-child-${this._instanceID}`).style(\"height\", null).style(\"width\", null).each(function(d) {\n const p = y(d, \"growth\"), u = y(d, \"renderType\") === H.SVG ? E.getSVGElementSize(x(this).select(\"svg.layout-svg-wrapper\"), {\n useBBox: !0\n }) : E.getHTMLElementSize(this);\n if (p === ye.PREFERRED) {\n const g = a ? u.width : u.height, m = a ? s : n;\n d.size = g / m * 100;\n }\n }), r.exit().remove(), this.children.filter((d) => y(d, \"growth\") === ye.STRETCH).forEach((d) => {\n d.size = (100 - +this.getPreferedAndFixedSizeSum()) / +this.getNumOfStretchChildren();\n });\n const c = t.selectAll(`div.layout-child-${this._instanceID}`).data(this.children, (d) => d.id);\n a ? c.style(\"width\", (d) => `${d.size / 100 * s}px`).style(\"height\", \"100%\") : c.style(\"height\", (d) => `${d.size / 100 * n}px`).style(\"width\", \"100%\"), c.each(function(d) {\n d.components.forEach((p) => {\n y(d, \"growth\") === ye.STRETCH && p.render(e);\n });\n });\n }\n // Pass on model to children as well\n setModel(e) {\n super.setModel(e), this.children.forEach((t) => {\n t.components.forEach((s) => s.setModel(e));\n });\n }\n // Pass on essentials to children as well\n setServices(e) {\n super.setServices(e), this.children.forEach((t) => {\n t.components.forEach((s) => s.setServices(e));\n });\n }\n destroy() {\n this.children.forEach((e) => {\n e.components.forEach((t) => t.destroy());\n });\n }\n};\nQe.instanceID = Math.floor(Math.random() * 99999999999);\nlet ss = Qe;\nclass nc 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 = !1) {\n this.getComponentContainer().style(\"width\", `${this.configs.size || zt.default.size}px`).style(\"height\", `${this.configs.size || zt.default.size}px`).attr(\"opacity\", 0);\n }\n}\nvar Ua = {\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}, pt = Ua;\nfunction ns(o, 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(o, s.key, s);\n }\n}\nfunction za(o, e, t) {\n return e && ns(o.prototype, e), t && ns(o, t), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), o;\n}\nfunction Fa(o, e) {\n if (!(o instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction Wa(o) {\n return Ya(o) || Xa(o) || Za(o) || ja();\n}\nfunction ja() {\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 Za(o, e) {\n if (o) {\n if (typeof o == \"string\")\n return yt(o, e);\n var t = Object.prototype.toString.call(o).slice(8, -1);\n if (t === \"Object\" && o.constructor && (t = o.constructor.name), t === \"Map\" || t === \"Set\")\n return Array.from(o);\n if (t === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))\n return yt(o, e);\n }\n}\nfunction Xa(o) {\n if (typeof Symbol < \"u\" && o[Symbol.iterator] != null || o[\"@@iterator\"] != null)\n return Array.from(o);\n}\nfunction Ya(o) {\n if (Array.isArray(o))\n return yt(o);\n}\nfunction yt(o, e) {\n (e == null || e > o.length) && (e = o.length);\n for (var t = 0, s = new Array(e); t < e; t++)\n s[t] = o[t];\n return s;\n}\nfunction Ws(o) {\n return o.reduce(function(e, t) {\n return Array.isArray(t) ? e.push.apply(e, Wa(Ws(t))) : e.push(t), e;\n }, []);\n}\nfunction qa() {\n for (var o = arguments.length, e = new Array(o), t = 0; t < o; t++)\n e[t] = arguments[t];\n return Ws(e).reduce(function(s, n) {\n return n(s);\n }, /* @__PURE__ */ function() {\n function s() {\n Fa(this, s);\n }\n return za(s);\n }());\n}\nfunction bt(o) {\n \"@babel/helpers - typeof\";\n return bt = 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 }, bt(o);\n}\nfunction Ka(o, e) {\n if (!(o instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction as(o, 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(o, s.key, s);\n }\n}\nfunction Ja(o, e, t) {\n return e && as(o.prototype, e), t && as(o, t), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), o;\n}\nfunction Qa(o, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n o.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: o,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), e && Et(o, e);\n}\nfunction Et(o, e) {\n return Et = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, Et(o, e);\n}\nfunction ei(o) {\n var e = si();\n return function() {\n var s = Ze(o), 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 ti(this, n);\n };\n}\nfunction ti(o, e) {\n if (e && (bt(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 js(o);\n}\nfunction js(o) {\n if (o === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return o;\n}\nfunction si() {\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(o) {\n return Ze = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, Ze(o);\n}\nfunction ni(o) {\n var e = /* @__PURE__ */ function(t) {\n Qa(n, t);\n var s = ei(n);\n function n(a) {\n var i, r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (Ka(this, n), i = s.call(this, a, r), 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), r), i.constructor.components.set(i.element, js(i)), i;\n }\n return Ja(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, r) {\n return this.components.get(i) || new this(i, r);\n }\n }]), n;\n }(o);\n return e;\n}\nfunction St(o) {\n \"@babel/helpers - typeof\";\n return St = 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 }, St(o);\n}\nfunction ai(o, e) {\n if (!(o instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction is(o, 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(o, s.key, s);\n }\n}\nfunction ii(o, e, t) {\n return e && is(o.prototype, e), t && is(o, t), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), o;\n}\nfunction je() {\n return typeof Reflect < \"u\" && Reflect.get ? je = Reflect.get : je = function(e, t, s) {\n var n = ri(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 }, je.apply(this, arguments);\n}\nfunction ri(o, e) {\n for (; !Object.prototype.hasOwnProperty.call(o, e) && (o = _e(o), o !== null); )\n ;\n return o;\n}\nfunction oi(o, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n o.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: o,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), e && xt(o, e);\n}\nfunction xt(o, e) {\n return xt = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, xt(o, e);\n}\nfunction li(o) {\n var e = hi();\n return function() {\n var s = _e(o), n;\n if (e) {\n var a = _e(this).constructor;\n n = Reflect.construct(s, arguments, a);\n } else\n n = s.apply(this, arguments);\n return ci(this, n);\n };\n}\nfunction ci(o, e) {\n if (e && (St(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(o);\n}\nfunction di(o) {\n if (o === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return o;\n}\nfunction hi() {\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 _e(o) {\n return _e = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _e(o);\n}\nfunction ui(o) {\n var e = /* @__PURE__ */ function(t) {\n oi(n, t);\n var s = li(n);\n function n() {\n var a;\n ai(this, n);\n for (var i = arguments.length, r = new Array(i), l = 0; l < i; l++)\n r[l] = arguments[l];\n return a = s.call.apply(s, [this].concat(r)), a.handles = /* @__PURE__ */ new Set(), a;\n }\n return ii(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(r) {\n r.release(), i.handles.delete(r);\n }), je(_e(n.prototype), \"release\", this).call(this);\n }\n }]), n;\n }(o);\n return e;\n}\nfunction $e(o) {\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 o.addEventListener.apply(o, t), {\n release: function() {\n return o.removeEventListener.apply(o, t), null;\n }\n };\n}\nfunction Ot(o) {\n \"@babel/helpers - typeof\";\n return Ot = 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 }, Ot(o);\n}\nfunction pi(o) {\n return vi(o) || fi(o) || mi(o) || gi();\n}\nfunction gi() {\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 mi(o, e) {\n if (o) {\n if (typeof o == \"string\")\n return Tt(o, e);\n var t = Object.prototype.toString.call(o).slice(8, -1);\n if (t === \"Object\" && o.constructor && (t = o.constructor.name), t === \"Map\" || t === \"Set\")\n return Array.from(o);\n if (t === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))\n return Tt(o, e);\n }\n}\nfunction fi(o) {\n if (typeof Symbol < \"u\" && o[Symbol.iterator] != null || o[\"@@iterator\"] != null)\n return Array.from(o);\n}\nfunction vi(o) {\n if (Array.isArray(o))\n return Tt(o);\n}\nfunction Tt(o, e) {\n (e == null || e > o.length) && (e = o.length);\n for (var t = 0, s = new Array(e); t < e; t++)\n s[t] = o[t];\n return s;\n}\nfunction yi(o, e) {\n if (!(o instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction rs(o, 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(o, s.key, s);\n }\n}\nfunction bi(o, e, t) {\n return e && rs(o.prototype, e), t && rs(o, t), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), o;\n}\nfunction Ei(o, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n o.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: o,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), e && Lt(o, e);\n}\nfunction Lt(o, e) {\n return Lt = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, Lt(o, e);\n}\nfunction Si(o) {\n var e = Ti();\n return function() {\n var s = Xe(o), 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 xi(this, n);\n };\n}\nfunction xi(o, e) {\n if (e && (Ot(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 Oi(o);\n}\nfunction Oi(o) {\n if (o === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return o;\n}\nfunction Ti() {\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(o) {\n return Xe = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, Xe(o);\n}\nfunction Li(o) {\n var e = /* @__PURE__ */ function(t) {\n Ei(n, t);\n var s = Si(n);\n function n() {\n return yi(this, n), s.apply(this, arguments);\n }\n return bi(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, r = arguments.length, l = new Array(r), c = 0; c < r; 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(M) {\n return M[0].toUpperCase() + M.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 T = [d, p].filter(Boolean);\n this._changeState.apply(this, pi(T).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 }(o);\n return e;\n}\nfunction wt(o, e) {\n var t = o.target, s = o.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 os(o) {\n if (!o || typeof o == \"function\")\n return {\n launchingElement: null,\n launchingEvent: null\n };\n var e = o.delegateTarget || o.currentTarget || o, t = o.currentTarget && o;\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 Mt(o) {\n \"@babel/helpers - typeof\";\n return Mt = 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 }, Mt(o);\n}\nfunction wi(o, e) {\n if (!(o instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction ls(o, 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(o, s.key, s);\n }\n}\nfunction Mi(o, e, t) {\n return e && ls(o.prototype, e), t && ls(o, t), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), o;\n}\nfunction Ai(o, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n o.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: o,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), e && At(o, e);\n}\nfunction At(o, e) {\n return At = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, At(o, e);\n}\nfunction Ci(o) {\n var e = Ri();\n return function() {\n var s = Ye(o), 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(o, e) {\n if (e && (Mt(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 Ii(o);\n}\nfunction Ii(o) {\n if (o === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return o;\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 Ye(o) {\n return Ye = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, Ye(o);\n}\nfunction Di(o) {\n var e = /* @__PURE__ */ function(t) {\n Ai(n, t);\n var s = Ci(n);\n function n() {\n return wi(this, n), s.apply(this, arguments);\n }\n return Mi(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, r) {\n (!i || typeof i == \"function\") && (r = i), this.changeState(\"shown\", os(i), r);\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, r) {\n (!i || typeof i == \"function\") && (r = i), this.changeState(\"hidden\", os(i), r);\n }\n }]), n;\n }(o);\n return e;\n}\nvar _i = [Li, Di];\nconst Pi = _i;\nfunction Vi(o) {\n return o && o.__esModule && Object.prototype.hasOwnProperty.call(o, \"default\") ? o.default : o;\n}\nvar Zs = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && (Zs = function(o, 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 (!o) {\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 = Zs;\nconst $i = /* @__PURE__ */ Vi(Bi);\nfunction Ct(o) {\n \"@babel/helpers - typeof\";\n return Ct = 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 }, Ct(o);\n}\nfunction Gi(o, e) {\n if (!(o instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction cs(o, 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(o, s.key, s);\n }\n}\nfunction Ni(o, e, t) {\n return e && cs(o.prototype, e), t && cs(o, t), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), o;\n}\nfunction Hi(o, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n o.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: o,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), e && kt(o, e);\n}\nfunction kt(o, e) {\n return kt = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, kt(o, e);\n}\nfunction Ui(o) {\n var e = Wi();\n return function() {\n var s = qe(o), n;\n if (e) {\n var a = qe(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(o, e) {\n if (e && (Ct(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(o);\n}\nfunction Fi(o) {\n if (o === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return o;\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 qe(o) {\n return qe = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, qe(o);\n}\nfunction ji(o) {\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, r = 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 (!r || r.nodeType !== Node.ELEMENT_NODE && r.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 (r.nodeType === Node.ELEMENT_NODE && r.matches(c.selectorInit))\n this.create(r, l);\n else {\n var d = c.initEventNames.map(function(p) {\n return $e(r, p, function(h) {\n var u = wt(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 }(o);\n return e;\n}\nfunction It(o) {\n \"@babel/helpers - typeof\";\n return It = 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 }, It(o);\n}\nfunction Zi(o, e) {\n if (!(o instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction ds(o, 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(o, s.key, s);\n }\n}\nfunction Xi(o, e, t) {\n return e && ds(o.prototype, e), t && ds(o, t), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), o;\n}\nfunction Yi(o, e) {\n if (typeof e != \"function\" && e !== null)\n throw new TypeError(\"Super expression must either be null or a function\");\n o.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: o,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(o, \"prototype\", {\n writable: !1\n }), e && Rt(o, e);\n}\nfunction Rt(o, e) {\n return Rt = Object.setPrototypeOf || function(s, n) {\n return s.__proto__ = n, s;\n }, Rt(o, e);\n}\nfunction qi(o) {\n var e = Qi();\n return function() {\n var s = Ke(o), n;\n if (e) {\n var a = Ke(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(o, e) {\n if (e && (It(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(o);\n}\nfunction Ji(o) {\n if (o === void 0)\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return o;\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 Ke(o) {\n return Ke = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, Ke(o);\n}\nvar er = /* @__PURE__ */ function(o) {\n Yi(t, o);\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 r = a.element.querySelector(a.options.selectorModalContainer) || a.element;\n a.element.classList.contains(a.options.classVisible) && !r.contains(i.target) && a.options.selectorsFloatingMenus.every(function(l) {\n return !wt(i, l);\n }) && a.element.querySelector(pt.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 r = this, l, c = function() {\n if (l && (l = r.unmanage(l).release()), n === \"shown\" && r.element.offsetWidth > 0 && r.element.offsetHeight > 0) {\n r.previouslyFocusedNode = r.element.ownerDocument.activeElement;\n var u = r.element.querySelector(r.options.selectorPrimaryFocus) || r.element.querySelector(pt.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(r.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($e(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($e(this.element, \"transitionend\", c));\n }\n }, {\n key: \"_hookCloseActions\",\n value: function() {\n var n = this;\n this.manage($e(this.element, \"click\", function(a) {\n var i = wt(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($e(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 = pt.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}(qa(ni, ji, Pi, ui));\nconst tr = er;\nclass ac extends z {\n constructor(e, t, s) {\n super(e, t, s), this.type = \"modal\", this.isEventListenerAdded = !1, this.handleShowModal = () => {\n this.modal.attr(\"data-modal\", !0).attr(\"class\", \"cds--modal\").attr(\"role\", \"dialog\").attr(\"aria-modal\", !0).attr(\"aria-labelledby\", \"modal-title\").attr(\"aria-describedby\", \"modal-description\").attr(\"tabindex\", -1), 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(), document.addEventListener(\"modal-hidden\", this.handleHideModal);\n }, this.handleHideModal = () => {\n this.modal.attr(\"role\", null).attr(\"aria-modal\", null).attr(\"aria-labelledby\", null).attr(\"aria-describedby\", null).attr(\"tabindex\", null), document.removeEventListener(\"modal-hidden\", this.handleHideModal);\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 = !1) {\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;\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 = !1) {\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 r = this;\n e.on(\"mouseover\", function(l) {\n r.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: l,\n hoveredElement: e,\n content: s\n });\n }).on(\"mousemove\", function(l) {\n r.services.events.dispatchEvent(f.Tooltip.MOVE, {\n event: l\n });\n }).on(\"mouseout\", function() {\n r.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 = !1) {\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: r } = K.items.status, l = i.some((S) => S.status === r), 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 === K.items.status.ACTIVE;\n });\n const u = y(this.getOptions(), \"legend\", \"clickable\");\n d.classed(\"clickable\", u && i.length > 1);\n const g = K.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, T) => this.services.domUtils.generateElementIDString(`legend-datagroup-${T}-title`)\n ).attr(\"aria-checked\", ({ status: S }) => S === K.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 === K.items.status.ACTIVE ? this.model.getFillColor(S.name) || this.model.getStrokeColor(S.name) : null\n ).classed(\"active\", function(S) {\n return S.status === K.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, T = d.selectAll(\"div.additional-item\").data(v);\n T.exit().remove();\n const M = T.enter().append(\"div\").merge(T).classed(\"legend-item\", !0).classed(\"additional\", !0).attr(\n \"aria-labelledby\",\n (k, I) => this.services.domUtils.generateElementIDString(\n `legend-datagroup-${b.size() + I}-title`\n )\n );\n M.selectAll(\"*\").remove();\n let L, O = 1;\n M.append(\"svg\").classed(\"icon\", !0).each(function(k) {\n const I = x(this);\n !L || L != k.type ? (L = k.type, O = 1) : O++, S.addAdditionalItem(I, k, O);\n }), M.append(\"p\").merge(M.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 } = K.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: r, stroke: l } = K.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 : r).style(\"stroke\", t.stroke ? t.stroke : l);\n } else if (t.type === Se.LINE) {\n const i = K.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(\n \"fill\",\n s > 3 && !t.fill ? K.area.fill : t.fill\n ).style(\"stroke\", t.stroke);\n else if (t.type === Se.SIZE) {\n const { iconData: i, fill: r, stroke: l } = K.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 : r).style(\"stroke\", t.stroke ? t.stroke : l).style(\"stroke-width\", 1);\n } else if (t.type === Se.QUARTILE) {\n const { iconData: i } = K.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: r } = y(K, \"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 : r), 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 : r);\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 !== Ie.NONE ? i.html(function(r) {\n return r.name.length > n && r.name.length !== a ? Ge(r.name, s, a) : r.name;\n }) : i.html((r) => r.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 r = x(this);\n r.select(\"div.checkbox\").classed(\"hovered\", !0);\n const l = r.datum();\n l.name.length > a.threshold && a.numCharacter < l.name.length && a.type !== Ie.NONE && e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: i,\n hoveredElement: r,\n content: l.name\n });\n }).on(\"mousemove\", function(i) {\n x(this).datum().name.length > a.threshold && a.type !== Ie.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 r = x(this).datum();\n e.model.toggleDataLabel(r.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 !== Ie.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, r) {\n i.key && i.key === \" \" ? (i.preventDefault(), e.model.toggleDataLabel(r.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 r = x(this), l = r.datum();\n l.name.length > a.threshold && e.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: i,\n hoveredElement: r,\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(), [r, 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\", r - l), this.chartClipPath.merge(c).lower();\n }\n}\nclass ic 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(o) {\n o.LEFT = \"left\", o.RIGHT = \"right\", o.TOP = \"top\", o.BOTTOM = \"bottom\";\n})(ne || (ne = {}));\nvar hs = (Me = {}, Me[ne.LEFT] = function(o, e, t) {\n return {\n top: o.top - Math.round(e.offsetHeight / 2) + Math.round(t.height / 2),\n left: Math.round(o.left - e.offsetWidth)\n };\n}, Me[ne.RIGHT] = function(o, e, t) {\n return {\n top: o.top - Math.round(e.offsetHeight / 2) + Math.round(t.height / 2),\n left: Math.round(o.left + t.width)\n };\n}, Me[ne.TOP] = function(o, e, t) {\n return {\n top: Math.round(o.top - e.offsetHeight),\n left: o.left - Math.round(e.offsetWidth / 2) + Math.round(t.width / 2)\n };\n}, Me[ne.BOTTOM] = function(o, e, t) {\n return {\n top: Math.round(o.top + t.height),\n left: o.left - Math.round(e.offsetWidth / 2) + Math.round(t.width / 2)\n };\n}, Me), us = typeof window < \"u\" ? window : {\n innerHeight: 0,\n scrollY: 0,\n innerWidth: 0,\n scrollX: 0\n}, st = (\n /** @class */\n function() {\n function o(e) {\n e === void 0 && (e = {}), this.positions = hs, this.positions = Object.assign({}, hs, e);\n }\n return o.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 }, o.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 }, o.prototype.findRelative = function(e, t, s) {\n var n = this.getRelativeOffset(e), a = e.getBoundingClientRect();\n return this.calculatePosition(n, a, t, s);\n }, o.prototype.findAbsolute = function(e, t, s) {\n var n = this.getAbsoluteOffset(e), a = e.getBoundingClientRect();\n return this.calculatePosition(n, a, t, s);\n }, o.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 }, o.prototype.findPositionAt = function(e, t, s) {\n return this.calculatePosition(e, { top: 0, left: 0, height: 0, width: 0 }, t, s);\n }, o.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 }, o.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 }, o.prototype.setElement = function(e, t) {\n e.style.top = t.top + \"px\", e.style.left = t.left + \"px\";\n }, o.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 r = 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 r.sort(function(l, c) {\n return c.weight - l.weight;\n }), r[0].placement;\n }, o.prototype.findBestPlacementAt = function(e, t, s, n) {\n var a = this;\n n === void 0 && (n = this.defaultContainerFunction.bind(this));\n var i = function(r, l, c) {\n return a.findPositionAt(e, l, c);\n };\n return this.findBestPlacement(null, t, s, n, i);\n }, o.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: us.innerHeight,\n width: us.innerWidth\n };\n }, o.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 }, o;\n }()\n);\nnew st();\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 st(), this.handleShowTooltip = (n) => {\n const a = n.detail.data || n.detail.items;\n let i;\n const r = this.formatItems(this.getItems(n));\n n.detail.content ? i = `<div class=\"title-tooltip\"><p>${n.detail.content}</p></div>` : i = this.getTooltipHTML(r);\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 = r[d];\n r[d] && r[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 !== Ie.NONE ? e.map((i) => {\n const r = i.labelIcon ? 12 : 0;\n return i.value = i.value ? this.valueFormatter(i.value, i.label) : i.value, i.label && i.label.length + r > n && (i.label = Ge(i.label, s, a)), i.value && i.value.length > n && (i.value = Ge(i.value, s, a)), i;\n }) : e.map((i) => (i.value = i.value ? this.valueFormatter(i.value, i.label) : i.value, i));\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 Ft(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 Ft(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 = !1) {\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 = et(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 r = t.offsetWidth, l = t.offsetHeight;\n let c;\n i[0] / r > 0.9 ? c = ne.LEFT : i[0] / r < 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: r,\n height: l\n })\n );\n let { horizontalOffset: d } = sn;\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 Re = class Re 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(e = !0) {\n const t = this.parent, s = this.getComponentContainer();\n if (!t)\n throw new Error(\"SVG was not defined\");\n const n = E.appendOrSelect(t, \"svg.chart-grid-backdrop\"), a = E.appendOrSelect(n, `g.${this.type}`), i = E.appendOrSelect(a, this.selectionSelector), { width: r, height: l } = E.getSVGElementSize(n, {\n useAttrs: !0\n }), { cartesianScales: c } = this.services, d = c.getMainXScaleType(), p = c.getMainXScale(), [h] = p.range();\n s.attr(\"transform\", `translate(${h},0)`);\n const u = E.appendOrSelect(s, this.frontSelectionSelector);\n if (p && d === te.TIME) {\n let g = this.model.get(\"zoomDomain\");\n g === void 0 && (g = this.services.zoom.getDefaultZoomBarDomain(), g && this.model.set({ zoomDomain: g }, { animate: !1 }));\n const m = (L) => {\n const O = L[1] - L[0];\n let k = \"0,\" + O.toString();\n const I = Math.floor(l / Re.DASH_LENGTH), F = I * Re.DASH_LENGTH;\n for (let P = 0; P < I; P++)\n k += \",\" + Re.DASH_LENGTH;\n k += \",\" + (l - F), I % 2 === 1 && (k += \",0\"), k += \",\" + O.toString(), k += \",\" + l.toString(), u.attr(\"stroke-dasharray\", k);\n }, b = (L) => {\n const O = L.selection;\n O === null || O[0] === O[1] || (u.attr(\"x\", parseFloat(i.attr(\"x\")) + parseFloat(n.attr(\"x\"))).attr(\"y\", i.attr(\"y\")).attr(\"width\", i.attr(\"width\")).attr(\"height\", i.attr(\"height\")).style(\"cursor\", \"pointer\").style(\"display\", null), m(O));\n }, v = (L, O) => {\n const k = dn().range([0, r]).domain(g);\n let I = [k.invert(L), k.invert(O)];\n I[0].valueOf() === I[1].valueOf() && (I = this.services.zoom.getDefaultZoomBarDomain()), (g[0].valueOf() !== I[0].valueOf() || g[1].valueOf() !== I[1].valueOf()) && this.services.zoom.handleDomainChange(I);\n };\n let S;\n const T = (L) => {\n const O = L.selection;\n O !== null && (v(O[0], O[1]), a.call(S.move, null), u.style(\"display\", \"none\"));\n };\n l != 0 && r != 0 && (S = Ts().extent([\n [0, 0],\n [r - 1, l]\n ]).on(\"start brush end\", b).on(\"end.brushed\", T), a.call(S));\n const M = this.services.zoom.getZoomRatio();\n n.on(\"click\", function(L) {\n if (L.shiftKey) {\n const O = this.services.domUtils.getHolder(), k = et(a.node(), O)[0];\n let I = k - r * M / 2;\n I < 0 && (I = 0);\n let F = k + r * M / 2;\n F > r && (F = r), v(I, F);\n }\n });\n }\n }\n};\nRe.DASH_LENGTH = 4;\nlet ps = Re;\nclass rc 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 = Ts(), 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\", V.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(V.TOP), n = this.services.zoom.isZoomBarLocked(V.TOP), a = y(this.getOptions(), \"zoomBar\", V.TOP, \"type\"), i = y(this.getOptions(), \"axes\", V.BOTTOM, \"highlights\"), r = 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\", r).attr(\"opacity\", 1);\n if (E.appendOrSelect(t, \"rect.zoom-spacer\").attr(\"x\", 0).attr(\"y\", r).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\", r / 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 (Os(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\"), T = y(\n this.getOptions(),\n \"zoomBar\",\n V.TOP,\n \"initialZoomDomain\"\n );\n T && T[0] && T[1] && (T[0] = new Date(T[0]), T[1] = new Date(T[1])), T && !(S && S[0].valueOf() === T[0].valueOf() && S[1].valueOf() === T[1].valueOf()) ? this.model.set(\n {\n // use a new object instead of newInitialZoomDomain\n initialZoomDomain: De([], T),\n zoomDomain: T ? De([], T) : v\n },\n { skipUpdate: !0 }\n ) : T === null && S !== null && this.model.set(\n {\n initialZoomDomain: null,\n zoomDomain: De([], v)\n },\n { skipUpdate: !0 }\n ), this.xScale.range([c, l]).domain(v), this.maxSelectionRange = this.xScale.range(), this.yScale.range([0, r - 6]).domain(tt(b, (O) => O.value));\n const M = 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 O = i.highlightStartMapsTo, k = i.highlightEndMapsTo, I = i.color, F = i.labelMapsTo;\n i.data.forEach((P, A) => {\n E.appendOrSelect(p, `rect.highlight-${A}`).attr(\"height\", r - 2 * this.highlightStrokeWidth).attr(\"y\", this.highlightStrokeWidth).attr(\"x\", this.xScale(P[O])).attr(\n \"width\",\n this.xScale(P[k]) - this.xScale(P[O])\n ).style(\n \"fill\",\n I && I.scale[P[F]] ? I.scale[P[F]] : null\n ).style(\"fill-opacity\", 0.1).style(\n \"stroke\",\n I && I.scale[P[F]] ? I.scale[P[F]] : null\n ).style(\"stroke-dasharray\", \"2, 2\").attr(\"stroke-width\", \"1px\");\n });\n }\n this.addBrushEventListener(M, c, l);\n const L = E.appendOrSelect(t, this.brushSelector).call(this.brush);\n if (M !== void 0)\n if (M[0].valueOf() === M[1].valueOf())\n L.call(this.brush.move, this.xScale.range()), this.updateBrushHandle(this.getComponentContainer(), this.xScale.range());\n else {\n const O = M.map((k) => this.xScale(k));\n O[1] - O[0] < this.MIN_SELECTION_DIFF || (L.call(this.brush.move, O), this.updateBrushHandle(this.getComponentContainer(), O));\n }\n n && (this.brush.filter(() => !1), L.selectAll(\"rect\").attr(\"cursor\", \"auto\"));\n }\n }\n addBrushEventListener(e, t, s) {\n const n = (r) => {\n const l = r.selection;\n l === null ? this.handleBrushedEvent(r, e, this.xScale, this.xScale.range()) : l[0] === l[1] || this.handleBrushedEvent(r, e, this.xScale, l);\n }, a = y(this.getOptions(), \"zoomBar\", V.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\", V.TOP, \"type\"), i = de.height[a], r = -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] + r, s.maxSelectionRange[0]);\n if (u.type === \"e\")\n return Math.min(t[1] + r, 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] - r + d\n );\n if (u.type === \"e\")\n return Math.min(\n t[1] + d,\n s.maxSelectionRange[1] + r + 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\", V.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(), r = a.getMainYAxisPosition(), l = a.getMainXScaleType(), c = a.getMainYScaleType(), d = (v, S, T) => (M) => a.getValueFromScale(v, S, T, M), p = d(this.xScale, l, i), h = d(this.yScale, c, r), u = y(this.getOptions(), \"zoomBar\", V.TOP, \"type\"), g = de.height[u], m = Dt().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 r = E.appendOrSelect(e, \"clipPath\").attr(\"id\", t);\n E.appendOrSelect(r, \"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 = nn(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(\n this.model.getOptions(),\n \"zoomBar\",\n V.TOP,\n \"type\"\n ), i = de.height[a], r = _t()([\n [t, i],\n [s, i]\n ]);\n E.appendOrSelect(e, \"path.zoom-bg-baseline\").attr(\"d\", r).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\", V.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 oc extends z {\n constructor(e, t) {\n super(e, t), this.type = \"threshold\", this.renderType = H.SVG, this.positionService = new st();\n }\n render(e = !1) {\n const t = y(this.getOptions(), \"axes\"), s = [];\n Object.keys(t).forEach((h) => {\n if (Object.values(V).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 r = a.enter().append(\"g\").merge(a);\n r.attr(\"class\", (h) => `axis-thresholds ${h.axisPosition}`);\n const l = r.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 r.each(function({ axisPosition: h }) {\n const u = p.services.cartesianScales.getScaleByPosition(\n h\n ), g = p.services.cartesianScales.getScaleTypeByPosition(h);\n let m = null, b = null;\n h === V.LEFT || h === V.RIGHT ? (b = u, m = p.services.cartesianScales.getMainXScale()) : (m = u, b = p.services.cartesianScales.getMainYScale());\n const v = g === te.LABELS, [S, T] = m.range(), [M, L] = b.range(), { cartesianScales: O } = p.services, k = O.getOrientation(), I = (G) => O.getDomainValue(G), F = (G) => O.getRangeValue(G), [P, A] = ve(\n I,\n F,\n k\n ), w = x(this);\n h === V.TOP || h === V.BOTTOM ? (w.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\", L).attr(\"y2\", M).attr(\n \"x1\",\n ({ datum: G }) => P(G) + (v ? u.step() / 2 : 0)\n ).attr(\n \"x2\",\n ({ datum: G }) => P(G) + (v ? u.step() / 2 : 0)\n ).style(\"stroke\", ({ fillColor: G }) => G), w.selectAll(\"rect.threshold-hoverable-area\").attr(\"x\", 0).attr(\"y\", ({ datum: G }) => -P(G)).attr(\"width\", Math.abs(M - L)).classed(\"rotate\", !0)) : (w.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\", T).attr(\n \"y1\",\n ({ datum: G }) => A(G) + (v ? u.step() / 2 : 0)\n ).attr(\n \"y2\",\n ({ datum: G }) => A(G) + (v ? u.step() / 2 : 0)\n ).style(\"stroke\", ({ fillColor: G }) => G), w.selectAll(\"rect.threshold-hoverable-area\").attr(\"x\", S).attr(\"y\", ({ datum: G }) => A(G)).attr(\"width\", Math.abs(T - 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 = [V.LEFT, V.RIGHT].includes(s), r = this.services.cartesianScales.getMainXScale(), l = this.services.cartesianScales.getMainYScale(), c = i ? l : r, d = y(n, \"timeScale\"), p = gt(\n c.ticks(),\n y(d, \"timeInterval\")\n );\n return mt(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 = et(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(), r = 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 r\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 lc extends z {\n constructor(e, t) {\n super(e, t), this.type = \"highlight\", this.renderType = H.SVG, this.positionService = new st(), 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(V).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 r = a.enter().append(\"g\").merge(a);\n r.attr(\"class\", (h) => `axis-highlight ${h.axisPosition}`);\n const l = r.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 r.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: T } = p.services, M = T.getOrientation(), L = (P) => T.getDomainValue(P), O = (P) => T.getRangeValue(P), [k, I] = ve(\n L,\n O,\n M\n ), F = x(this);\n h === V.TOP || h === V.BOTTOM ? F.selectAll(\"rect.highlight-bar\").transition().call(\n (P) => p.services.transitions.setupTransition({\n transition: P,\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: P, ...A }) => k(A[P])).attr(\n \"width\",\n ({ highlightStartMapsTo: P, highlightEndMapsTo: A, ...w }) => Math.max(k(w[A]) - k(w[P]), 0)\n ).style(\"stroke\", ({ color: P, labelMapsTo: A, ...w }) => P && P.scale[w[A]] ? P.scale[w[A]] : null).style(\"stroke-dasharray\", \"2, 2\").attr(\"stroke-width\", p.highlightStrokeWidth + \"px\").style(\"fill-opacity\", 0.1).style(\"fill\", ({ color: P, labelMapsTo: A, ...w }) => P && P.scale[w[A]] ? P.scale[w[A]] : null) : F.selectAll(\"rect.highlight-bar\").transition().call(\n (P) => p.services.transitions.setupTransition({\n transition: P,\n name: \"highlight-bar-update\",\n animate: e\n })\n ).attr(\"x\", m).attr(\"width\", Math.max(b - m, 0)).attr(\"y\", ({ highlightEndMapsTo: P, ...A }) => I(A[P])).attr(\n \"height\",\n ({ highlightStartMapsTo: P, highlightEndMapsTo: A, ...w }) => Math.max(I(w[P]) - I(w[A]), 0)\n ).style(\"stroke\", ({ color: P, labelMapsTo: A, ...w }) => P && P.scale[w[A]] ? P.scale[w[A]] : null).style(\"stroke-dasharray\", \"2, 2\").attr(\"stroke-width\", p.highlightStrokeWidth + \"px\").style(\"fill-opacity\", 0.1).style(\"fill\", ({ color: P, labelMapsTo: A, ...w }) => P && P.scale[w[A]] ? P.scale[w[A]] : null);\n });\n }\n}\nclass cc extends ir {\n getItems(e) {\n if (e.detail.items)\n return e.detail.items;\n const { data: t } = e.detail;\n if (!t || !t.length || !t[0])\n return [];\n const s = this.getOptions(), { cartesianScales: n } = this.services, a = n.getDomainIdentifier(), i = n.isDualAxes(), { groupMapsTo: r } = 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[r]]\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[r],\n color: this.model.getFillColor(h[r]),\n class: this.model.getColorClassName({\n classNameTypes: [$.TOOLTIP],\n dataGroupName: h[r]\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[r],\n value: Array.isArray(u) && u.length === 2 ? `${u[0]} - ${u[1]}` : u,\n color: this.model.getFillColor(h[r]),\n class: this.model.getColorClassName({\n classNameTypes: [$.TOOLTIP],\n dataGroupName: h[r]\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 dc 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(), r = 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 = Nn;\n c === ue.LEFT ? d = Hn : c === ue.RIGHT && (d = Un);\n const p = $n().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 T = this.services.domUtils.generateElementIDString(\n `alluvial-category-${S}`\n ), { width: M } = E.getSVGElementSize(x(`text#${T}`), { useBBox: !0 });\n let L = 0;\n return v + L >= M && (L = -M + 4), L;\n });\n const g = t.append(\"g\").attr(\"fill\", \"none\").selectAll(\"g\").data(this.graph.links);\n if (g.exit().remove(), r) {\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\", (T) => v[T.source.name])\n ).call(\n (S) => S.append(\"stop\").attr(\"offset\", \"100%\").attr(\"stop-color\", (T) => v[T.target.name])\n ), g.exit().remove();\n }\n g.enter().append(\"path\").classed(\"link\", !0).attr(\"d\", Gn()).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) => r ? `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 T = this.services.domUtils.generateElementIDString(\n `alluvial-node-text-${S}`\n ), { width: M } = E.getSVGElementSize(x(`text#${T}`), { useBBox: !0 });\n return M + 8;\n }).attr(\"height\", 18).attr(\"stroke-width\", 2).lower(), b.attr(\"transform\", (v, S) => {\n const T = this.services.domUtils.generateElementIDString(\n `alluvial-node-text-${S}`\n ), { width: M } = E.getSVGElementSize(x(`text#${T}`), { useBBox: !0 }), L = (v.y1 - v.y0) / 2 - 9;\n let O = v.x1 - v.x0;\n return v.x1 >= M ? O = O - (M + 16) : O += 4, `translate(${O}, ${L})`;\n }), this.addLineEventListener(), this.addNodeEventListener();\n }\n addLineEventListener() {\n const e = this.getOptions(), t = this, s = vt((n, a = \"mouseover\") => {\n const i = t.parent.selectAll(\"path.link\").transition().call(\n (r) => t.services.transitions.setupTransition({\n transition: r,\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 r = 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: r,\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 = vt((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((r) => r === 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 r = Be(a.attr(\"transform\"));\n if (a.attr(\"transform\", `translate(${r.x - 2}, ${r.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 = Be(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 = Be(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 = Be(c.attr(\"transform\"));\n c.attr(\"transform\", `translate(${d.x - 4},${d.y})`);\n }\n const r = e.services.domUtils.generateElementIDString(\n `alluvial-node-text-${n.index}`\n );\n e.parent.select(`text#${r}`).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 hc 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 = Pt(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 r = t.select(\".x.grid\").attr(\"transform\", `translate(${-this.backdrop.attr(\"x\")}, ${s})`);\n e ? r.transition().call(\n (l) => this.services.transitions.setupTransition({\n transition: l,\n name: \"grid-update\",\n animate: e\n })\n ).call(a) : r.call(a), this.cleanGrid(r);\n }\n drawYGrid(e) {\n const t = this.parent, s = this.backdrop.attr(\"width\"), n = this.services.cartesianScales.getMainYScale(), a = Ls(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 r = t.select(\".y.grid\").attr(\"transform\", `translate(0, ${-this.backdrop.attr(\"y\")})`);\n e ? r.transition().call(\n (l) => this.services.transitions.setupTransition({\n transition: l,\n name: \"grid-update\",\n animate: e\n })\n ).call(a) : r.call(a), this.cleanGrid(r);\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], r = s[a];\n let l;\n if (!i)\n l = +ge(r).tx;\n else if (r)\n l = +ge(r).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), r = {\n min: Number(i.tx) - s,\n max: Number(i.tx) + s\n };\n return r.min <= e[0] && e[0] <= r.max;\n });\n }\n drawBackdrop(e, t) {\n const s = this.parent, n = this.services.cartesianScales.getMainXScale(), a = this.services.cartesianScales.getMainYScale(), [i, r] = 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(r - 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 uc 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(), r = Dt().curve(this.services.curves.getD3Curve()).defined((L) => {\n const O = a.getRangeIdentifier(), k = L[O];\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 = (L, O) => {\n y(s, \"axes\", L, \"includeZero\") === !1 && O[0] > 0 && O[1] > 0 && (p = O[0]);\n }, u = (L) => d ? a.getBoundedScaledValues(L)[0] : a.getRangeValue(p), g = (L) => d ? a.getBoundedScaledValues(L)[1] : a.getRangeValue(L);\n i === le.VERTICAL ? (n = a.getMainYScale().domain(), h(a.getMainYAxisPosition(), n), r.x((L) => a.getDomainValue(L)).y0((L) => u(L)).y1((L) => g(L))) : (n = a.getMainXScale().domain(), h(a.getMainXAxisPosition(), n), r.x0((L) => u(L)).x1((L) => g(L)).y((L) => a.getDomainValue(L)));\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, (L) => L.name), S = x(this.services.domUtils.getMainContainer());\n if (v.exit().attr(\"opacity\", 0).remove(), !l.length)\n return;\n if (b) {\n const L = S.select(\n `path.${this.model.getColorClassName({\n classNameTypes: [$.STROKE],\n dataGroupName: l[0].name\n })}`\n ).node();\n let O;\n if (L)\n O = getComputedStyle(L, null).getPropertyValue(\n \"stroke\"\n );\n else {\n const k = y(this.model.getOptions(), \"color\", \"scale\");\n if (k !== null) {\n const I = Object.keys(k);\n O = k[I[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, O)\n });\n } else\n this.parent.selectAll(\"defs linearGradient\").empty() || this.parent.selectAll(\"defs linearGradient\").each(function() {\n this.parentNode.remove();\n });\n const T = this, M = v.enter().append(\"path\");\n b ? M.merge(v).style(\n \"fill\",\n (L) => `url(#${this.services.domUtils.generateElementIDString(\n `${L.name.replace(\" \", \"\")}_${this.gradient_id}`\n )})`\n ).attr(\"class\", \"area\").attr(\n \"class\",\n (L) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: L.name,\n originalClassName: \"area\"\n })\n ).attr(\"d\", (L) => {\n const { data: O } = L;\n return r(O);\n }) : (M.attr(\"opacity\", 0).merge(v).attr(\"class\", \"area\").attr(\n \"class\",\n (L) => this.model.getColorClassName({\n classNameTypes: [$.FILL, $.STROKE],\n dataGroupName: L.name,\n originalClassName: \"area\"\n })\n ).style(\"fill\", (L) => T.model.getFillColor(L.name)).transition().call(\n (L) => this.services.transitions.setupTransition({\n transition: L,\n name: \"area-update-enter\",\n animate: e\n })\n ).attr(\"opacity\", d ? 1 : fe.opacity.selected).attr(\"d\", (L) => {\n const { data: O } = L;\n return r(O);\n }), d && M.attr(\"fill-opacity\", fe.opacity.selected).style(\"stroke\", (L) => T.model.getStrokeColor(L.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 pc 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), [r, l] = ve(\n a,\n i,\n s.getOrientation()\n ), c = this.getOptions(), d = _t().x(r).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), T = this.services.cartesianScales.getRangeIdentifier(v);\n return {\n name: y(v, 0, m),\n data: v.map((M) => ({\n [S]: M.data.sharedStackKey,\n [m]: M[m],\n [T]: M[1]\n })),\n hidden: !Ha(v, (M) => M[0] !== M[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 gs = 5;\nfunction rr(o, e) {\n return o > e - gs && o < e + gs;\n}\nclass Xs 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 = !1) {\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(), r = this.services.cartesianScales.getRangeScale(), [l, c] = r.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) => rr(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, T = Math.abs(d - v.domainValue), M = Math.abs(d - S);\n return T > M || (T < M ? b = [v] : b.push(v)), b;\n }, []);\n if (m.length > 0) {\n const b = m.map((M) => M.originalData).filter((M) => {\n const L = this.services.cartesianScales.getRangeIdentifier(M), O = M[L];\n return O != null;\n }), v = m.map(\n (M) => M.domainValue\n ), S = u.filter((M) => {\n const L = this.services.cartesianScales.getDomainValue(M);\n return v.includes(L);\n });\n this.elementsToHighlight && this.elementsToHighlight.size() > 0 && !Fs(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 T = m[0];\n a === \"horizontal\" ? h.attr(\"x1\", c).attr(\"x2\", l).attr(\"y1\", T.domainValue).attr(\"y2\", T.domainValue) : h.attr(\"y1\", c).attr(\"y2\", l).attr(\"x1\", T.domainValue).attr(\"x2\", T.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 = et(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 = an(\n function(i) {\n const { mousePosition: r } = this;\n e.showRuler(i, r);\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 Gt 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 r = i.getDomainIdentifier(), l = s.selectAll(\"circle.dot\").data(\n this.getScatterData(),\n (p) => `${p[a]}-${p[r]}`\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 ), [r, l] = ve(\n (p) => s.getDomainValue(p),\n (p) => s.getRangeValue(p),\n n\n ), c = r(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: r } = 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[r], u[g], u, n) ? [$.FILL, $.STROKE] : [$.STROKE];\n return this.model.getColorClassName({\n classNameTypes: b,\n dataGroupName: u[r],\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[r], u[g], u, n);\n }).classed(\"unfilled\", (u) => {\n const g = i.getDomainIdentifier(u);\n return !this.model.getIsFilled(u[r], 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[r], u[g], u, n))\n return this.model.getFillColor(u[r], u[g], u);\n }).style(\"stroke\", (u) => {\n const g = i.getDomainIdentifier(u);\n return this.model.getStrokeColor(u[r], 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, r;\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 }), (r = e.services.events) == null || r.dispatchEvent(f.Scatter.SCATTER_MOUSEOVER, {\n event: s,\n element: a,\n datum: n\n });\n }).on(\"mousemove\", function(s, n) {\n var i, r;\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 }), (r = e.services.events) == null || r.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, r, 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 (r = e.services.events) == null || r.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 Ys extends z {\n constructor(e, t, s) {\n super(e, t, s), this.type = \"axes\", this.renderType = H.SVG, this.truncation = {\n [V.LEFT]: !1,\n [V.RIGHT]: !1,\n [V.TOP]: !1,\n [V.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: r } = E.getSVGElementSize(a, {\n useAttrs: !0\n }), l = E.appendOrSelect(a, `g.axis.${t}`);\n let c, d;\n if (t === V.BOTTOM || t === V.TOP ? (c = this.configs.axes[V.LEFT] ? this.margins.left : 0, d = this.configs.axes[V.RIGHT] ? i - this.margins.right : i) : (c = r - this.margins.bottom, d = this.margins.top), !this.services.cartesianScales)\n throw new Error(\"Services cartesianScales undefined\");\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 V.LEFT:\n h = Ls;\n break;\n case V.BOTTOM:\n h = Pt;\n break;\n case V.RIGHT:\n h = un;\n break;\n case V.TOP:\n h = hn;\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 === V.LEFT || t === V.RIGHT, T = this.model.get(\"zoomDomain\");\n if (T && v && !S && p.domain(T), !n) {\n g.attr(\"aria-hidden\", !0);\n return;\n }\n const M = y(b, \"scaleType\"), L = y(s, \"data\", \"loading\"), O = y(b, \"ticks\", \"number\"), k = y(b, \"ticks\", \"values\"), I = y(b, \"truncation\", \"type\"), F = y(b, \"truncation\", \"threshold\"), P = y(b, \"truncation\", \"numCharacter\"), A = O !== null, w = 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 = O : (B = ke.ticks.number, S && (B = this.getNumberOfFittingTicks(\n r,\n X,\n ke.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\"), J = p.copy();\n j && !q && J.nice(B);\n const oe = J.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 = gt(\n W.tickValues(),\n y(s, \"timeScale\", \"timeInterval\")\n );\n ae === null ? N = (j, q) => mt(j, q, W.tickValues(), B, w) : N = (j, q) => {\n const J = mt(\n j,\n q,\n W.tickValues(),\n B,\n w\n );\n return ae(j, q, J);\n };\n } else\n ae === null ? re === te.LINEAR && (N = (B) => B.toLocaleString()) : N = ae;\n W.tickFormat(N);\n const [nt, at] = this.services.cartesianScales.getScaleByPosition(t).domain();\n let Pe;\n if (k) {\n if (v)\n k.forEach((B, j) => {\n B.getTime === void 0 && (k[j] = new Date(B));\n }), Pe = k.filter((B) => {\n const j = B.getTime();\n return j >= new Date(nt).getTime() && j <= new Date(at).getTime();\n });\n else if (M === te.LABELS) {\n const B = this.services.cartesianScales.getScaleByPosition(t).domain();\n Pe = k.filter((j) => B.includes(j));\n } else\n Pe = k.filter(\n (B) => B >= nt && B <= at\n );\n W.tickValues(Pe);\n }\n switch (t) {\n case V.LEFT:\n g.attr(\"transform\", `translate(${this.margins.left}, 0)`);\n break;\n case V.BOTTOM:\n g.attr(\"transform\", `translate(0, ${r - this.margins.bottom})`);\n break;\n case V.RIGHT:\n g.attr(\"transform\", `translate(${i - this.margins.right}, 0)`);\n break;\n case V.TOP:\n g.attr(\"transform\", `translate(0, ${this.margins.top})`);\n break;\n }\n const Ut = this.model.isDataEmpty();\n if (b.title) {\n const B = E.appendOrSelect(l, \"text.axis-title\").html(\n Ut || L ? \"\" : b.title\n ), j = y(b, \"titleOrientation\");\n let q;\n switch (t) {\n case V.LEFT:\n j === Yt.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 V.BOTTOM:\n B.attr(\n \"transform\",\n `translate(${this.margins.left / 2 + p.range()[1] / 2}, ${r + 4})`\n ).style(\"text-anchor\", \"middle\");\n break;\n case V.RIGHT:\n j === Yt.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 V.TOP:\n q = E.getSVGElementSize(B, {\n useBBox: !0\n }).height, 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 = gt(\n W.tickValues(),\n y(s, \"timeScale\", \"timeInterval\")\n ), j = w.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, He) => rn(oe, He, 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 === V.BOTTOM || t === V.TOP) {\n let B = !1;\n const j = y(b, \"ticks\", \"rotation\");\n if (j === ot.ALWAYS)\n B = !0;\n else if (j === ot.NEVER)\n B = !1;\n else if (!j || j === ot.AUTO)\n if (p.step)\n B = m.selectAll(\"g.tick text\").nodes().some(\n (J) => E.getSVGElementSize(J, {\n useBBox: !0\n }).width >= p.step()\n );\n else {\n B = !1;\n const q = m.append(\"text\").text(\"A\"), J = E.getSVGElementSize(q.node(), {\n useBBox: !0\n }).width;\n let oe;\n m.selectAll(\"g.tick\").each(function() {\n const He = x(this), C = parseFloat(y(ge(this), \"tx\"));\n C !== null && oe + He.text().length * J * 0.8 >= C && (B = !0), oe = C;\n }), q.remove();\n }\n B ? (A || (W.ticks(\n this.getNumberOfFittingTicks(i, X, ke.ticks.horizontalSpaceRatio)\n ), m.call(W), g.call(W)), l.selectAll(\"g.ticks g.tick text\").attr(\"transform\", \"rotate(-45)\").attr(\"text-anchor\", t === V.TOP ? \"start\" : \"end\")) : l.selectAll(\"g.ticks g.tick text\").attr(\"transform\", null).attr(\"text-anchor\", null);\n }\n if (L ? 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), I !== Ie.NONE && M === 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(J) {\n return J.length > F ? (q.truncation[t] = !0, Ge(J, I, P)) : J;\n }), this.getInvisibleAxisRef().selectAll(\"g.tick text\").data(B).text(function(J) {\n return J.length > F ? Ge(J, I, P) : J;\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\"), r = 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 > r && 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 > r && 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 zs(n, 2, ke.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 or extends Ys {\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, r) {\n const l = x(this);\n l.classed(\"tick-hover\", !0).attr(\"tabindex\", r === 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 V.LEFT:\n u = -d + Number(c.attr(\"x\")), g = -(p / 2);\n break;\n case V.RIGHT:\n u = Math.abs(Number(c.attr(\"x\"))), g = -(p / 2);\n break;\n case V.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 V.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 - ke.hover.rectanglePadding).attr(\"y\", g).attr(\"width\", d + ke.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\"), r = 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 > r && 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 === V.LEFT || t === V.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 gc 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(V), n = y(this.getOptions(), \"axes\");\n s.forEach((r) => {\n n[V[r]] && (t[V[r]] = !0);\n }), this.configs.axes = t, s.forEach((r) => {\n const l = V[r];\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 === Vn.DEFAULT ? new Ys(this.model, this.services, c) : new or(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((r) => {\n this.children[r].render(e);\n });\n const a = {};\n Object.keys(this.children).forEach((r) => {\n const l = this.children[r], 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 === V.LEFT || c === V.RIGHT) && (u += 5)), c) {\n case V.TOP:\n a.top = h + u;\n break;\n case V.BOTTOM:\n a.bottom = h + u;\n break;\n case V.LEFT:\n a.left = p + u;\n break;\n case V.RIGHT:\n a.right = p + u;\n break;\n }\n }), this.services.events.dispatchEvent(f.Axis.RENDER_COMPLETE), Object.keys(a).some((r) => this.margins[r] !== a[r]) && (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((r) => {\n const l = this.children[r];\n l.margins = this.margins;\n }), this.render(!0));\n }\n}\nclass lr 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 === ze.GRID)\n this.renderGridSkeleton(e);\n else if (this.configs.skeleton === ze.VERT_OR_HORIZ)\n this.renderVertOrHorizSkeleton(e);\n else if (this.configs.skeleton === ze.PIE)\n this.renderPieSkeleton(e);\n else if (this.configs.skeleton === ze.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(), [, r] = this.yScale.range();\n this.backdrop.merge(a).attr(\"x\", i).attr(\"y\", r), 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((r) => r * t), a = E.appendOrSelect(this.backdrop, \"g.x.skeleton\"), i = a.selectAll(\"line\").data(n);\n i.enter().append(\"line\").merge(i).attr(\"x1\", (r) => r).attr(\"x2\", (r) => r).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\"), r = i.selectAll(\"line\").data(a);\n r.enter().append(\"line\").merge(r).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 }), r = 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(r, \"rect.chart-skeleton-area-container\").attr(\"width\", a).attr(\"height\", i).attr(\"fill\", \"none\");\n const d = Ne().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(r, \"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\", r = this.parent.select(\".chart-skeleton\"), { width: l } = E.getSVGElementSize(this.parent, {\n useAttrs: !0\n }), c = 0, d = l, p = E.appendOrSelect(r, \"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(pn).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 mc 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(), r = this.services.cartesianScales.getMainYScale(), [l, c] = i.range(), [d, p] = r.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 ), T = Math.floor((b ? h : u) / a.length), M = Math.min(T / 2, 16), L = this.model.getBoxplotData(), O = t.selectAll(\".box-group\").data(L);\n O.exit().remove();\n const k = O.enter().append(\"g\").attr(\"class\", \"box-group\"), I = O.merge(k);\n k.append(\"path\").merge(O.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 w = g.getDomainValue(A[n]), G = w, D = g.getRangeValue(A.whiskers.min), X = g.getRangeValue(A.quartiles.q_25);\n return ie({ x0: w, x1: G, y0: D, y1: X }, m);\n }), k.append(\"path\").merge(O.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 w = g.getDomainValue(A[n]), G = w, D = g.getRangeValue(A.whiskers.max), X = g.getRangeValue(A.quartiles.q_75);\n return ie({ x0: w, x1: G, y0: D, y1: X }, m);\n }), k.append(\"path\").merge(O.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 w = g.getDomainValue(A[n]) - M / 2, G = w + M, 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: w, x1: G, y0: D, y1: X }, m);\n }), k.append(\"path\").merge(O.select(\"path.highlight-area\")).attr(\"class\", \"highlight-area\").attr(\"opacity\", 0).attr(\"d\", (A) => {\n const w = g.getDomainValue(A[n]) - M / 2, G = w + M, D = g.getRangeValue(A.whiskers.min), X = g.getRangeValue(A.whiskers.max);\n return ie({ x0: w, x1: G, y0: D, y1: X }, m);\n }), k.append(\"path\").merge(O.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 w = g.getDomainValue(A[n]) - M / 4, G = w + M / 2, D = g.getRangeValue(A.whiskers.min), X = g.getRangeValue(A.whiskers.min);\n return ie({ x0: w, x1: G, y0: D, y1: X }, m);\n }), k.append(\"path\").merge(O.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 w = g.getDomainValue(A[n]) - M / 2, G = w + M, D = g.getRangeValue(A.quartiles.q_50);\n return ie({ x0: w, x1: G, y0: D, y1: D }, m);\n }), k.append(\"path\").merge(O.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 w = g.getDomainValue(A[n]) - M / 4, G = w + M / 2, D = g.getRangeValue(A.whiskers.max), X = g.getRangeValue(A.whiskers.max);\n return ie({ x0: w, x1: G, y0: D, y1: X }, m);\n });\n const F = I.selectAll(\"circle.outlier\").data(\n (A) => A.outliers.map((w) => ({\n min: A.whiskers.min,\n max: A.whiskers.max,\n [n]: A[n],\n value: w\n }))\n );\n F.exit().remove();\n const P = F.enter().append(\"circle\");\n F.merge(P).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 r = x(this);\n r.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: r,\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: r,\n datum: i\n });\n }).on(\"mousemove\", function(a, i) {\n const r = x(this);\n e.services.events.dispatchEvent(f.Boxplot.OUTLIER_MOUSEMOVE, {\n event: a,\n element: r,\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 r = x(this);\n r.classed(\"hovered\", !1).attr(\"fill-opacity\", ce.circle.opacity.default), e.services.events.dispatchEvent(f.Boxplot.OUTLIER_MOUSEOUT, {\n event: a,\n element: r,\n datum: i\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: r\n });\n });\n }\n}\nclass fc 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, r = this.getComponentContainer();\n if (!i) {\n r.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 = on(\n {\n x0: l,\n x1: c,\n y0: d,\n y1: d\n },\n this.services.cartesianScales.getOrientation()\n );\n E.appendOrSelect(r, \"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 vc extends Gt {\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()), r = a.length > 0, l = r ? tt(a) : [1, 1];\n return Oe().domain(l).range(r ? 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: r } = this.services, l = (h) => r.getDomainValue(h), c = (h) => r.getRangeValue(h), [d, p] = ve(\n l,\n c,\n r.getOrientation()\n );\n e.raise().classed(\"dot\", !0).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-label\", (h) => {\n const u = r.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 yc 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(), r = 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((T, M) => {\n T != null && T < d && m.push({\n datum: S,\n value: T,\n order: M + 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 M, L, O, k;\n return S.order === 1 ? (M = this.services.cartesianScales.getDomainValue(S.datum) - 16 / 2, L = M + 16, O = c - 2, k = l + 1) : (M = this.services.cartesianScales.getDomainValue(S.datum) - 16 / 2, L = M + 16, O = this.services.cartesianScales.getRangeValue(S.value), k = c), ie(\n { x0: M, x1: L, y0: O, 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 T = this.services.cartesianScales.getDomainValue(v) - 4, M = T + 8, L = this.services.cartesianScales.getRangeValue(0) + 1, O = this.services.cartesianScales.getRangeValue(v);\n return ie(\n { x0: T, x1: M, y0: L, y1: O },\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 T = this.services.cartesianScales.getDomainValue(v) - 12, M = T + 24, L = this.services.cartesianScales.getRangeValue(v.marker);\n return ie(\n { x0: T, x1: M, y0: L, y1: L },\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 T = S.marker, M = S[r];\n m = m.concat([\n { datum: S, value: T * 0.25, barValue: M },\n { datum: S, value: T * 0.5, barValue: M },\n { datum: S, value: T * 0.75, barValue: M }\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: T }) => {\n let M = 4;\n S.ranges && S.ranges.indexOf(T) !== -1 && (M = 8);\n const L = this.services.cartesianScales.getDomainValue(S) - M / 2, O = L + M, k = this.services.cartesianScales.getRangeValue(T);\n return ie(\n { x0: L, x1: O, 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 r = x(this);\n r.classed(\"hovered\", !0), e.services.events.dispatchEvent(f.Bar.BAR_MOUSEOVER, {\n event: a,\n element: r,\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: r,\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 r = x(this);\n r.classed(\"hovered\", !1), e.services.events.dispatchEvent(f.Bar.BAR_MOUSEOUT, {\n event: a,\n element: r,\n datum: i\n }), e.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: r\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 cr(o) {\n return o;\n}\nfunction dr(o) {\n if (o == null)\n return cr;\n var e, t, s = o.scale[0], n = o.scale[1], a = o.translate[0], i = o.translate[1];\n return function(r, l) {\n l || (e = t = 0);\n var c = 2, d = r.length, p = new Array(d);\n for (p[0] = (e += r[0]) * s + a, p[1] = (t += r[1]) * n + i; c < d; )\n p[c] = r[c], ++c;\n return p;\n };\n}\nfunction hr(o, e) {\n for (var t, s = o.length, n = s - e; n < --s; )\n t = o[n], o[n++] = o[s], o[s] = t;\n}\nfunction ur(o, e) {\n return typeof e == \"string\" && (e = o.objects[e]), e.type === \"GeometryCollection\" ? { type: \"FeatureCollection\", features: e.geometries.map(function(t) {\n return ms(o, t);\n }) } : ms(o, e);\n}\nfunction ms(o, e) {\n var t = e.id, s = e.bbox, n = e.properties == null ? {} : e.properties, a = Nt(o, 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 Nt(o, e) {\n var t = dr(o.transform), s = o.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 && hr(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 r(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(r);\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 pr(o, e) {\n var t = {}, s = {}, n = {}, a = [], i = -1;\n e.forEach(function(c, d) {\n var p = o.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 = r(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 r(c) {\n var d = o.arcs[c < 0 ? ~c : c], p = d[0], h;\n return o.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 gr(o) {\n for (var e = -1, t = o.length, s, n = o[t - 1], a = 0; ++e < t; )\n s = n, n = o[e], a += s[0] * n[1] - s[1] * n[0];\n return Math.abs(a);\n}\nfunction mr(o) {\n return Nt(o, fr.apply(this, arguments));\n}\nfunction fr(o, 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 r(l) {\n return gr(Nt(o, { 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 = pr(o, c), (d = c.length) > 1)\n for (var p = 1, h = r(c[0]), u, g; p < d; ++p)\n (u = r(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 bc extends Xs {\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, r = i.getOrientation(), l = i.getRangeScale(), [c, d] = l.range(), p = i.getDomainScale(), h = p.invert(\n r === 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 && !Fs(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\")), T = parseFloat(Q(v, \"data.x1\")), M = this.model.getActiveDataGroupNames(), L = M.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 (L.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} – ${T}`\n },\n ...L,\n ...y(a, \"tooltip\", \"showTotal\") === !0 ? [\n {\n label: Q(a, \"tooltip.totalLabel\") || \"Total\",\n value: M.reduce(\n (I, F) => I + parseFloat(Q(v, `data.${F}`)),\n 0\n )\n }\n ] : []\n ]\n }), u.attr(\"opacity\", 1);\n const k = p((S + T) / 2);\n r === \"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 Ec extends Xs {\n formatTooltipData(e) {\n return e.reverse();\n }\n}\nconst Sc = (o, e) => {\n const t = o.x, s = o.y, n = e.x, a = e.y, i = Vt();\n return i.moveTo(t, s), i.lineTo(n, a), i.toString();\n}, xc = (o, e, t = 0.5) => {\n const s = o.x, n = o.y, a = e.x, i = e.y, r = Vt();\n return r.moveTo(s, n), r.lineTo(s + (a - s) * t, n), r.lineTo(s + (a - s) * t, i), r.lineTo(a, i), r.toString();\n}, Oc = (o, e, t, s, n, a) => {\n const i = o.x, r = o.y, l = e.x, c = e.y, d = Vt();\n return d.moveTo(i, r), d.bezierCurveTo(t, s, n, a, l, c), d.toString();\n}, Tc = {\n d: \"M7 0v8L0 4z\",\n height: 8,\n width: 7.5,\n id: \"arrowLeft\"\n}, Lc = {\n d: \"M0 0v8l7-4z\",\n height: 8,\n width: 7.5,\n id: \"arrowRight\"\n}, wc = {\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}, Mc = {\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}, Ac = {\n d: \"M0 .44974747h8v8H0v-3.6830331z\",\n height: 9,\n width: 8,\n id: \"square\"\n}, Cc = {\n d: \"M0 0h1.5v8H0z\",\n height: 8,\n width: 2,\n id: \"tee\"\n};\nclass kc 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 > K.color.barWidth && !i) {\n const r = 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)`), r)) {\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 = !1) {\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 r = 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 = !Os(a), p = ln(this.model.getDisplayData()), h = !(n <= K.color.barWidth), u = h ? K.color.barWidth : n, g = E.appendOrSelect(s, \"g.legend\"), m = E.appendOrSelect(g, \"g.legend-axis\");\n if (l) {\n const I = E.appendOrSelect(s, \"g.legend-title\");\n E.appendOrSelect(I, \"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 (r < 1 && r > 4 && b === \"mono\" || r < 1 && r > 2 && b === \"diverge\") && (r = 1);\n let v = [];\n const S = b === \"diverge\" ? 17 : 11;\n if (d)\n v = a;\n else\n for (let I = 1; I < S + 1; I++)\n v.push(\n i === lt.LINEAR ? `stop-color-${b}-${r}-${I}` : `fill-${b}-${r}-${I}`\n );\n const T = ws(p[0], p[1]), M = gn(T, 3), L = Oe().domain(p).range([0, u]), O = Pt(L).tickSize(0).tickValues(M);\n let k;\n switch (i) {\n case lt.LINEAR:\n this.drawLinear(v, g, u);\n break;\n case lt.QUANTIZE:\n k = this.drawQuantize(\n v,\n b,\n d,\n g,\n u\n ), L.range([k, u]);\n break;\n default:\n throw Error(\"Entered color legend type is not supported.\");\n }\n m.attr(\"transform\", `translate(0,${K.color.axisYTranslation})`).call(O), 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\", (r, l) => `${l * n}%`).attr(\"class\", (r, l) => e[l]).attr(\"stop-color\", (r) => r), E.appendOrSelect(t, \"rect\").attr(\"width\", s).attr(\"height\", K.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 = Bt().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\", K.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 Ic 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 = !1) {\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 r = this.getMaxTitleWidth(), l = E.appendOrSelect(n, \"text.meter-title\");\n r > 0 && l.node().getComputedTextLength() > r && this.truncateTitle(l, r);\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 r = e.selectAll(\"text.proportional-meter-title\").data([i]);\n r.enter().append(\"text\").classed(\"proportional-meter-title\", !0).merge(r).attr(\"x\", 0).attr(\"y\", \"1em\").text((d) => d), r.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\"), r = 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([r]);\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, r = E.appendOrSelect(t, \"g.status-indicator\").attr(\"class\", a !== null ? `status-indicator status--${a}` : \"\").attr(\"transform\", `translate(${n - i}, 0)`), l = a ? [a] : [], c = r.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 = r.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((r) => `${r}%`).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(), r = E.appendOrSelect(this.parent, \"g.status-indicator\").node(), l = E.getSVGElementSize(r, { 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 ct.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 ct.DANGER:\n return \"M10.7 11.5 4.5 5.3 5.3 4.5 11.5 10.7 Z\";\n case ct.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 Ht 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 : Ve.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(), r = 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 = $t({ children: a }).sum((m) => m.value).sort((m, b) => b.value - m.value), h = mn().size([s, n]).padding((m) => m.depth >= 1 ? Ve.padding.children + 3 : Ve.padding.mainGroup + 3)(d).descendants().splice(1).filter((m) => m.depth <= r), 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 && r === 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\", Ve.circles.fillOpacity), c === !0 && this.focal && (this.services.canvasZoom.zoomIn(this.focal, g, Ue), 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\", Ve.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 e.on(\"click\", () => {\n t.focal = null, t.model.updateHierarchyLevel(2), e.classed(\"zoomed-in\", !1), t.services.canvasZoom.zoomOut(s, Ue);\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\"), r = 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 && r && (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: r && 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 && r && 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 r = 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(r, Ue);\n } else if (s.depth === 2 && s.children && !a && i) {\n const r = 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, r, Ue), 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 vr(o, e) {\n const t = vn(this._current, o);\n return (s) => (this._current = t(s), e(this._current));\n}\nclass yr 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, r = this.model.getDisplayData().filter((w) => w[i] > 0), l = this.computeRadius();\n this.arc = Ne().innerRadius(this.getInnerRadius()).outerRadius(l), this.hoverArc = Ne().innerRadius(this.getInnerRadius()).outerRadius(l + Z.hoverArc.outerRadiusOffset);\n const d = fn().value((w) => w[i]).sort(y(n, \"pie\", \"sortFunction\")).padAngle(Z.padAngle)(r), h = E.appendOrSelect(s, \"g.slices\").attr(\"role\", U.GROUP).attr(\"data-name\", \"slices\").selectAll(\"path.slice\").data(d, (w) => w.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 (w) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: w.data[a],\n originalClassName: \"slice\"\n })\n ).style(\"fill\", (w) => t.model.getFillColor(w.data[a])).attr(\"d\", this.arc).transition().call(\n (w) => this.services.transitions.setupTransition({\n transition: w,\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 (w) => `${w[i]}, ${it(w.data[i], r, i) + \"%\"}`\n ).attrTween(\"d\", function(w) {\n return vr.bind(this)(w, t.arc);\n });\n const m = n.pie.labels.enabled, b = m ? d.filter((w) => w.data[i] > 0) : [], S = E.appendOrSelect(s, \"g.labels\").attr(\"role\", U.GROUP).attr(\"data-name\", \"labels\").selectAll(\"text.pie-label\").data(b, (w) => w.data[a]);\n S.exit().attr(\"opacity\", 0).remove();\n const T = S.enter().append(\"text\").classed(\"pie-label\", !0), M = [];\n T.merge(S).style(\"text-anchor\", \"middle\").text((w) => n.pie.labels.formatter ? n.pie.labels.formatter({\n ...w,\n percentageValue: it(\n w.data[i],\n r,\n i,\n !0\n )\n }) : it(w.data[i], r, i) + \"%\").datum(function(w) {\n const G = l + 7, D = (w.endAngle - w.startAngle) / 2 + w.startAngle, X = D / Math.PI * 180, re = this.getComputedTextLength();\n return w.textOffsetX = re / 2, w.textOffsetY = X > 90 && X < 270 ? 10 : 0, w.xPosition = (w.textOffsetX + G) * Math.sin(D), w.yPosition = (w.textOffsetY + G) * -Math.cos(D), w;\n }).attr(\"transform\", function(w, G) {\n const D = b.length, X = (w.endAngle - w.startAngle) * (180 / Math.PI);\n if (G >= D - 2 && X < Z.callout.minSliceDegree) {\n let re, W;\n return w.index === D - 1 ? (re = w.xPosition + Z.callout.offsetX + Z.callout.textMargin + w.textOffsetX, W = w.yPosition - Z.callout.offsetY, w.direction = dt.RIGHT, M.push(w)) : (re = w.xPosition - Z.callout.offsetX - w.textOffsetX - Z.callout.textMargin, W = w.yPosition - Z.callout.offsetY, w.direction = dt.LEFT, M.push(w)), `translate(${re}, ${W})`;\n }\n return `translate(${w.xPosition}, ${w.yPosition})`;\n }), this.renderCallouts(M);\n const L = y(n, \"donut\") ? \"donut\" : \"pie\", O = y(n, L, \"alignment\"), { width: k } = E.getSVGElementSize(this.getParent(), {\n useAttrs: !0\n }), I = m ? Z.xOffset : 0, F = m ? Z.yOffset : 0;\n let P = l + I;\n O === ue.CENTER ? P = k / 2 : O === ue.RIGHT && (P = k - l - Z.xOffset);\n let A = l + F;\n M.length > 0 && (A += Z.yOffsetCallout), s.attr(\"x\", P + 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(r) {\n const { xPosition: l, yPosition: c, direction: d } = r;\n return d === dt.RIGHT ? (r.startPos = {\n x: l,\n y: c + r.textOffsetY\n }, r.endPos = {\n x: l + Z.callout.offsetX,\n y: c - Z.callout.offsetY + r.textOffsetY\n }, r.intersectPointX = r.endPos.x - Z.callout.horizontalLineLength) : (r.startPos = {\n x: l,\n y: c + r.textOffsetY\n }, r.endPos = {\n x: l - Z.callout.offsetX,\n y: c - Z.callout.offsetY + r.textOffsetY\n }, r.intersectPointX = r.endPos.x + Z.callout.horizontalLineLength), r;\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\", (r) => r.startPos.x).attr(\"y1\", (r) => r.startPos.y).attr(\"x2\", (r) => r.intersectPointX).attr(\"y2\", (r) => r.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\", (r) => r.intersectPointX).attr(\"y1\", (r) => r.endPos.y).attr(\"x2\", (r) => r.endPos.x).attr(\"y2\", (r) => r.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 (r) => e.services.transitions.setupTransition({\n transition: r,\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 Dc extends yr {\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 (r) => this.services.transitions.setupTransition({\n transition: r,\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((r, l) => r + 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 = yn : a = ws;\n const i = a(n, s);\n return (r) => {\n const { numberFormatter: l } = t.donut.center;\n e.text(l(i(r)));\n };\n }\n}\nconst fs = \"4,10 8,6 12,10\", vs = \"12,6 8,10 4,6\";\nclass _c 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 zs(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\") === Fe.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 qt.UP:\n return fs;\n case qt.DOWN:\n return vs;\n default:\n return e > 0 ? fs : vs;\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(), r = this.getStartAngle(), l = a * i, c = r + l, d = r + i, p = this.computeRadius(), h = this.getInnerRadius();\n this.backgroundArc = Ne().innerRadius(h).outerRadius(p).startAngle(c).endAngle(d), this.arc = Ne().innerRadius(h).outerRadius(p).startAngle(r).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(), r = 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 === Fe.FULL && !a ? p = l(i) : s === Fe.SEMI && a && (p = -(l(i) + c));\n const h = E.appendOrSelect(e, \"g.gauge-numbers\").attr(\n \"transform\",\n `translate(0, ${p})`\n ), u = r(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, T = d ? \"%\" : \"\", M = E.appendOrSelect(g, \"text.gauge-value-symbol\").style(\"font-size\", `${S}px`).attr(\"x\", v / 2).text(T), { width: L, height: O } = E.getSVGElementSize(M, {\n useBBox: !0\n });\n M.attr(\"y\", `-${O / 2}px`), g.attr(\"transform\", `translate(-${L / 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, r = 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) => `${r(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 T = y(s, \"gauge\", \"status\");\n E.appendOrSelect(S, \"polygon.gauge-delta-arrow\").attr(\"class\", T !== null ? `gauge-delta-arrow status--${T}` : \"\").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 === Fe.SEMI ? Math.min(s / 2, n) : Math.min(s / 2, n / 2);\n }\n}\nclass Pc extends Ht {\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 = cn(\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 ), r = a.selectAll(\"g.bars\").data(i, (h) => h);\n r.exit().attr(\"opacity\", 0).remove();\n const c = r.enter().append(\"g\").classed(\"bars\", !0).attr(\"role\", U.GROUP).attr(\"data-name\", \"bars\").merge(r);\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), T = this.services.cartesianScales.getRangeValue(h), M = this.services.cartesianScales.getDomainValue(h) - g / 2, L = M + g;\n if (!this.isOutsideZoomedDomain(M, L))\n return ie(\n { x0: m, x1: b, y0: S, y1: T },\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 = Bt().domain(e).rangeRound([0, this.getGroupWidth()]);\n }\n}\nclass Vc 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(), r = 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 = r, 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)}, ${ft(c.range())})`) : c(s) !== void 0 && this.parent.select(\"g.multi-cell.row-highlight\").classed(\"highlighter-hidden\", !1).attr(\"transform\", `translate(${ft(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(), r = 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[r])})`\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 !== ht.OFF && (e === ht.AUTO && Wt.minCellDividerDimension <= this.xBandwidth && Wt.minCellDividerDimension <= this.yBandwidth || e === ht.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(), r = 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 = Be(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: r,\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 Bc 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(), r = 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 = r(p.x1) - r(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 r = 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: `${r} – ${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 $c extends Gt {\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(), r = 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\", r.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 Gc 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(), r = 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 T = y(n, \"meter\", \"proportional\", \"total\");\n d = T || 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 = r != null && !t.model.isUserProvidedColorScaleValid() && !a ? `value status--${r}` : \"value\";\n g.enter().append(\"rect\").classed(\"value\", !0).merge(g).attr(\"x\", (T) => T.x).attr(\"y\", 0).attr(\"height\", () => u || (a ? se.height.proportional : se.height.default)).attr(\n \"class\",\n (T) => this.model.getColorClassName({\n classNameTypes: [$.FILL],\n dataGroupName: T[c],\n originalClassName: m\n })\n ).transition().call(\n (T) => this.services.transitions.setupTransition({\n transition: T,\n name: \"meter-bar-update\",\n animate: e\n })\n ).attr(\"width\", (T) => T.value > d ? p(d) : T.width).style(\"fill\", (T) => t.model.getFillColor(T[c])).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"value\").attr(\"aria-label\", (T) => T.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\", () => u || (a ? se.height.proportional : se.height.default)).transition().call(\n (T) => this.services.transitions.setupTransition({\n transition: T,\n name: \"peak-line-update\",\n animate: e\n })\n ).attr(\"x1\", (T) => p(T)).attr(\"x2\", (T) => p(T)).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-roledescription\", \"peak\").attr(\"aria-label\", (T) => T), 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 r = x(this);\n s.services.events.dispatchEvent(f.Meter.METER_MOUSEOVER, {\n event: a,\n element: r,\n datum: i\n }), n && (r.classed(\"hovered\", !0), s.services.events.dispatchEvent(f.Tooltip.SHOW, {\n event: a,\n hoveredElement: r,\n items: [\n {\n label: i[t],\n value: i.value\n }\n ]\n }));\n }).on(\"mousemove\", function(a, i) {\n const r = x(this);\n s.services.events.dispatchEvent(f.Meter.METER_MOUSEMOVE, {\n event: a,\n element: r,\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 r = x(this);\n s.services.events.dispatchEvent(f.Meter.METER_MOUSEOUT, {\n event: a,\n element: r,\n datum: i\n }), n && (r.classed(\"hovered\", !1), s.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: r\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 Nc 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 = $a(\n this.uniqueKeys.map((r) => this.uniqueGroups.map((l) => ({\n [s]: r,\n [a]: l,\n [n]: null\n })))\n );\n return De(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: r }) => {\n const l = this.uniqueKeys.map((c) => ({\n [a]: i,\n [s]: c,\n [n]: null\n }));\n return { name: i, data: De(l, r) };\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(), r = this.getOptions(), l = y(r, \"data\", \"groupMapsTo\"), c = y(r, \"radar\", \"axes\", \"value\"), { angle: d, value: p } = y(r, \"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), L = (Math.min(s, n) - S) / 2;\n if (L <= 0)\n return;\n const O = Bt().domain(this.fullDataNormalized.map((C) => C[d])).range([0, 2 * Math.PI].map((C) => C - Math.PI / 2)), k = ft(this.fullDataNormalized.map((C) => C[p])), I = Oe().domain([\n k >= 0 ? 0 : k,\n jt(this.fullDataNormalized.map((C) => C[p]))\n ]).range([m, L]).nice(g), F = I.ticks(g), P = (C) => this.model.getFillColor(C), A = bn().angle((C) => O(C[d]) + Math.PI / 2).radius((C) => I(C[p])).curve(En), w = this.uniqueKeys.map((C) => {\n const R = this.getLabelDimensions(C).width, _ = Dn(\n O(C),\n L\n );\n return R + _;\n }), D = {\n x: jt(w) + 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((R) => ({ [d]: R, [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 (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\n name: \"radar_y_axes_enter\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\"d\", (_) => A(W(_)))\n ),\n (C) => C.call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\n name: \"radar_y_axes_update\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\"transform\", `translate(${D.x}, ${D.y})`).attr(\"d\", (_) => A(W(_)))\n ),\n (C) => C.call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\n name: \"radar_y_axes_exit\",\n animate: e\n })\n ).attr(\"d\", (_) => A(W(_))).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\", (R) => `x-axis-${we(R)}`).attr(\"stroke-dasharray\", \"0\").attr(\"x1\", (R) => Y(O(R), 0, D).x).attr(\"y1\", (R) => Y(O(R), 0, D).y).attr(\"x2\", (R) => Y(O(R), 0, D).x).attr(\"y2\", (R) => Y(O(R), 0, D).y).call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\n name: \"radar_x_axes_enter\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\"x1\", (_) => Y(O(_), I.range()[0], D).x).attr(\"y1\", (_) => Y(O(_), I.range()[0], D).y).attr(\"x2\", (_) => Y(O(_), I.range()[1], D).x).attr(\"y2\", (_) => Y(O(_), I.range()[1], D).y)\n ),\n (C) => C.call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\n name: \"radar_x_axes_update\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\"x1\", (_) => Y(O(_), I.range()[0], D).x).attr(\"y1\", (_) => Y(O(_), I.range()[0], D).y).attr(\"x2\", (_) => Y(O(_), I.range()[1], D).x).attr(\"y2\", (_) => Y(O(_), I.range()[1], D).y)\n ),\n (C) => C.call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\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((R) => R).attr(\"opacity\", 0).attr(\n \"x\",\n (R) => Y(O(R), I.range()[1] + h, D).x\n ).attr(\n \"y\",\n (R) => Y(O(R), I.range()[1] + h, D).y\n ).style(\"text-anchor\", (R) => Xt(O(R)).textAnchor).style(\n \"dominant-baseline\",\n (R) => Xt(O(R)).dominantBaseline\n ).call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\n name: \"radar_x_labels_enter\",\n animate: e\n })\n ).attr(\"opacity\", 1)\n ),\n (C) => C.call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\n name: \"radar_x_labels_update\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\n \"x\",\n (_) => Y(O(_), I.range()[1] + h, D).x\n ).attr(\n \"y\",\n (_) => Y(O(_), I.range()[1] + h, D).y\n ).end().finally(() => {\n const _ = y(r, \"radar\", \"alignment\"), be = this.getAlignmentXOffset(_, t, this.getParent());\n t.attr(\"x\", be);\n })\n ),\n (C) => C.call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\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 (R) => this.model.getColorClassName({\n classNameTypes: [$.FILL, $.STROKE],\n dataGroupName: R.name,\n originalClassName: \"blob\"\n })\n ).attr(\"role\", U.GRAPHICS_SYMBOL).attr(\"aria-label\", (R) => R.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\", (R) => P(R.name)).style(\"fill-opacity\", Ee.opacity.selected).style(\"stroke\", (R) => P(R.name)).call((R) => {\n const _ = R.transition().call(\n (be) => this.services.transitions.setupTransition({\n transition: be,\n name: \"radar_blobs_enter\",\n animate: e\n })\n );\n e && _.delay(() => Math.random() * 30).attr(\"transform\", `translate(${D.x}, ${D.y})`), _.attr(\"opacity\", 1).attr(\"d\", (be) => A(be.data));\n }),\n (C) => (C.attr(\n \"class\",\n (R) => this.model.getColorClassName({\n classNameTypes: [$.FILL, $.STROKE],\n dataGroupName: R.name,\n originalClassName: \"blob\"\n })\n ).style(\"fill\", (R) => P(R.name)).style(\"stroke\", (R) => P(R.name)), C.call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\n name: \"radar_blobs_update\",\n animate: e\n })\n ).attr(\"opacity\", 1).attr(\"transform\", `translate(${D.x}, ${D.y})`).attr(\"d\", (_) => A(_.data))\n ), C),\n (C) => C.call((R) => {\n const _ = R.transition().call(\n (be) => this.services.transitions.setupTransition({\n transition: be,\n name: \"radar_blobs_exit\",\n animate: e\n })\n );\n e && _.delay(() => Math.random() * 30).attr(\n \"transform\",\n () => `translate(${D.x}, ${D.y}) scale(${1 + Math.random() * 0.35})`\n ), _.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\", (R) => R[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(O(C[d]), I(C[p]), D).x).attr(\"cy\", (C) => Y(O(C[d]), I(C[p]), D).y).attr(\"r\", 0).attr(\"opacity\", 0).style(\"fill\", (C) => P(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\", I.range()[1]).attr(\"height\", b).style(\"fill\", \"red\").style(\"fill-opacity\", 0).attr(\"transform\", (C) => `rotate(${_n(O(C))}, ${D.x}, ${D.y})`), E.appendOrSelect(t, \"g.y-labels\").attr(\"role\", U.GROUP).selectAll(\"text\").data(tt(F)).join(\n (C) => C.append(\"text\").attr(\"opacity\", 0).text((R) => R).attr(\n \"x\",\n (R) => Y(-Math.PI / 2, I(R), D).x + u\n ).attr(\"y\", (R) => Y(-Math.PI / 2, I(R), D).y).style(\"text-anchor\", \"start\").style(\"dominant-baseline\", \"middle\").call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\n name: \"radar_y_labels_enter\",\n animate: e\n })\n ).attr(\"opacity\", 1)\n ),\n (C) => C.call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\n name: \"radar_y_labels_update\",\n animate: e\n })\n ).text((_) => _).attr(\"opacity\", 1).attr(\n \"x\",\n (_) => Y(-Math.PI / 2, I(_), D).x + u\n ).attr(\"y\", (_) => Y(-Math.PI / 2, I(_), D).y)\n ),\n (C) => C.call(\n (R) => R.transition().call(\n (_) => this.services.transitions.setupTransition({\n transition: _,\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)}`), r = 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\"), r.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)}`), r = e.parent.selectAll(`.dots circle.${we(n)}`);\n i.classed(\"hovered\", !1).attr(\"stroke-dasharray\", \"0\"), r.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 Hc extends Ht {\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(), r = n.selectAll(\"path.bar\").data(a, (c) => c[s]);\n r.exit().attr(\"opacity\", 0).remove(), r.enter().append(\"path\").attr(\"opacity\", 0).merge(r).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 T = this.services.cartesianScales.getRangeScale().domain()[0];\n m = this.services.cartesianScales.getRangeValue(Math.max(0, T)), 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 Uc extends lr {\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 zc 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), r = this.model.getStackedData({\n percentage: i,\n groups: this.configs.groups\n }), l = y(r, 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(r, (g) => y(g, 0, a));\n this.areaGenerator = Dt().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(r, (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 Fc extends Ht {\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(), r = t.selectAll(\"g.bars\").data(a, (c) => y(c, 0, n));\n r.exit().attr(\"opacity\", 0).remove(), r.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 Wc extends Gt {\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), r = this.model.getStackedData({\n groups: this.configs.groups,\n percentage: i\n }), l = s.selectAll(\"g.dots\").data(r, (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 }), r = [];\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 && r.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 r.find((p) => p[n] == l[n] && p[c] == l[c] && p[d] == l[d]) !== void 0;\n });\n }\n}\nconst Ae = 6;\nclass jc 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(), r = y(a, \"tree\", \"rootTitle\") || \"Tree\", l = this.getMockLabelWidth(t, r), 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 = $t({\n name: r,\n children: i\n }), u = 10, g = s / 6, m = (O) => {\n const k = h.descendants().reverse(), I = h.links();\n let F = h, P = h;\n h.eachBefore((N) => {\n N.x < F.x && (F = N), N.x > P.x && (P = N);\n });\n const A = P.x - F.x, w = 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 = L.selectAll(\"g\").data(k, (N) => N.id), D = this, X = G.enter().append(\"g\").attr(\"transform\", () => `translate(${O.y0},${O.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(w).attr(\"transform\", (N) => `translate(${N.y},${N.x})`).attr(\"fill-opacity\", 1).attr(\"stroke-opacity\", 1), G.exit().transition(w).remove().attr(\"transform\", () => `translate(${O.y},${O.x})`).attr(\"fill-opacity\", 0).attr(\"stroke-opacity\", 0);\n const re = M.selectAll(\"path\").data(I, (N) => N.target.id), W = re.enter().append(\"path\").attr(\"d\", () => {\n const N = { x: O.x0, y: O.y0 };\n return T({ source: N, target: N });\n });\n re.merge(W).transition(w).attr(\"d\", T), re.exit().transition(w).remove().attr(\"d\", () => {\n const N = { x: O.x, y: O.y };\n return T({ 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\") === Bn.DENDROGRAM ? Sn().size([\n n,\n s - d - v * Ae - l\n ]) : xn().nodeSize([u, g]).size([\n n,\n s - d - v * Ae - l\n ]), T = On().x((O) => O.y).y((O) => O.x);\n h.x0 = g / 2, h.y0 = 0, h.descendants().forEach((O, k) => {\n O.id = k, O._children = O.children;\n }), S(h), t.attr(\"viewBox\", [-p.left, -p.top, s, u]).style(\"user-select\", \"none\");\n const M = t.append(\"g\").attr(\"class\", \"links\"), L = t.append(\"g\").attr(\"class\", \"nodes\");\n m(h);\n }\n}\nvar br = \"#000000\", Er = \"#ffffff\", Sr = \"#fcf4d6\", xr = \"#fddc69\", Or = \"#f1c21b\", Tr = \"#d2a106\", Lr = \"#b28600\", wr = \"#8e6a00\", Mr = \"#684e00\", Ar = \"#483700\", Cr = \"#302400\", kr = \"#1c1500\", Ir = {\n 10: Sr,\n 20: xr,\n 30: Or,\n 40: Tr,\n 50: Lr,\n 60: wr,\n 70: Mr,\n 80: Ar,\n 90: Cr,\n 100: kr\n}, Rr = \"#fff2e8\", Dr = \"#ffd9be\", _r = \"#ffb784\", Pr = \"#ff832b\", Vr = \"#eb6200\", Br = \"#ba4e00\", $r = \"#8a3800\", Gr = \"#5e2900\", Nr = \"#3e1a00\", Hr = \"#231000\", Ur = {\n 10: Rr,\n 20: Dr,\n 30: _r,\n 40: Pr,\n 50: Vr,\n 60: Br,\n 70: $r,\n 80: Gr,\n 90: Nr,\n 100: Hr\n}, zr = \"#fff1f1\", Fr = \"#ffd7d9\", Wr = \"#ffb3b8\", jr = \"#ff8389\", Zr = \"#fa4d56\", Xr = \"#da1e28\", Yr = \"#a2191f\", qr = \"#750e13\", Kr = \"#520408\", Jr = \"#2d0709\", Qr = {\n 10: zr,\n 20: Fr,\n 30: Wr,\n 40: jr,\n 50: Zr,\n 60: Xr,\n 70: Yr,\n 80: qr,\n 90: Kr,\n 100: Jr\n}, eo = \"#fff0f7\", to = \"#ffd6e8\", so = \"#ffafd2\", no = \"#ff7eb6\", ao = \"#ee5396\", io = \"#d02670\", ro = \"#9f1853\", oo = \"#740937\", lo = \"#510224\", co = \"#2a0a18\", ho = {\n 10: eo,\n 20: to,\n 30: so,\n 40: no,\n 50: ao,\n 60: io,\n 70: ro,\n 80: oo,\n 90: lo,\n 100: co\n}, uo = \"#f6f2ff\", po = \"#e8daff\", go = \"#d4bbff\", mo = \"#be95ff\", fo = \"#a56eff\", vo = \"#8a3ffc\", yo = \"#6929c4\", bo = \"#491d8b\", Eo = \"#31135e\", So = \"#1c0f30\", xo = {\n 10: uo,\n 20: po,\n 30: go,\n 40: mo,\n 50: fo,\n 60: vo,\n 70: yo,\n 80: bo,\n 90: Eo,\n 100: So\n}, Oo = \"#edf5ff\", To = \"#d0e2ff\", Lo = \"#a6c8ff\", wo = \"#78a9ff\", Mo = \"#4589ff\", Ao = \"#0f62fe\", Co = \"#0043ce\", ko = \"#002d9c\", Io = \"#001d6c\", Ro = \"#001141\", Do = {\n 10: Oo,\n 20: To,\n 30: Lo,\n 40: wo,\n 50: Mo,\n 60: Ao,\n 70: Co,\n 80: ko,\n 90: Io,\n 100: Ro\n}, _o = \"#e5f6ff\", Po = \"#bae6ff\", Vo = \"#82cfff\", Bo = \"#33b1ff\", $o = \"#1192e8\", Go = \"#0072c3\", No = \"#00539a\", Ho = \"#003a6d\", Uo = \"#012749\", zo = \"#061727\", Fo = {\n 10: _o,\n 20: Po,\n 30: Vo,\n 40: Bo,\n 50: $o,\n 60: Go,\n 70: No,\n 80: Ho,\n 90: Uo,\n 100: zo\n}, Wo = \"#d9fbfb\", jo = \"#9ef0f0\", Zo = \"#3ddbd9\", Xo = \"#08bdba\", Yo = \"#009d9a\", qo = \"#007d79\", Ko = \"#005d5d\", Jo = \"#004144\", Qo = \"#022b30\", el = \"#081a1c\", tl = {\n 10: Wo,\n 20: jo,\n 30: Zo,\n 40: Xo,\n 50: Yo,\n 60: qo,\n 70: Ko,\n 80: Jo,\n 90: Qo,\n 100: el\n}, sl = \"#defbe6\", nl = \"#a7f0ba\", al = \"#6fdc8c\", il = \"#42be65\", rl = \"#24a148\", ol = \"#198038\", ll = \"#0e6027\", cl = \"#044317\", dl = \"#022d0d\", hl = \"#071908\", ul = {\n 10: sl,\n 20: nl,\n 30: al,\n 40: il,\n 50: rl,\n 60: ol,\n 70: ll,\n 80: cl,\n 90: dl,\n 100: hl\n}, pl = \"#f2f4f8\", gl = \"#dde1e6\", ml = \"#c1c7cd\", fl = \"#a2a9b0\", vl = \"#878d96\", yl = \"#697077\", bl = \"#4d5358\", El = \"#343a3f\", Sl = \"#21272a\", xl = \"#121619\", Ol = {\n 10: pl,\n 20: gl,\n 30: ml,\n 40: fl,\n 50: vl,\n 60: yl,\n 70: bl,\n 80: El,\n 90: Sl,\n 100: xl\n}, Tl = \"#f4f4f4\", Ll = \"#e0e0e0\", wl = \"#c6c6c6\", Ml = \"#a8a8a8\", Al = \"#8d8d8d\", Cl = \"#6f6f6f\", kl = \"#525252\", Il = \"#393939\", Rl = \"#262626\", Dl = \"#161616\", _l = {\n 10: Tl,\n 20: Ll,\n 30: wl,\n 40: Ml,\n 50: Al,\n 60: Cl,\n 70: kl,\n 80: Il,\n 90: Rl,\n 100: Dl\n}, Pl = \"#f7f3f2\", Vl = \"#e5e0df\", Bl = \"#cac5c4\", $l = \"#ada8a8\", Gl = \"#8f8b8b\", Nl = \"#726e6e\", Hl = \"#565151\", Ul = \"#3c3838\", zl = \"#272525\", Fl = \"#171414\", Wl = {\n 10: Pl,\n 20: Vl,\n 30: Bl,\n 40: $l,\n 50: Gl,\n 60: Nl,\n 70: Hl,\n 80: Ul,\n 90: zl,\n 100: Fl\n}, ys = {\n black: {\n 100: br\n },\n blue: Do,\n coolGray: Ol,\n cyan: Fo,\n gray: _l,\n green: ul,\n magenta: ho,\n orange: Ur,\n purple: xo,\n red: Qr,\n teal: tl,\n warmGray: Wl,\n white: {\n 0: Er\n },\n yellow: Ir\n};\nconst jl = (o) => {\n if (!o)\n return null;\n for (const e of Object.keys(ys)) {\n const t = ys[e];\n for (const s of Object.keys(t))\n if (t[+s] === o)\n return s;\n }\n return null;\n}, bs = function() {\n const o = x(this.parentNode).select(\"rect.leaf\"), e = getComputedStyle(o.node(), null).getPropertyValue(\n \"fill\"\n ), t = As(e);\n let s;\n if (t && (s = jl(t ? t.hex() : null)), s == null) {\n const n = Ms(t).l;\n s = Math.abs(n * 100 - 100);\n }\n return s > 50 ? \"white\" : \"black\";\n};\nlet Zl = 0;\nclass Zc 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: r } = E.getSVGElementSize(t, {\n useAttrs: !0\n }), l = $t({\n name: n.title || \"Treemap\",\n children: s\n }).sum((m) => m.value).sort((m, b) => b.value - m.value), c = Tn().size([i, r]).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\", () => Zl++).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 = Ms(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\", bs).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\", bs),\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 (r) => e.services.transitions.setupTransition({\n transition: r,\n name: \"graph_element_mouseover_fill_update\"\n })\n ).style(\"fill\", (r) => {\n const l = e.model.getFillColor(r.parent.data.name);\n return l && (a = l), As(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 Xc 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: r, 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 = zn().size([d, p]).words(\n n.map(function(g) {\n const m = g[r];\n if (typeof g[r] != \"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, r = i ? tt(n) : [1, 1];\n return Oe().domain(r).range(i ? t.wordCloud.fontSizeRange(a, e) : [4, 4]);\n }\n addEventListeners() {\n const e = this.getOptions(), { groupMapsTo: t } = e.data, s = this, n = vt((a) => {\n const i = s.parent.selectAll(\"text.word\").transition(\"wordcloud-word-mouse-highlight\").call(\n (r) => s.services.transitions.setupTransition({\n transition: r,\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 r = this;\n n(r), 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: r,\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 r = x(this);\n s.services.events.dispatchEvent(f.WordCloud.WORD_MOUSEMOVE, {\n element: r,\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 r = x(this);\n n(null), s.services.events.dispatchEvent(f.WordCloud.WORD_MOUSEOUT, {\n event: a,\n element: r,\n datum: i\n }), s.services.events.dispatchEvent(f.Tooltip.HIDE, {\n hoveredElement: r\n });\n });\n }\n}\nclass Xl 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(), r = {}, l = {};\n Object.keys(i).forEach((v) => {\n typeof i[v].value == \"number\" ? r[v] = i[v] : l[v] = i[v];\n });\n const c = mr(a, Object.values(l)), d = ur(a, {\n // We need to specify that we are converting geometry collections\n type: \"GeometryCollection\",\n geometries: Object.values(r)\n }), p = n.fitSize([t, s], d), h = Ln().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 _t()([\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 = Rn();\n break;\n case xe.geoAlbers:\n e = In();\n break;\n case xe.geoConicEqualArea:\n e = kn();\n break;\n case xe.geoConicEquidistant:\n e = Cn();\n break;\n case xe.geoEquirectangular:\n e = An();\n break;\n case xe.geoMercator:\n e = Mn();\n break;\n case xe.geoNaturalEarth1:\n e = wn();\n break;\n default:\n throw new Error(\"Projection is not supported.\");\n }\n return e;\n }\n}\nclass Yc extends Xl {\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(We.CHOROPLETH_MOUSEOVER, {\n event: s,\n element: a,\n datum: t[n.properties.NAME]\n }), e.services.events.dispatchEvent(ut.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(We.CHOROPLETH_MOUSEMOVE, {\n event: s,\n element: x(this),\n datum: t[n.properties.NAME]\n }), e.services.events.dispatchEvent(ut.MOVE, {\n event: s\n });\n }).on(\"click\", function(s, n) {\n e.services.events.dispatchEvent(We.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(We.CHOROPLETH_MOUSEOUT, {\n event: s,\n element: a,\n datum: t[n.properties.NAME]\n }), e.services.events.dispatchEvent(ut.HIDE, {\n event: s,\n hoveredElement: a\n });\n });\n }\n}\nexport {\n Uc as $,\n Ys as A,\n bc as B,\n ar as C,\n yc as D,\n Yc as E,\n Rc as F,\n hc as G,\n or as H,\n Dc as I,\n _c as J,\n Pc as K,\n nr as L,\n Ic as M,\n Vc as N,\n Bc as O,\n pc as P,\n $c as Q,\n Xs as R,\n Ec as S,\n ts as T,\n Gc as U,\n yr as V,\n Nc as W,\n Gt as X,\n Hc as Y,\n fc as Z,\n lr as _,\n ps as a,\n zc as a0,\n Fc as a1,\n Wc as a2,\n jc as a3,\n Zc as a4,\n Xc as a5,\n ss as a6,\n nc as a7,\n z as a8,\n Da as a9,\n gc as b,\n rc as c,\n Tc as d,\n Lc as e,\n Oc as f,\n xc as g,\n Sc as h,\n wc as i,\n Mc as j,\n cc as k,\n ic as l,\n kc as m,\n Xl as n,\n lc as o,\n ac as p,\n oc as q,\n sr as r,\n Ac as s,\n Cc as t,\n ir as u,\n dc as v,\n uc as w,\n Ht as x,\n mc as y,\n vc as z\n};\n//# sourceMappingURL=choropleth-S04OahB3.mjs.map\n","import { select as te, max as ne, extent as $, scaleTime as se, scaleLog as ie, scaleBand as oe, scaleLinear as ae, curveLinear as re, curveLinearClosed as ce, curveBasis as le, curveBasisClosed as ue, curveBasisOpen as me, curveBundle as de, curveCardinal as he, curveCardinalClosed as ge, curveCardinalOpen as fe, curveCatmullRom as pe, curveCatmullRomClosed as xe, curveCatmullRomOpen as De, curveMonotoneX as ye, curveMonotoneY as Ae, curveNatural as Oe, curveStep as ve, curveStepAfter as Te, curveStepBefore as Me } from \"d3\";\nimport { S as y, D as Pe } from \"./angle-utils-DHfDhGau.mjs\";\nimport { _ as S, e as l, i as N, S as d } from \"./enums-tMKLWMMm.mjs\";\nimport { C as Se, D as H, m as c, E as _, F as g, G as B, H as Be, I as j, J as K, K as z, v as Re, L as Le } from \"./color-scale-utils-7ngqnWVI.mjs\";\nfunction Ee(i) {\n var e = i == null ? 0 : i.length;\n return e ? Se(i, 1) : [];\n}\nclass We extends y {\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 || H;\n e && (s = e.x, o = e.y, a = 2);\n const { width: u, height: h } = Pe.getSVGElementSize(this.services.domUtils.getHolder(), {\n useClientDimensions: !0\n });\n t.transition().duration(r.duration).ease(r.ease).attr(\n \"transform\",\n `translate(${u / 2}, ${h / 2}) scale(${a}) translate(${-s},${-o})`\n ), this.services.events.dispatchEvent(S.CanvasZoom.CANVAS_ZOOM_IN, {\n element: te(e)\n });\n }\n zoomOut(e, t) {\n const n = t || H;\n e.transition().duration(n.duration).ease(n.ease).attr(\"transform\", \"\"), this.services.events.dispatchEvent(S.CanvasZoom.CANVAS_ZOOM_OUT);\n }\n}\nclass qe extends y {\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 Je extends y {\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 Qe extends y {\n constructor() {\n super(...arguments), this.pendingTransitions = {};\n }\n init() {\n var e;\n (e = this.services.events) == null || e.addEventListener(S.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(c(_, t, \"duration\") || _.default.duration);\n }\n getPendingTransitions() {\n return this.pendingTransitions;\n }\n}\nfunction v(i, e) {\n const t = g(i), n = g(e), s = t.getTime() - n.getTime();\n return s < 0 ? -1 : s > 0 ? 1 : s;\n}\nfunction be(i, e) {\n const t = g(i), n = g(e);\n return t.getFullYear() - n.getFullYear();\n}\nfunction Ie(i, e) {\n const t = g(i), n = g(e), s = v(t, n), o = Math.abs(be(t, n));\n t.setFullYear(1584), n.setFullYear(1584);\n const a = v(t, n) === -s, r = s * (o - +a);\n return r === 0 ? 0 : r;\n}\nfunction b(i, e) {\n const t = g(i);\n if (isNaN(e))\n return B(i, NaN);\n if (!e)\n return t;\n const n = t.getDate(), s = B(i, t.getTime());\n s.setMonth(t.getMonth() + e + 1, 0);\n const o = s.getDate();\n return n >= o ? s : (t.setFullYear(\n s.getFullYear(),\n s.getMonth(),\n n\n ), t);\n}\nfunction W(i, e) {\n return b(i, e * 12);\n}\nfunction Ce(i, e) {\n return W(i, -e);\n}\nfunction Ze(i, e) {\n const t = g(i), n = g(e), s = t.getFullYear() - n.getFullYear(), o = t.getMonth() - n.getMonth();\n return s * 12 + o;\n}\nfunction we(i) {\n const e = g(i);\n return e.setHours(23, 59, 59, 999), e;\n}\nfunction Fe(i) {\n const e = g(i), t = e.getMonth();\n return e.setFullYear(e.getFullYear(), t + 1, 0), e.setHours(23, 59, 59, 999), e;\n}\nfunction Ve(i) {\n const e = g(i);\n return +we(e) == +Fe(e);\n}\nfunction Ne(i, e) {\n const t = g(i), n = g(e), s = v(t, n), o = Math.abs(\n Ze(t, n)\n );\n let 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 let r = v(t, n) === -s;\n Ve(g(i)) && o === 1 && v(i, n) === 1 && (r = !1), a = s * (o - Number(r));\n }\n return a === 0 ? 0 : a;\n}\nfunction He(i, e) {\n return b(i, -e);\n}\nfunction _e(i, e) {\n const t = g(i), n = g(e), s = Y(t, n), o = Math.abs(Be(t, n));\n t.setDate(t.getDate() - s * o);\n const a = +(Y(t, n) === -s), r = s * (o - a);\n return r === 0 ? 0 : r;\n}\nfunction Y(i, e) {\n const 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 q(i, e) {\n const t = g(i);\n return isNaN(e) ? B(i, NaN) : (e && t.setDate(t.getDate() + e), t);\n}\nfunction ze(i, e) {\n return q(i, -e);\n}\nfunction I(i, e) {\n return g(i).getTime() - g(e).getTime();\n}\nfunction C(i) {\n return i ? Math[i] : Math.trunc;\n}\nfunction Ye(i, e, t) {\n const n = I(i, e) / j;\n return C(t == null ? void 0 : t.roundingMethod)(n);\n}\nfunction Z(i, e) {\n const t = +g(i);\n return B(i, t + e);\n}\nfunction J(i, e) {\n return Z(i, e * j);\n}\nfunction Xe(i, e) {\n return J(i, -e);\n}\nfunction X(i, e, t) {\n const n = I(i, e) / K;\n return C(t == null ? void 0 : t.roundingMethod)(n);\n}\nfunction L(i, e) {\n return Z(i, e * K);\n}\nfunction G(i, e) {\n return L(i, -e);\n}\nfunction k(i, e, t) {\n const n = I(i, e) / 1e3;\n return C(t == null ? void 0 : t.roundingMethod)(n);\n}\nfunction E(i, e) {\n return Z(i, e * 1e3);\n}\nfunction U(i, e) {\n return E(i, -e);\n}\nclass et extends y {\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 = c(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 = c(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 c(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 === l.BOTTOM || e === l.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(l).map(\n (t) => l[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 === l.LEFT || this.rangeAxisPosition === l.RIGHT) && (this.domainAxisPosition === l.BOTTOM || this.domainAxisPosition === l.TOP) ? this.orientation = N.VERTICAL : this.orientation = N.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 = c(e, \"axes\");\n ((n = t[l.LEFT]) != null && n.correspondingDatasets && t[l.RIGHT] || (s = t[l.RIGHT]) != null && s.correspondingDatasets && t[l.LEFT] || (o = t[l.TOP]) != null && o.correspondingDatasets && t[l.BOTTOM] || (a = t[l.BOTTOM]) != null && a.correspondingDatasets && t[l.TOP]) && (this.dualAxes = !0);\n }\n getCustomDomainValuesByposition(e) {\n const t = c(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 = [l.BOTTOM, l.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 = [l.LEFT, l.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 = c(o, \"axes\")[n], { mapsTo: u } = r, h = c(s, u) !== null ? s[u] : s;\n let p;\n switch (t) {\n case d.LABELS:\n p = e(h) + e.step() / 2;\n break;\n case d.TIME:\n p = e(new Date(h));\n break;\n default:\n p = e(h);\n }\n return p;\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 = c(o, \"axes\")[n], { mapsTo: u } = r, h = e[u] !== void 0 ? e[u] : e;\n return [\n s(\n c(e, t.upperBoundMapsTo) !== null ? e[t.upperBoundMapsTo] : h\n ),\n s(\n c(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 c(t, \"axes\", this.getDomainAxisPosition({ datum: e }), \"mapsTo\");\n }\n getRangeIdentifier(e) {\n const t = this.model.getOptions();\n return c(t, \"axes\", this.getRangeAxisPosition({ datum: e }), \"mapsTo\");\n }\n extendsDomain(e, t) {\n const n = this.model.getOptions(), s = c(n, \"axes\", e);\n if (s.scaleType === d.TIME) {\n const o = c(n, \"timeScale\", \"addSpaceOnEdges\");\n return Ge(t, o);\n } else\n return ke(t, z.paddingRatio, s.scaleType);\n }\n findVerticalAxesPositions() {\n const e = this.model.getOptions(), t = c(e, \"axes\"), n = this.isDualAxes();\n return c(t, l.LEFT) === null && c(t, l.RIGHT) !== null || c(t, l.RIGHT, \"main\") === !0 || n && c(t, l.LEFT, \"correspondingDatasets\") ? {\n primary: l.RIGHT,\n secondary: l.LEFT\n } : { primary: l.LEFT, secondary: l.RIGHT };\n }\n findHorizontalAxesPositions() {\n const e = this.model.getOptions(), t = c(e, \"axes\"), n = this.isDualAxes();\n return c(t, l.BOTTOM) === null && c(t, l.TOP) !== null || c(t, l.TOP, \"main\") === !0 || n && c(t, l.BOTTOM, \"correspondingDatasets\") ? {\n primary: l.TOP,\n secondary: l.BOTTOM\n } : { primary: l.BOTTOM, secondary: l.TOP };\n }\n findDomainAndRangeAxesPositions(e, t) {\n const n = this.model.getOptions(), s = c(n, \"axes\", e.primary), o = c(n, \"axes\", t.primary), a = s.scaleType || d.LINEAR, r = o.scaleType || d.LINEAR, u = {\n primaryDomainAxisPosition: null,\n secondaryDomainAxisPosition: null,\n primaryRangeAxisPosition: null,\n secondaryRangeAxisPosition: null\n };\n return u.primaryDomainAxisPosition = t.primary, u.primaryRangeAxisPosition = e.primary, u.secondaryDomainAxisPosition = t.secondary, u.secondaryRangeAxisPosition = e.secondary, (!(r === d.LABELS || r === d.TIME) && a === d.LABELS || a === d.TIME) && (u.primaryDomainAxisPosition = e.primary, u.primaryRangeAxisPosition = t.primary, u.secondaryDomainAxisPosition = e.secondary, u.secondaryRangeAxisPosition = t.secondary), u;\n }\n getScaleDomain(e) {\n const t = this.model.getOptions(), n = c(t, \"axes\", e), s = c(t, \"bounds\"), { includeZero: o } = n, a = c(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, ne(m, (f) => f.length)];\n } else if (n.limitDomainToBins) {\n const { bins: m } = this.model.getBinConfigurations(), f = this.model.getStackKeys({ bins: m });\n return [f[0].split(\":\")[0], f[f.length - 1].split(\":\")[1]];\n }\n const r = this.model.getDisplayData(), { extendLinearDomainBy: u, mapsTo: h, percentage: p, thresholds: D } = n, { reference: A, compareTo: T } = z.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 (p)\n return [0, 100];\n if (n && a === d.LABELS)\n return Re(r.map((m) => m[h]));\n let M, x;\n const R = this.model.getDataGroupNames();\n if (a === d.LABELS_RATIO)\n return r.map((m) => `${m[A]}/${m[T]}`);\n if (a === d.TIME)\n x = r.map((m) => +new Date(m[h]));\n else if (s && t.axes)\n x = [], r.forEach((m) => {\n x.push(m[h]), m[s.upperBoundMapsTo] && x.push(m[s.upperBoundMapsTo]), m[s.lowerBoundMapsTo] && x.push(m[s.lowerBoundMapsTo]);\n });\n else if (n.stacked === !0 && R && e === this.getRangeAxisPosition()) {\n const { groupMapsTo: m } = t.data, f = this.model.getDataValuesGroupedByKeys({\n groups: R\n }), Q = r.filter(\n (O) => !R.includes(O[m])\n ), w = [];\n f.forEach((O) => {\n const { ...ee } = O;\n let F = 0, V = 0;\n Object.values(ee).forEach((P) => {\n isNaN(P) || (P < 0 ? V += P : F += P);\n }), w.push([V, F]);\n }), x = [\n ...Ee(w),\n ...Q.map((O) => O[h])\n ];\n } else\n x = [], r.forEach((m) => {\n const f = m[h];\n Array.isArray(f) && f.length === 2 ? (x.push(f[0]), x.push(f[1])) : (u && x.push(Math.max(m[h], m[u])), x.push(f));\n });\n return a !== d.TIME && a !== d.LOG && o && x.push(0), D && D.length > 0 && D.forEach((m) => {\n const f = c(m, \"value\");\n f !== null && x.push(f);\n }), M = $(x), M = this.extendsDomain(e, M), M;\n }\n createScale(e) {\n const t = this.model.getOptions(), n = c(t, \"axes\", e);\n if (!n)\n return null;\n const s = c(n, \"scaleType\") || d.LINEAR;\n this.scaleTypes[e] = s;\n let o;\n return s === d.TIME ? o = se() : s === d.LOG ? o = ie().base(n.base || 10) : s === d.LABELS || s === d.LABELS_RATIO ? o = oe() : o = ae(), o.domain(this.getScaleDomain(e)), o;\n }\n getHighestDomainThreshold() {\n const e = c(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, u) => u.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 = c(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 Ge(i, e) {\n const t = new Date(i[0]), n = new Date(i[1]);\n return Ie(n, t) > 1 ? [Ce(t, e), W(n, e)] : Ne(n, t) > 1 ? [He(t, e), b(n, e)] : _e(n, t) > 1 ? [ze(t, e), q(n, e)] : Ye(n, t) > 1 ? [Xe(t, e), J(n, e)] : X(n, t) > 30 ? [\n G(t, e * 30),\n L(n, e * 30)\n ] : X(n, t) > 1 ? [G(t, e), L(n, e)] : k(n, t) > 15 ? [\n U(t, e * 15),\n E(n, e * 15)\n ] : k(n, t) > 1 ? [U(t, e), E(n, e)] : [t, n];\n}\nfunction ke([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 tt extends y {\n constructor() {\n super(...arguments), this.curveTypes = {\n curveLinear: re,\n curveLinearClosed: ce,\n curveBasis: le,\n curveBasisClosed: ue,\n curveBasisOpen: me,\n curveBundle: de,\n curveCardinal: he,\n curveCardinalClosed: ge,\n curveCardinalOpen: fe,\n curveCatmullRom: pe,\n curveCatmullRomClosed: xe,\n curveCatmullRomOpen: De,\n curveMonotoneX: ye,\n curveMonotoneY: Ae,\n curveNatural: Oe,\n curveStep: ve,\n curveStepAfter: Te,\n curveStepBefore: Me\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 nt extends y {\n isZoomBarEnabled() {\n if (!this.services.cartesianScales || !c(this.model.getOptions(), \"zoomBar\", \"top\", \"enabled\"))\n return !1;\n this.services.cartesianScales.findDomainAndRangeAxes();\n const e = this.services.cartesianScales.getMainXAxisPosition(), t = c(\n this.model.getOptions(),\n \"axes\",\n e,\n \"scaleType\"\n );\n return e === l.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 = c(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 $(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(S.ZoomDomain.CHANGE, {\n newDomain: e\n }));\n }\n getZoomRatio() {\n return c(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 = c(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(), u = e.filter(\n (h) => new Date(h[r]) >= n[0] && new Date(h[r]) <= n[1]\n );\n if (u.length > 0)\n return u;\n }\n return e;\n }\n zoomIn(e = this.getZoomRatio()) {\n var T;\n const t = this.model.get(\"zoomDomain\"), n = Le.handleWidth, s = (T = this.services.cartesianScales) == null ? void 0 : T.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(), u = a - o, h = Math.min((r[1] - r[0]) / 2 * (e / 2), u / 2);\n let p = o + h, D = a - h;\n p >= D && (p = o + u / 2 - n / 2, D = a - u / 2 + n / 2);\n const A = [s.invert(p), s.invert(D)];\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), u = Math.max(s - r, a[0]), h = Math.min(o + r, a[1]), p = [n.invert(u), n.invert(h)];\n (t[0].valueOf() !== p[0].valueOf() || t[1].valueOf() !== p[1].valueOf()) && this.handleDomainChange(p);\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 = c(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 c(this.model.getOptions(), \"zoomBar\", e, \"loading\");\n }\n isZoomBarLocked(e) {\n return c(this.model.getOptions(), \"zoomBar\", e, \"locked\");\n }\n}\nexport {\n We as C,\n qe as E,\n Je as F,\n Qe as T,\n nt as Z,\n tt as a,\n et as b,\n Ee as f\n};\n//# sourceMappingURL=zoom-i_u9NbAF.mjs.map\n","import { M as Y, m as l, N as a, O as r, t as X, x as V } from \"./color-scale-utils-7ngqnWVI.mjs\";\nimport { T as Bt, Q as It, R as Ht, K as Gt, S as Vt, U as Ut, D as Nt, n as Zt, V as _t, y as zt, c as Wt, P as $t, W as jt, f as Kt, b as Xt, g as Jt, a as qt, d as Qt, X as Yt, u as eo, i as so, s as to, Y as oo, Z as no, _ as io, $ as ro, a0 as ao, a1 as ho, a2 as co, a4 as mo, a3 as lo, E as po, L as Co } from \"./color-scale-utils-7ngqnWVI.mjs\";\nimport { i as vo } from \"./index-Ez18Vgtt.mjs\";\nimport { C as Re, c as Te, A as be, B as Oe, a as fe, d as Se, e as Ae, P as xe, G as ye, H as De, b as Le, M as Fe, R as Pe, T as Me, f as ke, W as Be } from \"./wordcloud-eTGg6ZP6.mjs\";\nimport { _ as $, r as i, q as c, L as Z, y as A, t as U, e as j, S as Ie, u as K, F as p, l as R } from \"./enums-tMKLWMMm.mjs\";\nimport { A as wo, a as Eo, b as Ro, c as To, d as bo, f as Oo, B as fo, g as So, C as Ao, h as xo, i as yo, j as Do, k as Lo, m as Fo, n as Po, D as Mo, o as ko, G as Bo, p as Io, s as Ho, v as Go, M as Vo, w as Uo, P as No, x as Zo, R as _o, z as zo, H as Wo, T as $o, I as jo, J as Ko, K as Xo, N as Jo, O as qo, Q as Qo, U as Yo, V as en, W as sn, Z as tn, X as on, Y as nn } from \"./enums-tMKLWMMm.mjs\";\nimport { a9 as He, L as ee, l as Ge, r as _, T as z, a6 as g, a7 as L, u as se, p as W, C as Ve, a as Ue, q as Ne, o as Ze, c as _e, k as te, v as ze, b as d, G as w, R as B, P as k, w as oe, X as M, _ as C, y as We, Z as I, z as $e, D as je, m as ne, E as Ke, F as Xe, a0 as ie, a2 as re, S as N, Y as ae, K as he, a1 as ce, V as Je, I as qe, J as Qe, N as Ye, B as es, O as ss, $ as ts, Q as os, M as ns, U as is, W as rs, a3 as as, a4 as hs, a5 as cs } from \"./choropleth-S04OahB3.mjs\";\nimport { A as an, x as hn, a8 as cn, n as mn, H as ln, d as pn, e as dn, f as Cn, g as un, h as vn, i as gn, j as wn, s as En, t as Rn } from \"./choropleth-S04OahB3.mjs\";\nimport { C as ms, E as ls, F as ps, T as ds, b as Cs, a as us, Z as vs, f as gs } from \"./zoom-i_u9NbAF.mjs\";\nimport { D as ws, G as Es } from \"./angle-utils-DHfDhGau.mjs\";\nimport { S as bn, d as On, a as fn, p as Sn, b as An, r as xn } from \"./angle-utils-DHfDhGau.mjs\";\nimport \"d3\";\nimport \"./a11y-SOU26cr5.mjs\";\nimport \"./_baseEach-fTLS5z67.mjs\";\nimport \"d3-sankey\";\nimport \"d3-cloud\";\nfunction Rs(o, e, s) {\n var n = -1, t = o.length;\n e < 0 && (e = -e > t ? 0 : t + e), s = s > t ? t : s, s < 0 && (s += t), t = e > s ? 0 : s - e >>> 0, e >>>= 0;\n for (var h = Array(t); ++n < t; )\n h[n] = o[n + e];\n return h;\n}\nfunction Ts(o, e, s) {\n var n = o.length;\n return s = s === void 0 ? n : s, !e && s >= n ? o : Rs(o, e, s);\n}\nvar bs = \"\\\\ud800-\\\\udfff\", Os = \"\\\\u0300-\\\\u036f\", fs = \"\\\\ufe20-\\\\ufe2f\", Ss = \"\\\\u20d0-\\\\u20ff\", As = Os + fs + Ss, xs = \"\\\\ufe0e\\\\ufe0f\", ys = \"\\\\u200d\", Ds = RegExp(\"[\" + ys + bs + As + xs + \"]\");\nfunction me(o) {\n return Ds.test(o);\n}\nfunction Ls(o) {\n return o.split(\"\");\n}\nvar le = \"\\\\ud800-\\\\udfff\", Fs = \"\\\\u0300-\\\\u036f\", Ps = \"\\\\ufe20-\\\\ufe2f\", Ms = \"\\\\u20d0-\\\\u20ff\", ks = Fs + Ps + Ms, Bs = \"\\\\ufe0e\\\\ufe0f\", Is = \"[\" + le + \"]\", J = \"[\" + ks + \"]\", q = \"\\\\ud83c[\\\\udffb-\\\\udfff]\", Hs = \"(?:\" + J + \"|\" + q + \")\", 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 + \")*\", Us = ve + ue + Vs, Ns = \"(?:\" + [pe + J + \"?\", J, de, Ce, Is].join(\"|\") + \")\", Zs = RegExp(q + \"(?=\" + q + \")|\" + Ns + Us, \"g\");\nfunction _s(o) {\n return o.match(Zs) || [];\n}\nfunction zs(o) {\n return me(o) ? _s(o) : Ls(o);\n}\nfunction Ws(o) {\n return function(e) {\n e = Y(e);\n var s = me(e) ? zs(e) : void 0, n = s ? s[0] : e.charAt(0), t = s ? Ts(s, 1).join(\"\") : e.slice(1);\n return n[o]() + t;\n };\n}\nvar $s = Ws(\"toUpperCase\");\nconst js = $s;\nfunction Ks(o) {\n return js(Y(o).toLowerCase());\n}\nvar Xs = He(function(o, e, s) {\n return e = e.toLowerCase(), o + (s ? Ks(e) : e);\n});\nconst Js = Xs;\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((n) => {\n const t = this.services[n];\n this.services[n] = new t(this.model, this.services);\n }), this.services.events.addEventListener($.Model.UPDATE, (n) => {\n const t = !!l(n, \"detail\", \"animate\");\n this.update(t);\n }), this.model.setData(s.data), this.services.events.addEventListener($.Chart.RESIZE, () => {\n this.update(!1);\n }), this.components = this.getComponents(), this.update();\n }\n getComponents() {\n return console.error(\"getComponents() method is not implemented\"), [];\n }\n update(e = !0) {\n if (!this.components)\n return;\n Object.keys(this.services).forEach((t) => {\n this.services[t].update();\n }), this.components.forEach((t) => t.render(e));\n const s = this.services.transitions.getPendingTransitions(), n = Object.keys(s).map((t) => s[t].end().catch((m) => m));\n Promise.all(n).then(\n () => this.services.events.dispatchEvent($.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 n = this.model.getOptions(), t = l(n, \"toolbar\", \"enabled\"), h = {\n id: \"legend\",\n components: [new ee(this.model, this.services)],\n growth: i.PREFERRED\n }, m = l(n, \"canvasZoom\", \"enabled\");\n m && m === !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 }, F = {\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 ...t ? [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: l(s, \"graphFrameRenderType\") || A.SVG\n }, D = l(s, \"excludeLegend\") !== !0 && n.legend.enabled !== !1;\n let f = c.COLUMN;\n if (D) {\n const S = l(n, \"legend\", \"position\");\n S === \"left\" ? (f = c.ROW, n.legend.orientation || (n.legend.orientation = U.VERTICAL)) : S === \"right\" ? (f = c.ROW_REVERSE, n.legend.orientation || (n.legend.orientation = U.VERTICAL)) : S === \"bottom\" && (f = c.COLUMN_REVERSE);\n }\n const P = {\n id: \"spacer\",\n components: [new L(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: f\n }\n )\n ],\n growth: i.STRETCH\n }, E = [];\n if (b || t) {\n E.push(F);\n const S = {\n id: \"spacer\",\n components: [\n new L(this.model, this.services, t ? { size: 15 } : void 0)\n ],\n growth: i.PREFERRED\n };\n E.push(S);\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 n = this.model.getOptions(), t = l(n, \"zoomBar\", j.TOP, \"enabled\"), h = l(n, \"toolbar\", \"enabled\");\n this.services.cartesianScales.determineAxisDuality(), this.services.cartesianScales.findDomainAndRangeAxes(), this.services.cartesianScales.determineOrientation();\n const m = this.services.cartesianScales.getMainXAxisPosition(), b = l(n, \"axes\", m, \"scaleType\"), O = t && m === j.BOTTOM && b === Ie.TIME, x = this.services.zoom.isZoomBarLocked(j.TOP), F = !!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 }, f = {\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 Ue(this.model, this.services)\n ), e.push(new Ne(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 = l(s, \"legend\", \"enabled\") !== !1 && this.model.getOptions().legend.enabled !== !1;\n let S = c.COLUMN;\n if (E) {\n const G = l(this.model.getOptions(), \"legend\", \"position\");\n G === K.LEFT ? (S = c.ROW, this.model.getOptions().legend.orientation || (this.model.getOptions().legend.orientation = U.VERTICAL)) : G === K.RIGHT ? (S = c.ROW_REVERSE, this.model.getOptions().legend.orientation || (this.model.getOptions().legend.orientation = U.VERTICAL)) : G === K.BOTTOM && (S = c.COLUMN_REVERSE);\n }\n const ge = {\n id: \"spacer\",\n components: [new L(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: S\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 (F || h) {\n H.push(f);\n const G = {\n id: \"spacer\",\n components: [\n new L(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 ct 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 mt extends u {\n constructor(e, s) {\n super(e, s), this.model.setOptions(a(X(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 lt 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 pt 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 $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 dt extends u {\n constructor(e, s) {\n super(e, s), this.model = new fe(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 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 T {\n constructor(e, s) {\n super(e, s), this.model = new Se(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 n = this.model.getOptions(), t = l(n, \"toolbar\", \"enabled\"), h = !!this.model.getOptions().title, m = {\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 m,\n ...t ? [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 }, F = {\n id: \"graph-frame\",\n components: e,\n growth: i.STRETCH,\n renderType: A.SVG\n }, y = l(s, \"legend\", \"enabled\") !== !1 && this.model.getOptions().legend.enabled !== !1, D = c.COLUMN_REVERSE, f = {\n id: \"spacer\",\n components: [new L(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 ? [f] : [],\n F\n ],\n {\n direction: D\n }\n )\n ],\n growth: i.STRETCH\n }, v = [];\n if (h || t) {\n v.push(O);\n const E = {\n id: \"spacer\",\n components: [\n new L(this.model, this.services, t ? { 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 ut 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 Xe(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, N],\n [R.SIMPLE_BAR]: [ae],\n [R.GROUPED_BAR]: [he, I],\n [R.STACKED_BAR]: [ce, N]\n};\nclass vt extends u {\n constructor(e, s) {\n super(e, s);\n const n = a(r.comboChart, s.options);\n s.options.comboChartTypes || (console.error(\"No comboChartTypes defined for the Combo Chart!\"), n.comboChartTypes = [{ type: R.LINE, correspondingDatasets: [] }]), this.model.setOptions(n), this.init(e, s);\n }\n getGraphComponents() {\n const { comboChartTypes: e } = this.model.getOptions();\n let s = 0;\n const n = e.map((t) => {\n const h = t.type;\n let m;\n if (typeof t.type == \"string\") {\n if (!Object.keys(Q).includes(t.type))\n return console.error(\n `Invalid chart type \"${t.type}\" specified for combo chart. Please refer to the ComboChart tutorial for more guidance.`\n ), null;\n let b = !1;\n const O = `${Js(t.type)}Chart`;\n return m = V(\n {},\n r[O],\n this.model.getOptions(),\n t.options\n ), t.type === R.STACKED_AREA && (b = !0), Q[t.type].map(\n (x) => new x(this.model, this.services, {\n groups: t.correspondingDatasets,\n id: s++,\n options: m,\n stacked: b\n })\n );\n } else\n return m = V({}, this.model.getOptions(), t.options), new h(this.model, this.services, {\n groups: t.correspondingDatasets,\n id: s++,\n options: m\n });\n }).filter((t) => t !== null);\n return gs(n);\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 ), n = [\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(n);\n }\n}\nclass qs extends T {\n // TODO - Optimize the use of \"extending\"\n constructor(e, s, n = !1) {\n super(e, s), this.model = new xe(this.services), !n && (this.model.setOptions(a(r.pieChart, s.options)), this.init(e, s));\n }\n getComponents() {\n const e = [\n new Je(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 gt extends qs {\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 qe(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 wt 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 Et 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 Rt 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 n = this.model.getOptions(), t = l(n, \"toolbar\", \"enabled\");\n this.services.cartesianScales.determineAxisDuality(), this.services.cartesianScales.findDomainAndRangeAxes(), this.services.cartesianScales.determineOrientation();\n const h = !!this.model.getOptions().title, m = {\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 m,\n ...t ? [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 }, F = {\n id: \"graph-frame\",\n components: e,\n growth: i.STRETCH,\n renderType: A.SVG\n }, y = l(s, \"legend\", \"enabled\") !== !1 && this.model.getOptions().legend.enabled !== !1, D = c.COLUMN_REVERSE, f = {\n id: \"spacer\",\n components: [new L(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 ? [f] : [],\n F\n ],\n {\n direction: D\n }\n )\n ],\n growth: i.STRETCH\n }, v = [];\n if (h || t) {\n v.push(O);\n const E = {\n id: \"spacer\",\n components: [\n new L(this.model, this.services, t ? { 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 Tt extends u {\n constructor(e, s) {\n super(e, s), this.model = new Le(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 bt 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 Ot 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 t;\n super(e, s), this.model = new Fe(this.services);\n const n = (t = s.options.meter) != null && t.proportional ? V(X(r.proportionalMeterChart), s.options) : V(X(r.meterChart), s.options);\n this.model.setOptions(n), this.init(e, s);\n }\n getComponents() {\n const s = [\n ...l(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 L(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 ], n = [\n new g(this.model, this.services, s, {\n direction: c.COLUMN\n })\n ];\n return this.getChartComponents(n, {\n graphFrameRenderType: A.HTML\n });\n }\n}\nclass St 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 At 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 xt 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 yt 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 Dt 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 N(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 Ft 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 N(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 Pt 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 wo as Alignments,\n ze as Alluvial,\n ct as AlluvialChart,\n be as AlluvialChartModel,\n oe as Area,\n mt as AreaChart,\n Eo as AreaEvent,\n Ro as ArrowDirections,\n an as Axis,\n u as AxisChart,\n te as AxisChartsTooltip,\n To as AxisEvent,\n bo as AxisFlavor,\n j as AxisPositions,\n Oo as AxisTitleOrientations,\n hn as Bar,\n fo as BarEvent,\n es as BinnedRuler,\n We as Boxplot,\n lt as BoxplotChart,\n Oe as BoxplotChartModel,\n So as BoxplotEvent,\n $e as Bubble,\n pt as BubbleChart,\n je as Bullet,\n dt as BulletChart,\n fe as BulletChartModel,\n Ao as CalloutDirections,\n Ge as CanvasChartClip,\n ms as CanvasZoom,\n xo as CanvasZoomEvent,\n yo as CartesianOrientations,\n Cs as CartesianScales,\n T as Chart,\n Ue as ChartBrush,\n Ve as ChartClip,\n Do as ChartEvent,\n Re as ChartModel,\n Le as ChartModelBinned,\n Te as ChartModelCartesian,\n Lo as ChartTheme,\n R as ChartTypes,\n Ke as Choropleth,\n Se as ChoroplethModel,\n Xe as CirclePack,\n ut as CirclePackChart,\n Ae as CirclePackChartModel,\n Fo as ColorClassNameTypes,\n Po as ColorLegendType,\n ne as ColorScaleLegend,\n vt as ComboChart,\n cn as Component,\n us as Curves,\n ws as DOMUtils,\n Mo as DividerStatus,\n ko as DominantBaseline,\n qe as Donut,\n gt as DonutChart,\n ls as Events,\n Ct as ExperimentalChoroplethChart,\n ps as Files,\n Qe as Gauge,\n wt as GaugeChart,\n ye as GaugeChartModel,\n Bo as GaugeEvent,\n Io as GaugeTypes,\n mn as GeoProjection,\n Es as GradientUtils,\n w as Grid,\n he as GroupedBar,\n Et as GroupedBarChart,\n Ye as Heatmap,\n Rt as HeatmapChart,\n De as HeatmapModel,\n Ze as Highlight,\n ss as Histogram,\n Tt as HistogramChart,\n ln as HoverAxis,\n Z as LayoutAlignItems,\n g as LayoutComponent,\n c as LayoutDirection,\n i as LayoutGrowth,\n ee as Legend,\n Ho as LegendItemType,\n U as LegendOrientations,\n K as LegendPositions,\n k as Line,\n bt as LineChart,\n Go as LineEvent,\n os as Lollipop,\n Ot as LollipopChart,\n is as Meter,\n ft as MeterChart,\n Fe as MeterChartModel,\n ns as MeterTitle,\n W as Modal,\n Vo as ModalEvent,\n Uo as ModelEvent,\n Je as Pie,\n qs as PieChart,\n xe as PieChartModel,\n No as PieEvent,\n Zo as Projection,\n rs as Radar,\n St as RadarChart,\n Pe as RadarChartModel,\n _o as RadarEvent,\n A as RenderTypes,\n B as Ruler,\n Ie as ScaleTypes,\n M as Scatter,\n At as ScatterChart,\n zo as ScatterEvent,\n bn as Service,\n ae as SimpleBar,\n Dt as SimpleBarChart,\n C as Skeleton,\n ts as SkeletonLines,\n p as Skeletons,\n L as Spacer,\n ie as StackedArea,\n Lt as StackedAreaChart,\n ce as StackedBar,\n Ft as StackedBarChart,\n N as StackedRuler,\n re as StackedScatter,\n Wo as Statuses,\n Bt as TIME_INTERVALS,\n $o as TextAnchor,\n Ne as Threshold,\n jo as ThresholdEvent,\n Ko as TickRotations,\n _ as Title,\n z as Toolbar,\n Xo as ToolbarControlTypes,\n se as Tooltip,\n Jo as TooltipEvent,\n ds as Transitions,\n as as Tree,\n xt as TreeChart,\n Me as TreeChartModel,\n qo as TreeEvent,\n Qo as TreeTypes,\n hs as Treemap,\n yt as TreemapChart,\n ke as TreemapChartModel,\n Yo as TreemapEvent,\n en as TruncationTypes,\n d as TwoDimensionalAxes,\n cs as WordCloud,\n Pt as WordCloudChart,\n sn as WordCloudEvent,\n Be as WordCloudModel,\n I as ZeroLine,\n vs as Zoom,\n _e as ZoomBar,\n tn as ZoomBarTypes,\n on as ZoomDomainEvent,\n nn as ZoombarEvent,\n It as alluvial,\n Ht as area,\n pn as arrowLeft,\n dn as arrowRight,\n Gt as axis,\n Vt as baseTooltip,\n Ut as boxplot,\n Cn as buildBezierPathString,\n un as buildElbowPathString,\n vn as buildStraightPathString,\n Nt as canvasZoomSettings,\n Zt as carbonPrefix,\n gn as circle,\n _t as circlePack,\n zt as color,\n Wt as computeTimeIntervalName,\n $t as configurations,\n jt as defaultLegendAdditionalItems,\n On as degToRad,\n wn as diamond,\n fn as distanceBetweenPointOnCircAndVerticalDiameter,\n Kt as formatDateTillMilliSeconds,\n Xt as formatTick,\n Jt as getColorScale,\n qt as getDomain,\n Qt as getTimeformats,\n Yt as grid,\n eo as histogram,\n vo as interfaces,\n so as isTickPrimary,\n to as legend,\n oo as lines,\n no as meter,\n r as options,\n io as pie,\n Sn as polarToCartesianCoords,\n An as radToDeg,\n ro as radar,\n xn as radialLabelPlacement,\n ao as ruler,\n ho as spacers,\n En as square,\n Rn as tee,\n co as timeScale,\n mo as toolbar,\n lo as tooltips,\n po as transitions,\n Co as zoomBar\n};\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, onMounted, ref, watch, toRefs } from 'vue'\nimport type { Chart, ChartTabularData, ChartOptions } from '@carbon/charts'\n\nexport function chartFactory<T extends ChartOptions>(chartType: any, chartName: string) {\n return defineComponent({\n name: chartName,\n props: {\n data: {\n type: Object as () => ChartTabularData,\n required: true\n },\n options: {\n type: Object as () => T,\n required: true\n }\n },\n setup(props) {\n const chartDiv = ref<HTMLDivElement | null>(null)\n const chart = ref<Chart | null>(null)\n const { data, options } = toRefs(props)\n\n onMounted(() => {\n chart.value = new chartType(chartDiv.value, {\n data: data.value,\n options: options.value\n })\n })\n\n watch(data, (newData: ChartTabularData) => {\n chart.value?.model.setData(newData)\n }, { immediate: true })\n\n watch(options as T, (newOptions: T) => {\n chart.value?.model.setOptions(newOptions)\n })\n\n return { chart, chartDiv }\n },\n template: `<div ref=\"chartDiv\"></div>`\n })\n}\n","import { AlluvialChart, type AlluvialChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<AlluvialChartOptions>(AlluvialChart, 'CcvAlluvialChart')\n","import { AreaChart, type AreaChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<AreaChartOptions>(AreaChart, 'CcvAreaChart')\n","import { BoxplotChart, type BoxplotChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<BoxplotChartOptions>(BoxplotChart, 'CcvBoxplotChart')\n","import { BubbleChart, type BubbleChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<BubbleChartOptions>(BubbleChart, 'CcvBubbleChart')\n","import { BulletChart, type BulletChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<BulletChartOptions>(BulletChart, 'CcvBulletChart')\n","import { ExperimentalChoroplethChart as ChoroplethChart, type ChoroplethChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<ChoroplethChartOptions>(ChoroplethChart, 'ExperimentalCcvChoroplethChart')\n","import { CirclePackChart, type CirclePackChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<CirclePackChartOptions>(CirclePackChart, 'CcvCirclePackChart')\n","import { ComboChart, type ComboChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<ComboChartOptions>(ComboChart, 'CcvComboChart')\n","import { DonutChart, type DonutChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<DonutChartOptions>(DonutChart, 'CcvDonutChart')\n","import { GaugeChart, type GaugeChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<GaugeChartOptions>(GaugeChart, 'CcvGaugeChart')\n","import { GroupedBarChart, type BarChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<BarChartOptions>(GroupedBarChart, 'CcvGroupedBarChart')\n","import { HeatmapChart, type HeatmapChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<HeatmapChartOptions>(HeatmapChart, 'CcvHeatmapChart')\n","import { HistogramChart, type HistogramChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<HistogramChartOptions>(HistogramChart, 'CcvHistogramChart')\n","import { LineChart, type LineChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<LineChartOptions>(LineChart, 'CcvLineChart')\n","import { LollipopChart, type LollipopChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<LollipopChartOptions>(LollipopChart, 'CcvLollipopChart')\n","import { MeterChart, type MeterChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<MeterChartOptions>(MeterChart, 'CcvMeterChart')\n","import { PieChart, type PieChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<PieChartOptions>(PieChart, 'CcvPieChart')\n","import { RadarChart, type RadarChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<RadarChartOptions>(RadarChart, 'CcvRadarChart')\n","import { ScatterChart, type ScatterChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<ScatterChartOptions>(ScatterChart, 'CcvScatterChart')\n","import { SimpleBarChart, type BarChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<BarChartOptions>(SimpleBarChart, 'CcvSimpleBarChart')\n","import { StackedAreaChart, type StackedAreaChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<StackedAreaChartOptions>(StackedAreaChart, 'CcvStackedAreaChart')\n","import { StackedBarChart, type StackedBarChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<StackedBarChartOptions>(StackedBarChart, 'CcvStackedBarChart')\n","import { TreeChart, type TreeChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<TreeChartOptions>(TreeChart, 'CcvTreeChart')\n","import { TreemapChart, type TreemapChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<TreemapChartOptions>(TreemapChart, 'CcvTreemapChart')\n","import { WordCloudChart, type WorldCloudChartOptions } from '@carbon/charts'\nimport { chartFactory } from './chartFactory'\n\nexport default chartFactory<WorldCloudChartOptions>(WordCloudChart, 'CcvWordCloudChart')\n","import {\n\tCcvAlluvialChart,\n\tCcvAreaChart,\n\tCcvBoxplotChart,\n\tCcvBubbleChart,\n\tCcvBulletChart,\n\tCcvCirclePackChart,\n\tCcvComboChart,\n\tExperimentalCcvChoroplethChart,\n\tCcvDonutChart,\n\tCcvGaugeChart,\n\tCcvGroupedBarChart,\n\tCcvHeatmapChart,\n\tCcvHistogramChart,\n\tCcvLineChart,\n\tCcvLollipopChart,\n\tCcvMeterChart,\n\tCcvPieChart,\n\tCcvRadarChart,\n\tCcvScatterChart,\n\tCcvSimpleBarChart,\n\tCcvStackedAreaChart,\n\tCcvStackedBarChart,\n\tCcvTreeChart,\n\tCcvTreemapChart,\n\tCcvWordCloudChart\n} from './components'\n\nconst components = [\n\tCcvAlluvialChart,\n\tCcvAreaChart,\n\tCcvBoxplotChart,\n\tCcvBubbleChart,\n\tCcvBulletChart,\n\tExperimentalCcvChoroplethChart,\n\tCcvCirclePackChart,\n\tCcvComboChart,\n\tCcvDonutChart,\n\tCcvGaugeChart,\n\tCcvGroupedBarChart,\n\tCcvHeatmapChart,\n\tCcvHistogramChart,\n\tCcvLineChart,\n\tCcvLollipopChart,\n\tCcvMeterChart,\n\tCcvPieChart,\n\tCcvRadarChart,\n\tCcvScatterChart,\n\tCcvSimpleBarChart,\n\tCcvStackedAreaChart,\n\tCcvStackedBarChart,\n\tCcvTreeChart,\n\tCcvTreemapChart,\n\tCcvWordCloudChart\n]\n\n/*\n Allows the module to be used as a Vue plug-in, and has an install()\n method (which is called when the plug-in loads) that registers all the\n components unless an array of components to register is provided.\n*/\nexport default {\n\tinstall(app: any, options?: string[]) {\n\t\tfor (const component of components) {\n\t\t\tif (!options || options.includes(component.name)) {\n\t\t\t\tapp.component(component.name, component)\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*\n Allows import of individual components from the module, as an\n alternative to loading them all via a Vue plug-in.\n*/\nexport {\n\tCcvAlluvialChart,\n\tCcvAreaChart,\n\tCcvBoxplotChart,\n\tCcvBubbleChart,\n\tCcvBulletChart,\n\tExperimentalCcvChoroplethChart,\n\tCcvCirclePackChart,\n\tCcvComboChart,\n\tCcvDonutChart,\n\tCcvGaugeChart,\n\tCcvGroupedBarChart,\n\tCcvHeatmapChart,\n\tCcvHistogramChart,\n\tCcvLineChart,\n\tCcvLollipopChart,\n\tCcvMeterChart,\n\tCcvPieChart,\n\tCcvRadarChart,\n\tCcvScatterChart,\n\tCcvSimpleBarChart,\n\tCcvStackedAreaChart,\n\tCcvStackedBarChart,\n\tCcvTreeChart,\n\tCcvTreemapChart,\n\tCcvWordCloudChart\n}\n"],"names":["r","E","e","O","a","u","o","_","t","R","s","M","v","U","S","I","m","l","c","L","N","n","A","C","T","V","i","d","H","oE","D","g","b","f","K","h","F","w","P","k","G","X","z","W","B","q","Z","x","J","Q","Y","$","j","p","y","EE","rE","eE","OE","aE","uE","ascending","descending","bisector","compare1","compare2","delta","zero","left","lo","hi","mid","right","center","number","numbers","values","valueof","value","index","ascendingBisect","bisectRight","bisect","count","extent","min","max","Adder","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","tickIncrement","tickStep","nice","prestep","thresholdSturges","bin","domain","threshold","sturges","histogram","data","xz","x0","x1","tz","tn","bins","quickselect","sd","newLeft","newRight","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","get","set","copy","type","that","args","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","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","onAdd","options","selection_on","dispatchEvent","params","window","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","root","selection_selection","te$1","sourceEvent","et$4","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","rgbn","Rgb","rgba","hsla","rgbConvert","rgb","opacity","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","Hsl","hsl","m2","hsl2rgb","clamph","clampt","constant$5","linear","exponential","gamma","nogamma","interpolateRgb","rgbGamma","end","colorRgb","numberArray","isNumberArray","genericArray","nb","na","date$1","ws$1","object","reA","reB","one","interpolateString","bi","am","bm","bs","vn$1","date","yn$1","degrees","decompose","scaleX","scaleY","skewX","svgNode","parseCss","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","rotate","interpolateTransformCss","interpolateTransformSvg","gn$1","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","xy","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","w0","w1","n0","n1","e0","e1","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","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","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","Ln$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","kn","In$1","conicEqualArea","mercatorRaw","Mn$1","mercatorProjection","clipExtent","reclip","equirectangularRaw","An$1","conicEquidistantRaw","cy0","gy","nx","Cn$1","A1","A2","A3","A4","iterations","equalEarthRaw","l2","l6","fy","fpy","Rn$1","naturalEarth1Raw","phi4","wn$1","defaultSeparation","meanX","meanXReduce","maxY","maxYReduce","leafLeft","leafRight","Sn$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","place","intersects","score","circle","packSiblingsRandom","aa","sj","sk","pack","defaultRadius","mn$1","radiusLeaf","packChildrenRandom","translateChild","roundNode","treemapDice","nextLeft","nextRight","moveSubtree","wm","wp","shift","change","executeShifts","nextAncestor","vim","TreeNode","treeRoot","tree","xn$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","Tn$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","parseSpecifier","numberRe","percentRe","requoteRe","requote","dISO","dow","UTCdISO","timeFormat","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","timeWeek","timeSecond","constant$2","withPath","shape","Path","arcInnerRadius","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","x10","y10","x32","y32","cornerTangents","rc","ox","oy","x11","y11","cx0","cx1","cy1","dx0","dy0","dx1","dy1","Ne$3","innerRadius","outerRadius","cornerRadius","padRadius","startAngle","endAngle","padAngle","buffer","a01","a11","a10","da0","da1","ap","rp","rc0","rc1","oc","kc","lc","Linear","re$2","_t$1","defined","curve","curveLinear","pointX","pointY","defined0","Dt$3","x0z","y0z","arealine","fn$1","sortValues","sort","pie","arcs","curveRadialLinear","curveRadial","Radial","radial","lineRadial","bn$1","Bump","bumpX","linkSource","linkTarget","argv","linkHorizontal","noop$1","Basis","le$3","BasisClosed","ue$2","BasisOpen","me$3","Bundle","de$2","bundle","Cardinal","tension","he$1","cardinal","CardinalClosed","ge$2","CardinalOpen","fe$1","CatmullRom","x23","y23","pe$3","catmullRom","CatmullRomClosed","xe$2","CatmullRomOpen","De$2","LinearClosed","ce$2","slope3","h0","h1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","px","controlPoints","py","Oe$2","Step","ve$3","stepBefore","stepAfter","none$1","series","order","stackValue","stackSeries","A$2","orderNone","offsetNone","stack","sz","oz","F$2","yp","yn","Transform","location","Ie","ne","er","Jn","tr","nr","Me","se","rr","ar","ir","or","sr","ur","lr","fr","hr","gr","mr","pr","yr","br","wr","Tr","vr","Or","_r","Sr","Pr","Mr","xr","$r","Ar","Dr","Er","Qt","Cr","zt","Ir","Fr","Lr","Xt","Rr","Wr","ae","jr","Nr","Yr","Gr","Br","Hr","ft","qr","ze","Ur","Qr","zr","dt","ht","kt","Xe","Xr","kr","Vr","Kr","ke","Zr","Fe","gt","Jr","ea","ta","ra","ia","oa","sa","ua","la","fa","Ne","mt","ha","ga","ma","Vt","ba","wa","Ta","va","Oe","Oa","_a","Sa","Pa","Ma","$a","Aa","Da","Ea","Ca","Ia","Ve","Ke","fe","Fa","La","Kt","de","pt","Ra","Zt","Wa","Ze","he","ja","Na","Ya","xe","Ga","Ba","yt","Jt","Ha","qa","Ua","Qa","en","bt","za","wt","Xa","ka","Va","Ka","Za","Ja","ei","ti","ni","ri","ii","oi","si","ui","li","di","gi","mi","yi","wi","Ti","Je","oe","vi","Le","Oi","Tt","_i","$e","Si","Pi","nn","rn","Mi","xi","$i","Ai","an","Ae","Di","Ei","Ci","Ii","ge","Fi","Li","et","Ri","ue","Wi","ji","Ni","Yi","Gi","Bi","Hi","qi","Ui","Qi","zi","Xi","De","ki","Vi","Ki","Zi","Ji","eo","ce","no","ro","Ee","ao","io","oo","so","uo","tt","co","fo","ho","go","mo","po","yo","Ce","sn","bo","nt","vt","wo","un","To","rt","vo","Oo","_o","cn","So","Po","Mo","xo","$o","Ao","Do","Eo","Co","Io","Fo","ln","Ot","Lo","_t","St","fn","Ro","dn","Wo","jo","Pt","No","at","Yo","Go","Bo","hn","Ho","gn","Ye","qo","Uo","Ge","Qo","Be","zo","Mt","Xo","xt","$t","At","Dt","ko","Vo","Ko","Zo","Jo","es","ts","ns","rs","_e","it","as","is","os","Et","Ct","ss","mn","us","cs","ls","fs","ds","hs","gs","ms","ps","ys","ws","Ts","vs","Os","_s","Ss","Ps","Ms","xs","pn","$s","As","It","Ds","Es","Cs","Is","Ft","Fs","Ls","Rs","Ws","js","Ns","Ys","Gs","Bs","bn","Hs","qs","Us","wn","Qs","zs","Xs","ks","Vs","Ks","Zs","Js","eu","tu","nu","ru","au","iu","ou","su","ve","cu","lu","fu","du","hu","le","gu","Tn","mu","pu","vn","yu","ot","bu","wu","Tu","vu","Ou","_u","Su","Pu","Mu","xu","$u","Au","Du","Lt","Re","Eu","Cu","Iu","Fu","Lu","ye","Ru","Rt","Wt","be","Wu","jt","ju","st","Nu","Yu","Gu","On","Bu","_n","Hu","qu","Uu","Qu","zu","Xu","ku","Vu","Ku","Zu","Ju","ec","tc","nc","He","qe","Ue","ac","Sn","ic","sc","uc","cc","fc","dc","hc","gc","mc","pc","Pn","yc","bc","Nl","wc","Tc","vc","Oc","zn","Mn","_c","Sc","Pc","Mc","xc","$c","Ac","Dc","Ec","Cc","Ic","Fc","Lc","Wc","je","xn","Te","jc","Gn","ee","$n","An","ut","Dn","me","Nc","Bn","te","En","Hn","pe","Yc","Gc","Bc","Hc","ct","qc","Cn","In","Uc","Qc","zc","Xc","Fn","Vc","qn","Kc","Ln","Zc","Jc","el","tl","Un","nl","rl","al","il","Qn","ol","sl","Gl","Xn","Bl","lt","ul","Hl","ql","Ul","Ql","cl","Ut","zl","Xl","ll","fl","Rn","dl","kl","Vl","Nt","Yt","hl","gl","ml","Se","Wn","pl","yl","jn","bl","wl","Tl","Bt","Gt","Ht","Nn","vl","Ol","_l","Sl","Pl","Ml","qt","xl","$l","Al","Dl","El","Qe","Cl","Yn","We","Il","we","ie","Kl","Pe","Fl","Ll","Zl","Jl","Rl","Vn","Kn","ef","Zn","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","RADIANS","SPIRALS","archimedeanSpiral","rectangularSpiral","ch","d3Cloud","cloudText","font","cloudFont","fontSize","cloudFontSize","fontStyle","cloudFontNormal","fontWeight","cloudRotate","cloudPadding","spiral","words","cloud","canvas","cloudCanvas","functor","contextAndRatio","getContext","board","zeroArray","tags","cloudSprite","cloudBounds","tag","startX","startY","maxDelta","dxdy","collideRects","cloudCollide","sprite","sw","lx","msx","last","maxh","metrics","anchor","wcr","wsr","hcr","hsr","pixels","w32","seen","seenRow","Rc","Wl","jl","chartFactory","chartType","chartName","defineComponent","props","chartDiv","ref","chart","toRefs","onMounted","watch","newData","newOptions","CcvAlluvialChart","AlluvialChart","CcvAreaChart","AreaChart","CcvBoxplotChart","BoxplotChart","CcvBubbleChart","BubbleChart","CcvBulletChart","BulletChart","ExperimentalCcvChoroplethChart","ChoroplethChart","CcvCirclePackChart","CirclePackChart","CcvComboChart","ComboChart","CcvDonutChart","DonutChart","CcvGaugeChart","GaugeChart","CcvGroupedBarChart","GroupedBarChart","CcvHeatmapChart","HeatmapChart","CcvHistogramChart","HistogramChart","CcvLineChart","LineChart","CcvLollipopChart","LollipopChart","CcvMeterChart","MeterChart","CcvPieChart","PieChart","CcvRadarChart","RadarChart","CcvScatterChart","ScatterChart","CcvSimpleBarChart","SimpleBarChart","CcvStackedAreaChart","StackedAreaChart","CcvStackedBarChart","StackedBarChart","CcvTreeChart","TreeChart","CcvTreemapChart","TreemapChart","CcvWordCloudChart","WordCloudChart","components","app","component"],"mappings":"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AAA,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;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,G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","x_google_ignoreList":[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,270,276,277,278,279,280,281,282,283,284,285,286,287,288,289]}