@decidables/discountable-elements 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/LICENSE.md +1003 -0
- package/README.md +1405 -0
- package/lib/discountableElements.esm.js +23333 -0
- package/lib/discountableElements.esm.js.map +1 -0
- package/lib/discountableElements.esm.min.js +1625 -0
- package/lib/discountableElements.esm.min.js.map +1 -0
- package/lib/discountableElements.umd.js +23353 -0
- package/lib/discountableElements.umd.js.map +1 -0
- package/lib/discountableElements.umd.min.js +1625 -0
- package/lib/discountableElements.umd.min.js.map +1 -0
- package/package.json +69 -0
- package/src/components/discountable-control.js +173 -0
- package/src/components/discountable-response.js +283 -0
- package/src/components/htd-calculation.js +230 -0
- package/src/components/htd-curves.js +1073 -0
- package/src/components/htd-fit-worker.js +71 -0
- package/src/components/htd-fit.js +197 -0
- package/src/components/index.js +9 -0
- package/src/components/itc-choice.js +134 -0
- package/src/components/itc-option.js +173 -0
- package/src/components/itc-task.js +253 -0
- package/src/discountable-element.js +105 -0
- package/src/equations/adk2v.js +135 -0
- package/src/equations/htd-equation.js +202 -0
- package/src/equations/index.js +3 -0
- package/src/examples/htd-example.js +73 -0
- package/src/examples/human.js +154 -0
- package/src/examples/index.js +4 -0
- package/src/examples/interactive.js +123 -0
- package/src/examples/model.js +179 -0
- package/src/index.js +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discountableElements.umd.js","sources":["../../../node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/lit-html/lit-html.js","../../../node_modules/lit-element/lit-element.js","../../../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/cross.js","../../../node_modules/d3-array/src/cumsum.js","../../../node_modules/d3-array/src/variance.js","../../../node_modules/d3-array/src/deviation.js","../../../node_modules/d3-array/src/extent.js","../../../node_modules/d3-array/src/fsum.js","../../../node_modules/internmap/src/index.js","../../../node_modules/d3-array/src/identity.js","../../../node_modules/d3-array/src/group.js","../../../node_modules/d3-array/src/permute.js","../../../node_modules/d3-array/src/sort.js","../../../node_modules/d3-array/src/groupSort.js","../../../node_modules/d3-array/src/ticks.js","../../../node_modules/d3-array/src/threshold/sturges.js","../../../node_modules/d3-array/src/max.js","../../../node_modules/d3-array/src/maxIndex.js","../../../node_modules/d3-array/src/min.js","../../../node_modules/d3-array/src/minIndex.js","../../../node_modules/d3-array/src/quickselect.js","../../../node_modules/d3-array/src/greatest.js","../../../node_modules/d3-array/src/quantile.js","../../../node_modules/d3-array/src/threshold/freedmanDiaconis.js","../../../node_modules/d3-array/src/threshold/scott.js","../../../node_modules/d3-array/src/mean.js","../../../node_modules/d3-array/src/median.js","../../../node_modules/d3-array/src/merge.js","../../../node_modules/d3-array/src/mode.js","../../../node_modules/d3-array/src/pairs.js","../../../node_modules/d3-array/src/range.js","../../../node_modules/d3-array/src/sum.js","../../../node_modules/d3-array/src/reverse.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-drag/src/constant.js","../../../node_modules/d3-drag/src/event.js","../../../node_modules/d3-drag/src/drag.js","../../../node_modules/d3-color/src/define.js","../../../node_modules/d3-color/src/color.js","../../../node_modules/d3-color/src/math.js","../../../node_modules/d3-color/src/lab.js","../../../node_modules/d3-color/src/cubehelix.js","../../../node_modules/d3-interpolate/src/basis.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/hsl.js","../../../node_modules/d3-interpolate/src/lab.js","../../../node_modules/d3-interpolate/src/hcl.js","../../../node_modules/d3-interpolate/src/cubehelix.js","../../../node_modules/d3-interpolate/src/piecewise.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-timer/src/interval.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-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/node_modules/d3-geo/src/math.js","../../../node_modules/d3/node_modules/d3-geo/src/noop.js","../../../node_modules/d3/node_modules/d3-geo/src/stream.js","../../../node_modules/d3/node_modules/d3-geo/src/cartesian.js","../../../node_modules/d3/node_modules/d3-geo/src/compose.js","../../../node_modules/d3/node_modules/d3-geo/src/rotation.js","../../../node_modules/d3/node_modules/d3-geo/src/circle.js","../../../node_modules/d3/node_modules/d3-geo/src/clip/buffer.js","../../../node_modules/d3/node_modules/d3-geo/src/pointEqual.js","../../../node_modules/d3/node_modules/d3-geo/src/clip/rejoin.js","../../../node_modules/d3/node_modules/d3-geo/src/polygonContains.js","../../../node_modules/d3/node_modules/d3-geo/src/clip/index.js","../../../node_modules/d3/node_modules/d3-geo/src/clip/antimeridian.js","../../../node_modules/d3/node_modules/d3-geo/src/clip/circle.js","../../../node_modules/d3/node_modules/d3-geo/src/clip/line.js","../../../node_modules/d3/node_modules/d3-geo/src/clip/rectangle.js","../../../node_modules/d3/node_modules/d3-geo/src/identity.js","../../../node_modules/d3/node_modules/d3-geo/src/path/area.js","../../../node_modules/d3/node_modules/d3-geo/src/path/bounds.js","../../../node_modules/d3/node_modules/d3-geo/src/path/centroid.js","../../../node_modules/d3/node_modules/d3-geo/src/path/context.js","../../../node_modules/d3/node_modules/d3-geo/src/path/measure.js","../../../node_modules/d3/node_modules/d3-geo/src/path/string.js","../../../node_modules/d3/node_modules/d3-geo/src/path/index.js","../../../node_modules/d3/node_modules/d3-geo/src/transform.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/fit.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/resample.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/index.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/conic.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/cylindricalEqualArea.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/conicEqualArea.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/albers.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/albersUsa.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/azimuthal.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/azimuthalEqualArea.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/azimuthalEquidistant.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/mercator.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/conicConformal.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/equirectangular.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/conicEquidistant.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/equalEarth.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/gnomonic.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/orthographic.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/stereographic.js","../../../node_modules/d3/node_modules/d3-geo/src/projection/transverseMercator.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/identity.js","../../../node_modules/d3-scale/src/nice.js","../../../node_modules/d3-scale/src/log.js","../../../node_modules/d3-scale/src/symlog.js","../../../node_modules/d3-scale/src/pow.js","../../../node_modules/d3-scale/src/quantile.js","../../../node_modules/d3-scale/src/threshold.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-scale/src/utcTime.js","../../../node_modules/d3-scale/src/sequential.js","../../../node_modules/d3-scale/src/diverging.js","../../../node_modules/d3-scale-chromatic/src/colors.js","../../../node_modules/d3-scale-chromatic/src/categorical/category10.js","../../../node_modules/d3-scale-chromatic/src/categorical/Accent.js","../../../node_modules/d3-scale-chromatic/src/categorical/Dark2.js","../../../node_modules/d3-scale-chromatic/src/categorical/Paired.js","../../../node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","../../../node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","../../../node_modules/d3-scale-chromatic/src/categorical/Set1.js","../../../node_modules/d3-scale-chromatic/src/categorical/Set2.js","../../../node_modules/d3-scale-chromatic/src/categorical/Set3.js","../../../node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","../../../node_modules/d3-scale-chromatic/src/ramp.js","../../../node_modules/d3-scale-chromatic/src/diverging/BrBG.js","../../../node_modules/d3-scale-chromatic/src/diverging/PRGn.js","../../../node_modules/d3-scale-chromatic/src/diverging/PiYG.js","../../../node_modules/d3-scale-chromatic/src/diverging/PuOr.js","../../../node_modules/d3-scale-chromatic/src/diverging/RdBu.js","../../../node_modules/d3-scale-chromatic/src/diverging/RdGy.js","../../../node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","../../../node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","../../../node_modules/d3-scale-chromatic/src/diverging/Spectral.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","../../../node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","../../../node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","../../../node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","../../../node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","../../../node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","../../../node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","../../../node_modules/d3-scale-chromatic/src/sequential-multi/viridis.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/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/curve/bump.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/asterisk.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/circle.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/cross.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/diamond.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/diamond2.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/plus.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/square.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/square2.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/star.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/triangle.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/triangle2.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/wye.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol/times.js","../../../node_modules/d3/node_modules/d3-shape/src/symbol.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-zoom/src/transform.js","../../decidables-elements/src/decidables-element.js","../../decidables-elements/src/button.js","../../../node_modules/lit-html/directives/if-defined.js","../../decidables-elements/src/slider.js","../../decidables-elements/src/spinner.js","../../decidables-elements/src/switch.js","../../decidables-elements/src/toggle.js","../../decidables-elements/src/toggle-option.js","../../decidables-elements/src/mixin-resizeable.js","../src/discountable-element.js","../src/components/discountable-control.js","../src/components/discountable-response.js","../../../node_modules/lit-html/directive.js","../../../node_modules/lit-html/directive-helpers.js","../../../node_modules/lit-html/async-directive.js","../../../node_modules/@lit-labs/motion/animate-controller.js","../../../node_modules/@lit-labs/motion/animate.js","../../discountable-math/src/htd-math.js","../src/equations/htd-equation.js","../src/components/htd-calculation.js","../src/components/htd-curves.js","../../../node_modules/@observablehq/plot/src/defined.js","../../../node_modules/isoformat/src/format.js","../../../node_modules/isoformat/src/parse.js","../../../node_modules/@observablehq/plot/src/time.js","../../../node_modules/@observablehq/plot/src/options.js","../../../node_modules/@observablehq/plot/src/scales/index.js","../../../node_modules/@observablehq/plot/src/symbol.js","../../../node_modules/@observablehq/plot/src/transforms/basic.js","../../../node_modules/@observablehq/plot/src/transforms/group.js","../../../node_modules/@observablehq/plot/src/channel.js","../../../node_modules/@observablehq/plot/src/memoize.js","../../../node_modules/@observablehq/plot/src/format.js","../../../node_modules/@observablehq/plot/src/warnings.js","../../../node_modules/@observablehq/plot/src/style.js","../../../node_modules/@observablehq/plot/src/context.js","../../../node_modules/@observablehq/plot/src/projection.js","../../../node_modules/@observablehq/plot/src/scales/schemes.js","../../../node_modules/@observablehq/plot/src/scales/quantitative.js","../../../node_modules/@observablehq/plot/src/scales/diverging.js","../../../node_modules/@observablehq/plot/src/scales/temporal.js","../../../node_modules/@observablehq/plot/src/scales/ordinal.js","../../../node_modules/@observablehq/plot/src/scales.js","../../../node_modules/@observablehq/plot/src/dimensions.js","../../../node_modules/@observablehq/plot/src/facet.js","../../../node_modules/@observablehq/plot/src/mark.js","../../../node_modules/@observablehq/plot/src/interactions/pointer.js","../../../node_modules/@observablehq/plot/src/axes.js","../../../node_modules/@observablehq/plot/src/legends/ramp.js","../../../node_modules/@observablehq/plot/src/math.js","../../../node_modules/@observablehq/plot/src/marker.js","../../../node_modules/@observablehq/plot/src/transforms/inset.js","../../../node_modules/@observablehq/plot/src/transforms/interval.js","../../../node_modules/@observablehq/plot/src/marks/rule.js","../../../node_modules/@observablehq/plot/src/template.js","../../../node_modules/@observablehq/plot/src/marks/text.js","../../../node_modules/@observablehq/plot/src/marks/vector.js","../../../node_modules/@observablehq/plot/src/marks/axis.js","../../../node_modules/@observablehq/plot/src/legends/swatches.js","../../../node_modules/@observablehq/plot/src/legends.js","../../../node_modules/@observablehq/plot/src/marks/frame.js","../../../node_modules/@observablehq/plot/src/marks/tip.js","../../../node_modules/@observablehq/plot/src/plot.js","../../../node_modules/@observablehq/plot/src/curve.js","../../../node_modules/@observablehq/plot/src/transforms/bin.js","../../../node_modules/@observablehq/plot/src/transforms/identity.js","../../../node_modules/@observablehq/plot/src/transforms/exclusiveFacets.js","../../../node_modules/@observablehq/plot/src/transforms/stack.js","../../../node_modules/@observablehq/plot/src/marks/line.js","../../../node_modules/@observablehq/plot/src/marks/rect.js","../src/components/htd-fit.js","../src/components/itc-option.js","../src/components/itc-choice.js","../src/components/itc-task.js","../src/equations/adk2v.js","../src/examples/htd-example.js","../src/examples/human.js","../src/examples/interactive.js","../src/examples/model.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"<svg>\":\"\",u=f;for(let i=0;i<s;i++){const s=t[i];let d,c,v=-1,a=0;for(;a<s.length&&(u.lastIndex=a,c=u.exec(s),null!==c);)a=u.lastIndex,u===f?\"!--\"===c[1]?u=_:void 0!==c[1]?u=m:void 0!==c[2]?(y.test(c[2])&&(l=RegExp(\"</\"+c[2],\"g\")),u=p):void 0!==c[3]&&(u=p):u===p?\">\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length<c;){if(1===h.nodeType){if(h.hasAttributes()){const t=[];for(const i of h.getAttributeNames())if(i.endsWith(o)||i.startsWith(n)){const s=f[d++];if(t.push(i),void 0!==s){const t=h.getAttribute(s.toLowerCase()+o).split(n),i=/([.?@])?(.*)/.exec(s);v.push({type:1,index:r,name:i[2],strings:t,ctor:\".\"===i[1]?H:\"?\"===i[1]?L:\"@\"===i[1]?z:k})}else v.push({type:6,index:r})}for(const i of t)h.removeAttribute(i)}if(y.test(h.tagName)){const t=h.textContent.split(n),i=t.length-1;if(i>0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)h.append(t[s],u()),C.nextNode(),v.push({type:2,index:++r});h.append(t[i],u())}}}else if(8===h.nodeType)if(h.data===l)v.push({type:2,index:r});else{let t=-1;for(;-1!==(t=h.data.indexOf(n,t+1));)v.push({type:7,index:r}),t+=n.length-1}r++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){var o,n,l,h;if(i===T)return i;let r=void 0!==e?null===(o=s._$Co)||void 0===o?void 0:o[e]:s._$Cl;const u=d(i)?void 0:i._$litDirective$;return(null==r?void 0:r.constructor)!==u&&(null===(n=null==r?void 0:r._$AO)||void 0===n||n.call(r,!1),void 0===u?r=void 0:(r=new u(t),r._$AT(t,s,e)),void 0!==e?(null!==(l=(h=s)._$Co)&&void 0!==l?l:h._$Co=[])[e]=r:s._$Cl=r),void 0!==r&&(i=S(t,r._$AS(t,i.values),r,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:r).importNode(s,!0);C.currentNode=o;let n=C.nextNode(),l=0,h=0,u=e[0];for(;void 0!==u;){if(l===u.index){let i;2===u.type?i=new R(n,n.nextSibling,this,t):1===u.type?i=new u.ctor(n,u.name,u.strings,this,t):6===u.type&&(i=new Z(n,this,t)),this._$AV.push(i),u=e[++h]}l!==(null==u?void 0:u.index)&&(n=C.nextNode(),l++)}return C.currentNode=r,o}v(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{constructor(t,i,s,e){var o;this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cp=null===(o=null==e?void 0:e.isConnected)||void 0===o||o}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===(null==t?void 0:t.nodeType)&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),d(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):v(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==A&&d(this._$AH)?this._$AA.nextSibling.data=t:this.$(r.createTextNode(t)),this._$AH=t}g(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=N.createElement(P(e.h,e.h[0]),this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.v(s);else{const t=new M(o,this),i=t.u(this.options);t.v(s),this.$(i),this._$AH=t}}_$AC(t){let i=E.get(t.strings);return void 0===i&&E.set(t.strings,i=new N(t)),i}T(t){c(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const o of t)e===i.length?i.push(s=new R(this.k(u()),this.k(u()),this,this.options)):s=i[e],s._$AI(o),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var i;void 0===this._$AM&&(this._$Cp=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class k{constructor(t,i,s,e,o){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=o,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=S(this,e[s+l],i,l),h===T&&(h=this._$AH[l]),n||(n=!d(h)||h!==this._$AH[l]),h===A?t=A:t!==A&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}const I=s?s.emptyScript:\"\";class L extends k{constructor(){super(...arguments),this.type=4}j(t){t&&t!==A?this.element.setAttribute(this.name,I):this.element.removeAttribute(this.name)}}class z extends k{constructor(t,i,s,e,o){super(t,i,s,e,o),this.type=5}_$AI(t,i=this){var s;if((t=null!==(s=S(this,t,i,0))&&void 0!==s?s:A)===T)return;const e=this._$AH,o=t===A&&e!==A||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==A&&(e===A||o);o&&this.element.removeEventListener(this.name,this,e),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var i,s;\"function\"==typeof this._$AH?this._$AH.call(null!==(s=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const j={O:o,P:n,A:l,C:1,M:V,L:M,R:v,D:S,I:R,V:k,H:L,N:z,U:H,F:Z},B=i.litHtmlPolyfillSupport;null==B||B(N,R),(null!==(t=i.litHtmlVersions)&&void 0!==t?t:i.litHtmlVersions=[]).push(\"2.8.0\");const D=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.3\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.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","function length(array) {\n return array.length | 0;\n}\n\nfunction empty(length) {\n return !(length > 0);\n}\n\nfunction arrayify(values) {\n return typeof values !== \"object\" || \"length\" in values ? values : Array.from(values);\n}\n\nfunction reducer(reduce) {\n return values => reduce(...values);\n}\n\nexport default function cross(...values) {\n const reduce = typeof values[values.length - 1] === \"function\" && reducer(values.pop());\n values = values.map(arrayify);\n const lengths = values.map(length);\n const j = values.length - 1;\n const index = new Array(j + 1).fill(0);\n const product = [];\n if (j < 0 || lengths.some(empty)) return product;\n while (true) {\n product.push(index.map((j, i) => values[i][j]));\n let i = j;\n while (++index[i] === lengths[i]) {\n if (i === 0) return reduce ? product.map(reduce) : product;\n index[i--] = 0;\n }\n }\n}\n","export default function cumsum(values, valueof) {\n var sum = 0, index = 0;\n return Float64Array.from(values, valueof === undefined\n ? v => (sum += +v || 0)\n : v => (sum += +valueof(v, index++, values) || 0));\n}","export default function variance(values, valueof) {\n let count = 0;\n let delta;\n let mean = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\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 delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n }\n }\n }\n if (count > 1) return sum / (count - 1);\n}\n","import variance from \"./variance.js\";\n\nexport default function deviation(values, valueof) {\n const v = variance(values, valueof);\n return v ? Math.sqrt(v) : v;\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 {InternMap} from \"internmap\";\nimport identity from \"./identity.js\";\n\nexport default function group(values, ...keys) {\n return nest(values, identity, identity, keys);\n}\n\nexport function groups(values, ...keys) {\n return nest(values, Array.from, identity, keys);\n}\n\nfunction flatten(groups, keys) {\n for (let i = 1, n = keys.length; i < n; ++i) {\n groups = groups.flatMap(g => g.pop().map(([key, value]) => [...g, key, value]));\n }\n return groups;\n}\n\nexport function flatGroup(values, ...keys) {\n return flatten(groups(values, ...keys), keys);\n}\n\nexport function flatRollup(values, reduce, ...keys) {\n return flatten(rollups(values, reduce, ...keys), keys);\n}\n\nexport function rollup(values, reduce, ...keys) {\n return nest(values, identity, reduce, keys);\n}\n\nexport function rollups(values, reduce, ...keys) {\n return nest(values, Array.from, reduce, keys);\n}\n\nexport function index(values, ...keys) {\n return nest(values, identity, unique, keys);\n}\n\nexport function indexes(values, ...keys) {\n return nest(values, Array.from, unique, keys);\n}\n\nfunction unique(values) {\n if (values.length !== 1) throw new Error(\"duplicate key\");\n return values[0];\n}\n\nfunction nest(values, map, reduce, keys) {\n return (function regroup(values, i) {\n if (i >= keys.length) return reduce(values);\n const groups = new InternMap();\n const keyof = keys[i++];\n let index = -1;\n for (const value of values) {\n const key = keyof(value, ++index, values);\n const group = groups.get(key);\n if (group) group.push(value);\n else groups.set(key, [value]);\n }\n for (const [key, values] of groups) {\n groups.set(key, regroup(values, i));\n }\n return map(groups);\n })(values, 0);\n}\n","export default function permute(source, keys) {\n return Array.from(keys, key => source[key]);\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","import ascending from \"./ascending.js\";\nimport group, {rollup} from \"./group.js\";\nimport sort from \"./sort.js\";\n\nexport default function groupSort(values, reduce, key) {\n return (reduce.length !== 2\n ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending(av, bv) || ascending(ak, bk)))\n : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending(ak, bk))))\n .map(([key]) => key);\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 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","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 maxIndex(values, valueof) {\n let max;\n let maxIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n }\n return maxIndex;\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 minIndex(values, valueof) {\n let min;\n let minIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n }\n return minIndex;\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 ascending from \"./ascending.js\";\n\nexport default function greatest(values, compare = ascending) {\n let max;\n let defined = false;\n if (compare.length === 1) {\n let maxValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, maxValue) > 0\n : ascending(value, value) === 0) {\n max = element;\n maxValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, max) > 0\n : compare(value, value) === 0) {\n max = value;\n defined = true;\n }\n }\n }\n return max;\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","import count from \"../count.js\";\nimport quantile from \"../quantile.js\";\n\nexport default function thresholdFreedmanDiaconis(values, min, max) {\n const c = count(values), d = quantile(values, 0.75) - quantile(values, 0.25);\n return c && d ? Math.ceil((max - min) / (2 * d * Math.pow(c, -1 / 3))) : 1;\n}\n","import count from \"../count.js\";\nimport deviation from \"../deviation.js\";\n\nexport default function thresholdScott(values, min, max) {\n const c = count(values), d = deviation(values);\n return c && d ? Math.ceil((max - min) * Math.cbrt(c) / (3.49 * d)) : 1;\n}\n","export default function mean(values, valueof) {\n let count = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count, sum += 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 ++count, sum += value;\n }\n }\n }\n if (count) return sum / count;\n}\n","import quantile, {quantileIndex} from \"./quantile.js\";\n\nexport default function median(values, valueof) {\n return quantile(values, 0.5, valueof);\n}\n\nexport function medianIndex(values, valueof) {\n return quantileIndex(values, 0.5, valueof);\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","import {InternMap} from \"internmap\";\n\nexport default function mode(values, valueof) {\n const counts = new InternMap();\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && value >= value) {\n counts.set(value, (counts.get(value) || 0) + 1);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && value >= value) {\n counts.set(value, (counts.get(value) || 0) + 1);\n }\n }\n }\n let modeValue;\n let modeCount = 0;\n for (const [value, count] of counts) {\n if (count > modeCount) {\n modeCount = count;\n modeValue = value;\n }\n }\n return modeValue;\n}\n","export default function pairs(values, pairof = pair) {\n const pairs = [];\n let previous;\n let first = false;\n for (const value of values) {\n if (first) pairs.push(pairof(previous, value));\n previous = value;\n first = true;\n }\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\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 sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","export default function reverse(values) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n return Array.from(values).reverse();\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 x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\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 const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n}));\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(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 Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\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","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {lab as colorLab} from \"d3-color\";\nimport color from \"./color.js\";\n\nexport default function lab(start, end) {\n var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),\n a = color(start.a, end.a),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\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 {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n t._restart = t.restart;\n t.restart = function(callback, delay, time) {\n delay = +delay, time = time == null ? now() : +time;\n t._restart(function tick(elapsed) {\n elapsed += total;\n t._restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n }\n t.restart(callback, 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","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 {epsilon} from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nexport default function() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (hawaiiPoint.point(x, y), point);\n }\n\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n return reset();\n };\n\n albersUsa.fitExtent = function(extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function(size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function(width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function(height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n}\n","import {asin, atan2, cos, sin, sqrt} from \"../math.js\";\n\nexport function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n if (k === Infinity) return [2, 0];\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n }\n}\n\nexport function azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n }\n}\n","import {asin, sqrt} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin(z / 2);\n});\n\nexport default function() {\n return projection(azimuthalEqualAreaRaw)\n .scale(124.75)\n .clipAngle(180 - 1e-3);\n}\n","import {acos, sin} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin(c);\n});\n\nazimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n});\n\nexport default function() {\n return projection(azimuthalEquidistantRaw)\n .scale(79.4188)\n .clipAngle(180 - 1e-3);\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 {abs, atan, atan2, cos, epsilon, halfPi, log, pi, pow, sign, sin, sqrt, tan} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {mercatorRaw} from \"./mercator.js\";\n\nfunction tany(y) {\n return tan((halfPi + y) / 2);\n}\n\nexport function conicConformalRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),\n f = cy0 * pow(tany(y0), n) / n;\n\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) { if (y < -halfPi + epsilon) y = -halfPi + epsilon; }\n else { if (y > halfPi - epsilon) y = halfPi - epsilon; }\n var r = f / pow(tany(y), n);\n return [r * sin(n * x), f - r * cos(n * x)];\n }\n\n project.invert = function(x, y) {\n var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy),\n l = atan2(x, abs(fy)) * sign(fy);\n if (fy * n < 0)\n l -= pi * sign(x) * sign(fy);\n return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicConformalRaw)\n .scale(109.5)\n .parallels([30, 30]);\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 {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function gnomonicRaw(x, y) {\n var cy = cos(y), k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\ngnomonicRaw.invert = azimuthalInvert(atan);\n\nexport default function() {\n return projection(gnomonicRaw)\n .scale(144.049)\n .clipAngle(60);\n}\n","import {asin, cos, epsilon, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin);\n\nexport default function() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon);\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function stereographicRaw(x, y) {\n var cy = cos(y), k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\nstereographicRaw.invert = azimuthalInvert(function(z) {\n return 2 * atan(z);\n});\n\nexport default function() {\n return projection(stereographicRaw)\n .scale(250)\n .clipAngle(142);\n}\n","import {atan, exp, halfPi, log, tan} from \"../math.js\";\nimport {mercatorProjection} from \"./mercator.js\";\n\nexport function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function(x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n};\n\nexport default function() {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function(_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function(_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90])\n .scale(159.155);\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","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\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 {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(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","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import colors from \"../colors.js\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default scheme => interpolateRgbBasis(scheme[scheme.length - 1]);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"d8b365f5f5f55ab4ac\",\n \"a6611adfc27d80cdc1018571\",\n \"a6611adfc27df5f5f580cdc1018571\",\n \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\",\n \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\",\n \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\",\n \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\",\n \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\",\n \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"af8dc3f7f7f77fbf7b\",\n \"7b3294c2a5cfa6dba0008837\",\n \"7b3294c2a5cff7f7f7a6dba0008837\",\n \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\",\n \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\",\n \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\",\n \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\",\n \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\",\n \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e9a3c9f7f7f7a1d76a\",\n \"d01c8bf1b6dab8e1864dac26\",\n \"d01c8bf1b6daf7f7f7b8e1864dac26\",\n \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\",\n \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\",\n \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\",\n \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\",\n \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\",\n \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"998ec3f7f7f7f1a340\",\n \"5e3c99b2abd2fdb863e66101\",\n \"5e3c99b2abd2f7f7f7fdb863e66101\",\n \"542788998ec3d8daebfee0b6f1a340b35806\",\n \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\",\n \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\",\n \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\",\n \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\",\n \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62f7f7f767a9cf\",\n \"ca0020f4a58292c5de0571b0\",\n \"ca0020f4a582f7f7f792c5de0571b0\",\n \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\",\n \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\",\n \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\",\n \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\",\n \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\",\n \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62ffffff999999\",\n \"ca0020f4a582bababa404040\",\n \"ca0020f4a582ffffffbababa404040\",\n \"b2182bef8a62fddbc7e0e0e09999994d4d4d\",\n \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\",\n \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\",\n \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\",\n \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\",\n \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91bfdb\",\n \"d7191cfdae61abd9e92c7bb6\",\n \"d7191cfdae61ffffbfabd9e92c7bb6\",\n \"d73027fc8d59fee090e0f3f891bfdb4575b4\",\n \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\",\n \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\",\n \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\",\n \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\",\n \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91cf60\",\n \"d7191cfdae61a6d96a1a9641\",\n \"d7191cfdae61ffffbfa6d96a1a9641\",\n \"d73027fc8d59fee08bd9ef8b91cf601a9850\",\n \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\",\n \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\",\n \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\",\n \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\",\n \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf99d594\",\n \"d7191cfdae61abdda42b83ba\",\n \"d7191cfdae61ffffbfabdda42b83ba\",\n \"d53e4ffc8d59fee08be6f59899d5943288bd\",\n \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\",\n \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\",\n \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\",\n \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\",\n \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5f999d8c92ca25f\",\n \"edf8fbb2e2e266c2a4238b45\",\n \"edf8fbb2e2e266c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0ecf49ebcda8856a7\",\n \"edf8fbb3cde38c96c688419d\",\n \"edf8fbb3cde38c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0f3dba8ddb543a2ca\",\n \"f0f9e8bae4bc7bccc42b8cbe\",\n \"f0f9e8bae4bc7bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee8c8fdbb84e34a33\",\n \"fef0d9fdcc8afc8d59d7301f\",\n \"fef0d9fdcc8afc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece2f0a6bddb1c9099\",\n \"f6eff7bdc9e167a9cf02818a\",\n \"f6eff7bdc9e167a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece7f2a6bddb2b8cbe\",\n \"f1eef6bdc9e174a9cf0570b0\",\n \"f1eef6bdc9e174a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e7e1efc994c7dd1c77\",\n \"f1eef6d7b5d8df65b0ce1256\",\n \"f1eef6d7b5d8df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fde0ddfa9fb5c51b8a\",\n \"feebe2fbb4b9f768a1ae017e\",\n \"feebe2fbb4b9f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"edf8b17fcdbb2c7fb8\",\n \"ffffcca1dab441b6c4225ea8\",\n \"ffffcca1dab441b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f7fcb9addd8e31a354\",\n \"ffffccc2e69978c679238443\",\n \"ffffccc2e69978c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fff7bcfec44fd95f0e\",\n \"ffffd4fed98efe9929cc4c02\",\n \"ffffd4fed98efe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ffeda0feb24cf03b20\",\n \"ffffb2fecc5cfd8d3ce31a1c\",\n \"ffffb2fecc5cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"deebf79ecae13182bd\",\n \"eff3ffbdd7e76baed62171b5\",\n \"eff3ffbdd7e76baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5e0a1d99b31a354\",\n \"edf8e9bae4b374c476238b45\",\n \"edf8e9bae4b374c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f0f0f0bdbdbd636363\",\n \"f7f7f7cccccc969696525252\",\n \"f7f7f7cccccc969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"efedf5bcbddc756bb1\",\n \"f2f0f7cbc9e29e9ac86a51a3\",\n \"f2f0f7cbc9e29e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee0d2fc9272de2d26\",\n \"fee5d9fcae91fb6a4acb181d\",\n \"fee5d9fcae91fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee6cefdae6be6550d\",\n \"feeddefdbe85fd8d3cd94701\",\n \"feeddefdbe85fd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\"\n).map(colors);\n\nexport default ramp(scheme);\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))\n + \")\";\n}\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar c = cubehelix();\n\nexport default function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}\n","import {rgb} from \"d3-color\";\n\nvar c = rgb(),\n pi_1_3 = Math.PI / 3,\n pi_2_3 = Math.PI * 2 / 3;\n\nexport default function(t) {\n var x;\n t = (0.5 - t) * Math.PI;\n c.r = 255 * (x = Math.sin(t)) * x;\n c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n return c + \"\";\n}\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))\n + \")\";\n}\n","import colors from \"../colors.js\";\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\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","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 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 {min, sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;\n const t = r / 2;\n const u = t * sqrt3;\n context.moveTo(0, r);\n context.lineTo(0, -r);\n context.moveTo(-u, -t);\n context.lineTo(u, t);\n context.moveTo(-u, t);\n context.lineTo(u, -t);\n }\n};\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size) * 0.62625;\n context.moveTo(0, -r);\n context.lineTo(r, 0);\n context.lineTo(0, r);\n context.lineTo(-r, 0);\n context.closePath();\n }\n};\n","import {min, sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size - min(size / 7, 2)) * 0.87559;\n context.moveTo(-r, 0);\n context.lineTo(r, 0);\n context.moveTo(0, r);\n context.lineTo(0, -r);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size) * 0.4431;\n context.moveTo(r, r);\n context.lineTo(r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, r);\n context.closePath();\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const s = sqrt(size) * 0.6824;\n const t = s / 2;\n const u = (s * sqrt3) / 2; // cos(Math.PI / 6)\n context.moveTo(0, -s);\n context.lineTo(u, t);\n context.lineTo(-u, t);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {min, sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size - min(size / 6, 1.7)) * 0.6189;\n context.moveTo(-r, -r);\n context.lineTo(r, r);\n context.moveTo(-r, r);\n context.lineTo(r, -r);\n }\n};\n","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n times,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null,\n path = withPath(symbol);\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\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 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","\nimport {\n LitElement,\n css,\n svg,\n unsafeCSS,\n} from 'lit';\nimport * as d3 from 'd3';\n\n/*\n DecidablesElement Base Class - Not intended for instantiation!\n <decidables-element>\n*/\nexport default class DecidablesElement extends LitElement {\n getComputedStyleValue(property) {\n return getComputedStyle(this).getPropertyValue(property).trim();\n }\n\n firstUpdated(changedProperties) {\n super.firstUpdated(changedProperties);\n\n // Use focus highlighting if keyboard is used at all\n d3.select(this.renderRoot.host)\n .classed('keyboard', true)\n .on('mousemove.keyboard touchstart.keyboard', (event) => {\n const element = event.currentTarget;\n d3.select(element.renderRoot.host)\n .classed('keyboard', false)\n .on('mousemove.keyboard touchstart.keyboard', null);\n })\n .on('keydown.keyboard', (event) => {\n const element = event.currentTarget;\n d3.select(element.renderRoot.host)\n .classed('keyboard', true)\n .on('keydown.keyboard mousemove.keyboard touchstart.keyboard', null);\n });\n }\n\n static get greys() {\n const grey = '#999999';\n const greys = {};\n greys.white = '#ffffff';\n greys.light75 = d3.interpolateRgb(grey, '#ffffff')(0.75);\n greys.light50 = d3.interpolateRgb(grey, '#ffffff')(0.5);\n greys.light25 = d3.interpolateRgb(grey, '#ffffff')(0.25);\n greys.grey = grey;\n greys.dark25 = d3.interpolateRgb(grey, '#000000')(0.25);\n greys.dark50 = d3.interpolateRgb(grey, '#000000')(0.5);\n greys.dark75 = d3.interpolateRgb(grey, '#000000')(0.75);\n greys.black = '#000000';\n return greys;\n }\n\n static get shadows() {\n // Material Design elevation styles\n // References:\n // https://github.com/material-components/material-components-web/tree/master/packages/mdc-elevation\n // https://codepen.io/hanger/pen/yOGvQp\n /* eslint-disable key-spacing, object-curly-newline */\n return {\n elevations: [0, 2, 4, 8, 16],\n baselineColor: '#000000',\n baselineColorString: '0, 0, 0',\n inverseBaselineColor: '#FFFFFF',\n inverseBaselineColorString: '255, 255, 255',\n opacityUmbra: 0.2,\n opacityPenumbra: 0.14,\n opacityAmbient: 0.12,\n opacityBoost: 0.2,\n mapUmbra: {// $mdc-elevation-umbra-map\n 0: {x: 0, y: 0, b: 0, s: 0}, // offset-x, offset-y, blur-radius, spread-radius\n 2: {x: 0, y: 3, b: 1, s: -2},\n 4: {x: 0, y: 2, b: 4, s: -1},\n 8: {x: 0, y: 5, b: 5, s: -3},\n 16: {x: 0, y: 8, b: 10, s: -5},\n },\n mapPenumbra: {// $mdc-elevation-penumbra-map\n 0: {x: 0, y: 0, b: 0, s: 0}, // offset-x, offset-y, blur-radius, spread-radius\n 2: {x: 0, y: 2, b: 2, s: 0},\n 4: {x: 0, y: 4, b: 5, s: 0},\n 8: {x: 0, y: 8, b: 10, s: 1},\n 16: {x: 0, y: 16, b: 24, s: 2},\n },\n mapAmbient: {// $mdc-elevation-ambient-map\n 0: {x: 0, y: 0, b: 0, s: 0}, // offset-x, offset-y, blur-radius, spread-radius\n 2: {x: 0, y: 1, b: 5, s: 0},\n 4: {x: 0, y: 1, b: 10, s: 0},\n 8: {x: 0, y: 3, b: 14, s: 2},\n 16: {x: 0, y: 6, b: 30, s: 5},\n },\n };\n /* eslint-enable key-spacing, object-curly-newline */\n }\n\n static cssBoxShadow(elevation, rotate = false, inverse = false) {\n const umbraO = this.shadows.opacityUmbra + this.shadows.opacityBoost;\n const penumbraO = this.shadows.opacityPenumbra + this.shadows.opacityBoost;\n const ambientO = this.shadows.opacityAmbient + this.shadows.opacityBoost;\n\n const umbraC = (inverse)\n ? `rgba(${this.shadows.inverseBaselineColorString}, ${umbraO})`\n : `rgba(${this.shadows.baselineColorString}, ${umbraO})`;\n const penumbraC = (inverse)\n ? `rgba(${this.shadows.inverseBaselineColorString}, ${penumbraO})`\n : `rgba(${this.shadows.baselineColorString}, ${penumbraO})`;\n const ambientC = (inverse)\n ? `rgba(${this.shadows.inverseBaselineColorString}, ${ambientO})`\n : `rgba(${this.shadows.baselineColorString}, ${ambientO})`;\n\n const umbraM = this.shadows.mapUmbra[elevation];\n const penumbraM = this.shadows.mapPenumbra[elevation];\n const ambientM = this.shadows.mapAmbient[elevation];\n\n const umbraS = (rotate)\n ? `${-umbraM.y}px ${umbraM.y / 2}px ${umbraM.b}px ${umbraM.s}px`\n : `${umbraM.y / 2}px ${umbraM.y}px ${umbraM.b}px ${umbraM.s}px`;\n const penumbraS = (rotate)\n ? `${-penumbraM.y}px ${penumbraM.y / 2}px ${penumbraM.b}px ${penumbraM.s}px`\n : `${penumbraM.y / 2}px ${penumbraM.y}px ${penumbraM.b}px ${penumbraM.s}px`;\n const ambientS = (rotate)\n ? `${-ambientM.y}px ${ambientM.y / 2}px ${ambientM.b}px ${ambientM.s}px`\n : `${ambientM.y / 2}px ${ambientM.y}px ${ambientM.b}px ${ambientM.s}px`;\n\n return `${umbraS} ${umbraC}, ${penumbraS} ${penumbraC}, ${ambientS} ${ambientC}`;\n }\n\n static get svgDefs() {\n const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */\n\n const filters = shadows.elevations.map((z) => {\n return `\n <filter id=${`shadow-${z}`} filterUnits=\"userSpaceOnUse\" x=\"-100%\" y=\"-100%\" width=\"200%\" height=\"200%\">\n <feComponentTransfer in=\"SourceAlpha\" result=\"solid\">\n <feFuncA type=\"table\" tableValues=\"0 1 1\"/>\n </feComponentTransfer>\n <feOffset in=\"solid\" result=\"offU\" dx=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />\n <feOffset in=\"solid\" result=\"offP\" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />\n <feOffset in=\"solid\" result=\"offA\" dx=${shadows.mapAmbient[z].y / 2} dy=${shadows.mapAmbient[z].y} />\n ${(shadows.mapUmbra[z].s === 0)\n ? ''\n : `<feMorphology in=\"offU\" result=\"spreadU\" operator=${(shadows.mapUmbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapUmbra[z].s)} />`\n }\n ${(shadows.mapPenumbra[z].s === 0)\n ? ''\n : `<feMorphology in=\"offP\" result=\"spreadP\" operator=${(shadows.mapPenumbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapPenumbra[z].s)} />`\n }\n ${(shadows.mapAmbient[z].s === 0)\n ? ''\n : `<feMorphology in=\"offA\" result=\"spreadA\" operator=${(shadows.mapAmbient[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapAmbient[z].s)} />`\n }\n <feGaussianBlur in=${(shadows.mapUmbra[z].s === 0) ? 'offU' : 'spreadU'} result=\"blurU\" stdDeviation=${shadows.mapUmbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapPenumbra[z].s === 0) ? 'offP' : 'spreadP'} result=\"blurP\" stdDeviation=${shadows.mapPenumbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapAmbient[z].s === 0) ? 'offA' : 'spreadA'} result=\"blurA\" stdDeviation=${shadows.mapAmbient[z].b / 2} />\n <feFlood in=\"SourceGraphic\" result=\"opU\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityUmbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opP\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityPenumbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opA\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityAmbient + shadows.opacityBoost} />\n <feComposite in=\"opU\" in2=\"blurU\" result=\"shU\" operator=\"in\" />\n <feComposite in=\"opP\" in2=\"blurP\" result=\"shP\" operator=\"in\" />\n <feComposite in=\"opA\" in2=\"blurA\" result=\"shA\" operator=\"in\" />\n <feMorphology in=\"solid\" result=\"smaller\" operator=\"erode\" radius=\"1\" />\n <feComposite in=\"shU\" in2=\"smaller\" result=\"finalU\" operator=\"out\" />\n <feComposite in=\"shP\" in2=\"smaller\" result=\"finalP\" operator=\"out\" />\n <feComposite in=\"shA\" in2=\"smaller\" result=\"finalA\" operator=\"out\" />\n <feMerge>\n <feMergeNode in=\"finalU\" />\n <feMergeNode in=\"finalP\" />\n <feMergeNode in=\"finalA\" />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>`;\n });\n\n return `\n <defs>\n ${filters}\n </defs>\n `;\n }\n\n static get svgFilters() {\n const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */\n\n const filters = shadows.elevations.map((z) => {\n return svg`\n <filter id=${`shadow-${z}`} x=\"-250%\" y=\"-250%\" width=\"600%\" height=\"600%\">\n <feComponentTransfer in=\"SourceAlpha\" result=\"solid\">\n <feFuncA type=\"table\" tableValues=\"0 1 1\"/>\n </feComponentTransfer>\n <feOffset in=\"solid\" result=\"offU\" dx=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />\n <feOffset in=\"solid\" result=\"offP\" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />\n <feOffset in=\"solid\" result=\"offA\" dx=${shadows.mapAmbient[z].y / 2} dy=${shadows.mapAmbient[z].y} />\n ${(shadows.mapUmbra[z].s === 0)\n ? svg``\n : svg`<feMorphology in=\"offU\" result=\"spreadU\" operator=${(shadows.mapUmbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapUmbra[z].s)} />`\n }\n ${(shadows.mapPenumbra[z].s === 0)\n ? svg``\n : svg`<feMorphology in=\"offP\" result=\"spreadP\" operator=${(shadows.mapPenumbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapPenumbra[z].s)} />`\n }\n ${(shadows.mapAmbient[z].s === 0)\n ? svg``\n : svg`<feMorphology in=\"offA\" result=\"spreadA\" operator=${(shadows.mapAmbient[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapAmbient[z].s)} />`\n }\n <feGaussianBlur in=${(shadows.mapUmbra[z].s === 0) ? 'offU' : 'spreadU'} result=\"blurU\" stdDeviation=${shadows.mapUmbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapPenumbra[z].s === 0) ? 'offP' : 'spreadP'} result=\"blurP\" stdDeviation=${shadows.mapPenumbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapAmbient[z].s === 0) ? 'offA' : 'spreadA'} result=\"blurA\" stdDeviation=${shadows.mapAmbient[z].b / 2} />\n <feFlood in=\"SourceGraphic\" result=\"opU\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityUmbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opP\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityPenumbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opA\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityAmbient + shadows.opacityBoost} />\n <feComposite in=\"opU\" in2=\"blurU\" result=\"shU\" operator=\"in\" />\n <feComposite in=\"opP\" in2=\"blurP\" result=\"shP\" operator=\"in\" />\n <feComposite in=\"opA\" in2=\"blurA\" result=\"shA\" operator=\"in\" />\n <feMorphology in=\"solid\" result=\"smaller\" operator=\"erode\" radius=\"1\" />\n <feComposite in=\"shU\" in2=\"smaller\" result=\"finalU\" operator=\"out\" />\n <feComposite in=\"shP\" in2=\"smaller\" result=\"finalP\" operator=\"out\" />\n <feComposite in=\"shA\" in2=\"smaller\" result=\"finalA\" operator=\"out\" />\n <feMerge>\n <feMergeNode in=\"finalU\" />\n <feMergeNode in=\"finalP\" />\n <feMergeNode in=\"finalA\" />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>`;\n });\n\n return svg`\n <svg class=\"defs\">\n <defs>\n ${filters}\n </defs>\n </svg>\n `;\n }\n\n static get styles() {\n return css`\n :host {\n ---shadow-0: var(--shadow-0, ${unsafeCSS(this.cssBoxShadow(0))});\n ---shadow-2: var(--shadow-2, ${unsafeCSS(this.cssBoxShadow(2))});\n ---shadow-4: var(--shadow-4, ${unsafeCSS(this.cssBoxShadow(4))});\n ---shadow-8: var(--shadow-8, ${unsafeCSS(this.cssBoxShadow(8))});\n\n ---color-background: var(--color-background, ${unsafeCSS(this.greys.white)});\n ---color-border: var(--color-border, ${unsafeCSS(this.greys.light75)});\n ---color-text: var(--color-text, ${unsafeCSS(this.greys.dark75)});\n ---color-text-inverse: var(--color-text-inverse, ${unsafeCSS(this.greys.white)});\n ---color-link: var(--color-link, ${unsafeCSS(this.greys.dark25)});\n ---color-element-background: var(--color-element-background, ${unsafeCSS(this.greys.light75)});\n ---color-element-disabled: var(--color-element-disabled, ${unsafeCSS(this.greys.light50)});\n ---color-element-enabled: var(--color-element-enabled, ${unsafeCSS(this.greys.dark25)});\n ---color-element-selected: var(--color-element-selected, ${unsafeCSS(this.greys.grey)});\n ---color-element-border: var(--color-element-border, ${unsafeCSS(this.greys.dark50)});\n ---color-element-emphasis: var(--color-element-emphasis, ${unsafeCSS(this.greys.dark75)});\n\n ---font-family-base: var(--font-family-base, \"Source Sans\", sans-serif);\n ---font-family-math: var(--font-family-math, \"Source Serif\", serif);\n\n ---border: var(--border, 1px solid var(---color-border));\n ---border-radius: var(--border-radius, 0.25rem);\n ---transition-duration: var(--transition-duration, 500ms);\n\n font-family: var(---font-family-base);\n }\n\n :host,\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: border-box;\n }\n\n .math-greek {\n font-family: var(---font-family-math);\n font-style: normal;\n }\n\n .math-num {\n font-family: var(---font-family-base);\n font-style: normal;\n }\n\n .math-var {\n font-family: var(---font-family-math);\n font-style: italic;\n }\n\n .defs {\n display: block;\n\n width: 0;\n height: 0;\n }\n `;\n }\n}\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesButton extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n margin: 0.25rem;\n }\n\n button {\n width: 100%;\n height: 100%;\n padding: 0.375rem 0.75rem;\n\n font-family: var(---font-family-base);\n font-size: 1.125rem;\n line-height: 1.5;\n color: var(---color-text-inverse);\n\n border: 0;\n border-radius: var(---border-radius);\n outline: none;\n }\n\n button:disabled {\n background-color: var(--decidables-button-background-color, var(---color-element-disabled));\n outline: none;\n box-shadow: none;\n }\n\n button:enabled {\n cursor: pointer;\n\n background-color: var(--decidables-button-background-color, var(---color-element-enabled));\n outline: none;\n box-shadow: var(---shadow-2);\n }\n\n button:enabled:hover {\n outline: none;\n box-shadow: var(---shadow-4);\n }\n\n button:enabled:active {\n outline: none;\n box-shadow: var(---shadow-8);\n }\n\n :host(.keyboard) button:enabled:focus {\n outline: none;\n box-shadow: var(---shadow-4);\n }\n\n :host(.keyboard) button:enabled:focus:active {\n outline: none;\n box-shadow: var(---shadow-8);\n }\n `,\n ];\n }\n\n render() {\n return html`\n <button ?disabled=${this.disabled}>\n <slot></slot>\n </button>\n `;\n }\n}\n\ncustomElements.define('decidables-button', DecidablesButton);\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=l=>null!=l?l:t;export{l as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","\nimport {ifDefined} from 'lit/directives/if-defined.js'; /* eslint-disable-line import/extensions */\nimport {html, css, unsafeCSS} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesSlider extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n max: {\n attribute: 'max',\n type: Number,\n reflect: true,\n },\n min: {\n attribute: 'min',\n type: Number,\n reflect: true,\n },\n step: {\n attribute: 'step',\n type: Number,\n reflect: true,\n },\n value: {\n attribute: 'value',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n this.max = undefined;\n this.min = undefined;\n this.step = undefined;\n this.value = undefined;\n }\n\n changed(event) {\n this.value = event.target.value;\n this.dispatchEvent(new CustomEvent('change', {\n detail: {\n value: this.value,\n },\n bubbles: true,\n }));\n }\n\n inputted(event) {\n this.value = event.target.value;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n ---shadow-2-rotate: var(--shadow-2-rotate, ${unsafeCSS(this.cssBoxShadow(2, true, false))});\n ---shadow-4-rotate: var(--shadow-4-rotate, ${unsafeCSS(this.cssBoxShadow(4, true, false))});\n ---shadow-8-rotate: var(--shadow-8-rotate, ${unsafeCSS(this.cssBoxShadow(8, true, false))});\n\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n justify-content: center;\n }\n\n label {\n margin: 0.25rem 0.25rem 0;\n }\n\n .range {\n display: inline-block;\n\n width: 3.5rem;\n height: 4.75rem;\n margin: 0 0.25rem 0.25rem;\n }\n\n decidables-spinner {\n --decidables-spinner-input-width: 3.5rem;\n\n margin: 0 0.25rem 0.25rem;\n }\n\n /* Adapted from http://danielstern.ca/range.css/#/ */\n /* Overall */\n input[type=range] {\n width: 4.75rem;\n height: 3.5rem;\n padding: 0;\n margin: 0;\n\n background-color: unset;\n\n transform: rotate(-90deg);\n transform-origin: 2.375rem 2.375rem;\n\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n }\n\n input[type=range]:enabled {\n cursor: ns-resize;\n }\n\n input[type=range]:focus {\n outline: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-ms-tooltip {\n display: none;\n }\n\n /* Track */\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-webkit-slider-runnable-track {\n width: 100%;\n height: 4px;\n\n background: var(---color-element-disabled);\n border: 0;\n border-radius: 2px;\n box-shadow: none;\n }\n\n input[type=range]:focus::-webkit-slider-runnable-track {\n background: var(---color-element-disabled);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-moz-range-track {\n width: 100%;\n height: 4px;\n\n background: var(---color-element-disabled);\n border: 0;\n border-radius: 2px;\n box-shadow: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-ms-track {\n width: 100%;\n height: 4px;\n\n color: transparent;\n\n background: transparent;\n border-color: transparent;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-ms-fill-lower {\n background: #cccccc;\n /* background: var(---color-element-disabled); */\n border: 0;\n border-radius: 2px;\n box-shadow: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-ms-fill-upper {\n background: #cccccc;\n /* background: var(---color-element-disabled); */\n border: 0;\n border-radius: 2px;\n box-shadow: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:focus::-ms-fill-lower {\n background: var(---color-element-disabled);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:focus::-ms-fill-upper {\n background: var(---color-element-disabled);\n }\n\n /* Thumb */\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-webkit-slider-thumb {\n width: 10px;\n height: 20px;\n margin-top: -8px;\n\n border: 0;\n border-radius: 4px;\n\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n }\n\n input[type=range]:disabled::-webkit-slider-thumb {\n background: var(---color-element-disabled);\n box-shadow: none;\n }\n\n input[type=range]:enabled::-webkit-slider-thumb {\n background: var(---color-element-enabled);\n box-shadow: var(---shadow-2-rotate);\n }\n\n input[type=range]:enabled:hover::-webkit-slider-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n input[type=range]:enabled:active::-webkit-slider-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n\n :host(.keyboard) input[type=range]:enabled:focus::-webkit-slider-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n :host(.keyboard) input[type=range]:focus:active::-webkit-slider-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-moz-range-thumb {\n width: 10px;\n height: 20px;\n\n border: 0;\n border-radius: 4px;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:disabled::-moz-range-thumb {\n background: var(---color-element-disabled);\n box-shadow: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled::-moz-range-thumb {\n background: var(---color-element-enabled);\n box-shadow: var(---shadow-2-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled:hover::-moz-range-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled:active::-moz-range-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n\n :host(.keyboard) input[type=range]:enabled:focus::-moz-range-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n :host(.keyboard) input[type=range]:enabled:focus:active::-moz-range-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-ms-thumb {\n width: 10px;\n height: 20px;\n margin-top: 0;\n\n background: #999999;\n /* background: var(---color-element-enabled); */\n border: 0;\n border-radius: 4px;\n box-shadow: var(---shadow-2-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:disabled::-ms-thumb {\n background: var(---color-element-disabled);\n box-shadow: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled::-ms-thumb {\n background: var(---color-element-enabled);\n box-shadow: var(---shadow-2-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled:hover::-ms-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled:active::-ms-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n :host(.keyboard) input[type=range]:enabled:focus::-ms-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n :host(.keyboard) input[type=range]:enabled:focus:active::-ms-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n `,\n ];\n }\n\n render() {\n return html`\n <label for=\"slider\">\n <slot></slot>\n </label>\n <div class=\"range\">\n <input type=\"range\" id=\"slider\" min=${ifDefined(this.min)} max=${ifDefined(this.max)} step=${ifDefined(this.step)} .value=${this.value} @change=${this.changed.bind(this)} @input=${this.inputted.bind(this)}>\n </div>\n <decidables-spinner min=${ifDefined(this.min)} max=${ifDefined(this.max)} step=${ifDefined(this.step)} .value=${this.value} @input=${this.inputted.bind(this)}></decidables-spinner>\n `;\n }\n}\n\ncustomElements.define('decidables-slider', DecidablesSlider);\n","\nimport {ifDefined} from 'lit/directives/if-defined.js'; /* eslint-disable-line import/extensions */\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesSpinner extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n max: {\n attribute: 'max',\n type: Number,\n reflect: true,\n },\n min: {\n attribute: 'min',\n type: Number,\n reflect: true,\n },\n step: {\n attribute: 'step',\n type: Number,\n reflect: true,\n },\n value: {\n attribute: 'value',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n this.max = undefined;\n this.min = undefined;\n this.step = undefined;\n this.value = undefined;\n }\n\n inputted(event) {\n this.value = event.target.value;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n ---decidables-spinner-font-size: var(--decidables-spinner-font-size, 1.125rem);\n ---decidables-spinner-input-width: var(--decidables-spinner-input-width, 4rem);\n ---decidables-spinner-prefix: var(--decidables-spinner-prefix, \"\");\n\n ---decidables-spinner-postfix: var(--decidables-spinner-postfix, \"\");\n ---decidables-spinner-postfix-padding: var(--decidables-spinner-postfix-padding, 0);\n\n display: block;\n }\n\n label {\n position: relative;\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n\n margin: 0;\n\n font-size: 0.75rem;\n }\n\n label::before {\n position: absolute;\n bottom: 1px;\n left: calc(50% - var(---decidables-spinner-input-width) / 2 + 0.25rem);\n\n font-size: var(---decidables-spinner-font-size);\n line-height: normal;\n\n content: var(---decidables-spinner-prefix);\n }\n\n label::after {\n position: absolute;\n right: 0.25rem;\n bottom: 1px;\n\n font-size: var(---decidables-spinner-font-size);\n line-height: normal;\n\n content: var(---decidables-spinner-postfix);\n }\n\n input[type=number] {\n width: var(---decidables-spinner-input-width);\n padding-right: var(---decidables-spinner-postfix-padding);\n\n font-family: var(---font-family-base);\n font-size: var(---decidables-spinner-font-size);\n color: inherit;\n text-align: right;\n\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n box-shadow: var(---shadow-2);\n\n -webkit-appearance: none; /* stylelint-disable-line property-no-vendor-prefix */\n }\n\n input[type=number]:hover {\n box-shadow: var(---shadow-4);\n }\n\n input[type=number]:focus,\n input[type=number]:active {\n box-shadow: var(---shadow-8);\n }\n\n input[type=number]:disabled {\n color: var(---color-text);\n\n border: 0;\n box-shadow: none;\n\n /* HACK: Use correct text color in Safari */\n -webkit-opacity: 1;\n /* HACK: Hide spinners in disabled input for Firefox and Safari */\n -moz-appearance: textfield; /* stylelint-disable-line property-no-vendor-prefix */\n /* HACK: Use correct text color in Safari */\n -webkit-text-fill-color: var(---color-text);\n }\n\n /* HACK: Hide spinners in disabled input for Firefox and Safari */\n input[type=number]:disabled::-webkit-outer-spin-button,\n input[type=number]:disabled::-webkit-inner-spin-button {\n margin: 0;\n -webkit-appearance: none; /* stylelint-disable-line property-no-vendor-prefix */\n }\n `,\n ];\n }\n\n render() {\n return html`\n <label>\n <slot></slot>\n <input ?disabled=${this.disabled} type=\"number\" min=${ifDefined(this.min)} max=${ifDefined(this.max)} step=${ifDefined(this.step)} .value=${this.value} @input=${this.inputted.bind(this)}>\n </label>\n `;\n }\n}\n\ncustomElements.define('decidables-spinner', DecidablesSpinner);\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesSwitch extends DecidablesElement {\n static get properties() {\n return {\n checked: {\n attribute: 'checked',\n type: Boolean,\n reflect: true,\n },\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.checked = false;\n this.disabled = false;\n }\n\n changed(event) {\n this.checked = event.target.checked;\n this.dispatchEvent(new CustomEvent('change', {\n detail: {\n checked: this.checked,\n },\n bubbles: true,\n }));\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n justify-content: center;\n }\n\n /* Adapted from https://codepen.io/guuslieben/pen/YyPRVP */\n input[type=checkbox] {\n /* visuallyhidden: https://github.com/h5bp/html5-boilerplate/blob/master/dist/doc/css.md */\n position: absolute;\n\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n\n white-space: nowrap;\n\n border: 0;\n clip-path: inset(100%); /* May cause a performance issue: https://github.com/h5bp/html5-boilerplate/issues/2021 */\n }\n\n input[type=checkbox] + label {\n order: 1;\n\n margin: 0 0.25rem 0.25rem;\n\n font-weight: 400;\n }\n\n input[type=checkbox] + label + label {\n position: relative;\n\n min-width: 24px;\n padding: 0 0 36px;\n margin: 0.25rem 0.25rem 0;\n\n font-weight: 400;\n\n outline: none;\n }\n\n input[type=checkbox] + label + label::before,\n input[type=checkbox] + label + label::after {\n position: absolute;\n\n left: 50%;\n\n margin: 0;\n\n content: \"\";\n\n outline: 0;\n\n transition: all var(---transition-duration) ease;\n transform: translate(-50%, 0);\n }\n\n input[type=checkbox] + label + label::before {\n bottom: 1px;\n\n width: 8px;\n height: 34px;\n\n background-color: var(---color-element-disabled);\n border-radius: 4px;\n }\n\n input[type=checkbox] + label + label::after {\n bottom: 0;\n\n width: 18px;\n height: 18px;\n\n background-color: var(---color-element-enabled);\n border-radius: 50%;\n box-shadow: var(---shadow-2);\n }\n\n input[type=checkbox]:checked + label + label::after {\n transform: translate(-50%, -100%);\n }\n\n input[type=checkbox]:disabled + label + label::after {\n background-color: var(---color-element-disabled);\n box-shadow: none;\n }\n\n input[type=checkbox]:enabled + label,\n input[type=checkbox]:enabled + label + label {\n cursor: pointer;\n }\n\n input[type=checkbox]:enabled + label:hover + label::after,\n input[type=checkbox]:enabled + label + label:hover::after {\n box-shadow: var(---shadow-4);\n }\n\n input[type=checkbox]:enabled + label:active + label::after,\n input[type=checkbox]:enabled + label + label:active::after {\n box-shadow: var(---shadow-8);\n }\n\n /* stylelint-disable-next-line selector-max-compound-selectors */\n :host(.keyboard) input[type=checkbox]:enabled:focus + label + label::after {\n box-shadow: var(---shadow-4);\n }\n\n /* stylelint-disable-next-line selector-max-compound-selectors */\n :host(.keyboard) input[type=checkbox]:enabled:focus + label + label:active::after,\n :host(.keyboard) input[type=checkbox]:enabled:focus:active + label + label::after {\n box-shadow: var(---shadow-8);\n }\n `,\n ];\n }\n\n render() {\n return html`\n <input type=\"checkbox\" id=\"switch\" ?checked=${this.checked} ?disabled=${this.disabled} @change=${this.changed.bind(this)}>\n <label for=\"switch\">\n <slot name=\"off-label\"></slot>\n </label>\n <label for=\"switch\">\n <slot></slot>\n </label>\n `;\n }\n}\n\ncustomElements.define('decidables-switch', DecidablesSwitch);\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesToggle extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n fieldset {\n display: flex;\n\n flex-direction: column;\n\n align-items: stretch;\n justify-content: center;\n\n margin: 0.25rem;\n\n border: 0;\n }\n\n legend {\n text-align: center;\n }\n `,\n ];\n }\n\n render() {\n return html`\n <fieldset ?disabled=${this.disabled}>\n <legend><slot name=\"label\"></slot></legend>\n <slot></slot>\n </fieldset>\n `;\n }\n}\n\ncustomElements.define('decidables-toggle', DecidablesToggle);\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesToggleOption extends DecidablesElement {\n static get properties() {\n return {\n checked: {\n attribute: 'checked',\n type: Boolean,\n reflect: true,\n },\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n name: {\n attribute: 'name',\n type: String,\n reflect: true,\n },\n value: {\n attribute: 'value',\n type: String,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.checked = false;\n this.disabled = false;\n this.name = undefined;\n this.value = undefined;\n }\n\n changed(event) {\n this.checked = event.target.checked;\n this.dispatchEvent(new CustomEvent('change', {\n detail: {\n checked: this.checked,\n value: this.value,\n },\n bubbles: true,\n }));\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: flex;\n }\n\n input[type=radio] {\n /* visuallyhidden: https://github.com/h5bp/html5-boilerplate/blob/master/dist/doc/css.md */\n position: absolute;\n\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n\n white-space: nowrap;\n\n border: 0;\n clip-path: inset(100%); /* May cause a performance issue: https://github.com/h5bp/html5-boilerplate/issues/2021 */\n }\n\n input[type=radio] + label {\n width: 100%;\n padding: 0.375rem 0.75rem;\n\n font-family: var(---font-family-base);\n font-size: 1.125rem;\n line-height: 1.5;\n color: var(---color-text-inverse);\n text-align: center;\n\n cursor: pointer;\n\n background-color: var(---color-element-enabled);\n border: 0;\n border-radius: 0;\n outline: none;\n\n box-shadow: var(---shadow-2);\n }\n\n input[type=radio]:checked + label {\n background-color: var(---color-element-selected);\n outline: none;\n box-shadow: var(---shadow-2);\n }\n\n input[type=radio] + label:hover {\n z-index: 1;\n\n outline: none;\n box-shadow: var(---shadow-4);\n }\n\n input[type=radio] + label:active {\n z-index: 2;\n\n outline: none;\n box-shadow: var(---shadow-8);\n }\n\n :host(:first-of-type) input[type=radio] + label {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n\n :host(:last-of-type) input[type=radio] + label {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n\n :host(.keyboard) input[type=radio]:focus + label {\n z-index: 1;\n\n outline: none;\n box-shadow: var(---shadow-4);\n }\n\n :host(.keyboard) input[type=radio]:focus:checked + label {\n z-index: 1;\n\n background-color: var(---color-element-selected);\n outline: none;\n box-shadow: var(---shadow-4);\n }\n\n :host(.keyboard) input[type=radio]:focus + label:active {\n z-index: 2;\n\n outline: none;\n box-shadow: var(---shadow-8);\n }\n `,\n ];\n }\n\n render() {\n return html`\n <input type=\"radio\" id=\"toggle-option\" name=${this.name} value=${this.value} .checked=${this.checked} @change=${this.changed.bind(this)}>\n <label for=\"toggle-option\">\n <slot></slot>\n </label>\n `;\n }\n}\n\ncustomElements.define('decidables-toggle-option', DecidablesToggleOption);\n","\nexport default function DecidablesMixinResizeable(superClass) {\n return class extends superClass {\n static get properties() {\n return {\n width: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n height: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n rem: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n this.width = NaN;\n this.height = NaN;\n this.rem = NaN;\n }\n\n getDimensions() {\n this.width = parseFloat(this.getComputedStyleValue('width'), 10);\n this.height = parseFloat(this.getComputedStyleValue('height'), 10);\n this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(this.getDimensions.bind(this));\n this.resizeObserver.observe(this);\n }\n\n disconnectedCallback() {\n this.resizeObserver.unobserve(this);\n\n super.disconnectedCallback();\n }\n };\n}\n","\nimport {\n css,\n unsafeCSS,\n} from 'lit';\nimport * as d3 from 'd3';\n\nimport {DecidablesElement} from '@decidables/decidables-elements';\n\n/*\n DiscountableElement Base Class - Not intended for instantiation!\n <sdt-element>\n*/\nexport default class DiscountableElement extends DecidablesElement {\n static get properties() {\n return {\n interactive: {\n attribute: 'interactive',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n this.interactive = false;\n }\n\n static get colors() {\n return {\n a: d3.schemeSet1[0],\n d: d3.schemeSet1[1],\n k: d3.schemeSet1[2],\n v: d3.schemeSet1[3],\n chosen: d3.schemeSet1[8],\n better: '#4545d0',\n worse: '#f032e6',\n even: '#10dbc9',\n correct: '#ffffff',\n error: '#000000',\n nr: '#cccccc',\n };\n }\n\n static get lights() {\n return Object.keys(DiscountableElement.colors).reduce((acc, cur) => {\n acc[cur] = d3.interpolateRgb(DiscountableElement.colors[cur], '#ffffff')(0.5);\n return acc;\n }, {});\n }\n\n static get darks() {\n return Object.keys(DiscountableElement.colors).reduce((acc, cur) => {\n acc[cur] = d3.interpolateRgb(DiscountableElement.colors[cur], '#000000')(0.5);\n return acc;\n }, {});\n }\n\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n ---color-a: var(--color-a, ${unsafeCSS(this.colors.a)});\n ---color-d: var(--color-d, ${unsafeCSS(this.colors.d)});\n ---color-k: var(--color-k, ${unsafeCSS(this.colors.k)});\n ---color-v: var(--color-v, ${unsafeCSS(this.colors.v)});\n ---color-chosen: var(--color-chosen, ${unsafeCSS(this.colors.chosen)});\n ---color-better: var(--color-better, ${unsafeCSS(this.colors.better)});\n ---color-worse: var(--color-worse, ${unsafeCSS(this.colors.worse)});\n ---color-even: var(--color-even, ${unsafeCSS(this.colors.even)});\n ---color-correct: var(--color-correct, ${unsafeCSS(this.colors.correct)});\n ---color-error: var(--color-error, ${unsafeCSS(this.colors.error)});\n ---color-nr: var(--color-nr, ${unsafeCSS(this.colors.nr)});\n\n ---color-a-light: var(--color-a-light, ${unsafeCSS(this.lights.a)});\n ---color-d-light: var(--color-d-light, ${unsafeCSS(this.lights.d)});\n ---color-k-light: var(--color-k-light, ${unsafeCSS(this.lights.k)});\n ---color-v-light: var(--color-v-light, ${unsafeCSS(this.lights.v)});\n ---color-chosen-light: var(--color-chosen-light, ${unsafeCSS(this.lights.chosen)});\n ---color-better-light: var(--color-better-light, ${unsafeCSS(this.lights.better)});\n ---color-worse-light: var(--color-worse-light, ${unsafeCSS(this.lights.worse)});\n ---color-even-light: var(--color-even-light, ${unsafeCSS(this.lights.even)});\n ---color-correct-light: var(--color-correct-light, ${unsafeCSS(this.lights.correct)});\n ---color-error-light: var(--color-error-light, ${unsafeCSS(this.lights.error)});\n ---color-nr-light: var(--color-nr-light, ${unsafeCSS(this.lights.nr)});\n\n ---color-a-dark: var(--color-a-dark, ${unsafeCSS(this.darks.a)});\n ---color-d-dark: var(--color-d-dark, ${unsafeCSS(this.darks.d)});\n ---color-k-dark: var(--color-k-dark, ${unsafeCSS(this.darks.k)});\n ---color-v-dark: var(--color-v-dark, ${unsafeCSS(this.darks.v)});\n ---color-chosen-dark: var(--color-chosen-dark, ${unsafeCSS(this.darks.chosen)});\n ---color-better-dark: var(--color-better-dark, ${unsafeCSS(this.darks.better)});\n ---color-worse-dark: var(--color-worse-dark, ${unsafeCSS(this.darks.worse)});\n ---color-even-dark: var(--color-even-dark, ${unsafeCSS(this.darks.even)});\n ---color-correct-dark: var(--color-correct-dark, ${unsafeCSS(this.darks.correct)});\n ---color-error-dark: var(--color-error-dark, ${unsafeCSS(this.darks.error)});\n ---color-nr-dark: var(--color-nr-dark, ${unsafeCSS(this.darks.nr)});\n }\n `,\n ];\n }\n}\n","\nimport {html, css} from 'lit';\n\nimport '@decidables/decidables-elements/button';\nimport '@decidables/decidables-elements/slider';\n\nimport DiscountableElement from '../discountable-element';\n\n/*\n DiscountableControl element\n <discountable-control>\n\n Attributes:\n\n*/\nexport default class DiscountableControl extends DiscountableElement {\n static get properties() {\n return {\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n duration: {\n attribute: 'duration',\n type: Number,\n reflect: true,\n },\n run: {\n attribute: 'run',\n type: Boolean,\n reflect: true,\n },\n pause: {\n attribute: 'pause',\n type: Boolean,\n reflect: true,\n },\n reset: {\n attribute: 'reset',\n type: Boolean,\n reflect: true,\n },\n\n state: {\n atribute: false,\n type: String,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.trials = undefined;\n this.duration = undefined;\n this.run = false;\n this.pause = false;\n this.reset = false;\n\n // Properties\n this.states = ['resetted', 'running', 'paused', 'ended'];\n this.state = 'resetted';\n }\n\n setTrials(e) {\n this.trials = e.target.value;\n this.dispatchEvent(new CustomEvent('discountable-control-trials', {\n detail: {\n trials: this.trials,\n },\n bubbles: true,\n }));\n }\n\n setDuration(e) {\n this.duration = e.target.value;\n this.dispatchEvent(new CustomEvent('discountable-control-duration', {\n detail: {\n duration: this.duration,\n },\n bubbles: true,\n }));\n }\n\n doRun() {\n this.state = 'running';\n this.dispatchEvent(new CustomEvent('discountable-control-run', {\n detail: {},\n bubbles: true,\n }));\n }\n\n doPause() {\n this.state = 'paused';\n this.dispatchEvent(new CustomEvent('discountable-control-pause', {\n detail: {},\n bubbles: true,\n }));\n }\n\n doReset() {\n this.state = 'resetted';\n this.dispatchEvent(new CustomEvent('discountable-control-reset', {\n detail: {},\n bubbles: true,\n }));\n }\n\n complete() {\n this.state = 'ended';\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n }\n\n .holder {\n display: flex;\n\n flex-direction: row;\n\n align-items: stretch;\n justify-content: center;\n }\n\n .buttons {\n display: flex;\n\n flex-direction: column;\n\n align-items: stretch;\n justify-content: center;\n }\n `,\n ];\n }\n\n render() {\n return html`\n <div class=\"holder\">\n ${this.trials\n ? html`<decidables-slider min=\"1\" max=\"100\" step=\"1\" .value=${this.trials} @change=${this.setTrials.bind(this)} @input=${this.setTrials.bind(this)}>Trials</decidables-slider>`\n : html``}\n ${this.duration\n ? html`<decidables-slider min=\"10\" max=\"4000\" step=\"10\" .value=${this.duration} @change=${this.setDuration.bind(this)} @input=${this.setDuration.bind(this)}>Duration</decidables-slider>`\n : html``}\n ${this.run || this.pause || this.reset\n ? html`\n <div class=\"buttons\">\n ${this.run\n ? html`<decidables-button name=\"run\" ?disabled=${this.state === 'running' || this.state === 'ended'} @click=${this.doRun.bind(this)}>Run</decidables-button>`\n : html``}\n ${this.pause\n ? html`<decidables-button name=\"pause\" ?disabled=${this.state !== 'running'} @click=${this.doPause.bind(this)}>Pause</decidables-button>`\n : html``}\n ${this.reset\n ? html`<decidables-button name=\"reset\" ?disabled=${this.state === 'resetted'} @click=${this.doReset.bind(this)}>Reset</decidables-button>`\n : html``}\n </div>\n `\n : html``}\n </div>`;\n }\n}\n\ncustomElements.define('discountable-control', DiscountableControl);\n","\nimport {html, css} from 'lit';\n\nimport '@decidables/decidables-elements/button';\n\nimport DiscountableElement from '../discountable-element';\n\n/*\n DiscountableResponse element\n <discountable-response>\n\n Attributes:\n\n*/\nexport default class DiscountableResponse extends DiscountableElement {\n static get properties() {\n return {\n trial: {\n attribute: 'trial',\n type: Boolean,\n reflect: true,\n },\n feedback: {\n attribute: 'feedback',\n type: Boolean,\n reflect: true,\n },\n\n state: {\n attribute: false,\n type: String,\n reflect: false,\n },\n trialCount: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n trialTotal: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.trial = false; // Show trial count?\n this.feedback = false; // Show response feedback?\n\n // Properties\n this.states = ['off', 'waiting', 'feedback']; // Possible states\n this.state = 'off'; // Current state\n\n this.trialCount = 0; // Current trial\n this.trialTotal = 0; // Total trials\n\n // Private\n this.as = 0;\n this.ds = 0;\n this.al = 0;\n this.dl = 0;\n this.responses = ['first', 'second', 'nr']; // Possible values of 'response'\n this.response = undefined; // Response for current trial\n }\n\n start(as, ds, al, dl, trial) {\n this.state = 'waiting';\n\n this.as = as;\n this.ds = ds;\n this.al = al;\n this.dl = dl;\n this.trialCount = trial;\n\n this.response = undefined;\n }\n\n stop() {\n this.state = 'feedback';\n if (this.response === undefined) {\n this.response = 'nr';\n }\n }\n\n first() {\n this.responded('first');\n }\n\n second() {\n this.responded('second');\n }\n\n responded(response) {\n this.state = 'feedback';\n this.response = response;\n\n this.dispatchEvent(new CustomEvent('discountable-response', {\n detail: {\n trial: this.trialCount,\n as: this.as,\n ds: this.ds,\n al: this.al,\n dl: this.dl,\n response: this.response,\n },\n bubbles: true,\n }));\n }\n\n reset() {\n this.state = 'off';\n this.trialCount = 0;\n this.response = undefined;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n }\n\n /* Overall container */\n .holder {\n display: flex;\n\n flex-direction: column;\n }\n\n /* Trial messages */\n .trials {\n display: flex;\n\n flex-direction: column;\n\n justify-content: center;\n }\n\n .trial {\n text-align: center;\n }\n\n .trial .label {\n font-weight: 600;\n }\n\n /* Response buttons */\n .responses {\n display: flex;\n\n flex-direction: row;\n\n align-items: stretch;\n justify-content: center;\n }\n\n .response {\n width: 5.25rem;\n }\n\n .waiting[disabled] {\n --decidables-button-background-color: var(---color-element-enabled);\n }\n\n .selected[disabled][name=\"first\"] {\n --decidables-button-background-color: var(---color-worse);\n }\n\n .selected[disabled][name=\"second\"] {\n --decidables-button-background-color: var(---color-better);\n }\n\n /* Feedback messages */\n .feedbacks {\n display: flex;\n\n flex-direction: row;\n\n justify-content: center;\n }\n\n /* Outcome feedback */\n .feedback {\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n justify-content: center;\n\n width: 5.25rem;\n height: 3.5rem;\n padding: 0.375rem 0.75rem;\n margin: 0.25rem;\n\n text-align: center;\n\n background-color: var(---color-element-background);\n border: 1px solid var(---color-element-border);\n }\n\n .feedback.first {\n background-color: var(---color-worse-light);\n }\n\n .feedback.second {\n background-color: var(---color-better-light);\n }\n\n .feedback.nr {\n background-color: var(---color-nr-light);\n }\n `,\n ];\n }\n\n render() {\n return html`\n <div class=\"holder\">\n ${(this.trial)\n ? html`\n <div class=\"trials\">\n <div class=\"trial\">\n <span class=\"label\">Trial: </span\n ><span class=\"count\">${this.trialCount}</span\n ><span class=\"of\"> of </span\n ><span class=\"total\">${this.trialTotal}</span>\n </div>\n </div>`\n : html``}\n <div class=\"responses\">\n <decidables-button \n name=\"first\"\n class=\"response ${\n (this.state === 'feedback' && this.response === 'first')\n ? 'selected'\n : (this.state === 'waiting')\n ? 'waiting'\n : ''\n }\"\n ?disabled=${this.state !== 'waiting' || this.interactive !== true}\n @click=${this.first.bind(this)}\n >First</decidables-button>\n <decidables-button \n name=\"second\"\n class=\"response ${\n (this.state === 'feedback' && this.response === 'second')\n ? 'selected'\n : (this.state === 'waiting')\n ? 'waiting'\n : ''\n }\"\n ?disabled=${this.state !== 'waiting' || this.interactive !== true}\n @click=${this.second.bind(this)}\n >Second</decidables-button>\n </div>\n ${this.feedback\n ? html`\n <div class=\"feedbacks\">\n <div class=\"feedback\n ${((this.state === 'feedback') && this.feedback)\n ? this.response\n : ''}\">\n ${((this.state === 'feedback') && this.feedback)\n ? (this.response === 'first')\n ? html`<span class=\"response\">First</span>`\n : (this.response === 'second')\n ? html`<span class=\"response\">Second</span>`\n : html`<span class=\"response\">No<br>Response</span>`\n : ''}\n </div>\n </div>`\n : html``}\n </div>`;\n }\n}\n\ncustomElements.define('discountable-response', DiscountableResponse);\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:l}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2},t=(o,l)=>void 0===l?void 0!==(null==o?void 0:o._$litType$):(null==o?void 0:o._$litType$)===l,v=o=>{var l;return null!=(null===(l=null==o?void 0:o._$litType$)||void 0===l?void 0:l.h)},d=o=>void 0!==(null==o?void 0:o._$litDirective$),u=o=>null==o?void 0:o._$litDirective$,e=o=>void 0===o.strings,r=()=>document.createComment(\"\"),c=(o,i,n)=>{var t;const v=o._$AA.parentNode,d=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=v.insertBefore(r(),d),t=v.insertBefore(r(),d);n=new l(i,t,o,o.options)}else{const l=n._$AB.nextSibling,i=n._$AM,u=i!==o;if(u){let l;null===(t=n._$AQ)||void 0===t||t.call(n,o),n._$AM=o,void 0!==n._$AP&&(l=o._$AU)!==i._$AU&&n._$AP(l)}if(l!==d||u){let o=n._$AA;for(;o!==l;){const l=o.nextSibling;v.insertBefore(o,d),o=l}}}return n},f=(o,l,i=o)=>(o._$AI(l,i),o),s={},a=(o,l=s)=>o._$AH=l,m=o=>o._$AH,p=o=>{var l;null===(l=o._$AP)||void 0===l||l.call(o,!1,!0);let i=o._$AA;const n=o._$AB.nextSibling;for(;i!==n;){const o=i.nextSibling;i.remove(),i=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,m as getCommittedValue,u as getDirectiveClass,c as insertPart,v as isCompiledTemplateResult,d as isDirectiveResult,i as isPrimitive,e as isSingleExpression,t as isTemplateResult,p as removePart,f as setChildPartValue,a as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{isSingleExpression as i}from\"./directive-helpers.js\";import{Directive as t,PartType as e}from\"./directive.js\";export{Directive,PartType,directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=(i,t)=>{var e,o;const r=i._$AN;if(void 0===r)return!1;for(const i of r)null===(o=(e=i)._$AO)||void 0===o||o.call(e,t,!1),s(i,t);return!0},o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===(null==e?void 0:e.size))},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),l(t)}};function n(i){void 0!==this._$AN?(o(this),this._$AM=i,r(this)):this._$AM=i}function h(i,t=!1,e=0){const r=this._$AH,n=this._$AN;if(void 0!==n&&0!==n.size)if(t)if(Array.isArray(r))for(let i=e;i<r.length;i++)s(r[i],!1),o(r[i]);else null!=r&&(s(r,!1),o(r));else s(this,i)}const l=i=>{var t,s,o,r;i.type==e.CHILD&&(null!==(t=(o=i)._$AP)&&void 0!==t||(o._$AP=h),null!==(s=(r=i)._$AQ)&&void 0!==s||(r._$AQ=n))};class c extends t{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU}_$AO(i,t=!0){var e,r;i!==this.isConnected&&(this.isConnected=i,i?null===(e=this.reconnected)||void 0===e||e.call(this):null===(r=this.disconnected)||void 0===r||r.call(this)),t&&(s(this,i),o(this))}setValue(t){if(i(this._$Ct))this._$Ct._$AI(t,this);else{const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}export{c as AsyncDirective};\n//# sourceMappingURL=async-directive.js.map\n","const i=new WeakMap;class t{constructor(t,s){this.startPaused=!1,this.disabled=!1,this.clients=new Set,this.pendingComplete=!1,this.host=t,this.defaultOptions=s.defaultOptions||{},this.startPaused=!!s.startPaused,this.disabled=!!s.disabled,this.onComplete=s.onComplete,i.set(this.host,this)}async add(i){var t,s;this.clients.add(i),this.startPaused&&(null===(t=i.webAnimation)||void 0===t||t.pause()),this.pendingComplete=!0,await i.finished,this.pendingComplete&&!this.isAnimating&&(this.pendingComplete=!1,null===(s=this.onComplete)||void 0===s||s.call(this))}remove(i){this.clients.delete(i)}pause(){this.clients.forEach((i=>{var t;return null===(t=i.webAnimation)||void 0===t?void 0:t.pause()}))}play(){this.clients.forEach((i=>{var t;return null===(t=i.webAnimation)||void 0===t?void 0:t.play()}))}cancel(){this.clients.forEach((i=>{var t;return null===(t=i.webAnimation)||void 0===t?void 0:t.cancel()})),this.clients.clear()}finish(){this.clients.forEach((i=>{var t;return null===(t=i.webAnimation)||void 0===t?void 0:t.finish()})),this.clients.clear()}togglePlay(){this.isPlaying?this.pause():this.play()}get isAnimating(){return this.clients.size>0}get isPlaying(){return Array.from(this.clients).some((i=>{var t;return\"running\"===(null===(t=i.webAnimation)||void 0===t?void 0:t.playState)}))}async finished(){await Promise.all(Array.from(this.clients).map((i=>i.finished)))}}export{t as AnimateController,i as controllerMap};\n//# sourceMappingURL=animate-controller.js.map\n","import{nothing as t}from\"lit/html.js\";import{directive as i,PartType as s}from\"lit/directive.js\";import{AsyncDirective as e}from\"lit/async-directive.js\";import{controllerMap as o}from\"./animate-controller.js\";export{AnimateController}from\"./animate-controller.js\";let h=0;const r=new Map,n=new WeakSet,a=()=>new Promise((t=>requestAnimationFrame(t))),l=[{transform:\"translateY(100%) scale(0)\",opacity:0}],c=[{transform:\"translateY(-100%) scale(0)\",opacity:0}],d=[{transform:\"translateX(-100%) scale(0)\",opacity:0}],u=[{transform:\"translateX(100%) scale(0)\",opacity:0}],v=[{}],m=[{opacity:0}],f=m,p=[{opacity:0},{opacity:1}],y=[{opacity:0},{opacity:.25,offset:.75},{opacity:1}],g=(t,i)=>{const s=t-i;return 0===s?void 0:s},w=(t,i)=>{const s=t/i;return 1===s?void 0:s},N={left:(t,i)=>{const s=g(t,i);return{value:s,transform:null==s||isNaN(s)?void 0:`translateX(${s}px)`}},top:(t,i)=>{const s=g(t,i);return{value:s,transform:null==s||isNaN(s)?void 0:`translateY(${s}px)`}},width:(t,i)=>{let s;0===i&&(i=1,s={width:\"1px\"});const e=w(t,i);return{value:e,overrideFrom:s,transform:null==e||isNaN(e)?void 0:`scaleX(${e})`}},height:(t,i)=>{let s;0===i&&(i=1,s={height:\"1px\"});const e=w(t,i);return{value:e,overrideFrom:s,transform:null==e||isNaN(e)?void 0:`scaleY(${e})`}}},A={duration:333,easing:\"ease-in-out\"},b=[\"left\",\"top\",\"width\",\"height\",\"opacity\",\"color\",\"background\"],j=new WeakMap;class x extends e{constructor(t){if(super(t),this.t=null,this.i=null,this.o=!0,this.shouldLog=!1,t.type===s.CHILD)throw Error(\"The `animate` directive must be used in attribute position.\");this.createFinished()}createFinished(){var t;null===(t=this.resolveFinished)||void 0===t||t.call(this),this.finished=new Promise((t=>{this.h=t}))}async resolveFinished(){var t;null===(t=this.h)||void 0===t||t.call(this),this.h=void 0}render(i){return t}getController(){return o.get(this.l)}isDisabled(){var t;return this.options.disabled||(null===(t=this.getController())||void 0===t?void 0:t.disabled)}update(t,[i]){var s;const e=void 0===this.l;return e&&(this.l=null===(s=t.options)||void 0===s?void 0:s.host,this.l.addController(this),this.element=t.element,j.set(this.element,this)),this.optionsOrCallback=i,(e||\"function\"!=typeof i)&&this.u(i),this.render(i)}u(t){var i,s;t=null!=t?t:{};const e=this.getController();void 0!==e&&((t={...e.defaultOptions,...t}).keyframeOptions={...e.defaultOptions.keyframeOptions,...t.keyframeOptions}),null!==(i=(s=t).properties)&&void 0!==i||(s.properties=b),this.options=t}v(){const t={},i=this.element.getBoundingClientRect(),s=getComputedStyle(this.element);return this.options.properties.forEach((e=>{var o;const h=null!==(o=i[e])&&void 0!==o?o:N[e]?void 0:s[e],r=Number(h);t[e]=isNaN(r)?h+\"\":r})),t}p(){let t,i=!0;return this.options.guard&&(t=this.options.guard(),i=((t,i)=>{if(Array.isArray(t)){if(Array.isArray(i)&&i.length===t.length&&t.every(((t,s)=>t===i[s])))return!1}else if(i===t)return!1;return!0})(t,this.m)),this.o=this.l.hasUpdated&&!this.isDisabled()&&!this.isAnimating()&&i&&this.element.isConnected,this.o&&(this.m=Array.isArray(t)?Array.from(t):t),this.o}hostUpdate(){var t;\"function\"==typeof this.optionsOrCallback&&this.u(this.optionsOrCallback()),this.p()&&(this.g=this.v(),this.t=null!==(t=this.t)&&void 0!==t?t:this.element.parentNode,this.i=this.element.nextSibling)}async hostUpdated(){if(!this.o||!this.element.isConnected||this.options.skipInitial&&!this.isHostRendered)return;let t;this.prepare(),await a;const i=this._(),s=this.A(this.options.keyframeOptions,i),e=this.v();if(void 0!==this.g){const{from:s,to:o}=this.O(this.g,e,i);this.log(\"measured\",[this.g,e,s,o]),t=this.calculateKeyframes(s,o)}else{const s=r.get(this.options.inId);if(s){r.delete(this.options.inId);const{from:o,to:n}=this.O(s,e,i);t=this.calculateKeyframes(o,n),t=this.options.in?[{...this.options.in[0],...t[0]},...this.options.in.slice(1),t[1]]:t,h++,t.forEach((t=>t.zIndex=h))}else this.options.in&&(t=[...this.options.in,{}])}this.animate(t,s)}resetStyles(){var t;void 0!==this.j&&(this.element.setAttribute(\"style\",null!==(t=this.j)&&void 0!==t?t:\"\"),this.j=void 0)}commitStyles(){var t,i;this.j=this.element.getAttribute(\"style\"),null===(t=this.webAnimation)||void 0===t||t.commitStyles(),null===(i=this.webAnimation)||void 0===i||i.cancel()}reconnected(){}async disconnected(){var t;if(!this.o)return;if(void 0!==this.options.id&&r.set(this.options.id,this.g),void 0===this.options.out)return;if(this.prepare(),await a(),null===(t=this.t)||void 0===t?void 0:t.isConnected){const t=this.i&&this.i.parentNode===this.t?this.i:null;if(this.t.insertBefore(this.element,t),this.options.stabilizeOut){const t=this.v();this.log(\"stabilizing out\");const i=this.g.left-t.left,s=this.g.top-t.top;!(\"static\"===getComputedStyle(this.element).position)||0===i&&0===s||(this.element.style.position=\"relative\"),0!==i&&(this.element.style.left=i+\"px\"),0!==s&&(this.element.style.top=s+\"px\")}}const i=this.A(this.options.keyframeOptions);await this.animate(this.options.out,i),this.element.remove()}prepare(){this.createFinished()}start(){var t,i;null===(i=(t=this.options).onStart)||void 0===i||i.call(t,this)}didFinish(t){var i,s;t&&(null===(s=(i=this.options).onComplete)||void 0===s||s.call(i,this)),this.g=void 0,this.animatingProperties=void 0,this.frames=void 0,this.resolveFinished()}_(){const t=[];for(let i=this.element.parentNode;i;i=null==i?void 0:i.parentNode){const s=j.get(i);s&&!s.isDisabled()&&s&&t.push(s)}return t}get isHostRendered(){const t=n.has(this.l);return t||this.l.updateComplete.then((()=>{n.add(this.l)})),t}A(t,i=this._()){const s={...A};return i.forEach((t=>Object.assign(s,t.options.keyframeOptions))),Object.assign(s,t),s}O(t,i,s){t={...t},i={...i};const e=s.map((t=>t.animatingProperties)).filter((t=>void 0!==t));let o=1,h=1;return void 0!==e&&(e.forEach((t=>{t.width&&(o/=t.width),t.height&&(h/=t.height)})),void 0!==t.left&&void 0!==i.left&&(t.left=o*t.left,i.left=o*i.left),void 0!==t.top&&void 0!==i.top&&(t.top=h*t.top,i.top=h*i.top)),{from:t,to:i}}calculateKeyframes(t,i,s=!1){var e;const o={},h={};let r=!1;const n={};for(const s in i){const a=t[s],l=i[s];if(s in N){const t=N[s];if(void 0===a||void 0===l)continue;const i=t(a,l);void 0!==i.transform&&(n[s]=i.value,r=!0,o.transform=`${null!==(e=o.transform)&&void 0!==e?e:\"\"} ${i.transform}`,void 0!==i.overrideFrom&&Object.assign(o,i.overrideFrom))}else a!==l&&void 0!==a&&void 0!==l&&(r=!0,o[s]=a,h[s]=l)}return o.transformOrigin=h.transformOrigin=s?\"center center\":\"top left\",this.animatingProperties=n,r?[o,h]:void 0}async animate(t,i=this.options.keyframeOptions){this.start(),this.frames=t;let s=!1;if(!this.isAnimating()&&!this.isDisabled()&&(this.options.onFrames&&(this.frames=t=this.options.onFrames(this),this.log(\"modified frames\",t)),void 0!==t)){this.log(\"animate\",[t,i]),s=!0,this.webAnimation=this.element.animate(t,i);const e=this.getController();null==e||e.add(this);try{await this.webAnimation.finished}catch(t){}null==e||e.remove(this)}return this.didFinish(s),s}isAnimating(){var t,i;return\"running\"===(null===(t=this.webAnimation)||void 0===t?void 0:t.playState)||(null===(i=this.webAnimation)||void 0===i?void 0:i.pending)}log(t,i){this.shouldLog&&!this.isDisabled()&&console.log(t,this.options.id,i)}}const F=i(x);export{x as Animate,F as animate,a as animationFrame,b as defaultCssProperties,A as defaultKeyframeOptions,f as fade,p as fadeIn,y as fadeInSlow,m as fadeOut,c as flyAbove,l as flyBelow,d as flyLeft,u as flyRight,v as none,N as transformProps};\n//# sourceMappingURL=animate.js.map\n","\n/*\n HTDMath Static Class - Not intended for instantiation!\n\n Variables:\n A = amount\n D = delay\n V = subjective value\n\n k = discount factor\n\n Equations:\n V = A / (1 + kD)\n*/\nexport default class HTDMath {\n static adk2v(a, d, k) {\n return a / (1 + k * d);\n }\n\n static adv2k(a, d, v) {\n return (a - v) / (v * d);\n }\n}\n","\nimport {css} from 'lit';\n\nimport DiscountableElement from '../discountable-element';\n\n/*\n HTDEquation Base Class - Not intended for instantiation!\n <cpt-equation>\n*/\nexport default class HTDEquation extends DiscountableElement {\n static get properties() {\n return {\n numeric: {\n attribute: 'numeric',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n this.numeric = false;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: block;\n\n margin: 1rem;\n }\n\n /* Containing <div> */\n .holder {\n display: flex;\n\n flex-direction: row;\n\n justify-content: left;\n }\n\n /* Overall <table> */\n .equation {\n text-align: center;\n white-space: nowrap;\n\n border-collapse: collapse;\n\n border: 0;\n }\n\n /* Modifies <td> */\n .underline {\n border-bottom: 1px solid var(---color-text);\n }\n\n /* Basic <span> and <var> w/modifiers */\n span,\n var {\n padding: 0 0.25rem;\n\n font-style: normal;\n }\n\n var {\n border-radius: var(---border-radius);\n }\n\n .tight {\n padding: 0;\n }\n\n .paren {\n font-size: 150%;\n }\n\n .bracket {\n font-size: 175%;\n }\n\n .brace {\n font-size: 200%;\n }\n\n .addend {\n position: relative;\n display: inline-block;\n }\n\n .comparison {\n position: relative;\n display: inline-block;\n\n font-size: 125%;\n font-weight: 600;\n }\n\n .function {\n display: inline-block;\n\n border-radius: var(---border-radius);\n }\n\n :host([numeric]) .function {\n padding: 0.25rem;\n }\n\n .exp {\n display: inline-block;\n\n font-size: 0.75rem;\n }\n\n .subscript {\n display: inline-block;\n\n font-size: 66.667%;\n }\n\n .summation {\n display: flex;\n\n flex-direction: column;\n\n line-height: 0.8;\n }\n\n .sigma {\n display: inline-block;\n\n font-size: 200%;\n }\n\n /* Input wrapping <label> */\n decidables-spinner {\n --decidables-spinner-input-width: 4rem;\n\n display: inline-block;\n\n padding: 0.125rem 0.375rem 0.375rem;\n\n line-height: 1.5;\n vertical-align: middle;\n\n border-radius: var(---border-radius);\n }\n\n .n {\n --decidables-spinner-input-width: 2rem;\n }\n\n .left {\n text-align: left;\n }\n\n .right {\n text-align: right;\n }\n\n .bottom {\n vertical-align: bottom;\n }\n\n .top {\n vertical-align: top;\n }\n\n /* Color scheme */\n /* .win {\n background: var(---color-better);\n }\n\n .loss {\n background: var(---color-worse);\n }\n\n .sure {\n background: var(---color-even);\n } */\n\n .a {\n background: var(---color-a-light);\n }\n\n .d {\n background: var(---color-d-light);\n }\n\n .k {\n background: var(---color-k-light);\n }\n\n .v {\n background: var(---color-v-light);\n }\n `,\n ];\n }\n}\n","\nimport {html, css} from 'lit';\nimport {animate, fadeIn} from '@lit-labs/motion';\n\nimport '@decidables/decidables-elements/spinner';\nimport HTDMath from '@decidables/discountable-math';\n\nimport HTDEquation from '../equations/htd-equation';\n\n/*\n HTDCalculation element\n <htd-calculation>\n*/\nexport default class HTDCalculation extends HTDEquation {\n static get properties() {\n return {\n numeric: {\n attribute: 'numeric',\n type: Boolean,\n reflect: true,\n },\n\n as: {\n attribute: 'amount-ss',\n type: Number,\n reflect: true,\n },\n ds: {\n attribute: 'delay-ss',\n type: Number,\n reflect: true,\n },\n al: {\n attribute: 'amount-ll',\n type: Number,\n reflect: true,\n },\n dl: {\n attribute: 'delay-ll',\n type: Number,\n reflect: true,\n },\n\n k: {\n attribute: 'k',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n this.numeric = false;\n\n this.as = 20;\n this.ds = 5;\n this.al = 50;\n this.dl = 40;\n\n this.k = 0.1;\n\n this.alignState();\n }\n\n alignState() {\n // Calculate value\n this.vs = HTDMath.adk2v(this.as, this.ds, this.k);\n this.vl = HTDMath.adk2v(this.al, this.dl, this.k);\n // Calculate difference\n this.vDiff = this.vs - this.vl;\n }\n\n sendEvent() {\n this.dispatchEvent(new CustomEvent('htd-calculation-change', {\n detail: {\n as: this.as,\n ds: this.ds,\n al: this.al,\n dl: this.dl,\n\n k: this.k,\n },\n bubbles: true,\n }));\n }\n\n asInput(e) {\n this.as = parseFloat(e.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n dsInput(e) {\n this.ds = parseFloat(e.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n alInput(e) {\n this.al = parseFloat(e.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n dlInput(e) {\n this.dl = parseFloat(e.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n kInput(e) {\n this.k = parseFloat(e.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n /* :host {\n display: inline-block;\n } */\n\n var {\n border-radius: var(---border-radius);\n }\n\n decidables-spinner {\n border-radius: var(---border-radius);\n }\n `,\n ];\n }\n\n render() {\n this.alignState();\n let as;\n let ds;\n let al;\n let dl;\n let k;\n let vs;\n let vl;\n let vDiff;\n if (this.numeric) {\n as = html`<decidables-spinner class=\"a as\" ?disabled=${!this.interactive} step=\"1\" .value=\"${this.as}\" @input=${this.asInput.bind(this)}>\n <var class=\"math-var\">A<sub class=\"subscript\">ss</sub></var>\n </decidables-spinner>`;\n ds = html`<decidables-spinner class=\"d ds\" ?disabled=${!this.interactive} min=\"0\" step=\"1\" .value=\"${this.ds}\" @input=${this.dsInput.bind(this)}>\n <var class=\"math-var\">D<sub class=\"subscript\">ss</sub></var>\n </decidables-spinner>`;\n al = html`<decidables-spinner class=\"a al\" ?disabled=${!this.interactive} step=\"1\" .value=\"${this.al}\" @input=${this.alInput.bind(this)}>\n <var class=\"math-var\">A<sub class=\"subscript\">ll</sub></var>\n </decidables-spinner>`;\n dl = html`<decidables-spinner class=\"d dl\" ?disabled=${!this.interactive} min=\"0\" step=\"1\" .value=\"${this.dl}\" @input=${this.dlInput.bind(this)}>\n <var class=\"math-var\">D<sub class=\"subscript\">ll</sub></var>\n </decidables-spinner>`;\n k = html`<decidables-spinner class=\"k\" ?disabled=${!this.interactive} min=\"0\" max=\"100\" step=\".001\" .value=\"${this.k}\" @input=${this.kInput.bind(this)}>\n <var class=\"math-var\">k</var>\n </decidables-spinner>`;\n\n vs = html`<decidables-spinner class=\"v vs\" disabled .value=\"${+this.vs.toFixed(2)}\">\n <var class=\"math-var\">V<sub class=\"subscript\">ss</sub></var>\n </decidables-spinner>`;\n vl = html`<decidables-spinner class=\"v vl\" disabled .value=\"${+this.vl.toFixed(2)}\">\n <var class=\"math-var\">V<sub class=\"subscript\">ll</sub></var>\n </decidables-spinner>`;\n vDiff = html`${(this.vDiff > 0)\n ? html`<span class=\"comparison\" ${animate({in: fadeIn})}>></span>`\n : (this.vDiff < 0)\n ? html`<span class=\"comparison\" ${animate({in: fadeIn})}><</span>`\n : html`<span class=\"comparison\" ${animate({in: fadeIn})}>=</span>`}`;\n } else {\n as = html`<var class=\"math-var a as\">A<sub class=\"subscript\">ss</sub></var>`;\n ds = html`<var class=\"math-var d ds\">D<sub class=\"subscript\">ss</sub></var>`;\n al = html`<var class=\"math-var a al\">A<sub class=\"subscript\">ll</sub></var>`;\n dl = html`<var class=\"math-var d dl\">D<sub class=\"subscript\">ll</sub></var>`;\n\n k = html`<var class=\"math-var k\">k</var>`;\n\n vs = html`<var class=\"math-var v vs\">V<sub class=\"subscript\">ss</sub></var>`;\n vl = html`<var class=\"math-var v vl\">V<sub class=\"subscript\">ll</sub></var>`;\n vDiff = html`<span class=\"comparison\">≟</span>`;\n }\n const equation = html`\n <tr>\n <td class=\"underline\">\n ${as}\n </td>\n <td rowspan=\"2\">\n ${vDiff}\n </td>\n <td class=\"underline\">\n ${al}\n </td>\n </tr>\n <tr>\n <td class=\"\">\n <span class=\"paren tight\">(</span>1<span class=\"plus\">+</span>${k}${ds}<span class=\"paren tight\">)</span>\n </td>\n <td class=\"\">\n <span class=\"paren tight\">(</span>1<span class=\"plus\">+</span>${k}${dl}<span class=\"paren tight\">)</span>\n </td>\n </tr>\n <tr>\n <td class=\"right\">\n ${vs}\n </td>\n <td>\n ${vDiff}\n </td>\n <td class=\"left\">\n ${vl}\n </td>\n </tr>`;\n return html`\n <div class=\"holder\">\n <table class=\"equation\">\n <tbody>\n ${equation}\n </tbody>\n </table>\n </div>`;\n }\n}\n\ncustomElements.define('htd-calculation', HTDCalculation);\n","\nimport {html, css} from 'lit';\nimport * as d3 from 'd3';\n\nimport HTDMath from '@decidables/discountable-math';\nimport {DecidablesMixinResizeable} from '@decidables/decidables-elements';\n\nimport DiscountableElement from '../discountable-element';\n\n/*\n HTDCurves element\n <htd-curves>\n\n Attributes:\n interactive: true/false\n\n a: numeric (-infinity, infinity)\n d: numeric [0, infinity)\n k: numeric [0, infinity)\n label: string\n\n Styles:\n ??\n*/\nexport default class HTDCurves extends DecidablesMixinResizeable(DiscountableElement) {\n static get properties() {\n return {\n a: {\n attribute: 'amount',\n type: Number,\n reflect: true,\n },\n d: {\n attribute: 'delay',\n type: Number,\n reflect: true,\n },\n label: {\n attribute: 'label',\n type: String,\n reflect: true,\n },\n\n k: {\n attribute: 'k',\n type: Number,\n reflect: true,\n },\n\n v: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n this.firstUpdate = true;\n this.drag = false;\n\n this.scale = {\n value: {\n min: 0,\n max: 80,\n step: 1,\n round: Math.round,\n },\n time: {\n min: 0,\n max: 100,\n step: 1,\n round: Math.round,\n },\n discount: {\n min: 0,\n max: 100,\n step: 0.001,\n round: (k) => { return +k.toFixed(3); },\n },\n };\n\n this.a = null;\n this.d = null;\n this.label = '';\n this.k = 0.1;\n\n this.options = [\n {\n name: 'default',\n a: this.a,\n d: this.d,\n label: this.label,\n },\n ];\n\n this.as = null;\n this.ds = null;\n this.al = null;\n this.dl = null;\n this.trialCount = null;\n this.response = null;\n\n this.alignState();\n }\n\n alignState() {\n // Default options\n this.options[0].a = this.a;\n this.options[0].d = this.d;\n this.options[0].label = this.label;\n\n // Update values\n this.options.forEach((option) => {\n option.v = HTDMath.adk2v(option.a, option.d, this.k);\n });\n this.v = this.options[0].v;\n }\n\n trial(as, ds, al, dl, trial, response) {\n // Remove the old trial\n if (this.trialCount) this.removeOption(`${this.trialCount}-s`);\n if (this.trialCount) this.removeOption(`${this.trialCount}-l`);\n\n this.as = as;\n this.ds = ds;\n this.al = al;\n this.dl = dl;\n this.trialCount = trial;\n this.response = response;\n\n // Add the new trial\n this.setOption(this.as, this.ds, `${this.trialCount}-s`, 's', true);\n this.setOption(this.al, this.dl, `${this.trialCount}-l`, 'l', true);\n }\n\n // Called to pause trial animations!\n pauseTrial() {\n const lineNew = d3.select(this.renderRoot).selectAll('.lines[data-animating-ease-time-1]');\n lineNew.interrupt('new-1');\n lineNew.interrupt('new-2');\n lineNew.datum((datum) => {\n datum.paused = true;\n return datum;\n });\n }\n\n // Called to resume trial animations!\n resumeTrial() {\n const lineNew = d3.select(this.renderRoot).selectAll('.lines[data-animating-ease-time-1]');\n lineNew.datum((datum) => {\n datum.paused = false;\n return datum;\n });\n this.requestUpdate();\n }\n\n clearOptions() {\n this.options.splice(1);\n\n this.requestUpdate();\n }\n\n removeOption(name) {\n this.options = this.options.filter((option) => {\n return (option.name !== name);\n });\n\n this.requestUpdate();\n }\n\n getOption(name = 'default') {\n return this.options.find((option) => {\n return (option.name === name);\n });\n }\n\n setOption(a, d, name = 'default', label = '', trial = false) {\n if (name === 'default') {\n this.a = a;\n this.d = d;\n this.label = label;\n }\n\n const myOption = this.options.find((option) => {\n return (option.name === name);\n });\n if (myOption === undefined) {\n this.options.push({\n name: name,\n a: a,\n d: d,\n label: label,\n trial: trial,\n new: trial,\n });\n } else {\n myOption.a = a;\n myOption.d = d;\n myOption.label = label;\n }\n\n this.requestUpdate();\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n\n width: 27rem;\n height: 15rem;\n }\n\n .main {\n width: 100%;\n height: 100%;\n }\n\n text {\n /* stylelint-disable property-no-vendor-prefix */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n .background {\n fill: var(---color-element-background);\n stroke: var(---color-element-border);\n stroke-width: 1;\n shape-rendering: crispEdges;\n }\n\n .title-x,\n .title-y {\n font-weight: 600;\n\n fill: currentColor;\n }\n\n .tick {\n font-size: 0.75rem;\n }\n\n .axis-x path,\n .axis-x line,\n .axis-y path,\n .axis-y line {\n stroke: var(---color-element-border);\n /* shape-rendering: crispEdges; */\n }\n\n .curve {\n fill: none;\n stroke: var(---color-element-emphasis);\n stroke-width: 2;\n }\n\n .curve.interactive {\n cursor: nwse-resize;\n \n filter: url(\"#shadow-2\");\n outline: none;\n }\n\n .curve.interactive:hover {\n filter: url(\"#shadow-4\");\n }\n\n .curve.interactive:active {\n filter: url(\"#shadow-8\");\n }\n\n :host(.keyboard) .curve.interactive:focus {\n filter: url(\"#shadow-8\");\n }\n\n .bar {\n fill: none;\n stroke: var(---color-element-emphasis);\n stroke-width: 2;\n }\n\n .bar.interactive {\n cursor: ew-resize;\n \n filter: url(\"#shadow-2\");\n outline: none;\n }\n\n .bar.interactive:hover {\n filter: url(\"#shadow-4\");\n }\n\n .bar.interactive:active {\n filter: url(\"#shadow-8\");\n }\n\n :host(.keyboard) .bar.interactive:focus {\n filter: url(\"#shadow-8\");\n }\n\n .point .mark {\n fill: var(---color-element-emphasis);\n\n r: 6px;\n }\n\n .point .label {\n font-size: 0.75rem;\n\n dominant-baseline: middle;\n text-anchor: middle;\n\n fill: var(---color-text-inverse);\n }\n\n .point.interactive {\n cursor: ns-resize;\n\n filter: url(\"#shadow-2\");\n outline: none;\n\n /* HACK: This gets Safari to correctly apply the filter! */\n /* https://github.com/emilbjorklund/svg-weirdness/issues/27 */\n stroke: #000000;\n stroke-opacity: 0;\n stroke-width: 0;\n }\n\n .point.interactive:hover {\n filter: url(\"#shadow-4\");\n\n /* HACK: This gets Safari to correctly apply the filter! */\n stroke: #ff0000;\n }\n\n .point.interactive:active {\n filter: url(\"#shadow-8\");\n\n /* HACK: This gets Safari to correctly apply the filter! */\n stroke: #00ff00;\n }\n\n :host(.keyboard) .point.interactive:focus {\n filter: url(\"#shadow-8\");\n\n /* HACK: This gets Safari to correctly apply the filter! */\n stroke: #0000ff;\n }\n `,\n ];\n }\n\n render() { /* eslint-disable-line class-methods-use-this */\n return html``;\n // ${DiscountableElement.svgFilters}\n // `;\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n this.alignState();\n\n // Bail out if we can't get the width/height\n if (Number.isNaN(this.width) || Number.isNaN(this.height) || Number.isNaN(this.rem)) {\n return;\n }\n\n const hostWidth = this.width;\n const hostHeight = this.height;\n const hostAspectRatio = hostWidth / hostHeight;\n\n const elementAspectRatio = 1.8;\n let elementWidth;\n let elementHeight;\n\n if (hostAspectRatio > elementAspectRatio) {\n elementHeight = hostHeight;\n elementWidth = elementHeight * elementAspectRatio;\n } else {\n elementWidth = hostWidth;\n elementHeight = elementWidth / elementAspectRatio;\n }\n\n const margin = {\n top: 2 * this.rem,\n bottom: 3 * this.rem,\n left: 3 * this.rem,\n right: 2 * this.rem,\n };\n const height = elementHeight - (margin.top + margin.bottom);\n const width = elementWidth - (margin.left + margin.right);\n\n const transitionDuration = parseInt(this.getComputedStyleValue('---transition-duration'), 10);\n\n // X Scale\n const xScale = d3.scaleLinear()\n .domain([this.scale.time.min, this.scale.time.max])\n .range([0, width]);\n\n // Y Scale\n const yScale = d3.scaleLinear()\n .domain([this.scale.value.min, this.scale.value.max])\n .range([height, 0]);\n\n // Line for time/value space\n const line = d3.line()\n .x((datum) => { return xScale(datum.d); })\n .y((datum) => { return yScale(datum.v); });\n\n // Svg\n // DATA-JOIN\n const svgUpdate = d3.select(this.renderRoot).selectAll('.main')\n .data([{\n width: this.width,\n height: this.height,\n rem: this.rem,\n }]);\n // ENTER\n const svgEnter = svgUpdate.enter().append('svg')\n .classed('main', true);\n svgEnter.html(DiscountableElement.svgDefs);\n // MERGE\n const svgMerge = svgEnter.merge(svgUpdate)\n .attr('viewBox', `0 0 ${elementWidth} ${elementHeight}`);\n\n // Plot\n // ENTER\n const plotEnter = svgEnter.append('g')\n .classed('plot', true);\n // MERGE\n const plotMerge = svgMerge.select('.plot')\n .attr('transform', `translate(${margin.left}, ${margin.top})`);\n\n // Clippath\n // ENTER\n plotEnter.append('clipPath')\n .attr('id', 'clip-htd-curves')\n .append('rect');\n // MERGE\n plotMerge.select('clipPath rect')\n .attr('height', height + 1)\n .attr('width', width + 1);\n\n // Underlayer\n // ENTER\n const underlayerEnter = plotEnter.append('g')\n .classed('underlayer', true);\n // MERGE\n const underlayerMerge = plotMerge.select('.underlayer');\n\n // Background\n // ENTER\n underlayerEnter.append('rect')\n .classed('background', true);\n // MERGE\n underlayerMerge.select('.background')\n .attr('height', height)\n .attr('width', width);\n\n // X Axis\n // ENTER\n underlayerEnter.append('g')\n .classed('axis-x', true);\n // MERGE\n const scaleXMerge = underlayerMerge.select('.axis-x')\n .attr('transform', `translate(0, ${yScale(0)})`);\n const scaleXTransition = scaleXMerge.transition()\n .duration(transitionDuration * 2) // Extra long transition!\n .ease(d3.easeCubicOut)\n .call(d3.axisBottom(xScale))\n .attr('font-size', null)\n .attr('font-family', null);\n scaleXTransition.selectAll('line, path')\n .attr('stroke', null);\n\n // X Axis Title\n // ENTER\n const titleXEnter = underlayerEnter.append('text')\n .classed('title-x', true)\n .attr('text-anchor', 'middle');\n titleXEnter.append('tspan')\n .classed('name', true)\n .text('Delay (');\n titleXEnter.append('tspan')\n .classed('math-var d', true)\n .text('D');\n titleXEnter.append('tspan')\n .classed('name', true)\n .text(')');\n // MERGE\n underlayerMerge.select('.title-x')\n .attr('transform', `translate(${(width / 2)}, ${(height + (2.25 * this.rem))})`);\n\n // Y Axis\n // ENTER\n underlayerEnter.append('g')\n .classed('axis-y', true);\n // MERGE\n const scaleYTransition = underlayerMerge.select('.axis-y').transition()\n .duration(transitionDuration * 2) // Extra long transition!\n .ease(d3.easeCubicOut)\n .call(d3.axisLeft(yScale))\n .attr('font-size', null)\n .attr('font-family', null);\n scaleYTransition.selectAll('line, path')\n .attr('stroke', null);\n\n // Y Axis Title\n // ENTER\n const titleYEnter = underlayerEnter.append('text')\n .classed('title-y', true)\n .attr('text-anchor', 'middle');\n titleYEnter.append('tspan')\n .classed('name', true)\n .text('Value (');\n titleYEnter.append('tspan')\n .classed('math-var v', true)\n .text('V');\n titleYEnter.append('tspan')\n .classed('name', true)\n .text(')');\n // MERGE\n underlayerMerge.select('.title-y')\n .attr('transform', `translate(${-2 * this.rem}, ${(height / 2)})rotate(-90)`);\n\n // Content\n // ENTER\n plotEnter.append('g')\n .classed('content', true);\n // MERGE\n const contentMerge = plotMerge.select('.content');\n\n // Options\n // DATA-JOIN\n const optionUpdate = contentMerge.selectAll('.option')\n .data(\n this.options.filter((option) => { return ((option.a !== null) && (option.d !== null)); }),\n (datum) => { return datum.name; },\n );\n // ENTER\n const optionEnter = optionUpdate.enter().append('g')\n .classed('option', true);\n // Curve\n optionEnter.append('path')\n .classed('curve', true)\n .attr('clip-path', 'url(#clip-htd-curves)')\n .attr('d', (datum) => {\n const curve = d3.range(xScale(datum.d), xScale(0), -1).map((range) => {\n return {\n d: xScale.invert(range),\n v: HTDMath.adk2v(\n datum.a,\n datum.d - xScale.invert(range),\n this.k,\n ),\n };\n });\n return line(curve);\n })\n .attr('stroke-dasharray', (datum, index, nodes) => {\n if (datum.trial) {\n const length = nodes[index].getTotalLength();\n return `0,${length}`;\n }\n return 'none';\n });\n // Bar\n optionEnter.append('line')\n .classed('bar', true)\n .attr('x1', (datum) => { return xScale(datum.d); })\n .attr('x2', (datum) => { return xScale(datum.d); })\n .attr('y1', yScale(0))\n .attr('y2', (datum) => { return yScale(datum.a); })\n .attr('stroke-dasharray', (datum, index, nodes) => {\n if (datum.trial) {\n const length = nodes[index].getTotalLength();\n return `0,${length}`;\n }\n return 'none';\n });\n // Point\n const pointEnter = optionEnter.append('g')\n .classed('point', true)\n .attr('transform', (datum) => {\n return `translate(${xScale(datum.d)}, ${yScale(datum.a)})`;\n })\n .attr('opacity', (datum) => {\n if (datum.trial) {\n return 0;\n }\n return 1;\n });\n pointEnter.append('circle')\n .classed('mark', true);\n pointEnter.append('text')\n .classed('label', true);\n // MERGE\n const optionMerge = optionEnter.merge(optionUpdate);\n\n // Interactive options\n // Curve\n optionMerge\n .filter((datum, index, nodes) => {\n return (this.interactive && !nodes[index].classList.contains('interactive'));\n })\n .select('.curve')\n .classed('interactive', true)\n .attr('tabindex', 0)\n // Drag interaction\n .call(d3.drag()\n .subject((event) => {\n return {\n x: event.x,\n y: event.y,\n };\n })\n .on('start', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', true);\n })\n .on('drag', (event, datum) => {\n this.drag = true;\n const dragD = datum.d - xScale.invert(event.x);\n const d = (dragD < 0)\n ? 0\n : (dragD > datum.d)\n ? datum.d\n : dragD;\n const dragV = yScale.invert(event.y);\n const v = (dragV <= 0)\n ? 0.001\n : (dragV > datum.a)\n ? datum.a\n : dragV;\n const k = HTDMath.adv2k(datum.a, d, v);\n this.k = (k < this.scale.discount.min)\n ? this.scale.discount.min\n : (k > this.scale.discount.max)\n ? this.scale.discount.max\n : this.scale.discount.round(k);\n this.alignState();\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('htd-curves-change', {\n detail: {\n name: datum.name,\n a: datum.a,\n d: datum.d,\n k: this.k,\n label: datum.label,\n },\n bubbles: true,\n }));\n })\n .on('end', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', false);\n }))\n // Keyboard interaction\n .on('keydown', (event, datum) => {\n if (['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft'].includes(event.key)) {\n let keyK = this.k;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowLeft':\n keyK *= event.shiftKey ? 0.95 : 0.85;\n break;\n case 'ArrowDown':\n case 'ArrowRight':\n keyK *= event.shiftKey ? 1.05 : 1.15;\n break;\n default:\n // no-op\n }\n keyK = (keyK < this.scale.discount.min)\n ? this.scale.discount.min\n : (keyK > this.scale.discount.max)\n ? this.scale.discount.max\n : this.scale.discount.round(keyK);\n if (keyK !== this.k) {\n this.k = keyK;\n this.alignState();\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('htd-curves-change', {\n detail: {\n name: datum.name,\n a: datum.a,\n d: datum.d,\n k: this.k,\n label: datum.label,\n },\n bubbles: true,\n }));\n }\n event.preventDefault();\n }\n });\n // Bar\n optionMerge\n .filter((datum, index, nodes) => {\n return (this.interactive && !datum.trial && !nodes[index].classList.contains('interactive'));\n })\n .select('.bar')\n .classed('interactive', true)\n .attr('tabindex', 0)\n // Drag interaction\n .call(d3.drag()\n .subject((event, datum) => {\n return {\n x: xScale(datum.d),\n y: yScale(datum.a),\n };\n })\n .on('start', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', true);\n })\n .on('drag', (event, datum) => {\n this.drag = true;\n const d = xScale.invert(event.x);\n datum.d = (d < this.scale.time.min)\n ? this.scale.time.min\n : (d > this.scale.time.max)\n ? this.scale.time.max\n : this.scale.time.round(d);\n if (datum.name === 'default') {\n this.d = datum.d;\n }\n this.alignState();\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('htd-curves-change', {\n detail: {\n name: datum.name,\n a: datum.a,\n d: datum.d,\n k: this.k,\n label: datum.label,\n },\n bubbles: true,\n }));\n })\n .on('end', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', false);\n }))\n // Keyboard interaction\n .on('keydown', (event, datum) => {\n if (['ArrowLeft', 'ArrowRight'].includes(event.key)) {\n let keyD = datum.d;\n switch (event.key) {\n case 'ArrowRight':\n keyD += event.shiftKey ? 1 : 5;\n break;\n case 'ArrowLeft':\n keyD -= event.shiftKey ? 1 : 5;\n break;\n default:\n // no-op\n }\n keyD = (keyD < this.scale.time.min)\n ? this.scale.time.min\n : ((keyD > this.scale.time.max)\n ? this.scale.time.max\n : keyD);\n if (keyD !== datum.d) {\n datum.d = keyD;\n if (datum.name === 'default') {\n this.d = datum.d;\n }\n this.alignState();\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('htd-curves-change', {\n detail: {\n name: datum.name,\n a: datum.a,\n d: datum.d,\n k: this.k,\n label: datum.label,\n },\n bubbles: true,\n }));\n }\n event.preventDefault();\n }\n });\n // Point\n optionMerge\n .filter((datum, index, nodes) => {\n return (this.interactive && !datum.trial && !nodes[index].classList.contains('interactive'));\n })\n .select('.point')\n .classed('interactive', true)\n .attr('tabindex', 0)\n // Drag interaction\n .call(d3.drag()\n .subject((event, datum) => {\n return {\n x: xScale(datum.d),\n y: yScale(datum.a),\n };\n })\n .on('start', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', true);\n })\n .on('drag', (event, datum) => {\n this.drag = true;\n const a = yScale.invert(event.y);\n datum.a = (a < this.scale.value.min)\n ? this.scale.value.min\n : (a > this.scale.value.max)\n ? this.scale.value.max\n : this.scale.value.round(a);\n if (datum.name === 'default') {\n this.a = datum.a;\n }\n this.alignState();\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('htd-curves-change', {\n detail: {\n name: datum.name,\n a: datum.a,\n d: datum.d,\n k: this.k,\n label: datum.label,\n },\n bubbles: true,\n }));\n })\n .on('end', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', false);\n }))\n // Keyboard interaction\n .on('keydown', (event, datum) => {\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n let keyA = datum.a;\n switch (event.key) {\n case 'ArrowUp':\n keyA += event.shiftKey ? 1 : 5;\n break;\n case 'ArrowDown':\n keyA -= event.shiftKey ? 1 : 5;\n break;\n default:\n // no-op\n }\n keyA = (keyA < this.scale.value.min)\n ? this.scale.value.min\n : ((keyA > this.scale.value.max)\n ? this.scale.value.max\n : keyA);\n if (keyA !== datum.a) {\n datum.a = keyA;\n if (datum.name === 'default') {\n this.a = datum.a;\n }\n this.alignState();\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('htd-curves-change', {\n detail: {\n name: datum.name,\n a: datum.a,\n d: datum.d,\n k: this.k,\n label: datum.label,\n },\n bubbles: true,\n }));\n }\n event.preventDefault();\n }\n });\n\n // Non-interactive options\n // Curve\n optionMerge\n .filter((datum, index, nodes) => {\n return (!this.interactive && nodes[index].classList.contains('interactive'));\n })\n .select('.curve')\n .classed('interactive', false)\n .attr('tabindex', null)\n .on('drag', null)\n .on('keydown', null);\n // Bar\n optionMerge\n .filter((datum, index, nodes) => {\n return ((!this.interactive || datum.trial) && nodes[index].classList.contains('interactive'));\n })\n .select('.bar')\n .classed('interactive', false)\n .attr('tabindex', null)\n .on('drag', null)\n .on('keydown', null);\n // Point\n optionMerge\n .filter((datum, index, nodes) => {\n return ((!this.interactive || datum.trial) && nodes[index].classList.contains('interactive'));\n })\n .select('.point')\n .classed('interactive', false)\n .attr('tabindex', null)\n .on('drag', null)\n .on('keydown', null);\n\n // Trial Animation\n // Curve\n optionMerge\n .filter((datum) => {\n return (datum.new);\n })\n .select('.curve').transition()\n .duration(transitionDuration)\n .delay(transitionDuration + transitionDuration / 10)\n .ease(d3.easeLinear)\n .attrTween('stroke-dasharray', (datum, index, nodes) => {\n const length = nodes[index].getTotalLength();\n return d3.interpolate(`0,${length}`, `${length},${0}`);\n })\n .on('end', (datum) => {\n datum.new = false;\n this.dispatchEvent(new CustomEvent('discountable-response', {\n detail: {\n trial: this.trialCount,\n as: this.as,\n ds: this.ds,\n al: this.al,\n dl: this.dl,\n response: this.response,\n },\n bubbles: true,\n }));\n });\n // Bar\n optionMerge\n .filter((datum) => {\n return (datum.new);\n })\n .select('.bar').transition()\n .duration(transitionDuration)\n .ease(d3.easeLinear)\n .attrTween('stroke-dasharray', (datum, index, nodes) => {\n const length = nodes[index].getTotalLength();\n return d3.interpolate(`0,${length}`, `${length},${length}`);\n });\n // Point\n optionMerge\n .filter((datum) => {\n return (datum.new);\n })\n .select('.point').transition()\n .duration(transitionDuration / 10)\n .delay(transitionDuration)\n .ease(d3.easeLinear)\n .attrTween('opacity', () => { return d3.interpolate(0, 1); });\n\n // All options\n optionUpdate.select('.curve').transition()\n .duration(this.drag\n ? 0\n : (this.firstUpdate\n ? (transitionDuration * 2)\n : transitionDuration))\n .ease(d3.easeCubicOut)\n .attrTween('d', (datum, index, elements) => {\n const element = elements[index];\n const interpolateA = d3.interpolate(\n (element.a !== undefined) ? element.a : datum.a,\n datum.a,\n );\n const interpolateD = d3.interpolate(\n (element.d !== undefined) ? element.d : datum.d,\n datum.d,\n );\n return (time) => {\n element.a = interpolateA(time);\n element.d = interpolateD(time);\n const curve = d3.range(xScale(element.d), xScale(0), -1).map((range) => {\n return {\n d: xScale.invert(range),\n v: HTDMath.adk2v(\n element.a,\n element.d - xScale.invert(range),\n this.k,\n ),\n };\n });\n return line(curve);\n };\n });\n optionUpdate.select('.bar').transition()\n .duration(this.drag\n ? 0\n : (this.firstUpdate\n ? (transitionDuration * 2)\n : transitionDuration))\n .ease(d3.easeCubicOut)\n .attrTween('x1', (datum, index, elements) => {\n const element = elements[index];\n const interpolateD = d3.interpolate(\n (element.d !== undefined) ? element.d : datum.d,\n datum.d,\n );\n return (time) => {\n element.d = interpolateD(time);\n return `${xScale(element.d)}`;\n };\n })\n .attrTween('x2', (datum, index, elements) => {\n const element = elements[index];\n const interpolateD = d3.interpolate(\n (element.d !== undefined) ? element.d : datum.d,\n datum.d,\n );\n return (time) => {\n element.d = interpolateD(time);\n return `${xScale(element.d)}`;\n };\n })\n .attrTween('y2', (datum, index, elements) => {\n const element = elements[index];\n const interpolateA = d3.interpolate(\n (element.a !== undefined) ? element.a : datum.a,\n datum.a,\n );\n return (time) => {\n element.a = interpolateA(time);\n return `${yScale(element.a)}`;\n };\n });\n optionUpdate.select('.point').transition()\n .duration(this.drag\n ? 0\n : (this.firstUpdate\n ? (transitionDuration * 2)\n : transitionDuration))\n .ease(d3.easeCubicOut)\n .attrTween('transform', (datum, index, elements) => {\n const element = elements[index];\n const interpolateD = d3.interpolate(\n (element.d !== undefined) ? element.d : datum.d,\n datum.d,\n );\n const interpolateA = d3.interpolate(\n (element.a !== undefined) ? element.a : datum.a,\n datum.a,\n );\n return (time) => {\n element.d = interpolateD(time);\n element.a = interpolateA(time);\n return `translate(${xScale(element.d)}, ${yScale(element.a)})`;\n };\n });\n optionMerge.select('.point .label')\n .text((datum) => { return datum.label; });\n // EXIT\n // NOTE: Could add a transition here\n optionUpdate.exit().remove();\n\n this.drag = false;\n this.firstUpdate = false;\n }\n}\n\ncustomElements.define('htd-curves', HTDCurves);\n","import {ascending, descending} from \"d3\";\n\nexport function defined(x) {\n return x != null && !Number.isNaN(x);\n}\n\nexport function ascendingDefined(a, b) {\n return +defined(b) - +defined(a) || ascending(a, b);\n}\n\nexport function descendingDefined(a, b) {\n return +defined(b) - +defined(a) || descending(a, b);\n}\n\nexport function nonempty(x) {\n return x != null && `${x}` !== \"\";\n}\n\nexport function finite(x) {\n return isFinite(x) ? x : NaN;\n}\n\nexport function positive(x) {\n return x > 0 && isFinite(x) ? x : NaN;\n}\n\nexport function negative(x) {\n return x < 0 && isFinite(x) ? x : NaN;\n}\n","export default function format(date, fallback) {\n if (!(date instanceof Date)) date = new Date(+date);\n if (isNaN(date)) return typeof fallback === \"function\" ? fallback(date) : fallback;\n const hours = date.getUTCHours();\n const minutes = date.getUTCMinutes();\n const seconds = date.getUTCSeconds();\n const milliseconds = date.getUTCMilliseconds();\n return `${formatYear(date.getUTCFullYear(), 4)}-${pad(date.getUTCMonth() + 1, 2)}-${pad(date.getUTCDate(), 2)}${\n hours || minutes || seconds || milliseconds ? `T${pad(hours, 2)}:${pad(minutes, 2)}${\n seconds || milliseconds ? `:${pad(seconds, 2)}${\n milliseconds ? `.${pad(milliseconds, 3)}` : ``\n }` : ``\n }Z` : ``\n }`;\n}\n\nfunction formatYear(year) {\n return year < 0 ? `-${pad(-year, 6)}`\n : year > 9999 ? `+${pad(year, 6)}`\n : pad(year, 4);\n}\n\nfunction pad(value, width) {\n return `${value}`.padStart(width, \"0\");\n}\n","const re = /^(?:[-+]\\d{2})?\\d{4}(?:-\\d{2}(?:-\\d{2})?)?(?:T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{3})?)?(?:Z|[-+]\\d{2}:?\\d{2})?)?$/;\n\nexport default function parse(string, fallback) {\n if (!re.test(string += \"\")) return typeof fallback === \"function\" ? fallback(string) : fallback;\n return new Date(string);\n}\n","import {bisector, max, pairs, timeFormat, utcFormat} from \"d3\";\nimport {utcSecond, utcMinute, utcHour, unixDay, utcWeek, utcMonth, utcYear} from \"d3\";\nimport {utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSunday} from \"d3\";\nimport {timeSecond, timeMinute, timeHour, timeDay, timeWeek, timeMonth, timeYear} from \"d3\";\nimport {timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday} from \"d3\";\nimport {orderof} from \"./options.js\";\n\nconst durationSecond = 1000;\nconst durationMinute = durationSecond * 60;\nconst durationHour = durationMinute * 60;\nconst durationDay = durationHour * 24;\nconst durationWeek = durationDay * 7;\nconst durationMonth = durationDay * 30;\nconst durationYear = durationDay * 365;\n\n// See https://github.com/d3/d3-time/blob/9e8dc940f38f78d7588aad68a54a25b1f0c2d97b/src/ticks.js#L14-L33\nconst tickIntervals = [\n [\"millisecond\", 1],\n [\"2 milliseconds\", 2],\n [\"5 milliseconds\", 5],\n [\"10 milliseconds\", 10],\n [\"20 milliseconds\", 20],\n [\"50 milliseconds\", 50],\n [\"100 milliseconds\", 100],\n [\"200 milliseconds\", 200],\n [\"500 milliseconds\", 500],\n [\"second\", durationSecond],\n [\"5 seconds\", 5 * durationSecond],\n [\"15 seconds\", 15 * durationSecond],\n [\"30 seconds\", 30 * durationSecond],\n [\"minute\", durationMinute],\n [\"5 minutes\", 5 * durationMinute],\n [\"15 minutes\", 15 * durationMinute],\n [\"30 minutes\", 30 * durationMinute],\n [\"hour\", durationHour],\n [\"3 hours\", 3 * durationHour],\n [\"6 hours\", 6 * durationHour],\n [\"12 hours\", 12 * durationHour],\n [\"day\", durationDay],\n [\"2 days\", 2 * durationDay],\n [\"week\", durationWeek],\n [\"2 weeks\", 2 * durationWeek], // https://github.com/d3/d3-time/issues/46\n [\"month\", durationMonth],\n [\"3 months\", 3 * durationMonth],\n [\"6 months\", 6 * durationMonth], // https://github.com/d3/d3-time/issues/46\n [\"year\", durationYear],\n [\"2 years\", 2 * durationYear],\n [\"5 years\", 5 * durationYear],\n [\"10 years\", 10 * durationYear],\n [\"20 years\", 20 * durationYear],\n [\"50 years\", 50 * durationYear],\n [\"100 years\", 100 * durationYear] // TODO generalize to longer time scales\n];\n\nconst durations = new Map([\n [\"second\", durationSecond],\n [\"minute\", durationMinute],\n [\"hour\", durationHour],\n [\"day\", durationDay],\n [\"monday\", durationWeek],\n [\"tuesday\", durationWeek],\n [\"wednesday\", durationWeek],\n [\"thursday\", durationWeek],\n [\"friday\", durationWeek],\n [\"saturday\", durationWeek],\n [\"sunday\", durationWeek],\n [\"week\", durationWeek],\n [\"month\", durationMonth],\n [\"year\", durationYear]\n]);\n\nconst timeIntervals = new Map([\n [\"second\", timeSecond],\n [\"minute\", timeMinute],\n [\"hour\", timeHour],\n [\"day\", timeDay], // https://github.com/d3/d3-time/issues/62\n [\"monday\", timeMonday],\n [\"tuesday\", timeTuesday],\n [\"wednesday\", timeWednesday],\n [\"thursday\", timeThursday],\n [\"friday\", timeFriday],\n [\"saturday\", timeSaturday],\n [\"sunday\", timeSunday],\n [\"week\", timeWeek],\n [\"month\", timeMonth],\n [\"year\", timeYear]\n]);\n\nconst utcIntervals = new Map([\n [\"second\", utcSecond],\n [\"minute\", utcMinute],\n [\"hour\", utcHour],\n [\"day\", unixDay],\n [\"monday\", utcMonday],\n [\"tuesday\", utcTuesday],\n [\"wednesday\", utcWednesday],\n [\"thursday\", utcThursday],\n [\"friday\", utcFriday],\n [\"saturday\", utcSaturday],\n [\"sunday\", utcSunday],\n [\"week\", utcWeek],\n [\"month\", utcMonth],\n [\"year\", utcYear]\n]);\n\n// These hidden fields describe standard intervals so that we can, for example,\n// generalize a scale’s time interval to a larger ticks time interval to reduce\n// the number of displayed ticks. TODO We could instead allow the interval\n// implementation to expose a “generalize” method that returns a larger, aligned\n// interval; that would allow us to move this logic to D3, and allow\n// generalization even when a custom interval is provided.\nexport const intervalDuration = Symbol(\"intervalDuration\");\nexport const intervalType = Symbol(\"intervalType\");\n\n// We greedily mutate D3’s standard intervals on load so that the hidden fields\n// are available even if specified as e.g. d3.utcMonth instead of \"month\".\nfor (const [name, interval] of timeIntervals) {\n interval[intervalDuration] = durations.get(name);\n interval[intervalType] = \"time\";\n}\nfor (const [name, interval] of utcIntervals) {\n interval[intervalDuration] = durations.get(name);\n interval[intervalType] = \"utc\";\n}\n\n// An interleaved array of UTC and local time intervals, in descending order\n// from largest to smallest, used to determine the most specific standard time\n// format for a given array of dates. This is a subset of the tick intervals\n// listed above; we only need the breakpoints where the format changes.\nconst formatIntervals = [\n [\"year\", utcYear, \"utc\"],\n [\"year\", timeYear, \"time\"],\n [\"month\", utcMonth, \"utc\"],\n [\"month\", timeMonth, \"time\"],\n [\"day\", unixDay, \"utc\", 6 * durationMonth],\n [\"day\", timeDay, \"time\", 6 * durationMonth],\n // Below day, local time typically has an hourly offset from UTC and hence the\n // two are aligned and indistinguishable; therefore, we only consider UTC, and\n // we don’t consider these if the domain only has a single value.\n [\"hour\", utcHour, \"utc\", 3 * durationDay],\n [\"minute\", utcMinute, \"utc\", 6 * durationHour],\n [\"second\", utcSecond, \"utc\", 30 * durationMinute]\n];\n\nfunction parseInterval(input, intervals, type) {\n let name = `${input}`.toLowerCase();\n if (name.endsWith(\"s\")) name = name.slice(0, -1); // drop plural\n let period = 1;\n const match = /^(?:(\\d+)\\s+)/.exec(name);\n if (match) {\n name = name.slice(match[0].length);\n period = +match[1];\n }\n switch (name) {\n case \"quarter\":\n name = \"month\";\n period *= 3;\n break;\n case \"half\":\n name = \"month\";\n period *= 6;\n break;\n }\n let interval = intervals.get(name);\n if (!interval) throw new Error(`unknown interval: ${input}`);\n if (period > 1) {\n if (!interval.every) throw new Error(`non-periodic interval: ${name}`);\n interval = interval.every(period);\n interval[intervalDuration] = durations.get(name) * period;\n interval[intervalType] = type;\n }\n return interval;\n}\n\nexport function maybeTimeInterval(interval) {\n return parseInterval(interval, timeIntervals, \"time\");\n}\n\nexport function maybeUtcInterval(interval) {\n return parseInterval(interval, utcIntervals, \"utc\");\n}\n\n// If the given interval is a standard time interval, we may be able to promote\n// it a larger aligned time interval, rather than showing every nth tick.\nexport function generalizeTimeInterval(interval, n) {\n if (!(n > 1)) return; // no need to generalize\n const duration = interval[intervalDuration];\n if (!tickIntervals.some(([, d]) => d === duration)) return; // nonstandard or unknown interval\n if (duration % durationDay === 0 && durationDay < duration && duration < durationMonth) return; // not generalizable\n const [i] = tickIntervals[bisector(([, step]) => Math.log(step)).center(tickIntervals, Math.log(duration * n))];\n return (interval[intervalType] === \"time\" ? maybeTimeInterval : maybeUtcInterval)(i);\n}\n\nfunction formatTimeInterval(name, type, anchor) {\n const format = type === \"time\" ? timeFormat : utcFormat;\n // For tips and legends, use a format that doesn’t require context.\n if (anchor == null) {\n return format(\n name === \"year\"\n ? \"%Y\"\n : name === \"month\"\n ? \"%Y-%m\"\n : name === \"day\"\n ? \"%Y-%m-%d\"\n : name === \"hour\" || name === \"minute\"\n ? \"%Y-%m-%dT%H:%M\"\n : name === \"second\"\n ? \"%Y-%m-%dT%H:%M:%S\"\n : \"%Y-%m-%dT%H:%M:%S.%L\"\n );\n }\n // Otherwise, assume that this is for axis ticks.\n const template = getTimeTemplate(anchor);\n switch (name) {\n case \"millisecond\":\n return formatConditional(format(\".%L\"), format(\":%M:%S\"), template);\n case \"second\":\n return formatConditional(format(\":%S\"), format(\"%-I:%M\"), template);\n case \"minute\":\n return formatConditional(format(\"%-I:%M\"), format(\"%p\"), template);\n case \"hour\":\n return formatConditional(format(\"%-I %p\"), format(\"%b %-d\"), template);\n case \"day\":\n return formatConditional(format(\"%-d\"), format(\"%b\"), template);\n case \"month\":\n return formatConditional(format(\"%b\"), format(\"%Y\"), template);\n case \"year\":\n return format(\"%Y\");\n }\n throw new Error(\"unable to format time ticks\");\n}\n\nfunction getTimeTemplate(anchor) {\n return anchor === \"left\" || anchor === \"right\"\n ? (f1, f2) => `\\n${f1}\\n${f2}` // extra newline to keep f1 centered\n : anchor === \"top\"\n ? (f1, f2) => `${f2}\\n${f1}`\n : (f1, f2) => `${f1}\\n${f2}`;\n}\n\n// Given an array of dates, returns the largest compatible standard time\n// interval. If no standard interval is compatible (other than milliseconds,\n// which is universally compatible), returns undefined.\nexport function inferTimeFormat(dates, anchor) {\n const step = max(pairs(dates, (a, b) => Math.abs(b - a))); // maybe undefined!\n if (step < 1000) return formatTimeInterval(\"millisecond\", \"utc\", anchor);\n for (const [name, interval, type, maxStep] of formatIntervals) {\n if (step > maxStep) break; // e.g., 52 weeks\n if (name === \"hour\" && !step) break; // e.g., domain with a single date\n if (dates.every((d) => interval.floor(d) >= d)) return formatTimeInterval(name, type, anchor);\n }\n}\n\nfunction formatConditional(format1, format2, template) {\n return (x, i, X) => {\n const f1 = format1(x, i); // always shown\n const f2 = format2(x, i); // only shown if different\n const j = i - orderof(X); // detect reversed domains\n return i !== j && X[j] !== undefined && f2 === format2(X[j], j) ? f1 : template(f1, f2);\n };\n}\n","import {descending, quantile, range as rangei} from \"d3\";\nimport {parse as isoParse} from \"isoformat\";\nimport {defined} from \"./defined.js\";\nimport {maybeTimeInterval, maybeUtcInterval} from \"./time.js\";\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\nexport const TypedArray = Object.getPrototypeOf(Uint8Array);\nconst objectToString = Object.prototype.toString;\n\n// If a reindex is attached to the data, channel values expressed as arrays will\n// be reindexed when the channels are instantiated. See exclusiveFacets.\nexport const reindex = Symbol(\"reindex\");\n\nexport function valueof(data, value, type) {\n const valueType = typeof value;\n return valueType === \"string\"\n ? maybeTypedMap(data, field(value), type)\n : valueType === \"function\"\n ? maybeTypedMap(data, value, type)\n : valueType === \"number\" || value instanceof Date || valueType === \"boolean\"\n ? map(data, constant(value), type)\n : typeof value?.transform === \"function\"\n ? maybeTypedArrayify(value.transform(data), type)\n : maybeTake(maybeTypedArrayify(value, type), data?.[reindex]);\n}\n\nfunction maybeTake(values, index) {\n return index ? take(values, index) : values;\n}\n\nfunction maybeTypedMap(data, f, type) {\n return map(data, type?.prototype instanceof TypedArray ? floater(f) : f, type);\n}\n\nfunction maybeTypedArrayify(data, type) {\n return type === undefined\n ? arrayify(data) // preserve undefined type\n : data instanceof type\n ? data\n : type.prototype instanceof TypedArray && !(data instanceof TypedArray)\n ? type.from(data, coerceNumber)\n : type.from(data);\n}\n\nfunction floater(f) {\n return (d, i) => coerceNumber(f(d, i));\n}\n\nexport const singleton = [null]; // for data-less decoration marks, e.g. frame\nexport const field = (name) => (d) => d[name];\nexport const indexOf = {transform: range};\nexport const identity = {transform: (d) => d};\nexport const zero = () => 0;\nexport const one = () => 1;\nexport const yes = () => true;\nexport const string = (x) => (x == null ? x : `${x}`);\nexport const number = (x) => (x == null ? x : +x);\nexport const boolean = (x) => (x == null ? x : !!x);\nexport const first = (x) => (x ? x[0] : undefined);\nexport const second = (x) => (x ? x[1] : undefined);\nexport const third = (x) => (x ? x[2] : undefined);\nexport const constant = (x) => () => x;\n\n// Converts a string like “p25” into a function that takes an index I and an\n// accessor function f, returning the corresponding percentile value.\nexport function percentile(reduce) {\n const p = +`${reduce}`.slice(1) / 100;\n return (I, f) => quantile(I, p, f);\n}\n\n// If the values are specified as a typed array, no coercion is required.\nexport function coerceNumbers(values) {\n return values instanceof TypedArray ? values : map(values, coerceNumber, Float64Array);\n}\n\n// Unlike Mark’s number, here we want to convert null and undefined to NaN since\n// the result will be stored in a Float64Array and we don’t want null to be\n// coerced to zero. We use Number instead of unary + to allow BigInt coercion.\nfunction coerceNumber(x) {\n return x == null ? NaN : Number(x);\n}\n\nexport function coerceDates(values) {\n return map(values, coerceDate);\n}\n\n// When coercing strings to dates, we only want to allow the ISO 8601 format\n// since the built-in string parsing of the Date constructor varies across\n// browsers. (In the future, this could be made more liberal if desired, though\n// it is still generally preferable to do date parsing yourself explicitly,\n// rather than rely on Plot.) Any non-string values are coerced to number first\n// and treated as milliseconds since UNIX epoch.\nexport function coerceDate(x) {\n return x instanceof Date && !isNaN(x)\n ? x\n : typeof x === \"string\"\n ? isoParse(x)\n : x == null || isNaN((x = +x))\n ? undefined\n : new Date(x);\n}\n\n// Some channels may allow a string constant to be specified; to differentiate\n// string constants (e.g., \"red\") from named fields (e.g., \"date\"), this\n// function tests whether the given value is a CSS color string and returns a\n// tuple [channel, constant] where one of the two is undefined, and the other is\n// the given value. If you wish to reference a named field that is also a valid\n// CSS color, use an accessor (d => d.red) instead.\nexport function maybeColorChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null ? [undefined, \"none\"] : isColor(value) ? [undefined, value] : [value, undefined];\n}\n\n// Similar to maybeColorChannel, this tests whether the given value is a number\n// indicating a constant, and otherwise assumes that it’s a channel value.\nexport function maybeNumberChannel(value, defaultValue) {\n if (value === undefined) value = defaultValue;\n return value === null || typeof value === \"number\" ? [undefined, value] : [value, undefined];\n}\n\n// Validates the specified optional string against the allowed list of keywords.\nexport function maybeKeyword(input, name, allowed) {\n if (input != null) return keyword(input, name, allowed);\n}\n\n// Validates the specified required string against the allowed list of keywords.\nexport function keyword(input, name, allowed) {\n const i = `${input}`.toLowerCase();\n if (!allowed.includes(i)) throw new Error(`invalid ${name}: ${input}`);\n return i;\n}\n\n// Promotes the specified data to an array as needed.\nexport function arrayify(data) {\n return data == null || data instanceof Array || data instanceof TypedArray ? data : Array.from(data);\n}\n\n// An optimization of type.from(values, f): if the given values are already an\n// instanceof the desired array type, the faster values.map method is used.\nexport function map(values, f, type = Array) {\n return values == null ? values : values instanceof type ? values.map(f) : type.from(values, f);\n}\n\n// An optimization of type.from(values): if the given values are already an\n// instanceof the desired array type, the faster values.slice method is used.\nexport function slice(values, type = Array) {\n return values instanceof type ? values.slice() : type.from(values);\n}\n\n// Returns true if any of x, x1, or x2 is not (strictly) undefined.\nexport function hasX({x, x1, x2}) {\n return x !== undefined || x1 !== undefined || x2 !== undefined;\n}\n\n// Returns true if any of y, y1, or y2 is not (strictly) undefined.\nexport function hasY({y, y1, y2}) {\n return y !== undefined || y1 !== undefined || y2 !== undefined;\n}\n\n// Returns true if has x or y, or if interval is not (strictly) undefined.\nexport function hasXY(options) {\n return hasX(options) || hasY(options) || options.interval !== undefined;\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a primitive value.\nexport function isObject(option) {\n return option?.toString === objectToString;\n}\n\n// Disambiguates a scale options object (e.g., {color: {type: \"linear\"}}) from\n// some other option (e.g., {color: \"red\"}). When creating standalone legends,\n// this is used to test whether a scale is defined; this should be consistent\n// with inferScaleType when there are no channels associated with the scale, and\n// if this returns true, then normalizeScale must return non-null.\nexport function isScaleOptions(option) {\n return isObject(option) && (option.type !== undefined || option.domain !== undefined);\n}\n\n// Disambiguates an options object (e.g., {y: \"x2\"}) from a channel value\n// definition expressed as a channel transform (e.g., {transform: …}).\n// TODO Check typeof option[Symbol.iterator] !== \"function\"?\nexport function isOptions(option) {\n return isObject(option) && typeof option.transform !== \"function\";\n}\n\n// Disambiguates a sort transform (e.g., {sort: \"date\"}) from a channel domain\n// sort definition (e.g., {sort: {y: \"x\"}}).\nexport function isDomainSort(sort) {\n return isOptions(sort) && sort.value === undefined && sort.channel === undefined;\n}\n\n// For marks specified either as [0, x] or [x1, x2], such as areas and bars.\nexport function maybeZero(x, x1, x2, x3 = identity) {\n if (x1 === undefined && x2 === undefined) {\n // {x} or {}\n (x1 = 0), (x2 = x === undefined ? x3 : x);\n } else if (x1 === undefined) {\n // {x, x2} or {x2}\n x1 = x === undefined ? 0 : x;\n } else if (x2 === undefined) {\n // {x, x1} or {x1}\n x2 = x === undefined ? 0 : x;\n }\n return [x1, x2];\n}\n\n// For marks that have x and y channels (e.g., cell, dot, line, text).\nexport function maybeTuple(x, y) {\n return x === undefined && y === undefined ? [first, second] : [x, y];\n}\n\n// A helper for extracting the z channel, if it is variable. Used by transforms\n// that require series, such as moving average and normalize.\nexport function maybeZ({z, fill, stroke} = {}) {\n if (z === undefined) [z] = maybeColorChannel(fill);\n if (z === undefined) [z] = maybeColorChannel(stroke);\n return z;\n}\n\n// Returns a Uint32Array with elements [0, 1, 2, … data.length - 1].\nexport function range(data) {\n const n = data.length;\n const r = new Uint32Array(n);\n for (let i = 0; i < n; ++i) r[i] = i;\n return r;\n}\n\n// Returns a filtered range of data given the test function.\nexport function where(data, test) {\n return range(data).filter((i) => test(data[i], i, data));\n}\n\n// Returns an array [values[index[0]], values[index[1]], …].\nexport function take(values, index) {\n return map(index, (i) => values[i], values.constructor);\n}\n\n// If f does not take exactly one argument, wraps it in a function that uses take.\nexport function taker(f) {\n return f.length === 1 ? (index, values) => f(take(values, index)) : f;\n}\n\n// Uses subarray if available, and otherwise slice.\nexport function subarray(I, i, j) {\n return I.subarray ? I.subarray(i, j) : I.slice(i, j);\n}\n\n// Based on InternMap (d3.group).\nexport function keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n\nexport function maybeInput(key, options) {\n if (options[key] !== undefined) return options[key];\n switch (key) {\n case \"x1\":\n case \"x2\":\n key = \"x\";\n break;\n case \"y1\":\n case \"y2\":\n key = \"y\";\n break;\n }\n return options[key];\n}\n\nexport function column(source) {\n // Defines a column whose values are lazily populated by calling the returned\n // setter. If the given source is labeled, the label is propagated to the\n // returned column definition.\n let value;\n return [\n {\n transform: () => value,\n label: labelof(source)\n },\n (v) => (value = v)\n ];\n}\n\n// Like column, but allows the source to be null.\nexport function maybeColumn(source) {\n return source == null ? [source] : column(source);\n}\n\nexport function labelof(value, defaultValue) {\n return typeof value === \"string\" ? value : value && value.label !== undefined ? value.label : defaultValue;\n}\n\n// Assuming that both x1 and x2 and lazy columns (per above), this derives a new\n// a column that’s the average of the two, and which inherits the column label\n// (if any). Both input columns are assumed to be quantitative. If either column\n// is temporal, the returned column is also temporal.\nexport function mid(x1, x2) {\n return {\n transform(data) {\n const X1 = x1.transform(data);\n const X2 = x2.transform(data);\n return isTemporal(X1) || isTemporal(X2)\n ? map(X1, (_, i) => new Date((+X1[i] + +X2[i]) / 2))\n : map(X1, (_, i) => (+X1[i] + +X2[i]) / 2, Float64Array);\n },\n label: x1.label\n };\n}\n\n// If the scale options declare an interval, applies it to the values V.\nexport function maybeApplyInterval(V, scale) {\n const t = maybeIntervalTransform(scale?.interval, scale?.type);\n return t ? map(V, t) : V;\n}\n\n// Returns the equivalent scale transform for the specified interval option.\nexport function maybeIntervalTransform(interval, type) {\n const i = maybeInterval(interval, type);\n return i && ((v) => (defined(v) ? i.floor(v) : v));\n}\n\n// If interval is not nullish, converts interval shorthand such as a number (for\n// multiples) or a time interval name (such as “day”) to a {floor, offset,\n// range} object similar to a D3 time interval.\nexport function maybeInterval(interval, type) {\n if (interval == null) return;\n if (typeof interval === \"number\") {\n if (0 < interval && interval < 1 && Number.isInteger(1 / interval)) interval = -1 / interval;\n const n = Math.abs(interval);\n return interval < 0\n ? {\n floor: (d) => Math.floor(d * n) / n,\n offset: (d) => (d * n + 1) / n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo * n), hi * n).map((x) => x / n)\n }\n : {\n floor: (d) => Math.floor(d / n) * n,\n offset: (d) => d + n, // note: no optional step for simplicity\n range: (lo, hi) => rangei(Math.ceil(lo / n), hi / n).map((x) => x * n)\n };\n }\n if (typeof interval === \"string\") return (type === \"time\" ? maybeTimeInterval : maybeUtcInterval)(interval);\n if (typeof interval.floor !== \"function\") throw new Error(\"invalid interval; missing floor method\");\n if (typeof interval.offset !== \"function\") throw new Error(\"invalid interval; missing offset method\");\n return interval;\n}\n\n// Like maybeInterval, but requires a range method too.\nexport function maybeRangeInterval(interval, type) {\n interval = maybeInterval(interval, type);\n if (interval && typeof interval.range !== \"function\") throw new Error(\"invalid interval: missing range method\");\n return interval;\n}\n\n// Like maybeRangeInterval, but requires a ceil method too.\nexport function maybeNiceInterval(interval, type) {\n interval = maybeRangeInterval(interval, type);\n if (interval && typeof interval.ceil !== \"function\") throw new Error(\"invalid interval: missing ceil method\");\n return interval;\n}\n\nexport function isTimeInterval(t) {\n return isInterval(t) && typeof t?.floor === \"function\" && t.floor() instanceof Date;\n}\n\nexport function isInterval(t) {\n return typeof t?.range === \"function\";\n}\n\n// This distinguishes between per-dimension options and a standalone value.\nexport function maybeValue(value) {\n return value === undefined || isOptions(value) ? value : {value};\n}\n\n// Coerces the given channel values (if any) to numbers. This is useful when\n// values will be interpolated into other code, such as an SVG transform, and\n// where we don’t wish to allow unexpected behavior for weird input.\nexport function numberChannel(source) {\n return source == null\n ? null\n : {\n transform: (data) => valueof(data, source, Float64Array),\n label: labelof(source)\n };\n}\n\nexport function isTuples(data) {\n if (!isIterable(data)) return false;\n for (const d of data) {\n if (d == null) continue;\n return typeof d === \"object\" && \"0\" in d && \"1\" in d;\n }\n}\n\nexport function isIterable(value) {\n return value && typeof value[Symbol.iterator] === \"function\";\n}\n\nexport function isTextual(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value !== \"object\" || value instanceof Date;\n }\n}\n\nexport function isOrdinal(values) {\n for (const value of values) {\n if (value == null) continue;\n const type = typeof value;\n return type === \"string\" || type === \"boolean\";\n }\n}\n\nexport function isTemporal(values) {\n for (const value of values) {\n if (value == null) continue;\n return value instanceof Date;\n }\n}\n\n// Are these strings that might represent dates? This is stricter than ISO 8601\n// because we want to ignore false positives on numbers; for example, the string\n// \"1192\" is more likely to represent a number than a date even though it is\n// valid ISO 8601 representing 1192-01-01.\nexport function isTemporalString(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"string\" && isNaN(value) && isoParse(value);\n }\n}\n\n// Are these strings that might represent numbers? This is stricter than\n// coercion because we want to ignore false positives on e.g. empty strings.\nexport function isNumericString(values) {\n for (const value of values) {\n if (value == null) continue;\n if (typeof value !== \"string\") return false;\n if (!value.trim()) continue;\n return !isNaN(value);\n }\n}\n\nexport function isNumeric(values) {\n for (const value of values) {\n if (value == null) continue;\n return typeof value === \"number\";\n }\n}\n\n// Returns true if every non-null value in the specified iterable of values\n// passes the specified predicate, and there is at least one non-null value;\n// returns false if at least one non-null value does not pass the specified\n// predicate; otherwise returns undefined (as if all values are null).\nexport function isEvery(values, is) {\n let every;\n for (const value of values) {\n if (value == null) continue;\n if (!is(value)) return false;\n every = true;\n }\n return every;\n}\n\nconst namedColors = new Set(\"none,currentcolor,transparent,aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkgrey,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkslategrey,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dimgrey,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,grey,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgray,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightslategrey,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,rebeccapurple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,slategrey,snow,springgreen,steelblue,tan,teal,thistle,tomato,turquoise,violet,wheat,white,whitesmoke,yellow\".split(\",\")); // prettier-ignore\n\n// Returns true if value is a valid CSS color string. This is intentionally lax\n// because the CSS color spec keeps growing, and we don’t need to parse these\n// colors—we just need to disambiguate them from column names.\n// https://www.w3.org/TR/SVG11/painting.html#SpecifyingPaint\n// https://www.w3.org/TR/css-color-5/\nexport function isColor(value) {\n if (typeof value !== \"string\") return false;\n value = value.toLowerCase().trim();\n return (\n /^#[0-9a-f]{3,8}$/.test(value) || // hex rgb, rgba, rrggbb, rrggbbaa\n /^(?:url|var|rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch|color|color-mix)\\(.*\\)$/.test(value) || // <funciri>, CSS variable, color, etc.\n namedColors.has(value) // currentColor, red, etc.\n );\n}\n\nexport function isOpacity(value) {\n return typeof value === \"number\" && ((0 <= value && value <= 1) || isNaN(value));\n}\n\nexport function isNoneish(value) {\n return value == null || isNone(value);\n}\n\nexport function isNone(value) {\n return /^\\s*none\\s*$/i.test(value);\n}\n\nexport function isRound(value) {\n return /^\\s*round\\s*$/i.test(value);\n}\n\nexport function maybeAnchor(value, name) {\n return maybeKeyword(value, name, [\n \"middle\",\n \"top-left\",\n \"top\",\n \"top-right\",\n \"right\",\n \"bottom-right\",\n \"bottom\",\n \"bottom-left\",\n \"left\"\n ]);\n}\n\nexport function maybeFrameAnchor(value = \"middle\") {\n return maybeAnchor(value, \"frameAnchor\");\n}\n\n// Like a sort comparator, returns a positive value if the given array of values\n// is in ascending order, a negative value if the values are in descending\n// order. Assumes monotonicity; only tests the first and last values.\nexport function orderof(values) {\n if (values == null) return;\n const first = values[0];\n const last = values[values.length - 1];\n return descending(first, last);\n}\n\n// Unlike {...defaults, ...options}, this ensures that any undefined (but\n// present) properties in options inherit the given default value.\nexport function inherit(options = {}, ...rest) {\n let o = options;\n for (const defaults of rest) {\n for (const key in defaults) {\n if (o[key] === undefined) {\n const value = defaults[key];\n if (o === options) o = {...o, [key]: value};\n else o[key] = value;\n }\n }\n }\n return o;\n}\n\n// Given an iterable of named things (objects with a name property), returns a\n// corresponding object with properties associated with the given name.\nexport function named(things) {\n console.warn(\"named iterables are deprecated; please use an object instead\");\n const names = new Set();\n return Object.fromEntries(\n Array.from(things, (thing) => {\n const {name} = thing;\n if (name == null) throw new Error(\"missing name\");\n const key = `${name}`;\n if (key === \"__proto__\") throw new Error(`illegal name: ${key}`);\n if (names.has(key)) throw new Error(`duplicate name: ${key}`);\n names.add(key);\n return [name, thing];\n })\n );\n}\n\nexport function maybeNamed(things) {\n return isIterable(things) ? named(things) : things;\n}\n","// Positional scales have associated axes, and for ordinal data, a point or band\n// scale is used instead of an ordinal scale.\nexport const position = Symbol(\"position\");\n\n// Color scales default to the turbo interpolator for quantitative data, and to\n// the Tableau10 scheme for ordinal data. Color scales may also have an\n// associated legend.\nexport const color = Symbol(\"color\");\n\n// Radius scales default to the sqrt type, have a default range of [0, 3], and a\n// default domain from 0 to the median first quartile of associated channels.\nexport const radius = Symbol(\"radius\");\n\n// Length scales default to the linear type, have a default range of [0, 12],\n// and a default domain from 0 to the median median of associated channels.\nexport const length = Symbol(\"length\");\n\n// Opacity scales have a default range of [0, 1], and a default domain from 0 to\n// the maximum value of associated channels.\nexport const opacity = Symbol(\"opacity\");\n\n// Symbol scales have a default range of categorical symbols.\nexport const symbol = Symbol(\"symbol\");\n\n// There isn’t really a projection scale; this represents x and y for geometry.\n// This is used to denote channels that should be projected.\nexport const projection = Symbol(\"projection\");\n\n// TODO Rather than hard-coding the list of known scale names, collect the names\n// and categories for each plot specification, so that custom marks can register\n// custom scales.\nexport const registry = new Map([\n [\"x\", position],\n [\"y\", position],\n [\"fx\", position],\n [\"fy\", position],\n [\"r\", radius],\n [\"color\", color],\n [\"opacity\", opacity],\n [\"symbol\", symbol],\n [\"length\", length],\n [\"projection\", projection]\n]);\n\nexport function isPosition(kind) {\n return kind === position || kind === projection;\n}\n\nexport function hasNumericRange(kind) {\n return kind === position || kind === radius || kind === length || kind === opacity;\n}\n","import {symbolAsterisk, symbolDiamond2, symbolPlus, symbolSquare2, symbolTriangle2, symbolTimes} from \"d3\";\nimport {symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye} from \"d3\";\n\nexport const sqrt3 = Math.sqrt(3);\nexport const sqrt4_3 = 2 / sqrt3;\n\nconst symbolHexagon = {\n draw(context, size) {\n const rx = Math.sqrt(size / Math.PI),\n ry = rx * sqrt4_3,\n hy = ry / 2;\n context.moveTo(0, ry);\n context.lineTo(rx, hy);\n context.lineTo(rx, -hy);\n context.lineTo(0, -ry);\n context.lineTo(-rx, -hy);\n context.lineTo(-rx, hy);\n context.closePath();\n }\n};\n\nconst symbols = new Map([\n [\"asterisk\", symbolAsterisk],\n [\"circle\", symbolCircle],\n [\"cross\", symbolCross],\n [\"diamond\", symbolDiamond],\n [\"diamond2\", symbolDiamond2],\n [\"hexagon\", symbolHexagon],\n [\"plus\", symbolPlus],\n [\"square\", symbolSquare],\n [\"square2\", symbolSquare2],\n [\"star\", symbolStar],\n [\"times\", symbolTimes],\n [\"triangle\", symbolTriangle],\n [\"triangle2\", symbolTriangle2],\n [\"wye\", symbolWye]\n]);\n\nfunction isSymbolObject(value) {\n return value && typeof value.draw === \"function\";\n}\n\nexport function isSymbol(value) {\n if (isSymbolObject(value)) return true;\n if (typeof value !== \"string\") return false;\n return symbols.has(value.toLowerCase());\n}\n\nexport function maybeSymbol(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return symbol;\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return value;\n throw new Error(`invalid symbol: ${symbol}`);\n}\n\nexport function maybeSymbolChannel(symbol) {\n if (symbol == null || isSymbolObject(symbol)) return [undefined, symbol];\n if (typeof symbol === \"string\") {\n const value = symbols.get(`${symbol}`.toLowerCase());\n if (value) return [undefined, value];\n }\n return [symbol, undefined];\n}\n","import {randomLcg} from \"d3\";\nimport {ascendingDefined, descendingDefined} from \"../defined.js\";\nimport {arrayify, isDomainSort, isOptions, maybeValue, valueof} from \"../options.js\";\n\nexport function basic({filter: f1, sort: s1, reverse: r1, transform: t1, initializer: i1, ...options} = {}, transform) {\n // If both t1 and t2 are defined, returns a composite transform that first\n // applies t1 and then applies t2.\n if (t1 === undefined) {\n // explicit transform overrides filter, sort, and reverse\n if (f1 != null) t1 = filterTransform(f1);\n if (s1 != null && !isDomainSort(s1)) t1 = composeTransform(t1, sortTransform(s1));\n if (r1) t1 = composeTransform(t1, reverseTransform);\n }\n if (transform != null && i1 != null) throw new Error(\"transforms cannot be applied after initializers\");\n return {\n ...options,\n ...((s1 === null || isDomainSort(s1)) && {sort: s1}),\n transform: composeTransform(t1, transform)\n };\n}\n\nexport function initializer({filter: f1, sort: s1, reverse: r1, initializer: i1, ...options} = {}, initializer) {\n // If both i1 and i2 are defined, returns a composite initializer that first\n // applies i1 and then applies i2.\n if (i1 === undefined) {\n // explicit initializer overrides filter, sort, and reverse\n if (f1 != null) i1 = filterTransform(f1);\n if (s1 != null && !isDomainSort(s1)) i1 = composeInitializer(i1, sortTransform(s1));\n if (r1) i1 = composeInitializer(i1, reverseTransform);\n }\n return {\n ...options,\n ...((s1 === null || isDomainSort(s1)) && {sort: s1}),\n initializer: composeInitializer(i1, initializer)\n };\n}\n\nfunction composeTransform(t1, t2) {\n if (t1 == null) return t2 === null ? undefined : t2;\n if (t2 == null) return t1 === null ? undefined : t1;\n return function (data, facets, plotOptions) {\n ({data, facets} = t1.call(this, data, facets, plotOptions));\n return t2.call(this, arrayify(data), facets, plotOptions);\n };\n}\n\nfunction composeInitializer(i1, i2) {\n if (i1 == null) return i2 === null ? undefined : i2;\n if (i2 == null) return i1 === null ? undefined : i1;\n return function (data, facets, channels, ...args) {\n let c1, d1, f1, c2, d2, f2;\n ({data: d1 = data, facets: f1 = facets, channels: c1} = i1.call(this, data, facets, channels, ...args));\n ({data: d2 = d1, facets: f2 = f1, channels: c2} = i2.call(this, d1, f1, {...channels, ...c1}, ...args));\n return {data: d2, facets: f2, channels: {...c1, ...c2}};\n };\n}\n\nfunction apply(options, t) {\n return (options.initializer != null ? initializer : basic)(options, t);\n}\n\nexport function filter(test, options) {\n return apply(options, filterTransform(test));\n}\n\nfunction filterTransform(value) {\n return (data, facets) => {\n const V = valueof(data, value);\n return {data, facets: facets.map((I) => I.filter((i) => V[i]))};\n };\n}\n\nexport function reverse({sort, ...options} = {}) {\n return {\n ...apply(options, reverseTransform),\n sort: isDomainSort(sort) ? sort : null\n };\n}\n\nfunction reverseTransform(data, facets) {\n return {data, facets: facets.map((I) => I.slice().reverse())};\n}\n\nexport function shuffle({seed, sort, ...options} = {}) {\n return {\n ...apply(options, sortValue(seed == null ? Math.random : randomLcg(seed))),\n sort: isDomainSort(sort) ? sort : null\n };\n}\n\nexport function sort(order, {sort, ...options} = {}) {\n return {\n ...(isOptions(order) && order.channel !== undefined ? initializer : apply)(options, sortTransform(order)),\n sort: isDomainSort(sort) ? sort : null\n };\n}\n\nfunction sortTransform(value) {\n return (typeof value === \"function\" && value.length !== 1 ? sortData : sortValue)(value);\n}\n\nfunction sortData(compare) {\n return (data, facets) => {\n const compareData = (i, j) => compare(data[i], data[j]);\n return {data, facets: facets.map((I) => I.slice().sort(compareData))};\n };\n}\n\nfunction sortValue(value) {\n let channel, order;\n ({channel, value, order} = {...maybeValue(value)});\n const negate = channel?.startsWith(\"-\");\n if (negate) channel = channel.slice(1);\n if (order === undefined) order = negate ? descendingDefined : ascendingDefined;\n if (typeof order !== \"function\") {\n switch (`${order}`.toLowerCase()) {\n case \"ascending\":\n order = ascendingDefined;\n break;\n case \"descending\":\n order = descendingDefined;\n break;\n default:\n throw new Error(`invalid order: ${order}`);\n }\n }\n return (data, facets, channels) => {\n let V;\n if (channel === undefined) {\n V = valueof(data, value);\n } else {\n if (channels === undefined) throw new Error(\"channel sort requires an initializer\");\n V = channels[channel];\n if (!V) return {}; // ignore missing channel\n V = V.value;\n }\n const compareValue = (i, j) => order(V[i], V[j]);\n return {data, facets: facets.map((I) => I.slice().sort(compareValue))};\n };\n}\n","import {\n InternSet,\n deviation,\n group as grouper,\n max,\n maxIndex,\n mean,\n median,\n min,\n minIndex,\n mode,\n rollup,\n sort,\n sum,\n variance\n} from \"d3\";\nimport {ascendingDefined} from \"../defined.js\";\nimport {\n column,\n first,\n identity,\n isObject,\n isTemporal,\n labelof,\n maybeApplyInterval,\n maybeColorChannel,\n maybeColumn,\n maybeInput,\n maybeTuple,\n percentile,\n range,\n second,\n take,\n valueof\n} from \"../options.js\";\nimport {basic} from \"./basic.js\";\n\n// Group on {z, fill, stroke}.\nexport function groupZ(outputs, options) {\n return groupn(null, null, outputs, options);\n}\n\n// Group on {z, fill, stroke}, then on x.\nexport function groupX(outputs = {y: \"count\"}, options = {}) {\n const {x = identity} = options;\n if (x == null) throw new Error(\"missing channel: x\");\n return groupn(x, null, outputs, options);\n}\n\n// Group on {z, fill, stroke}, then on y.\nexport function groupY(outputs = {x: \"count\"}, options = {}) {\n const {y = identity} = options;\n if (y == null) throw new Error(\"missing channel: y\");\n return groupn(null, y, outputs, options);\n}\n\n// Group on {z, fill, stroke}, then on x and y.\nexport function group(outputs = {fill: \"count\"}, options = {}) {\n let {x, y} = options;\n [x, y] = maybeTuple(x, y);\n if (x == null) throw new Error(\"missing channel: x\");\n if (y == null) throw new Error(\"missing channel: y\");\n return groupn(x, y, outputs, options);\n}\n\nfunction groupn(\n x, // optionally group on x\n y, // optionally group on y\n {\n data: reduceData = reduceIdentity,\n filter,\n sort,\n reverse,\n ...outputs // output channel definitions\n } = {},\n inputs = {} // input channels and options\n) {\n // Compute the outputs.\n outputs = maybeOutputs(outputs, inputs);\n reduceData = maybeReduce(reduceData, identity);\n sort = sort == null ? undefined : maybeOutput(\"sort\", sort, inputs);\n filter = filter == null ? undefined : maybeEvaluator(\"filter\", filter, inputs);\n\n // Produce x and y output channels as appropriate.\n const [GX, setGX] = maybeColumn(x);\n const [GY, setGY] = maybeColumn(y);\n\n // Greedily materialize the z, fill, and stroke channels (if channels and not\n // constants) so that we can reference them for subdividing groups without\n // computing them more than once.\n const {\n z,\n fill,\n stroke,\n x1,\n x2, // consumed if x is an output\n y1,\n y2, // consumed if y is an output\n ...options\n } = inputs;\n const [GZ, setGZ] = maybeColumn(z);\n const [vfill] = maybeColorChannel(fill);\n const [vstroke] = maybeColorChannel(stroke);\n const [GF, setGF] = maybeColumn(vfill);\n const [GS, setGS] = maybeColumn(vstroke);\n\n return {\n ...(\"z\" in inputs && {z: GZ || z}),\n ...(\"fill\" in inputs && {fill: GF || fill}),\n ...(\"stroke\" in inputs && {stroke: GS || stroke}),\n ...basic(options, (data, facets, plotOptions) => {\n const X = maybeApplyInterval(valueof(data, x), plotOptions?.x);\n const Y = maybeApplyInterval(valueof(data, y), plotOptions?.y);\n const Z = valueof(data, z);\n const F = valueof(data, vfill);\n const S = valueof(data, vstroke);\n const G = maybeSubgroup(outputs, {z: Z, fill: F, stroke: S});\n const groupFacets = [];\n const groupData = [];\n const GX = X && setGX([]);\n const GY = Y && setGY([]);\n const GZ = Z && setGZ([]);\n const GF = F && setGF([]);\n const GS = S && setGS([]);\n let i = 0;\n for (const o of outputs) o.initialize(data);\n if (sort) sort.initialize(data);\n if (filter) filter.initialize(data);\n for (const facet of facets) {\n const groupFacet = [];\n for (const o of outputs) o.scope(\"facet\", facet);\n if (sort) sort.scope(\"facet\", facet);\n if (filter) filter.scope(\"facet\", facet);\n for (const [f, I] of maybeGroup(facet, G)) {\n for (const [y, gg] of maybeGroup(I, Y)) {\n for (const [x, g] of maybeGroup(gg, X)) {\n if (filter && !filter.reduce(g)) continue;\n groupFacet.push(i++);\n groupData.push(reduceData.reduceIndex(g, data));\n if (X) GX.push(x);\n if (Y) GY.push(y);\n if (Z) GZ.push(G === Z ? f : Z[g[0]]);\n if (F) GF.push(G === F ? f : F[g[0]]);\n if (S) GS.push(G === S ? f : S[g[0]]);\n for (const o of outputs) o.reduce(g);\n if (sort) sort.reduce(g);\n }\n }\n }\n groupFacets.push(groupFacet);\n }\n maybeSort(groupFacets, sort, reverse);\n return {data: groupData, facets: groupFacets};\n }),\n ...(!hasOutput(outputs, \"x\") && (GX ? {x: GX} : {x1, x2})),\n ...(!hasOutput(outputs, \"y\") && (GY ? {y: GY} : {y1, y2})),\n ...Object.fromEntries(outputs.map(({name, output}) => [name, output]))\n };\n}\n\nexport function hasOutput(outputs, ...names) {\n for (const {name} of outputs) {\n if (names.includes(name)) {\n return true;\n }\n }\n return false;\n}\n\nexport function maybeOutputs(outputs, inputs, asOutput = maybeOutput) {\n const entries = Object.entries(outputs);\n // Propagate standard mark channels by default.\n if (inputs.title != null && outputs.title === undefined) entries.push([\"title\", reduceTitle]);\n if (inputs.href != null && outputs.href === undefined) entries.push([\"href\", reduceFirst]);\n return entries\n .filter(([, reduce]) => reduce !== undefined)\n .map(([name, reduce]) => (reduce === null ? nullOutput(name) : asOutput(name, reduce, inputs)));\n}\n\nexport function maybeOutput(name, reduce, inputs, asEvaluator = maybeEvaluator) {\n let scale; // optional per-channel scale override\n if (isObject(reduce) && \"reduce\" in reduce) (scale = reduce.scale), (reduce = reduce.reduce); // N.B. array.reduce\n const evaluator = asEvaluator(name, reduce, inputs);\n const [output, setOutput] = column(evaluator.label);\n let O;\n return {\n name,\n output: scale === undefined ? output : {value: output, scale},\n initialize(data) {\n evaluator.initialize(data);\n O = setOutput([]);\n },\n scope(scope, I) {\n evaluator.scope(scope, I);\n },\n reduce(I, extent) {\n O.push(evaluator.reduce(I, extent));\n }\n };\n}\n\nfunction nullOutput(name) {\n return {name, initialize() {}, scope() {}, reduce() {}};\n}\n\nexport function maybeEvaluator(name, reduce, inputs, asReduce = maybeReduce) {\n const input = maybeInput(name, inputs);\n const reducer = asReduce(reduce, input);\n let V, context;\n return {\n label: labelof(reducer === reduceCount ? null : input, reducer.label),\n initialize(data) {\n V = input === undefined ? data : valueof(data, input);\n if (reducer.scope === \"data\") {\n context = reducer.reduceIndex(range(data), V);\n }\n },\n scope(scope, I) {\n if (reducer.scope === scope) {\n context = reducer.reduceIndex(I, V);\n }\n },\n reduce(I, extent) {\n return reducer.scope == null ? reducer.reduceIndex(I, V, extent) : reducer.reduceIndex(I, V, context, extent);\n }\n };\n}\n\nexport function maybeGroup(I, X) {\n return X\n ? sort(\n grouper(I, (i) => X[i]),\n first\n )\n : [[, I]];\n}\n\nexport function maybeReduce(reduce, value, fallback = invalidReduce) {\n if (reduce == null) return fallback(reduce);\n if (typeof reduce.reduceIndex === \"function\") return reduce;\n if (typeof reduce.reduce === \"function\" && isObject(reduce)) return reduceReduce(reduce); // N.B. array.reduce\n if (typeof reduce === \"function\") return reduceFunction(reduce);\n if (/^p\\d{2}$/i.test(reduce)) return reduceAccessor(percentile(reduce));\n switch (`${reduce}`.toLowerCase()) {\n case \"first\":\n return reduceFirst;\n case \"last\":\n return reduceLast;\n case \"identity\":\n return reduceIdentity;\n case \"count\":\n return reduceCount;\n case \"distinct\":\n return reduceDistinct;\n case \"sum\":\n return value == null ? reduceCount : reduceSum;\n case \"proportion\":\n return reduceProportion(value, \"data\");\n case \"proportion-facet\":\n return reduceProportion(value, \"facet\");\n case \"deviation\":\n return reduceAccessor(deviation);\n case \"min\":\n return reduceAccessor(min);\n case \"min-index\":\n return reduceAccessor(minIndex);\n case \"max\":\n return reduceAccessor(max);\n case \"max-index\":\n return reduceAccessor(maxIndex);\n case \"mean\":\n return reduceMaybeTemporalAccessor(mean);\n case \"median\":\n return reduceMaybeTemporalAccessor(median);\n case \"variance\":\n return reduceAccessor(variance);\n case \"mode\":\n return reduceAccessor(mode);\n }\n return fallback(reduce);\n}\n\nfunction invalidReduce(reduce) {\n throw new Error(`invalid reduce: ${reduce}`);\n}\n\nexport function maybeSubgroup(outputs, inputs) {\n for (const name in inputs) {\n const value = inputs[name];\n if (value !== undefined && !outputs.some((o) => o.name === name)) {\n return value;\n }\n }\n}\n\nexport function maybeSort(facets, sort, reverse) {\n if (sort) {\n const S = sort.output.transform();\n const compare = (i, j) => ascendingDefined(S[i], S[j]);\n facets.forEach((f) => f.sort(compare));\n }\n if (reverse) {\n facets.forEach((f) => f.reverse());\n }\n}\n\nfunction reduceReduce(reduce) {\n console.warn(\"deprecated reduce interface; implement reduceIndex instead.\");\n return {...reduce, reduceIndex: reduce.reduce.bind(reduce)};\n}\n\nfunction reduceFunction(f) {\n return {\n reduceIndex(I, X, extent) {\n return f(take(X, I), extent);\n }\n };\n}\n\nfunction reduceAccessor(f) {\n return {\n reduceIndex(I, X) {\n return f(I, (i) => X[i]);\n }\n };\n}\n\nfunction reduceMaybeTemporalAccessor(f) {\n return {\n reduceIndex(I, X) {\n const x = f(I, (i) => X[i]);\n return isTemporal(X) ? new Date(x) : x;\n }\n };\n}\n\nexport const reduceIdentity = {\n reduceIndex(I, X) {\n return take(X, I);\n }\n};\n\nexport const reduceFirst = {\n reduceIndex(I, X) {\n return X[I[0]];\n }\n};\n\nconst reduceTitle = {\n reduceIndex(I, X) {\n const n = 5;\n const groups = sort(\n rollup(\n I,\n (V) => V.length,\n (i) => X[i]\n ),\n second\n );\n const top = groups.slice(-n).reverse();\n if (top.length < groups.length) {\n const bottom = groups.slice(0, 1 - n);\n top[n - 1] = [`… ${bottom.length.toLocaleString(\"en-US\")} more`, sum(bottom, second)];\n }\n return top.map(([key, value]) => `${key} (${value.toLocaleString(\"en-US\")})`).join(\"\\n\");\n }\n};\n\nconst reduceLast = {\n reduceIndex(I, X) {\n return X[I[I.length - 1]];\n }\n};\n\nexport const reduceCount = {\n label: \"Frequency\",\n reduceIndex(I) {\n return I.length;\n }\n};\n\nconst reduceDistinct = {\n label: \"Distinct\",\n reduceIndex(I, X) {\n const s = new InternSet();\n for (const i of I) s.add(X[i]);\n return s.size;\n }\n};\n\nconst reduceSum = reduceAccessor(sum);\n\nfunction reduceProportion(value, scope) {\n return value == null\n ? {scope, label: \"Frequency\", reduceIndex: (I, V, basis = 1) => I.length / basis}\n : {scope, reduceIndex: (I, V, basis = 1) => sum(I, (i) => V[i]) / basis};\n}\n","import {InternSet, rollups} from \"d3\";\nimport {ascendingDefined, descendingDefined} from \"./defined.js\";\nimport {first, isColor, isEvery, isIterable, isOpacity, labelof, map, maybeValue, range, valueof} from \"./options.js\";\nimport {registry} from \"./scales/index.js\";\nimport {isSymbol, maybeSymbol} from \"./symbol.js\";\nimport {maybeReduce} from \"./transforms/group.js\";\n\nexport function createChannel(data, {scale, type, value, filter, hint, label = labelof(value)}, name) {\n if (hint === undefined && typeof value?.transform === \"function\") hint = value.hint;\n return inferChannelScale(name, {\n scale,\n type,\n value: valueof(data, value),\n label,\n filter,\n hint\n });\n}\n\nexport function createChannels(channels, data) {\n return Object.fromEntries(\n Object.entries(channels).map(([name, channel]) => [name, createChannel(data, channel, name)])\n );\n}\n\n// TODO Use Float64Array for scales with numeric ranges, e.g. position?\nexport function valueObject(channels, scales) {\n const values = Object.fromEntries(\n Object.entries(channels).map(([name, {scale: scaleName, value}]) => {\n const scale = scaleName == null ? null : scales[scaleName];\n return [name, scale == null ? value : map(value, scale)];\n })\n );\n values.channels = channels; // expose channel state for advanced usage\n return values;\n}\n\n// If the channel uses the \"auto\" scale (or equivalently true), infer the scale\n// from the channel name and the provided values. For color and symbol channels,\n// no scale is applied if the values are literal; however for symbols, we must\n// promote symbol names (e.g., \"plus\") to symbol implementations (symbolPlus).\n// Note: mutates channel!\nexport function inferChannelScale(name, channel) {\n const {scale, value} = channel;\n if (scale === true || scale === \"auto\") {\n switch (name) {\n case \"fill\":\n case \"stroke\":\n case \"color\":\n channel.scale = scale !== true && isEvery(value, isColor) ? null : \"color\";\n break;\n case \"fillOpacity\":\n case \"strokeOpacity\":\n case \"opacity\":\n channel.scale = scale !== true && isEvery(value, isOpacity) ? null : \"opacity\";\n break;\n case \"symbol\":\n if (scale !== true && isEvery(value, isSymbol)) {\n channel.scale = null;\n channel.value = map(value, maybeSymbol);\n } else {\n channel.scale = \"symbol\";\n }\n break;\n default:\n channel.scale = registry.has(name) ? name : null;\n break;\n }\n } else if (scale === false) {\n channel.scale = null;\n } else if (scale != null && !registry.has(scale)) {\n throw new Error(`unknown scale: ${scale}`);\n }\n return channel;\n}\n\n// Note: mutates channel.domain! This is set to a function so that it is lazily\n// computed; i.e., if the scale’s domain is set explicitly, that takes priority\n// over the sort option, and we don’t need to do additional work.\nexport function channelDomain(data, facets, channels, facetChannels, options) {\n const {order: defaultOrder, reverse: defaultReverse, reduce: defaultReduce = true, limit: defaultLimit} = options;\n for (const x in options) {\n if (!registry.has(x)) continue; // ignore unknown scale keys (including generic options)\n let {value: y, order = defaultOrder, reverse = defaultReverse, reduce = defaultReduce, limit = defaultLimit} = maybeValue(options[x]); // prettier-ignore\n const negate = y?.startsWith(\"-\");\n if (negate) y = y.slice(1);\n order = order === undefined ? negate !== (y === \"width\" || y === \"height\") ? descendingGroup : ascendingGroup : maybeOrder(order); // prettier-ignore\n if (reduce == null || reduce === false) continue; // disabled reducer\n const X = x === \"fx\" || x === \"fy\" ? reindexFacetChannel(facets, facetChannels[x]) : findScaleChannel(channels, x);\n if (!X) throw new Error(`missing channel for scale: ${x}`);\n const XV = X.value;\n const [lo = 0, hi = Infinity] = isIterable(limit) ? limit : limit < 0 ? [limit] : [0, limit];\n if (y == null) {\n X.domain = () => {\n let domain = Array.from(new InternSet(XV)); // remove any duplicates\n if (reverse) domain = domain.reverse();\n if (lo !== 0 || hi !== Infinity) domain = domain.slice(lo, hi);\n return domain;\n };\n } else {\n const YV =\n y === \"data\"\n ? data\n : y === \"height\"\n ? difference(channels, \"y1\", \"y2\")\n : y === \"width\"\n ? difference(channels, \"x1\", \"x2\")\n : values(channels, y, y === \"y\" ? \"y2\" : y === \"x\" ? \"x2\" : undefined);\n const reducer = maybeReduce(reduce === true ? \"max\" : reduce, YV);\n X.domain = () => {\n let domain = rollups(\n range(XV),\n (I) => reducer.reduceIndex(I, YV),\n (i) => XV[i]\n );\n if (order) domain.sort(order);\n if (reverse) domain.reverse();\n if (lo !== 0 || hi !== Infinity) domain = domain.slice(lo, hi);\n return domain.map(first);\n };\n }\n }\n}\n\nfunction findScaleChannel(channels, scale) {\n for (const name in channels) {\n const channel = channels[name];\n if (channel.scale === scale) return channel;\n }\n}\n\n// Facet channels are not affected by transforms; so, to compute the domain of a\n// facet scale, we must first re-index the facet channel according to the\n// transformed mark index. Note: mutates channel, but that should be safe here?\nfunction reindexFacetChannel(facets, channel) {\n const originalFacets = facets.original;\n if (originalFacets === facets) return channel; // not transformed\n const V1 = channel.value;\n const V2 = (channel.value = []); // mutates channel!\n for (let i = 0; i < originalFacets.length; ++i) {\n const vi = V1[originalFacets[i][0]];\n for (const j of facets[i]) V2[j] = vi;\n }\n return channel;\n}\n\nfunction difference(channels, k1, k2) {\n const X1 = values(channels, k1);\n const X2 = values(channels, k2);\n return map(X2, (x2, i) => Math.abs(x2 - X1[i]), Float64Array);\n}\n\nfunction values(channels, name, alias) {\n let channel = channels[name];\n if (!channel && alias !== undefined) channel = channels[alias];\n if (channel) return channel.value;\n throw new Error(`missing channel: ${name}`);\n}\n\nfunction maybeOrder(order) {\n if (order == null || typeof order === \"function\") return order;\n switch (`${order}`.toLowerCase()) {\n case \"ascending\":\n return ascendingGroup;\n case \"descending\":\n return descendingGroup;\n }\n throw new Error(`invalid order: ${order}`);\n}\n\nfunction ascendingGroup([ak, av], [bk, bv]) {\n return ascendingDefined(av, bv) || ascendingDefined(ak, bk);\n}\n\nfunction descendingGroup([ak, av], [bk, bv]) {\n return descendingDefined(av, bv) || ascendingDefined(ak, bk);\n}\n\nexport function getSource(channels, key) {\n let channel = channels[key];\n if (!channel) return;\n while (channel.source) channel = channel.source;\n return channel.source === null ? null : channel;\n}\n","export function memoize1(compute) {\n let cacheValue, cacheKeys;\n return (...keys) => {\n if (cacheKeys?.length !== keys.length || cacheKeys.some((k, i) => k !== keys[i])) {\n cacheKeys = keys;\n cacheValue = compute(...keys);\n }\n return cacheValue;\n };\n}\n","import {format as isoFormat} from \"isoformat\";\nimport {string} from \"./options.js\";\nimport {memoize1} from \"./memoize.js\";\n\nconst numberFormat = memoize1((locale) => {\n return new Intl.NumberFormat(locale);\n});\n\nconst monthFormat = memoize1((locale, month) => {\n return new Intl.DateTimeFormat(locale, {timeZone: \"UTC\", ...(month && {month})});\n});\n\nconst weekdayFormat = memoize1((locale, weekday) => {\n return new Intl.DateTimeFormat(locale, {timeZone: \"UTC\", ...(weekday && {weekday})});\n});\n\nexport function formatNumber(locale = \"en-US\") {\n const format = numberFormat(locale);\n return (i) => (i != null && !isNaN(i) ? format.format(i) : undefined);\n}\n\nexport function formatMonth(locale = \"en-US\", format = \"short\") {\n const fmt = monthFormat(locale, format);\n return (i) => (i != null && !isNaN((i = +new Date(Date.UTC(2000, +i)))) ? fmt.format(i) : undefined);\n}\n\nexport function formatWeekday(locale = \"en-US\", format = \"short\") {\n const fmt = weekdayFormat(locale, format);\n return (i) => (i != null && !isNaN((i = +new Date(Date.UTC(2001, 0, +i)))) ? fmt.format(i) : undefined);\n}\n\nexport function formatIsoDate(date) {\n return isoFormat(date, \"Invalid Date\");\n}\n\nexport function formatAuto(locale = \"en-US\") {\n const number = formatNumber(locale);\n return (v) => (v instanceof Date ? formatIsoDate : typeof v === \"number\" ? number : string)(v);\n}\n\n// TODO When Plot supports a top-level locale option, this should be removed\n// because it lacks context to know which locale to use; formatAuto should be\n// used instead whenever possible.\nexport const formatDefault = formatAuto();\n","let warnings = 0;\nlet lastMessage;\n\nexport function consumeWarnings() {\n const w = warnings;\n warnings = 0;\n lastMessage = undefined;\n return w;\n}\n\nexport function warn(message) {\n if (message === lastMessage) return;\n lastMessage = message;\n console.warn(message);\n ++warnings;\n}\n","import {geoPath, group, namespaces} from \"d3\";\nimport {create} from \"./context.js\";\nimport {defined, nonempty} from \"./defined.js\";\nimport {formatDefault} from \"./format.js\";\nimport {isNone, isNoneish, isRound, maybeColorChannel, maybeNumberChannel} from \"./options.js\";\nimport {keyof, keyword, number, string} from \"./options.js\";\nimport {warn} from \"./warnings.js\";\n\nexport const offset = (typeof window !== \"undefined\" ? window.devicePixelRatio > 1 : typeof it === \"undefined\") ? 0 : 0.5; // prettier-ignore\n\nlet nextClipId = 0;\n\nfunction getClipId() {\n return `plot-clip-${++nextClipId}`;\n}\n\nexport function styles(\n mark,\n {\n title,\n href,\n ariaLabel: variaLabel,\n ariaDescription,\n ariaHidden,\n target,\n fill,\n fillOpacity,\n stroke,\n strokeWidth,\n strokeOpacity,\n strokeLinejoin,\n strokeLinecap,\n strokeMiterlimit,\n strokeDasharray,\n strokeDashoffset,\n opacity,\n mixBlendMode,\n imageFilter,\n paintOrder,\n pointerEvents,\n shapeRendering,\n channels\n },\n {\n ariaLabel: cariaLabel,\n fill: defaultFill = \"currentColor\",\n fillOpacity: defaultFillOpacity,\n stroke: defaultStroke = \"none\",\n strokeOpacity: defaultStrokeOpacity,\n strokeWidth: defaultStrokeWidth,\n strokeLinecap: defaultStrokeLinecap,\n strokeLinejoin: defaultStrokeLinejoin,\n strokeMiterlimit: defaultStrokeMiterlimit,\n paintOrder: defaultPaintOrder\n }\n) {\n // Some marks don’t support fill (e.g., tick and rule).\n if (defaultFill === null) {\n fill = null;\n fillOpacity = null;\n }\n\n // Some marks don’t support stroke (e.g., image).\n if (defaultStroke === null) {\n stroke = null;\n strokeOpacity = null;\n }\n\n // Some marks default to fill with no stroke, while others default to stroke\n // with no fill. For example, bar and area default to fill, while dot and line\n // default to stroke. For marks that fill by default, the default fill only\n // applies if the stroke is (constant) none; if you set a stroke, then the\n // default fill becomes none. Similarly for marks that stroke by stroke, the\n // default stroke only applies if the fill is (constant) none.\n if (isNoneish(defaultFill)) {\n if (!isNoneish(defaultStroke) && (!isNoneish(fill) || channels?.fill)) defaultStroke = \"none\";\n } else {\n if (isNoneish(defaultStroke) && (!isNoneish(stroke) || channels?.stroke)) defaultFill = \"none\";\n }\n\n const [vfill, cfill] = maybeColorChannel(fill, defaultFill);\n const [vfillOpacity, cfillOpacity] = maybeNumberChannel(fillOpacity, defaultFillOpacity);\n const [vstroke, cstroke] = maybeColorChannel(stroke, defaultStroke);\n const [vstrokeOpacity, cstrokeOpacity] = maybeNumberChannel(strokeOpacity, defaultStrokeOpacity);\n const [vopacity, copacity] = maybeNumberChannel(opacity);\n\n // For styles that have no effect if there is no stroke, only apply the\n // defaults if the stroke is not the constant none. (If stroke is a channel,\n // then cstroke will be undefined, but there’s still a stroke; hence we don’t\n // use isNoneish here.)\n if (!isNone(cstroke)) {\n if (strokeWidth === undefined) strokeWidth = defaultStrokeWidth;\n if (strokeLinecap === undefined) strokeLinecap = defaultStrokeLinecap;\n if (strokeLinejoin === undefined) strokeLinejoin = defaultStrokeLinejoin;\n\n // The default stroke miterlimit need not be applied if the current stroke\n // is the constant round; this only has effect on miter joins.\n if (strokeMiterlimit === undefined && !isRound(strokeLinejoin)) strokeMiterlimit = defaultStrokeMiterlimit;\n\n // The paint order only takes effect if there is both a fill and a stroke\n // (at least if we ignore markers, which no built-in marks currently use).\n if (!isNone(cfill) && paintOrder === undefined) paintOrder = defaultPaintOrder;\n }\n\n const [vstrokeWidth, cstrokeWidth] = maybeNumberChannel(strokeWidth);\n\n // Some marks don’t support fill (e.g., tick and rule).\n if (defaultFill !== null) {\n mark.fill = impliedString(cfill, \"currentColor\");\n mark.fillOpacity = impliedNumber(cfillOpacity, 1);\n }\n\n // Some marks don’t support stroke (e.g., image).\n if (defaultStroke !== null) {\n mark.stroke = impliedString(cstroke, \"none\");\n mark.strokeWidth = impliedNumber(cstrokeWidth, 1);\n mark.strokeOpacity = impliedNumber(cstrokeOpacity, 1);\n mark.strokeLinejoin = impliedString(strokeLinejoin, \"miter\");\n mark.strokeLinecap = impliedString(strokeLinecap, \"butt\");\n mark.strokeMiterlimit = impliedNumber(strokeMiterlimit, 4);\n mark.strokeDasharray = impliedString(strokeDasharray, \"none\");\n mark.strokeDashoffset = impliedString(strokeDashoffset, \"0\");\n }\n\n mark.target = string(target);\n mark.ariaLabel = string(cariaLabel);\n mark.ariaDescription = string(ariaDescription);\n mark.ariaHidden = string(ariaHidden);\n mark.opacity = impliedNumber(copacity, 1);\n mark.mixBlendMode = impliedString(mixBlendMode, \"normal\");\n mark.imageFilter = impliedString(imageFilter, \"none\");\n mark.paintOrder = impliedString(paintOrder, \"normal\");\n mark.pointerEvents = impliedString(pointerEvents, \"auto\");\n mark.shapeRendering = impliedString(shapeRendering, \"auto\");\n\n return {\n title: {value: title, optional: true, filter: null},\n href: {value: href, optional: true, filter: null},\n ariaLabel: {value: variaLabel, optional: true, filter: null},\n fill: {value: vfill, scale: \"auto\", optional: true},\n fillOpacity: {value: vfillOpacity, scale: \"auto\", optional: true},\n stroke: {value: vstroke, scale: \"auto\", optional: true},\n strokeOpacity: {value: vstrokeOpacity, scale: \"auto\", optional: true},\n strokeWidth: {value: vstrokeWidth, optional: true},\n opacity: {value: vopacity, scale: \"auto\", optional: true}\n };\n}\n\n// Applies the specified titles via selection.call.\nexport function applyTitle(selection, L) {\n if (L)\n selection\n .filter((i) => nonempty(L[i]))\n .append(\"title\")\n .call(applyText, L);\n}\n\n// Like applyTitle, but for grouped data (lines, areas).\nexport function applyTitleGroup(selection, L) {\n if (L)\n selection\n .filter(([i]) => nonempty(L[i]))\n .append(\"title\")\n .call(applyTextGroup, L);\n}\n\nexport function applyText(selection, T) {\n if (T) selection.text((i) => formatDefault(T[i]));\n}\n\nexport function applyTextGroup(selection, T) {\n if (T) selection.text(([i]) => formatDefault(T[i]));\n}\n\nexport function applyChannelStyles(\n selection,\n {target, tip},\n {\n ariaLabel: AL,\n title: T,\n fill: F,\n fillOpacity: FO,\n stroke: S,\n strokeOpacity: SO,\n strokeWidth: SW,\n opacity: O,\n href: H\n }\n) {\n if (AL) applyAttr(selection, \"aria-label\", (i) => AL[i]);\n if (F) applyAttr(selection, \"fill\", (i) => F[i]);\n if (FO) applyAttr(selection, \"fill-opacity\", (i) => FO[i]);\n if (S) applyAttr(selection, \"stroke\", (i) => S[i]);\n if (SO) applyAttr(selection, \"stroke-opacity\", (i) => SO[i]);\n if (SW) applyAttr(selection, \"stroke-width\", (i) => SW[i]);\n if (O) applyAttr(selection, \"opacity\", (i) => O[i]);\n if (H) applyHref(selection, (i) => H[i], target);\n if (!tip) applyTitle(selection, T);\n}\n\nexport function applyGroupedChannelStyles(\n selection,\n {target, tip},\n {\n ariaLabel: AL,\n title: T,\n fill: F,\n fillOpacity: FO,\n stroke: S,\n strokeOpacity: SO,\n strokeWidth: SW,\n opacity: O,\n href: H\n }\n) {\n if (AL) applyAttr(selection, \"aria-label\", ([i]) => AL[i]);\n if (F) applyAttr(selection, \"fill\", ([i]) => F[i]);\n if (FO) applyAttr(selection, \"fill-opacity\", ([i]) => FO[i]);\n if (S) applyAttr(selection, \"stroke\", ([i]) => S[i]);\n if (SO) applyAttr(selection, \"stroke-opacity\", ([i]) => SO[i]);\n if (SW) applyAttr(selection, \"stroke-width\", ([i]) => SW[i]);\n if (O) applyAttr(selection, \"opacity\", ([i]) => O[i]);\n if (H) applyHref(selection, ([i]) => H[i], target);\n if (!tip) applyTitleGroup(selection, T);\n}\n\nfunction groupAesthetics(\n {\n ariaLabel: AL,\n title: T,\n fill: F,\n fillOpacity: FO,\n stroke: S,\n strokeOpacity: SO,\n strokeWidth: SW,\n opacity: O,\n href: H\n },\n {tip}\n) {\n return [AL, tip ? undefined : T, F, FO, S, SO, SW, O, H].filter((c) => c !== undefined);\n}\n\nexport function groupZ(I, Z, z) {\n const G = group(I, (i) => Z[i]);\n if (z === undefined && G.size > (1 + I.length) >> 1) {\n warn(\n `Warning: the implicit z channel has high cardinality. This may occur when the fill or stroke channel is associated with quantitative data rather than ordinal or categorical data. You can suppress this warning by setting the z option explicitly; if this data represents a single series, set z to null.`\n );\n }\n return G.values();\n}\n\nexport function* groupIndex(I, position, mark, channels) {\n const {z} = mark;\n const {z: Z} = channels; // group channel\n const A = groupAesthetics(channels, mark); // aesthetic channels\n const C = [...position, ...A]; // all channels\n\n // Group the current index by Z (if any).\n for (const G of Z ? groupZ(I, Z, z) : [I]) {\n let Ag; // the A-values (aesthetics) of the current group, if any\n let Gg; // the current group index (a subset of G, and I), if any\n out: for (const i of G) {\n // If any channel has an undefined value for this index, skip it.\n for (const c of C) {\n if (!defined(c[i])) {\n if (Gg) Gg.push(-1);\n continue out;\n }\n }\n\n // Otherwise, if this is a new group, record the aesthetics for this\n // group. Yield the current group and start a new one.\n if (Ag === undefined) {\n if (Gg) yield Gg;\n (Ag = A.map((c) => keyof(c[i]))), (Gg = [i]);\n continue;\n }\n\n // Otherwise, add the current index to the current group. Then, if any of\n // the aesthetics don’t match the current group, yield the current group\n // and start a new group of the current index.\n Gg.push(i);\n for (let j = 0; j < A.length; ++j) {\n const k = keyof(A[j][i]);\n if (k !== Ag[j]) {\n yield Gg;\n (Ag = A.map((c) => keyof(c[i]))), (Gg = [i]);\n continue out;\n }\n }\n }\n\n // Yield the current group, if any.\n if (Gg) yield Gg;\n }\n}\n\n// TODO Accept other types of clips (paths, urls, x, y, other marks…)?\n// https://github.com/observablehq/plot/issues/181\nexport function maybeClip(clip) {\n if (clip === true) clip = \"frame\";\n else if (clip === false) clip = null;\n else if (clip != null) clip = keyword(clip, \"clip\", [\"frame\", \"sphere\"]);\n return clip;\n}\n\n// Note: may mutate selection.node!\nfunction applyClip(selection, mark, dimensions, context) {\n let clipUrl;\n const {clip = context.clip} = mark;\n switch (clip) {\n case \"frame\": {\n const {width, height, marginLeft, marginRight, marginTop, marginBottom} = dimensions;\n const id = getClipId();\n clipUrl = `url(#${id})`;\n selection = create(\"svg:g\", context)\n .call((g) =>\n g\n .append(\"svg:clipPath\")\n .attr(\"id\", id)\n .append(\"rect\")\n .attr(\"x\", marginLeft)\n .attr(\"y\", marginTop)\n .attr(\"width\", width - marginRight - marginLeft)\n .attr(\"height\", height - marginTop - marginBottom)\n )\n .each(function () {\n this.appendChild(selection.node());\n selection.node = () => this; // Note: mutation!\n });\n break;\n }\n case \"sphere\": {\n const {projection} = context;\n if (!projection) throw new Error(`the \"sphere\" clip option requires a projection`);\n const id = getClipId();\n clipUrl = `url(#${id})`;\n selection\n .append(\"clipPath\")\n .attr(\"id\", id)\n .append(\"path\")\n .attr(\"d\", geoPath(projection)({type: \"Sphere\"}));\n break;\n }\n }\n // Here we’re careful to apply the ARIA attributes to the outer G element when\n // clipping is applied, and to apply the ARIA attributes before any other\n // attributes (for readability).\n applyAttr(selection, \"aria-label\", mark.ariaLabel);\n applyAttr(selection, \"aria-description\", mark.ariaDescription);\n applyAttr(selection, \"aria-hidden\", mark.ariaHidden);\n applyAttr(selection, \"clip-path\", clipUrl);\n}\n\n// Note: may mutate selection.node!\nexport function applyIndirectStyles(selection, mark, dimensions, context) {\n applyClip(selection, mark, dimensions, context);\n applyAttr(selection, \"fill\", mark.fill);\n applyAttr(selection, \"fill-opacity\", mark.fillOpacity);\n applyAttr(selection, \"stroke\", mark.stroke);\n applyAttr(selection, \"stroke-width\", mark.strokeWidth);\n applyAttr(selection, \"stroke-opacity\", mark.strokeOpacity);\n applyAttr(selection, \"stroke-linejoin\", mark.strokeLinejoin);\n applyAttr(selection, \"stroke-linecap\", mark.strokeLinecap);\n applyAttr(selection, \"stroke-miterlimit\", mark.strokeMiterlimit);\n applyAttr(selection, \"stroke-dasharray\", mark.strokeDasharray);\n applyAttr(selection, \"stroke-dashoffset\", mark.strokeDashoffset);\n applyAttr(selection, \"shape-rendering\", mark.shapeRendering);\n applyAttr(selection, \"filter\", mark.imageFilter);\n applyAttr(selection, \"paint-order\", mark.paintOrder);\n const {pointerEvents = context.pointerSticky === false ? \"none\" : undefined} = mark;\n applyAttr(selection, \"pointer-events\", pointerEvents);\n}\n\nexport function applyDirectStyles(selection, mark) {\n applyStyle(selection, \"mix-blend-mode\", mark.mixBlendMode);\n applyAttr(selection, \"opacity\", mark.opacity);\n}\n\nfunction applyHref(selection, href, target) {\n selection.each(function (i) {\n const h = href(i);\n if (h != null) {\n const a = this.ownerDocument.createElementNS(namespaces.svg, \"a\");\n a.setAttribute(\"fill\", \"inherit\");\n a.setAttributeNS(namespaces.xlink, \"href\", h);\n if (target != null) a.setAttribute(\"target\", target);\n this.parentNode.insertBefore(a, this).appendChild(this);\n }\n });\n}\n\nexport function applyAttr(selection, name, value) {\n if (value != null) selection.attr(name, value);\n}\n\nexport function applyStyle(selection, name, value) {\n if (value != null) selection.style(name, value);\n}\n\nexport function applyTransform(selection, mark, {x, y}, tx = offset, ty = offset) {\n tx += mark.dx;\n ty += mark.dy;\n if (x?.bandwidth) tx += x.bandwidth() / 2;\n if (y?.bandwidth) ty += y.bandwidth() / 2;\n if (tx || ty) selection.attr(\"transform\", `translate(${tx},${ty})`);\n}\n\nexport function impliedString(value, impliedValue) {\n if ((value = string(value)) !== impliedValue) return value;\n}\n\nexport function impliedNumber(value, impliedValue) {\n if ((value = number(value)) !== impliedValue) return value;\n}\n\n// https://www.w3.org/TR/CSS21/grammar.html\nconst validClassName =\n /^-?([_a-z]|[\\240-\\377]|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])([_a-z0-9-]|[\\240-\\377]|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])*$/i;\n\nexport function maybeClassName(name) {\n // The default should be changed whenever the default styles are changed, so\n // as to avoid conflict when multiple versions of Plot are on the page.\n if (name === undefined) return \"plot-d6a7b5\";\n name = `${name}`;\n if (!validClassName.test(name)) throw new Error(`invalid class name: ${name}`);\n return name;\n}\n\nexport function applyInlineStyles(selection, style) {\n if (typeof style === \"string\") {\n selection.property(\"style\", style);\n } else if (style != null) {\n for (const element of selection) {\n Object.assign(element.style, style);\n }\n }\n}\n\nexport function applyFrameAnchor({frameAnchor}, {width, height, marginTop, marginRight, marginBottom, marginLeft}) {\n return [\n /left$/.test(frameAnchor)\n ? marginLeft\n : /right$/.test(frameAnchor)\n ? width - marginRight\n : (marginLeft + width - marginRight) / 2,\n /^top/.test(frameAnchor)\n ? marginTop\n : /^bottom/.test(frameAnchor)\n ? height - marginBottom\n : (marginTop + height - marginBottom) / 2\n ];\n}\n","import {creator, select} from \"d3\";\nimport {maybeClip} from \"./style.js\";\n\nexport function createContext(options = {}) {\n const {document = typeof window !== \"undefined\" ? window.document : undefined, clip} = options;\n return {document, clip: maybeClip(clip)};\n}\n\nexport function create(name, {document}) {\n return select(creator(name).call(document.documentElement));\n}\n","import {\n geoAlbers,\n geoAlbersUsa,\n geoAzimuthalEqualArea,\n geoAzimuthalEquidistant,\n geoClipRectangle,\n geoConicConformal,\n geoConicEqualArea,\n geoConicEquidistant,\n geoEqualEarth,\n geoEquirectangular,\n geoGnomonic,\n geoMercator,\n geoOrthographic,\n geoPath,\n geoStereographic,\n geoStream,\n geoTransform,\n geoTransverseMercator\n} from \"d3\";\nimport {valueObject} from \"./channel.js\";\nimport {coerceNumbers, constant, isObject} from \"./options.js\";\nimport {warn} from \"./warnings.js\";\n\nconst pi = Math.PI;\nconst tau = 2 * pi;\nconst defaultAspectRatio = 0.618;\n\nexport function createProjection(\n {\n projection,\n inset: globalInset = 0,\n insetTop = globalInset,\n insetRight = globalInset,\n insetBottom = globalInset,\n insetLeft = globalInset\n } = {},\n dimensions\n) {\n if (projection == null) return;\n if (typeof projection.stream === \"function\") return projection; // d3 projection\n let options;\n let domain;\n let clip = \"frame\";\n\n // If the projection was specified as an object with additional options,\n // extract those. The order of precedence for insetTop (and other insets) is:\n // projection.insetTop, projection.inset, (global) insetTop, (global) inset.\n // Any other options on this object will be passed through to the initializer.\n if (isObject(projection)) {\n let inset;\n ({\n type: projection,\n domain,\n inset,\n insetTop = inset !== undefined ? inset : insetTop,\n insetRight = inset !== undefined ? inset : insetRight,\n insetBottom = inset !== undefined ? inset : insetBottom,\n insetLeft = inset !== undefined ? inset : insetLeft,\n clip = clip,\n ...options\n } = projection);\n if (projection == null) return;\n }\n\n // For named projections, retrieve the corresponding projection initializer.\n if (typeof projection !== \"function\") ({type: projection} = namedProjection(projection));\n\n // Compute the frame dimensions and invoke the projection initializer.\n const {width, height, marginLeft, marginRight, marginTop, marginBottom} = dimensions;\n const dx = width - marginLeft - marginRight - insetLeft - insetRight;\n const dy = height - marginTop - marginBottom - insetTop - insetBottom;\n projection = projection?.({width: dx, height: dy, clip, ...options});\n\n // The projection initializer might decide to not use a projection.\n if (projection == null) return;\n clip = maybePostClip(clip, marginLeft, marginTop, width - marginRight, height - marginBottom);\n\n // Translate the origin to the top-left corner, respecting margins and insets.\n let tx = marginLeft + insetLeft;\n let ty = marginTop + insetTop;\n let transform;\n\n // If a domain is specified, fit the projection to the frame.\n if (domain != null) {\n const [[x0, y0], [x1, y1]] = geoPath(projection).bounds(domain);\n const k = Math.min(dx / (x1 - x0), dy / (y1 - y0));\n if (k > 0) {\n tx -= (k * (x0 + x1) - dx) / 2;\n ty -= (k * (y0 + y1) - dy) / 2;\n transform = geoTransform({\n point(x, y) {\n this.stream.point(x * k + tx, y * k + ty);\n }\n });\n } else {\n warn(`Warning: the projection could not be fit to the specified domain; using the default scale.`);\n }\n }\n\n transform ??=\n tx === 0 && ty === 0\n ? identity()\n : geoTransform({\n point(x, y) {\n this.stream.point(x + tx, y + ty);\n }\n });\n\n return {stream: (s) => projection.stream(transform.stream(clip(s)))};\n}\n\nfunction namedProjection(projection) {\n switch (`${projection}`.toLowerCase()) {\n case \"albers-usa\":\n return scaleProjection(geoAlbersUsa, 0.7463, 0.4673);\n case \"albers\":\n return conicProjection(geoAlbers, 0.7463, 0.4673);\n case \"azimuthal-equal-area\":\n return scaleProjection(geoAzimuthalEqualArea, 4, 4);\n case \"azimuthal-equidistant\":\n return scaleProjection(geoAzimuthalEquidistant, tau, tau);\n case \"conic-conformal\":\n return conicProjection(geoConicConformal, tau, tau);\n case \"conic-equal-area\":\n return conicProjection(geoConicEqualArea, 6.1702, 2.9781);\n case \"conic-equidistant\":\n return conicProjection(geoConicEquidistant, 7.312, 3.6282);\n case \"equal-earth\":\n return scaleProjection(geoEqualEarth, 5.4133, 2.6347);\n case \"equirectangular\":\n return scaleProjection(geoEquirectangular, tau, pi);\n case \"gnomonic\":\n return scaleProjection(geoGnomonic, 3.4641, 3.4641);\n case \"identity\":\n return {type: identity};\n case \"reflect-y\":\n return {type: reflectY};\n case \"mercator\":\n return scaleProjection(geoMercator, tau, tau);\n case \"orthographic\":\n return scaleProjection(geoOrthographic, 2, 2);\n case \"stereographic\":\n return scaleProjection(geoStereographic, 2, 2);\n case \"transverse-mercator\":\n return scaleProjection(geoTransverseMercator, tau, tau);\n default:\n throw new Error(`unknown projection type: ${projection}`);\n }\n}\n\nfunction maybePostClip(clip, x1, y1, x2, y2) {\n if (clip === false || clip == null || typeof clip === \"number\") return (s) => s;\n if (clip === true) clip = \"frame\";\n switch (`${clip}`.toLowerCase()) {\n case \"frame\":\n return geoClipRectangle(x1, y1, x2, y2);\n default:\n throw new Error(`unknown projection clip type: ${clip}`);\n }\n}\n\nfunction scaleProjection(createProjection, kx, ky) {\n return {\n type: ({width, height, rotate, precision = 0.15, clip}) => {\n const projection = createProjection();\n if (precision != null) projection.precision?.(precision);\n if (rotate != null) projection.rotate?.(rotate);\n if (typeof clip === \"number\") projection.clipAngle?.(clip);\n projection.scale(Math.min(width / kx, height / ky));\n projection.translate([width / 2, height / 2]);\n return projection;\n },\n aspectRatio: ky / kx\n };\n}\n\nfunction conicProjection(createProjection, kx, ky) {\n const {type, aspectRatio} = scaleProjection(createProjection, kx, ky);\n return {\n type: (options) => {\n const {parallels, domain, width, height} = options;\n const projection = type(options);\n if (parallels != null) {\n projection.parallels(parallels);\n if (domain === undefined) {\n projection.fitSize([width, height], {type: \"Sphere\"});\n }\n }\n return projection;\n },\n aspectRatio\n };\n}\n\nconst identity = constant({stream: (stream) => stream});\n\nconst reflectY = constant(\n geoTransform({\n point(x, y) {\n this.stream.point(x, -y);\n }\n })\n);\n\n// Applies a point-wise projection to the given paired x and y channels.\n// Note: mutates values!\nexport function project(cx, cy, values, projection) {\n const x = values[cx];\n const y = values[cy];\n const n = x.length;\n const X = (values[cx] = new Float64Array(n).fill(NaN));\n const Y = (values[cy] = new Float64Array(n).fill(NaN));\n let i;\n const stream = projection.stream({\n point(x, y) {\n X[i] = x;\n Y[i] = y;\n }\n });\n for (i = 0; i < n; ++i) {\n stream.point(x[i], y[i]);\n }\n}\n\n// Returns true if a projection was specified. This should match the logic of\n// createProjection above, and is called before we construct the projection.\n// (Though note that we ignore the edge case where the projection initializer\n// may return null.)\nexport function hasProjection({projection} = {}) {\n if (projection == null) return false;\n if (typeof projection.stream === \"function\") return true;\n if (isObject(projection)) projection = projection.type;\n return projection != null;\n}\n\n// When a named projection is specified, we can use its natural aspect ratio to\n// determine a good value for the projection’s height based on the desired\n// width. When we don’t have a way to know, the golden ratio is our best guess.\n// Due to a circular dependency (we need to know the height before we can\n// construct the projection), we have to test the raw projection option rather\n// than the materialized projection; therefore we must be extremely careful that\n// the logic of this function exactly matches createProjection above!\nexport function projectionAspectRatio(projection) {\n if (typeof projection?.stream === \"function\") return defaultAspectRatio;\n if (isObject(projection)) projection = projection.type;\n if (projection == null) return;\n if (typeof projection !== \"function\") {\n const {aspectRatio} = namedProjection(projection);\n if (aspectRatio) return aspectRatio;\n }\n return defaultAspectRatio;\n}\n\n// Extract the (possibly) scaled values for the x and y channels, and apply the\n// projection if any.\nexport function applyPosition(channels, scales, {projection}) {\n const {x, y} = channels;\n let position = {};\n if (x) position.x = x;\n if (y) position.y = y;\n position = valueObject(position, scales);\n if (projection && x?.scale === \"x\" && y?.scale === \"y\") project(\"x\", \"y\", position, projection);\n if (x) position.x = coerceNumbers(position.x);\n if (y) position.y = coerceNumbers(position.y);\n return position;\n}\n\nexport function getGeometryChannels(channel) {\n const X = [];\n const Y = [];\n const x = {scale: \"x\", value: X};\n const y = {scale: \"y\", value: Y};\n const sink = {\n point(x, y) {\n X.push(x);\n Y.push(y);\n },\n lineStart() {},\n lineEnd() {},\n polygonStart() {},\n polygonEnd() {},\n sphere() {}\n };\n for (const object of channel.value) geoStream(object, sink);\n return [x, y];\n}\n","import {\n interpolateBlues,\n interpolateBrBG,\n interpolateBuGn,\n interpolateBuPu,\n interpolateGnBu,\n interpolateGreens,\n interpolateGreys,\n interpolateOranges,\n interpolateOrRd,\n interpolatePiYG,\n interpolatePRGn,\n interpolatePuBu,\n interpolatePuBuGn,\n interpolatePuOr,\n interpolatePuRd,\n interpolatePurples,\n interpolateRdBu,\n interpolateRdGy,\n interpolateRdPu,\n interpolateRdYlBu,\n interpolateRdYlGn,\n interpolateReds,\n interpolateSpectral,\n interpolateYlGn,\n interpolateYlGnBu,\n interpolateYlOrBr,\n interpolateYlOrRd,\n interpolateTurbo,\n interpolateViridis,\n interpolateMagma,\n interpolateInferno,\n interpolatePlasma,\n interpolateCividis,\n interpolateCubehelixDefault,\n interpolateWarm,\n interpolateCool,\n interpolateRainbow,\n interpolateSinebow,\n quantize,\n schemeAccent,\n schemeBlues,\n schemeBrBG,\n schemeBuGn,\n schemeBuPu,\n schemeCategory10,\n schemeDark2,\n schemeGnBu,\n schemeGreens,\n schemeGreys,\n schemeOranges,\n schemeOrRd,\n schemePaired,\n schemePastel1,\n schemePastel2,\n schemePiYG,\n schemePRGn,\n schemePuBu,\n schemePuBuGn,\n schemePuOr,\n schemePuRd,\n schemePurples,\n schemeRdBu,\n schemeRdGy,\n schemeRdPu,\n schemeRdYlBu,\n schemeRdYlGn,\n schemeReds,\n schemeSet1,\n schemeSet2,\n schemeSet3,\n schemeSpectral,\n schemeTableau10,\n schemeYlGn,\n schemeYlGnBu,\n schemeYlOrBr,\n schemeYlOrRd\n} from \"d3\";\n\nconst categoricalSchemes = new Map([\n [\"accent\", schemeAccent],\n [\"category10\", schemeCategory10],\n [\"dark2\", schemeDark2],\n [\"paired\", schemePaired],\n [\"pastel1\", schemePastel1],\n [\"pastel2\", schemePastel2],\n [\"set1\", schemeSet1],\n [\"set2\", schemeSet2],\n [\"set3\", schemeSet3],\n [\"tableau10\", schemeTableau10]\n]);\n\nexport function isCategoricalScheme(scheme) {\n return scheme != null && categoricalSchemes.has(`${scheme}`.toLowerCase());\n}\n\nconst ordinalSchemes = new Map([\n ...categoricalSchemes,\n\n // diverging\n [\"brbg\", scheme11(schemeBrBG, interpolateBrBG)],\n [\"prgn\", scheme11(schemePRGn, interpolatePRGn)],\n [\"piyg\", scheme11(schemePiYG, interpolatePiYG)],\n [\"puor\", scheme11(schemePuOr, interpolatePuOr)],\n [\"rdbu\", scheme11(schemeRdBu, interpolateRdBu)],\n [\"rdgy\", scheme11(schemeRdGy, interpolateRdGy)],\n [\"rdylbu\", scheme11(schemeRdYlBu, interpolateRdYlBu)],\n [\"rdylgn\", scheme11(schemeRdYlGn, interpolateRdYlGn)],\n [\"spectral\", scheme11(schemeSpectral, interpolateSpectral)],\n\n // reversed diverging (for temperature data)\n [\"burd\", scheme11r(schemeRdBu, interpolateRdBu)],\n [\"buylrd\", scheme11r(schemeRdYlBu, interpolateRdYlBu)],\n\n // sequential (single-hue)\n [\"blues\", scheme9(schemeBlues, interpolateBlues)],\n [\"greens\", scheme9(schemeGreens, interpolateGreens)],\n [\"greys\", scheme9(schemeGreys, interpolateGreys)],\n [\"oranges\", scheme9(schemeOranges, interpolateOranges)],\n [\"purples\", scheme9(schemePurples, interpolatePurples)],\n [\"reds\", scheme9(schemeReds, interpolateReds)],\n\n // sequential (multi-hue)\n [\"turbo\", schemei(interpolateTurbo)],\n [\"viridis\", schemei(interpolateViridis)],\n [\"magma\", schemei(interpolateMagma)],\n [\"inferno\", schemei(interpolateInferno)],\n [\"plasma\", schemei(interpolatePlasma)],\n [\"cividis\", schemei(interpolateCividis)],\n [\"cubehelix\", schemei(interpolateCubehelixDefault)],\n [\"warm\", schemei(interpolateWarm)],\n [\"cool\", schemei(interpolateCool)],\n [\"bugn\", scheme9(schemeBuGn, interpolateBuGn)],\n [\"bupu\", scheme9(schemeBuPu, interpolateBuPu)],\n [\"gnbu\", scheme9(schemeGnBu, interpolateGnBu)],\n [\"orrd\", scheme9(schemeOrRd, interpolateOrRd)],\n [\"pubu\", scheme9(schemePuBu, interpolatePuBu)],\n [\"pubugn\", scheme9(schemePuBuGn, interpolatePuBuGn)],\n [\"purd\", scheme9(schemePuRd, interpolatePuRd)],\n [\"rdpu\", scheme9(schemeRdPu, interpolateRdPu)],\n [\"ylgn\", scheme9(schemeYlGn, interpolateYlGn)],\n [\"ylgnbu\", scheme9(schemeYlGnBu, interpolateYlGnBu)],\n [\"ylorbr\", scheme9(schemeYlOrBr, interpolateYlOrBr)],\n [\"ylorrd\", scheme9(schemeYlOrRd, interpolateYlOrRd)],\n\n // cyclical\n [\"rainbow\", schemeicyclical(interpolateRainbow)],\n [\"sinebow\", schemeicyclical(interpolateSinebow)]\n]);\n\nfunction scheme9(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 1) return [scheme[3][1]]; // favor midpoint\n if (n === 2) return [scheme[3][1], scheme[3][2]]; // favor darker\n n = Math.max(3, Math.floor(n));\n return n > 9 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][0], scheme[3][2]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize(interpolate, n) : scheme[n];\n };\n}\n\nfunction scheme11r(scheme, interpolate) {\n return ({length: n}) => {\n if (n === 2) return [scheme[3][2], scheme[3][0]]; // favor diverging extrema\n n = Math.max(3, Math.floor(n));\n return n > 11 ? quantize((t) => interpolate(1 - t), n) : scheme[n].slice().reverse();\n };\n}\n\nfunction schemei(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.max(2, Math.floor(n)));\n}\n\nfunction schemeicyclical(interpolate) {\n return ({length: n}) => quantize(interpolate, Math.floor(n) + 1).slice(0, -1);\n}\n\nexport function ordinalScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!ordinalSchemes.has(s)) throw new Error(`unknown ordinal scheme: ${s}`);\n return ordinalSchemes.get(s);\n}\n\nexport function ordinalRange(scheme, length) {\n const s = ordinalScheme(scheme);\n const r = typeof s === \"function\" ? s({length}) : s;\n return r.length !== length ? r.slice(0, length) : r;\n}\n\n// If the specified domain contains only booleans (ignoring null and undefined),\n// returns a corresponding range where false is mapped to the low color and true\n// is mapped to the high color of the specified scheme.\nexport function maybeBooleanRange(domain, scheme = \"greys\") {\n const range = new Set();\n const [f, t] = ordinalRange(scheme, 2);\n for (const value of domain) {\n if (value == null) continue;\n if (value === true) range.add(t);\n else if (value === false) range.add(f);\n else return;\n }\n return [...range];\n}\n\nconst quantitativeSchemes = new Map([\n // diverging\n [\"brbg\", interpolateBrBG],\n [\"prgn\", interpolatePRGn],\n [\"piyg\", interpolatePiYG],\n [\"puor\", interpolatePuOr],\n [\"rdbu\", interpolateRdBu],\n [\"rdgy\", interpolateRdGy],\n [\"rdylbu\", interpolateRdYlBu],\n [\"rdylgn\", interpolateRdYlGn],\n [\"spectral\", interpolateSpectral],\n\n // reversed diverging (for temperature data)\n [\"burd\", (t) => interpolateRdBu(1 - t)],\n [\"buylrd\", (t) => interpolateRdYlBu(1 - t)],\n\n // sequential (single-hue)\n [\"blues\", interpolateBlues],\n [\"greens\", interpolateGreens],\n [\"greys\", interpolateGreys],\n [\"purples\", interpolatePurples],\n [\"reds\", interpolateReds],\n [\"oranges\", interpolateOranges],\n\n // sequential (multi-hue)\n [\"turbo\", interpolateTurbo],\n [\"viridis\", interpolateViridis],\n [\"magma\", interpolateMagma],\n [\"inferno\", interpolateInferno],\n [\"plasma\", interpolatePlasma],\n [\"cividis\", interpolateCividis],\n [\"cubehelix\", interpolateCubehelixDefault],\n [\"warm\", interpolateWarm],\n [\"cool\", interpolateCool],\n [\"bugn\", interpolateBuGn],\n [\"bupu\", interpolateBuPu],\n [\"gnbu\", interpolateGnBu],\n [\"orrd\", interpolateOrRd],\n [\"pubugn\", interpolatePuBuGn],\n [\"pubu\", interpolatePuBu],\n [\"purd\", interpolatePuRd],\n [\"rdpu\", interpolateRdPu],\n [\"ylgnbu\", interpolateYlGnBu],\n [\"ylgn\", interpolateYlGn],\n [\"ylorbr\", interpolateYlOrBr],\n [\"ylorrd\", interpolateYlOrRd],\n\n // cyclical\n [\"rainbow\", interpolateRainbow],\n [\"sinebow\", interpolateSinebow]\n]);\n\nexport function quantitativeScheme(scheme) {\n const s = `${scheme}`.toLowerCase();\n if (!quantitativeSchemes.has(s)) throw new Error(`unknown quantitative scheme: ${s}`);\n return quantitativeSchemes.get(s);\n}\n\nconst divergingSchemes = new Set([\n \"brbg\",\n \"prgn\",\n \"piyg\",\n \"puor\",\n \"rdbu\",\n \"rdgy\",\n \"rdylbu\",\n \"rdylgn\",\n \"spectral\",\n \"burd\",\n \"buylrd\"\n]);\n\nexport function isDivergingScheme(scheme) {\n return scheme != null && divergingSchemes.has(`${scheme}`.toLowerCase());\n}\n","import {\n descending,\n extent,\n interpolateHcl,\n interpolateHsl,\n interpolateLab,\n interpolateNumber,\n interpolateRgb,\n interpolateRound,\n max,\n median,\n min,\n piecewise,\n quantile,\n quantize,\n reverse as reverseof,\n scaleIdentity,\n scaleLinear,\n scaleLog,\n scalePow,\n scaleQuantile,\n scaleSymlog,\n scaleThreshold,\n ticks\n} from \"d3\";\nimport {finite, negative, positive} from \"../defined.js\";\nimport {arrayify, constant, maybeNiceInterval, maybeRangeInterval, orderof, slice} from \"../options.js\";\nimport {color, length, opacity, radius, registry, hasNumericRange} from \"./index.js\";\nimport {ordinalRange, quantitativeScheme} from \"./schemes.js\";\n\nexport const flip = (i) => (t) => i(1 - t);\nconst unit = [0, 1];\n\nconst interpolators = new Map([\n // numbers\n [\"number\", interpolateNumber],\n\n // color spaces\n [\"rgb\", interpolateRgb],\n [\"hsl\", interpolateHsl],\n [\"hcl\", interpolateHcl],\n [\"lab\", interpolateLab]\n]);\n\nexport function maybeInterpolator(interpolate) {\n const i = `${interpolate}`.toLowerCase();\n if (!interpolators.has(i)) throw new Error(`unknown interpolator: ${i}`);\n return interpolators.get(i);\n}\n\nexport function createScaleQ(\n key,\n scale,\n channels,\n {\n type,\n nice,\n clamp,\n zero,\n domain = inferAutoDomain(key, channels),\n unknown,\n round,\n scheme,\n interval,\n range = registry.get(key) === radius\n ? inferRadialRange(channels, domain)\n : registry.get(key) === length\n ? inferLengthRange(channels, domain)\n : registry.get(key) === opacity\n ? unit\n : undefined,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : type === \"cyclical\" ? \"rainbow\" : \"turbo\")\n : round\n ? interpolateRound\n : interpolateNumber,\n reverse\n }\n) {\n interval = maybeRangeInterval(interval, type);\n if (type === \"cyclical\" || type === \"sequential\") type = \"linear\"; // shorthand for color schemes\n if (typeof interpolate !== \"function\") interpolate = maybeInterpolator(interpolate); // named interpolator\n reverse = !!reverse;\n\n // If an explicit range is specified, and it has a different length than the\n // domain, then redistribute the range using a piecewise interpolator.\n if (range !== undefined) {\n const n = (domain = arrayify(domain)).length;\n const m = (range = arrayify(range)).length;\n if (n !== m) {\n if (interpolate.length === 1) throw new Error(\"invalid piecewise interpolator\"); // e.g., turbo\n interpolate = piecewise(interpolate, range);\n range = undefined;\n }\n }\n\n // Disambiguate between a two-argument interpolator that is used in\n // conjunction with the range, and a one-argument “fixed” interpolator on the\n // [0, 1] interval as with the RdBu color scheme.\n if (interpolate.length === 1) {\n if (reverse) {\n interpolate = flip(interpolate);\n reverse = false;\n }\n if (range === undefined) {\n range = Float64Array.from(domain, (_, i) => i / (domain.length - 1));\n if (range.length === 2) range = unit; // optimize common case of [0, 1]\n }\n scale.interpolate((range === unit ? constant : interpolatePiecewise)(interpolate));\n } else {\n scale.interpolate(interpolate);\n }\n\n // If a zero option is specified, we assume that the domain is numeric, and we\n // want to ensure that the domain crosses zero. However, note that the domain\n // may be reversed (descending) so we shouldn’t assume that the first value is\n // smaller than the last; and also it’s possible that the domain has more than\n // two values for a “poly” scale. And lastly be careful not to mutate input!\n if (zero) {\n const [min, max] = extent(domain);\n if (min > 0 || max < 0) {\n domain = slice(domain);\n if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0; // [2, 1] or [-2, -1]\n else domain[0] = 0; // [1, 2] or [-1, -2]\n }\n }\n\n if (reverse) domain = reverseof(domain);\n scale.domain(domain).unknown(unknown);\n if (nice) scale.nice(maybeNice(nice, type)), (domain = scale.domain());\n if (range !== undefined) scale.range(range);\n if (clamp) scale.clamp(clamp);\n return {type, domain, range, scale, interpolate, interval};\n}\n\nfunction maybeNice(nice, type) {\n return nice === true ? undefined : typeof nice === \"number\" ? nice : maybeNiceInterval(nice, type);\n}\n\nexport function createScaleLinear(key, channels, options) {\n return createScaleQ(key, scaleLinear(), channels, options);\n}\n\nexport function createScaleSqrt(key, channels, options) {\n return createScalePow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScalePow(key, channels, {exponent = 1, ...options}) {\n return createScaleQ(key, scalePow().exponent(exponent), channels, {...options, type: \"pow\"});\n}\n\nexport function createScaleLog(key, channels, {base = 10, domain = inferLogDomain(channels), ...options}) {\n return createScaleQ(key, scaleLog().base(base), channels, {...options, domain});\n}\n\nexport function createScaleSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleQ(key, scaleSymlog().constant(constant), channels, options);\n}\n\nexport function createScaleQuantile(\n key,\n channels,\n {\n range,\n quantiles = range === undefined ? 5 : (range = [...range]).length, // deprecated; use n instead\n n = quantiles,\n scheme = \"rdylbu\",\n domain = inferQuantileDomain(channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n if (range === undefined) {\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n }\n if (domain.length > 0) {\n domain = scaleQuantile(domain, range === undefined ? {length: n} : range).quantiles();\n }\n return createScaleThreshold(key, channels, {domain, range, reverse, unknown});\n}\n\nexport function createScaleQuantize(\n key,\n channels,\n {\n range,\n n = range === undefined ? 5 : (range = [...range]).length,\n scheme = \"rdylbu\",\n domain = inferAutoDomain(key, channels),\n unknown,\n interpolate,\n reverse\n }\n) {\n const [min, max] = extent(domain);\n let thresholds;\n if (range === undefined) {\n thresholds = ticks(min, max, n); // approximate number of nice, round thresholds\n if (thresholds[0] <= min) thresholds.splice(0, 1); // drop exact lower bound\n if (thresholds[thresholds.length - 1] >= max) thresholds.pop(); // drop exact upper bound\n n = thresholds.length + 1;\n range =\n interpolate !== undefined\n ? quantize(interpolate, n)\n : registry.get(key) === color\n ? ordinalRange(scheme, n)\n : undefined;\n } else {\n thresholds = quantize(interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range\n if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types\n }\n if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain\n return createScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown});\n}\n\nexport function createScaleThreshold(\n key,\n channels,\n {\n domain = [0], // explicit thresholds in ascending order\n unknown,\n scheme = \"rdylbu\",\n interpolate,\n range = interpolate !== undefined\n ? quantize(interpolate, domain.length + 1)\n : registry.get(key) === color\n ? ordinalRange(scheme, domain.length + 1)\n : undefined,\n reverse\n }\n) {\n domain = arrayify(domain);\n const sign = orderof(domain); // preserve descending domain\n if (!isNaN(sign) && !isOrdered(domain, sign)) throw new Error(`the ${key} scale has a non-monotonic domain`);\n if (reverse) range = reverseof(range); // domain ascending, so reverse range\n return {\n type: \"threshold\",\n scale: scaleThreshold(sign < 0 ? reverseof(domain) : domain, range === undefined ? [] : range).unknown(unknown),\n domain,\n range\n };\n}\n\nfunction isOrdered(domain, sign) {\n for (let i = 1, n = domain.length, d = domain[0]; i < n; ++i) {\n const s = descending(d, (d = domain[i]));\n if (s !== 0 && s !== sign) return false;\n }\n return true;\n}\n\n// For non-numeric identity scales such as color and symbol, we can’t use D3’s\n// identity scale because it coerces to number; and we can’t compute the domain\n// (and equivalently range) since we can’t know whether the values are\n// continuous or discrete.\nexport function createScaleIdentity(key) {\n return {type: \"identity\", scale: hasNumericRange(registry.get(key)) ? scaleIdentity() : (d) => d};\n}\n\nexport function inferDomain(channels, f = finite) {\n return channels.length\n ? [\n min(channels, ({value}) => (value === undefined ? value : min(value, f))),\n max(channels, ({value}) => (value === undefined ? value : max(value, f)))\n ]\n : [0, 1];\n}\n\nfunction inferAutoDomain(key, channels) {\n const type = registry.get(key);\n return (type === radius || type === opacity || type === length ? inferZeroDomain : inferDomain)(channels);\n}\n\nfunction inferZeroDomain(channels) {\n return [0, channels.length ? max(channels, ({value}) => (value === undefined ? value : max(value, finite))) : 1];\n}\n\n// We don’t want the upper bound of the radial domain to be zero, as this would\n// be degenerate, so we ignore nonpositive values. We also don’t want the\n// maximum default radius to exceed 30px.\nfunction inferRadialRange(channels, domain) {\n const hint = channels.find(({radius}) => radius !== undefined);\n if (hint !== undefined) return [0, hint.radius]; // a natural maximum radius, e.g. hexbins\n const h25 = quantile(channels, 0.5, ({value}) => (value === undefined ? NaN : quantile(value, 0.25, positive)));\n const range = domain.map((d) => 3 * Math.sqrt(d / h25));\n const k = 30 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\n// We want a length scale’s domain to go from zero to a positive value, and to\n// treat negative lengths if any as inverted vectors of equivalent magnitude. We\n// also don’t want the maximum default length to exceed 60px.\nfunction inferLengthRange(channels, domain) {\n const h50 = median(channels, ({value}) => (value === undefined ? NaN : median(value, Math.abs)));\n const range = domain.map((d) => (12 * d) / h50);\n const k = 60 / max(range);\n return k < 1 ? range.map((r) => r * k) : range;\n}\n\nfunction inferLogDomain(channels) {\n for (const {value} of channels) {\n if (value !== undefined) {\n for (let v of value) {\n if (v > 0) return inferDomain(channels, positive);\n if (v < 0) return inferDomain(channels, negative);\n }\n }\n }\n return [1, 10];\n}\n\nfunction inferQuantileDomain(channels) {\n const domain = [];\n for (const {value} of channels) {\n if (value === undefined) continue;\n for (const v of value) domain.push(v);\n }\n return domain;\n}\n\nexport function interpolatePiecewise(interpolate) {\n return (i, j) => (t) => interpolate(i + t * (j - i));\n}\n","import {\n descending,\n interpolateNumber,\n interpolateRgb,\n piecewise,\n scaleDiverging,\n scaleDivergingLog,\n scaleDivergingPow,\n scaleDivergingSymlog\n} from \"d3\";\nimport {negative, positive} from \"../defined.js\";\nimport {arrayify} from \"../options.js\";\nimport {warn} from \"../warnings.js\";\nimport {color, registry} from \"./index.js\";\nimport {flip, inferDomain, interpolatePiecewise, maybeInterpolator} from \"./quantitative.js\";\nimport {quantitativeScheme} from \"./schemes.js\";\n\nfunction createScaleD(\n key,\n scale,\n transform,\n channels,\n {\n type,\n nice,\n clamp,\n domain = inferDomain(channels),\n unknown,\n pivot = 0,\n scheme,\n range,\n symmetric = true,\n interpolate = registry.get(key) === color\n ? scheme == null && range !== undefined\n ? interpolateRgb\n : quantitativeScheme(scheme !== undefined ? scheme : \"rdbu\")\n : interpolateNumber,\n reverse\n }\n) {\n pivot = +pivot;\n domain = arrayify(domain);\n let [min, max] = domain;\n if (domain.length > 2) warn(`Warning: the diverging ${key} scale domain contains extra elements.`);\n\n if (descending(min, max) < 0) ([min, max] = [max, min]), (reverse = !reverse);\n min = Math.min(min, pivot);\n max = Math.max(max, pivot);\n\n // Sometimes interpolate is a named interpolator, such as \"lab\" for Lab color\n // space. Other times interpolate is a function that takes two arguments and\n // is used in conjunction with the range. And other times the interpolate\n // function is a “fixed” interpolator on the [0, 1] interval, as when a\n // color scheme such as interpolateRdBu is used.\n if (typeof interpolate !== \"function\") {\n interpolate = maybeInterpolator(interpolate);\n }\n\n // If an explicit range is specified, promote it to a piecewise interpolator.\n if (range !== undefined) {\n interpolate =\n interpolate.length === 1 ? interpolatePiecewise(interpolate)(...range) : piecewise(interpolate, range);\n }\n\n // Reverse before normalization.\n if (reverse) interpolate = flip(interpolate);\n\n // Normalize the interpolator for symmetric difference around the pivot.\n if (symmetric) {\n const mid = transform.apply(pivot);\n const mindelta = mid - transform.apply(min);\n const maxdelta = transform.apply(max) - mid;\n if (mindelta < maxdelta) min = transform.invert(mid - maxdelta);\n else if (mindelta > maxdelta) max = transform.invert(mid + mindelta);\n }\n\n scale.domain([min, pivot, max]).unknown(unknown).interpolator(interpolate);\n if (clamp) scale.clamp(clamp);\n if (nice) scale.nice(nice);\n return {type, domain: [min, max], pivot, interpolate, scale};\n}\n\nexport function createScaleDiverging(key, channels, options) {\n return createScaleD(key, scaleDiverging(), transformIdentity, channels, options);\n}\n\nexport function createScaleDivergingSqrt(key, channels, options) {\n return createScaleDivergingPow(key, channels, {...options, exponent: 0.5});\n}\n\nexport function createScaleDivergingPow(key, channels, {exponent = 1, ...options}) {\n return createScaleD(key, scaleDivergingPow().exponent((exponent = +exponent)), transformPow(exponent), channels, {\n ...options,\n type: \"diverging-pow\"\n });\n}\n\nexport function createScaleDivergingLog(\n key,\n channels,\n {base = 10, pivot = 1, domain = inferDomain(channels, pivot < 0 ? negative : positive), ...options}\n) {\n return createScaleD(key, scaleDivergingLog().base((base = +base)), transformLog, channels, {\n domain,\n pivot,\n ...options\n });\n}\n\nexport function createScaleDivergingSymlog(key, channels, {constant = 1, ...options}) {\n return createScaleD(\n key,\n scaleDivergingSymlog().constant((constant = +constant)),\n transformSymlog(constant),\n channels,\n options\n );\n}\n\nconst transformIdentity = {\n apply(x) {\n return x;\n },\n invert(x) {\n return x;\n }\n};\n\nconst transformLog = {\n apply: Math.log,\n invert: Math.exp\n};\n\nconst transformSqrt = {\n apply(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n },\n invert(x) {\n return Math.sign(x) * (x * x);\n }\n};\n\nfunction transformPow(exponent) {\n return exponent === 0.5\n ? transformSqrt\n : {\n apply(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), exponent);\n },\n invert(x) {\n return Math.sign(x) * Math.pow(Math.abs(x), 1 / exponent);\n }\n };\n}\n\nfunction transformSymlog(constant) {\n return {\n apply(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / constant));\n },\n invert(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * constant;\n }\n };\n}\n","import {scaleTime, scaleUtc} from \"d3\";\nimport {createScaleQ} from \"./quantitative.js\";\n\nfunction createScaleT(key, scale, channels, options) {\n return createScaleQ(key, scale, channels, options);\n}\n\nexport function createScaleTime(key, channels, options) {\n return createScaleT(key, scaleTime(), channels, options);\n}\n\nexport function createScaleUtc(key, channels, options) {\n return createScaleT(key, scaleUtc(), channels, options);\n}\n","import {InternSet, extent, quantize, reverse as reverseof, sort, symbolsFill, symbolsStroke} from \"d3\";\nimport {scaleBand, scaleOrdinal, scalePoint, scaleImplicit} from \"d3\";\nimport {ascendingDefined} from \"../defined.js\";\nimport {isNoneish, map, maybeRangeInterval} from \"../options.js\";\nimport {maybeSymbol} from \"../symbol.js\";\nimport {registry, color, position, symbol} from \"./index.js\";\nimport {maybeBooleanRange, ordinalScheme, quantitativeScheme} from \"./schemes.js\";\n\n// This denotes an implicitly ordinal color scale: the scale type was not set,\n// but the associated values are strings or booleans. If the associated defined\n// values are entirely boolean, the range will default to greys. You can opt out\n// of this by setting the type explicitly.\nexport const ordinalImplicit = Symbol(\"ordinal\");\n\nfunction createScaleO(key, scale, channels, {type, interval, domain, range, reverse, hint}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n if (type === \"categorical\" || type === ordinalImplicit) type = \"ordinal\"; // shorthand for color schemes\n if (reverse) domain = reverseof(domain);\n domain = scale.domain(domain).domain(); // deduplicate\n if (range !== undefined) {\n // If the range is specified as a function, pass it the domain.\n if (typeof range === \"function\") range = range(domain);\n scale.range(range);\n }\n return {type, domain, range, scale, hint, interval};\n}\n\nexport function createScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) {\n interval = maybeRangeInterval(interval, type);\n if (domain === undefined) domain = inferDomain(channels, interval, key);\n let hint;\n if (registry.get(key) === symbol) {\n hint = inferSymbolHint(channels);\n range = range === undefined ? inferSymbolRange(hint) : map(range, maybeSymbol);\n } else if (registry.get(key) === color) {\n if (range === undefined && (type === \"ordinal\" || type === ordinalImplicit)) {\n range = maybeBooleanRange(domain, scheme);\n if (range !== undefined) scheme = undefined; // Don’t re-apply scheme.\n }\n if (scheme === undefined && range === undefined) {\n scheme = type === \"ordinal\" ? \"turbo\" : \"tableau10\";\n }\n if (scheme !== undefined) {\n if (range !== undefined) {\n const interpolate = quantitativeScheme(scheme);\n const t0 = range[0],\n d = range[1] - range[0];\n range = ({length: n}) => quantize((t) => interpolate(t0 + d * t), n);\n } else {\n range = ordinalScheme(scheme);\n }\n }\n }\n if (unknown === scaleImplicit) {\n throw new Error(`implicit unknown on ${key} scale is not supported`);\n }\n return createScaleO(key, scaleOrdinal().unknown(unknown), channels, {...options, type, domain, range, hint});\n}\n\nexport function createScalePoint(key, channels, {align = 0.5, padding = 0.5, ...options}) {\n return maybeRound(scalePoint().align(align).padding(padding), channels, options, key);\n}\n\nexport function createScaleBand(\n key,\n channels,\n {\n align = 0.5,\n padding = 0.1,\n paddingInner = padding,\n paddingOuter = key === \"fx\" || key === \"fy\" ? 0 : padding,\n ...options\n }\n) {\n return maybeRound(\n scaleBand().align(align).paddingInner(paddingInner).paddingOuter(paddingOuter),\n channels,\n options,\n key\n );\n}\n\nfunction maybeRound(scale, channels, options, key) {\n let {round} = options;\n if (round !== undefined) scale.round((round = !!round));\n scale = createScaleO(key, scale, channels, options);\n scale.round = round; // preserve for autoScaleRound\n return scale;\n}\n\nfunction inferDomain(channels, interval, key) {\n const values = new InternSet();\n for (const {value, domain} of channels) {\n if (domain !== undefined) return domain(); // see channelDomain\n if (value === undefined) continue;\n for (const v of value) values.add(v);\n }\n if (interval !== undefined) {\n const [min, max] = extent(values).map(interval.floor, interval);\n return interval.range(min, interval.offset(max));\n }\n if (values.size > 10e3 && registry.get(key) === position) {\n throw new Error(`implicit ordinal domain of ${key} scale has more than 10,000 values`);\n }\n return sort(values, ascendingDefined);\n}\n\n// If all channels provide a consistent hint, propagate it to the scale.\nfunction inferHint(channels, key) {\n let value;\n for (const {hint} of channels) {\n const candidate = hint?.[key];\n if (candidate === undefined) continue; // no hint here\n if (value === undefined) value = candidate;\n // first hint\n else if (value !== candidate) return; // inconsistent hint\n }\n return value;\n}\n\nfunction inferSymbolHint(channels) {\n return {\n fill: inferHint(channels, \"fill\"),\n stroke: inferHint(channels, \"stroke\")\n };\n}\n\nfunction inferSymbolRange(hint) {\n return isNoneish(hint.fill) ? symbolsStroke : symbolsFill;\n}\n","import {\n isOrdinal,\n isTemporal,\n isTemporalString,\n isNumericString,\n isScaleOptions,\n map,\n slice,\n coerceNumbers,\n coerceDates\n} from \"./options.js\";\nimport {registry, color, position, radius, opacity, symbol, length} from \"./scales/index.js\";\nimport {\n createScaleLinear,\n createScaleSqrt,\n createScalePow,\n createScaleLog,\n createScaleSymlog,\n createScaleQuantile,\n createScaleQuantize,\n createScaleThreshold,\n createScaleIdentity\n} from \"./scales/quantitative.js\";\nimport {\n createScaleDiverging,\n createScaleDivergingSqrt,\n createScaleDivergingPow,\n createScaleDivergingLog,\n createScaleDivergingSymlog\n} from \"./scales/diverging.js\";\nimport {isCategoricalScheme, isDivergingScheme} from \"./scales/schemes.js\";\nimport {createScaleTime, createScaleUtc} from \"./scales/temporal.js\";\nimport {createScaleOrdinal, createScalePoint, createScaleBand, ordinalImplicit} from \"./scales/ordinal.js\";\nimport {maybeSymbol} from \"./symbol.js\";\nimport {warn} from \"./warnings.js\";\n\nexport function createScales(\n channelsByScale,\n {\n label: globalLabel,\n inset: globalInset = 0,\n insetTop: globalInsetTop = globalInset,\n insetRight: globalInsetRight = globalInset,\n insetBottom: globalInsetBottom = globalInset,\n insetLeft: globalInsetLeft = globalInset,\n round,\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n facet: {label: facetLabel = globalLabel} = {},\n ...options\n } = {}\n) {\n const scales = {};\n for (const [key, channels] of channelsByScale) {\n const scaleOptions = options[key];\n const scale = createScale(key, channels, {\n round: registry.get(key) === position ? round : undefined, // only for position\n nice,\n clamp,\n zero,\n align,\n padding,\n projection,\n ...scaleOptions\n });\n if (scale) {\n // populate generic scale options (percent, transform, insets)\n let {\n label = key === \"fx\" || key === \"fy\" ? facetLabel : globalLabel,\n percent,\n transform,\n inset,\n insetTop = inset !== undefined ? inset : key === \"y\" ? globalInsetTop : 0, // not fy\n insetRight = inset !== undefined ? inset : key === \"x\" ? globalInsetRight : 0, // not fx\n insetBottom = inset !== undefined ? inset : key === \"y\" ? globalInsetBottom : 0, // not fy\n insetLeft = inset !== undefined ? inset : key === \"x\" ? globalInsetLeft : 0 // not fx\n } = scaleOptions || {};\n if (transform == null) transform = undefined;\n else if (typeof transform !== \"function\") throw new Error(\"invalid scale transform; not a function\");\n scale.percent = !!percent;\n scale.label = label === undefined ? inferScaleLabel(channels, scale) : label;\n scale.transform = transform;\n if (key === \"x\" || key === \"fx\") {\n scale.insetLeft = +insetLeft;\n scale.insetRight = +insetRight;\n } else if (key === \"y\" || key === \"fy\") {\n scale.insetTop = +insetTop;\n scale.insetBottom = +insetBottom;\n }\n scales[key] = scale;\n }\n }\n return scales;\n}\n\nexport function createScaleFunctions(descriptors) {\n const scales = {};\n const scaleFunctions = {scales};\n for (const [key, descriptor] of Object.entries(descriptors)) {\n const {scale, type, interval, label} = descriptor;\n scales[key] = exposeScale(descriptor);\n scaleFunctions[key] = scale;\n // TODO: pass these properties, which are needed for axes, in the descriptor.\n scale.type = type;\n if (interval != null) scale.interval = interval;\n if (label != null) scale.label = label;\n }\n return scaleFunctions;\n}\n\n// Mutates scale.range!\nexport function autoScaleRange(scales, dimensions) {\n const {x, y, fx, fy} = scales;\n const superdimensions = fx || fy ? outerDimensions(dimensions) : dimensions;\n if (fx) autoScaleRangeX(fx, superdimensions);\n if (fy) autoScaleRangeY(fy, superdimensions);\n const subdimensions = fx || fy ? innerDimensions(scales, dimensions) : dimensions;\n if (x) autoScaleRangeX(x, subdimensions);\n if (y) autoScaleRangeY(y, subdimensions);\n}\n\n// Channels can have labels; if all the channels for a given scale are\n// consistently labeled (i.e., have the same value if not undefined), and the\n// corresponding scale doesn’t already have an explicit label, then the\n// channels’ label is promoted to the scale. This inferred label should have an\n// orientation-appropriate arrow added when used as an axis, but we don’t want\n// to add the arrow when the label is set explicitly as an option; so, the\n// inferred label is distinguished as an object with an “inferred” property.\nfunction inferScaleLabel(channels = [], scale) {\n let label;\n for (const {label: l} of channels) {\n if (l === undefined) continue;\n if (label === undefined) label = l;\n else if (label !== l) return;\n }\n if (label === undefined) return;\n if (!isOrdinalScale(scale) && scale.percent) label = `${label} (%)`;\n return {inferred: true, toString: () => label};\n}\n\n// Returns the dimensions of the outer frame; this is subdivided into facets\n// with the margins of each facet collapsing into the outer margins.\nexport function outerDimensions(dimensions) {\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width,\n height,\n facet: {\n marginTop: facetMarginTop,\n marginRight: facetMarginRight,\n marginBottom: facetMarginBottom,\n marginLeft: facetMarginLeft\n }\n } = dimensions;\n return {\n marginTop: Math.max(marginTop, facetMarginTop),\n marginRight: Math.max(marginRight, facetMarginRight),\n marginBottom: Math.max(marginBottom, facetMarginBottom),\n marginLeft: Math.max(marginLeft, facetMarginLeft),\n width,\n height\n };\n}\n\n// Returns the dimensions of each facet.\nexport function innerDimensions({fx, fy}, dimensions) {\n const {marginTop, marginRight, marginBottom, marginLeft, width, height} = outerDimensions(dimensions);\n return {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n width: fx ? fx.scale.bandwidth() + marginLeft + marginRight : width,\n height: fy ? fy.scale.bandwidth() + marginTop + marginBottom : height,\n facet: {width, height}\n };\n}\n\nfunction autoScaleRangeX(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetLeft, insetRight} = scale;\n const {width, marginLeft = 0, marginRight = 0} = dimensions;\n const left = marginLeft + insetLeft;\n const right = width - marginRight - insetRight;\n scale.range = [left, Math.max(left, right)];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRangeY(scale, dimensions) {\n if (scale.range === undefined) {\n const {insetTop, insetBottom} = scale;\n const {height, marginTop = 0, marginBottom = 0} = dimensions;\n const top = marginTop + insetTop;\n const bottom = height - marginBottom - insetBottom;\n scale.range = [Math.max(top, bottom), top];\n if (!isOrdinalScale(scale)) scale.range = piecewiseRange(scale);\n else scale.range.reverse();\n scale.scale.range(scale.range);\n }\n autoScaleRound(scale);\n}\n\nfunction autoScaleRound(scale) {\n if (scale.round === undefined && isBandScale(scale) && roundError(scale) <= 30) {\n scale.scale.round(true);\n }\n}\n\n// If we were to turn on rounding for this band or point scale, how much wasted\n// space would it introduce (on both ends of the range)? This must match\n// d3.scaleBand’s rounding behavior:\n// https://github.com/d3/d3-scale/blob/83555bd759c7314420bd4240642beda5e258db9e/src/band.js#L20-L32\nfunction roundError({scale}) {\n const n = scale.domain().length;\n const [start, stop] = scale.range();\n const paddingInner = scale.paddingInner ? scale.paddingInner() : 1;\n const paddingOuter = scale.paddingOuter ? scale.paddingOuter() : scale.padding();\n const m = n - paddingInner;\n const step = Math.abs(stop - start) / Math.max(1, m + paddingOuter * 2);\n return (step - Math.floor(step)) * m;\n}\n\nfunction piecewiseRange(scale) {\n const length = scale.scale.domain().length + isThresholdScale(scale);\n if (!(length > 2)) return scale.range;\n const [start, end] = scale.range;\n return Array.from({length}, (_, i) => start + (i / (length - 1)) * (end - start));\n}\n\nexport function normalizeScale(key, scale, hint) {\n return createScale(key, hint === undefined ? undefined : [{hint}], {...scale});\n}\n\nfunction createScale(key, channels = [], options = {}) {\n const type = inferScaleType(key, channels, options);\n\n // Warn for common misuses of implicit ordinal scales. We disable this test if\n // you specify a scale interval or if you set the domain or range explicitly,\n // since setting the domain or range (typically with a cardinality of more than\n // two) is another indication that you intended for the scale to be ordinal; we\n // also disable it for facet scales since these are always band scales.\n if (\n options.type === undefined &&\n options.domain === undefined &&\n options.range === undefined &&\n options.interval == null &&\n key !== \"fx\" &&\n key !== \"fy\" &&\n isOrdinalScale({type})\n ) {\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isTemporal))\n warn(\n `Warning: some data associated with the ${key} scale are dates. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isTemporalString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a \"utc\" or \"time\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n else if (values.some(isNumericString))\n warn(\n `Warning: some data associated with the ${key} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a \"linear\" scale rather than a \"${formatScaleType(\n type\n )}\" scale. If you want to treat this data as ordinal, you can specify the interval of the ${key} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${key} scale to \"${formatScaleType(\n type\n )}\".`\n );\n }\n\n options.type = type; // Mutates input!\n\n // Once the scale type is known, coerce the associated channel values and any\n // explicitly-specified domain to the expected type.\n switch (type) {\n case \"diverging\":\n case \"diverging-sqrt\":\n case \"diverging-pow\":\n case \"diverging-log\":\n case \"diverging-symlog\":\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n case \"sqrt\":\n case \"threshold\":\n case \"quantile\":\n case \"pow\":\n case \"log\":\n case \"symlog\":\n options = coerceType(channels, options, coerceNumbers);\n break;\n case \"identity\":\n switch (registry.get(key)) {\n case position:\n options = coerceType(channels, options, coerceNumbers);\n break;\n case symbol:\n options = coerceType(channels, options, coerceSymbols);\n break;\n }\n break;\n case \"utc\":\n case \"time\":\n options = coerceType(channels, options, coerceDates);\n break;\n }\n\n switch (type) {\n case \"diverging\":\n return createScaleDiverging(key, channels, options);\n case \"diverging-sqrt\":\n return createScaleDivergingSqrt(key, channels, options);\n case \"diverging-pow\":\n return createScaleDivergingPow(key, channels, options);\n case \"diverging-log\":\n return createScaleDivergingLog(key, channels, options);\n case \"diverging-symlog\":\n return createScaleDivergingSymlog(key, channels, options);\n case \"categorical\":\n case \"ordinal\":\n case ordinalImplicit:\n return createScaleOrdinal(key, channels, options);\n case \"cyclical\":\n case \"sequential\":\n case \"linear\":\n return createScaleLinear(key, channels, options);\n case \"sqrt\":\n return createScaleSqrt(key, channels, options);\n case \"threshold\":\n return createScaleThreshold(key, channels, options);\n case \"quantile\":\n return createScaleQuantile(key, channels, options);\n case \"quantize\":\n return createScaleQuantize(key, channels, options);\n case \"pow\":\n return createScalePow(key, channels, options);\n case \"log\":\n return createScaleLog(key, channels, options);\n case \"symlog\":\n return createScaleSymlog(key, channels, options);\n case \"utc\":\n return createScaleUtc(key, channels, options);\n case \"time\":\n return createScaleTime(key, channels, options);\n case \"point\":\n return createScalePoint(key, channels, options);\n case \"band\":\n return createScaleBand(key, channels, options);\n case \"identity\":\n return createScaleIdentity(key);\n case undefined:\n return;\n default:\n throw new Error(`unknown scale type: ${type}`);\n }\n}\n\nfunction formatScaleType(type) {\n return typeof type === \"symbol\" ? type.description : type;\n}\n\n// A special type symbol when the x and y scales are replaced with a projection.\nconst typeProjection = {toString: () => \"projection\"};\n\nfunction inferScaleType(key, channels, {type, domain, range, scheme, pivot, projection}) {\n // The facet scales are always band scales; this cannot be changed.\n if (key === \"fx\" || key === \"fy\") return \"band\";\n\n // If a projection is specified, the x- and y-scales are disabled; these\n // channels will be projected rather than scaled. (But still check that none\n // of the associated channels are incompatible with a projection.)\n if ((key === \"x\" || key === \"y\") && projection != null) type = typeProjection;\n\n // If a channel dictates a scale type, make sure that it is consistent with\n // the user-specified scale type (if any) and all other channels. For example,\n // barY requires x to be a band scale and disallows any other scale type.\n for (const {type: t} of channels) {\n if (t === undefined) continue;\n else if (type === undefined) type = t;\n else if (type !== t) throw new Error(`scale incompatible with channel: ${type} !== ${t}`);\n }\n\n // If the scale, a channel, or user specified a (consistent) type, return it.\n if (type === typeProjection) return;\n if (type !== undefined) return type;\n\n // If there’s no data (and no type) associated with this scale, don’t create a scale.\n if (domain === undefined && !channels.some(({value}) => value !== undefined)) return;\n\n // Some scales have default types.\n const kind = registry.get(key);\n if (kind === radius) return \"sqrt\";\n if (kind === opacity || kind === length) return \"linear\";\n if (kind === symbol) return \"ordinal\";\n\n // If the domain or range has more than two values, assume it’s ordinal. You\n // can still use a “piecewise” (or “polylinear”) scale, but you must set the\n // type explicitly.\n if ((domain || range || []).length > 2) return asOrdinalType(kind);\n\n // Otherwise, infer the scale type from the data! Prefer the domain, if\n // present, over channels. (The domain and channels should be consistently\n // typed, and the domain is more explicit and typically much smaller.) We only\n // check the first defined value for expedience and simplicity; we expect\n // that the types are consistent.\n if (domain !== undefined) {\n if (isOrdinal(domain)) return asOrdinalType(kind);\n if (isTemporal(domain)) return \"utc\";\n } else {\n const values = channels.map(({value}) => value).filter((value) => value !== undefined);\n if (values.some(isOrdinal)) return asOrdinalType(kind);\n if (values.some(isTemporal)) return \"utc\";\n }\n\n // For color scales, take a hint from the color scheme and pivot option.\n if (kind === color) {\n if (pivot != null || isDivergingScheme(scheme)) return \"diverging\";\n if (isCategoricalScheme(scheme)) return \"categorical\";\n }\n\n return \"linear\";\n}\n\n// Positional scales default to a point scale instead of an ordinal scale.\nfunction asOrdinalType(kind) {\n switch (kind) {\n case position:\n return \"point\";\n case color:\n return ordinalImplicit;\n default:\n return \"ordinal\";\n }\n}\n\nexport function isTemporalScale({type}) {\n return type === \"time\" || type === \"utc\";\n}\n\nexport function isOrdinalScale({type}) {\n return type === \"ordinal\" || type === \"point\" || type === \"band\" || type === ordinalImplicit;\n}\n\nexport function isThresholdScale({type}) {\n return type === \"threshold\";\n}\n\nfunction isBandScale({type}) {\n return type === \"point\" || type === \"band\";\n}\n\nexport function isDivergingScale({type}) {\n return /^diverging($|-)/.test(type);\n}\n\n// Certain marks have special behavior if a scale is collapsed, i.e. if the\n// domain is degenerate and represents only a single value such as [3, 3]; for\n// example, a rect will span the full extent of the chart along a collapsed\n// dimension (whereas a dot will simply be drawn in the center).\nexport function isCollapsed(scale) {\n if (scale === undefined) return true; // treat missing scale as collapsed\n const domain = scale.domain();\n const value = scale(domain[0]);\n for (let i = 1, n = domain.length; i < n; ++i) {\n if (scale(domain[i]) - value) {\n return false;\n }\n }\n return true;\n}\n\n// Mutates channel.value!\nfunction coerceType(channels, {domain, ...options}, coerceValues) {\n for (const c of channels) {\n if (c.value !== undefined) {\n c.value = coerceValues(c.value);\n }\n }\n return {\n domain: domain === undefined ? domain : coerceValues(domain),\n ...options\n };\n}\n\nfunction coerceSymbols(values) {\n return map(values, maybeSymbol);\n}\n\nexport function scale(options = {}) {\n let scale;\n for (const key in options) {\n if (!registry.has(key)) continue; // ignore unknown properties\n if (!isScaleOptions(options[key])) continue; // e.g., ignore {color: \"red\"}\n if (scale !== undefined) throw new Error(\"ambiguous scale definition; multiple scales found\");\n scale = exposeScale(normalizeScale(key, options[key]));\n }\n if (scale === undefined) throw new Error(\"invalid scale definition; no scale found\");\n return scale;\n}\n\nexport function exposeScales(scales) {\n return (key) => {\n if (!registry.has((key = `${key}`))) throw new Error(`unknown scale: ${key}`);\n return scales[key];\n };\n}\n\n// Note: axis- and legend-related properties (such as label, ticks and\n// tickFormat) are not included here as they do not affect the scale’s behavior.\nfunction exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) {\n if (type === \"identity\") return {type: \"identity\", apply: (d) => d, invert: (d) => d};\n const unknown = scale.unknown ? scale.unknown() : undefined;\n return {\n type,\n domain: slice(domain), // defensive copy\n ...(range !== undefined && {range: slice(range)}), // defensive copy\n ...(transform !== undefined && {transform}),\n ...(percent && {percent}), // only exposed if truthy\n ...(unknown !== undefined && {unknown}),\n ...(interval !== undefined && {interval}),\n\n // quantitative\n ...(interpolate !== undefined && {interpolate}),\n ...(scale.clamp && {clamp: scale.clamp()}),\n\n // diverging (always asymmetric; we never want to apply the symmetric transform twice)\n ...(pivot !== undefined && {pivot, symmetric: false}),\n\n // log, diverging-log\n ...(scale.base && {base: scale.base()}),\n\n // pow, diverging-pow\n ...(scale.exponent && {exponent: scale.exponent()}),\n\n // symlog, diverging-symlog\n ...(scale.constant && {constant: scale.constant()}),\n\n // band, point\n ...(scale.align && {align: scale.align(), round: scale.round()}),\n ...(scale.padding &&\n (scale.paddingInner\n ? {paddingInner: scale.paddingInner(), paddingOuter: scale.paddingOuter()}\n : {padding: scale.padding()})),\n ...(scale.bandwidth && {bandwidth: scale.bandwidth(), step: scale.step()}),\n\n // utilities\n apply: (t) => scale(t),\n ...(scale.invert && {invert: (t) => scale.invert(t)})\n };\n}\n","import {extent} from \"d3\";\nimport {projectionAspectRatio} from \"./projection.js\";\nimport {isOrdinalScale} from \"./scales.js\";\nimport {offset} from \"./style.js\";\n\nexport function createDimensions(scales, marks, options = {}) {\n // Compute the default margins: the maximum of the marks’ margins. While not\n // always used, they may be needed to compute the default height of the plot.\n let marginTopDefault = 0.5 - offset,\n marginRightDefault = 0.5 + offset,\n marginBottomDefault = 0.5 + offset,\n marginLeftDefault = 0.5 - offset;\n\n for (const {marginTop, marginRight, marginBottom, marginLeft} of marks) {\n if (marginTop > marginTopDefault) marginTopDefault = marginTop;\n if (marginRight > marginRightDefault) marginRightDefault = marginRight;\n if (marginBottom > marginBottomDefault) marginBottomDefault = marginBottom;\n if (marginLeft > marginLeftDefault) marginLeftDefault = marginLeft;\n }\n\n // Compute the actual margins. The order of precedence is: the side-specific\n // margin options, then the global margin option, then the defaults.\n let {\n margin,\n marginTop = margin !== undefined ? margin : marginTopDefault,\n marginRight = margin !== undefined ? margin : marginRightDefault,\n marginBottom = margin !== undefined ? margin : marginBottomDefault,\n marginLeft = margin !== undefined ? margin : marginLeftDefault\n } = options;\n\n // Coerce the margin options to numbers.\n marginTop = +marginTop;\n marginRight = +marginRight;\n marginBottom = +marginBottom;\n marginLeft = +marginLeft;\n\n // Compute the outer dimensions of the plot. If the top and bottom margins are\n // specified explicitly, adjust the automatic height accordingly.\n let {\n width = 640,\n height = autoHeight(scales, options, {\n width,\n marginTopDefault,\n marginRightDefault,\n marginBottomDefault,\n marginLeftDefault\n }) + Math.max(0, marginTop - marginTopDefault + marginBottom - marginBottomDefault)\n } = options;\n\n // Coerce the width and height.\n width = +width;\n height = +height;\n\n const dimensions = {\n width,\n height,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft\n };\n\n // Compute the facet margins.\n if (scales.fx || scales.fy) {\n let {\n margin: facetMargin,\n marginTop: facetMarginTop = facetMargin !== undefined ? facetMargin : marginTop,\n marginRight: facetMarginRight = facetMargin !== undefined ? facetMargin : marginRight,\n marginBottom: facetMarginBottom = facetMargin !== undefined ? facetMargin : marginBottom,\n marginLeft: facetMarginLeft = facetMargin !== undefined ? facetMargin : marginLeft\n } = options.facet ?? {};\n\n // Coerce the facet margin options to numbers.\n facetMarginTop = +facetMarginTop;\n facetMarginRight = +facetMarginRight;\n facetMarginBottom = +facetMarginBottom;\n facetMarginLeft = +facetMarginLeft;\n\n dimensions.facet = {\n marginTop: facetMarginTop,\n marginRight: facetMarginRight,\n marginBottom: facetMarginBottom,\n marginLeft: facetMarginLeft\n };\n }\n\n return dimensions;\n}\n\nfunction autoHeight(\n {x, y, fy, fx},\n {projection, aspectRatio},\n {width, marginTopDefault, marginRightDefault, marginBottomDefault, marginLeftDefault}\n) {\n const nfy = fy ? fy.scale.domain().length : 1;\n\n // If a projection is specified, use its natural aspect ratio (if known).\n const ar = projectionAspectRatio(projection);\n if (ar) {\n const nfx = fx ? fx.scale.domain().length : 1;\n const far = ((1.1 * nfy - 0.1) / (1.1 * nfx - 0.1)) * ar; // 0.1 is default facet padding\n const lar = Math.max(0.1, Math.min(10, far)); // clamp the aspect ratio to a “reasonable” value\n return Math.round((width - marginLeftDefault - marginRightDefault) * lar + marginTopDefault + marginBottomDefault);\n }\n\n const ny = y ? (isOrdinalScale(y) ? y.scale.domain().length : Math.max(7, 17 / nfy)) : 1;\n\n // If a desired aspect ratio is given, compute a default height to match.\n if (aspectRatio != null) {\n aspectRatio = +aspectRatio;\n if (!(isFinite(aspectRatio) && aspectRatio > 0)) throw new Error(`invalid aspectRatio: ${aspectRatio}`);\n const ratio = aspectRatioLength(\"y\", y) / (aspectRatioLength(\"x\", x) * aspectRatio);\n const fxb = fx ? fx.scale.bandwidth() : 1;\n const fyb = fy ? fy.scale.bandwidth() : 1;\n const w = fxb * (width - marginLeftDefault - marginRightDefault) - x.insetLeft - x.insetRight;\n return (ratio * w + y.insetTop + y.insetBottom) / fyb + marginTopDefault + marginBottomDefault;\n }\n\n return !!(y || fy) * Math.max(1, Math.min(60, ny * nfy)) * 20 + !!fx * 30 + 60;\n}\n\nfunction aspectRatioLength(k, scale) {\n if (!scale) throw new Error(`aspectRatio requires ${k} scale`);\n const {type, domain} = scale;\n let transform;\n switch (type) {\n case \"linear\":\n case \"utc\":\n case \"time\":\n transform = Number;\n break;\n case \"pow\": {\n const exponent = scale.scale.exponent();\n transform = (x) => Math.pow(x, exponent);\n break;\n }\n case \"log\":\n transform = Math.log;\n break;\n case \"point\":\n case \"band\":\n return domain.length;\n default:\n throw new Error(`unsupported ${k} scale for aspectRatio: ${type}`);\n }\n const [min, max] = extent(domain);\n return Math.abs(transform(max) - transform(min));\n}\n","import {InternMap, cross, rollup, sum} from \"d3\";\nimport {keyof, map, range} from \"./options.js\";\nimport {createScales} from \"./scales.js\";\n\n// Returns an array of {x?, y?, i} objects representing the facet domain.\nexport function createFacets(channelsByScale, options) {\n const {fx, fy} = createScales(channelsByScale, options);\n const fxDomain = fx?.scale.domain();\n const fyDomain = fy?.scale.domain();\n return fxDomain && fyDomain\n ? cross(fxDomain, fyDomain).map(([x, y], i) => ({x, y, i}))\n : fxDomain\n ? fxDomain.map((x, i) => ({x, i}))\n : fyDomain\n ? fyDomain.map((y, i) => ({y, i}))\n : undefined;\n}\n\nexport function recreateFacets(facets, {x: X, y: Y}) {\n X &&= facetIndex(X);\n Y &&= facetIndex(Y);\n return facets\n .filter(\n X && Y // remove any facets no longer present in the domain\n ? (f) => X.has(f.x) && Y.has(f.y)\n : X\n ? (f) => X.has(f.x)\n : (f) => Y.has(f.y)\n )\n .sort(\n X && Y // reorder facets to match the new scale domains\n ? (a, b) => X.get(a.x) - X.get(b.x) || Y.get(a.y) - Y.get(b.y)\n : X\n ? (a, b) => X.get(a.x) - X.get(b.x)\n : (a, b) => Y.get(a.y) - Y.get(b.y)\n );\n}\n\n// Returns a (possibly nested) Map of [[key1, index1], [key2, index2], …]\n// representing the data indexes associated with each facet.\nexport function facetGroups(data, {fx, fy}) {\n const I = range(data);\n const FX = fx?.value;\n const FY = fy?.value;\n return fx && fy\n ? rollup(\n I,\n (G) => ((G.fx = FX[G[0]]), (G.fy = FY[G[0]]), G),\n (i) => FX[i],\n (i) => FY[i]\n )\n : fx\n ? rollup(\n I,\n (G) => ((G.fx = FX[G[0]]), G),\n (i) => FX[i]\n )\n : rollup(\n I,\n (G) => ((G.fy = FY[G[0]]), G),\n (i) => FY[i]\n );\n}\n\nexport function facetTranslator(fx, fy, {marginTop, marginLeft}) {\n return fx && fy\n ? ({x, y}) => `translate(${fx(x) - marginLeft},${fy(y) - marginTop})`\n : fx\n ? ({x}) => `translate(${fx(x) - marginLeft},0)`\n : ({y}) => `translate(0,${fy(y) - marginTop})`;\n}\n\n// Returns an index that for each facet lists all the elements present in other\n// facets in the original index. TODO Memoize to avoid repeated work?\nexport function facetExclude(index) {\n const ex = [];\n const e = new Uint32Array(sum(index, (d) => d.length));\n for (const i of index) {\n let n = 0;\n for (const j of index) {\n if (i === j) continue;\n e.set(j, n);\n n += j.length;\n }\n ex.push(e.slice(0, n));\n }\n return ex;\n}\n\nconst facetAnchors = new Map([\n [\"top\", facetAnchorTop],\n [\"right\", facetAnchorRight],\n [\"bottom\", facetAnchorBottom],\n [\"left\", facetAnchorLeft],\n [\"top-left\", and(facetAnchorTop, facetAnchorLeft)],\n [\"top-right\", and(facetAnchorTop, facetAnchorRight)],\n [\"bottom-left\", and(facetAnchorBottom, facetAnchorLeft)],\n [\"bottom-right\", and(facetAnchorBottom, facetAnchorRight)],\n [\"top-empty\", facetAnchorTopEmpty],\n [\"right-empty\", facetAnchorRightEmpty],\n [\"bottom-empty\", facetAnchorBottomEmpty],\n [\"left-empty\", facetAnchorLeftEmpty],\n [\"empty\", facetAnchorEmpty]\n]);\n\nexport function maybeFacetAnchor(facetAnchor) {\n if (facetAnchor == null) return null;\n const anchor = facetAnchors.get(`${facetAnchor}`.toLowerCase());\n if (anchor) return anchor;\n throw new Error(`invalid facet anchor: ${facetAnchor}`);\n}\n\nconst indexCache = new WeakMap();\n\nfunction facetIndex(V) {\n let I = indexCache.get(V);\n if (!I) indexCache.set(V, (I = new InternMap(map(V, (v, i) => [v, i]))));\n return I;\n}\n\n// Like V.indexOf(v), but with the same semantics as InternMap.\nfunction facetIndexOf(V, v) {\n return facetIndex(V).get(v);\n}\n\n// Like facets.find, but with the same semantics as InternMap.\nfunction facetFind(facets, x, y) {\n x = keyof(x);\n y = keyof(y);\n return facets.find((f) => Object.is(keyof(f.x), x) && Object.is(keyof(f.y), y));\n}\n\nfunction facetEmpty(facets, x, y) {\n return facetFind(facets, x, y)?.empty;\n}\n\nfunction facetAnchorTop(facets, {y: Y}, {y}) {\n return Y ? facetIndexOf(Y, y) === 0 : true;\n}\n\nfunction facetAnchorBottom(facets, {y: Y}, {y}) {\n return Y ? facetIndexOf(Y, y) === Y.length - 1 : true;\n}\n\nfunction facetAnchorLeft(facets, {x: X}, {x}) {\n return X ? facetIndexOf(X, x) === 0 : true;\n}\n\nfunction facetAnchorRight(facets, {x: X}, {x}) {\n return X ? facetIndexOf(X, x) === X.length - 1 : true;\n}\n\nfunction facetAnchorTopEmpty(facets, {y: Y}, {x, y, empty}) {\n if (empty) return false;\n if (!Y) return;\n const i = facetIndexOf(Y, y);\n if (i > 0) return facetEmpty(facets, x, Y[i - 1]);\n}\n\nfunction facetAnchorBottomEmpty(facets, {y: Y}, {x, y, empty}) {\n if (empty) return false;\n if (!Y) return;\n const i = facetIndexOf(Y, y);\n if (i < Y.length - 1) return facetEmpty(facets, x, Y[i + 1]);\n}\n\nfunction facetAnchorLeftEmpty(facets, {x: X}, {x, y, empty}) {\n if (empty) return false;\n if (!X) return;\n const i = facetIndexOf(X, x);\n if (i > 0) return facetEmpty(facets, X[i - 1], y);\n}\n\nfunction facetAnchorRightEmpty(facets, {x: X}, {x, y, empty}) {\n if (empty) return false;\n if (!X) return;\n const i = facetIndexOf(X, x);\n if (i < X.length - 1) return facetEmpty(facets, X[i + 1], y);\n}\n\nfunction facetAnchorEmpty(facets, channels, {empty}) {\n return empty;\n}\n\nfunction and(a, b) {\n return function () {\n return a.apply(null, arguments) && b.apply(null, arguments);\n };\n}\n\n// Facet filter, by mark; for now only the \"eq\" filter is provided.\nexport function facetFilter(facets, {channels: {fx, fy}, groups}) {\n return fx && fy\n ? facets.map(({x, y}) => groups.get(x)?.get(y) ?? [])\n : fx\n ? facets.map(({x}) => groups.get(x) ?? [])\n : facets.map(({y}) => groups.get(y) ?? []);\n}\n","import {channelDomain, createChannels, valueObject} from \"./channel.js\";\nimport {defined} from \"./defined.js\";\nimport {maybeFacetAnchor} from \"./facet.js\";\nimport {maybeNamed, maybeValue} from \"./options.js\";\nimport {arrayify, isDomainSort, isObject, isOptions, keyword, range, singleton} from \"./options.js\";\nimport {project} from \"./projection.js\";\nimport {maybeClip, styles} from \"./style.js\";\nimport {basic, initializer} from \"./transforms/basic.js\";\n\nexport class Mark {\n constructor(data, channels = {}, options = {}, defaults) {\n const {\n facet = \"auto\",\n facetAnchor,\n fx,\n fy,\n sort,\n dx = 0,\n dy = 0,\n margin = 0,\n marginTop = margin,\n marginRight = margin,\n marginBottom = margin,\n marginLeft = margin,\n clip = defaults?.clip,\n channels: extraChannels,\n tip,\n render\n } = options;\n this.data = data;\n this.sort = isDomainSort(sort) ? sort : null;\n this.initializer = initializer(options).initializer;\n this.transform = this.initializer ? options.transform : basic(options).transform;\n if (facet === null || facet === false) {\n this.facet = null;\n } else {\n this.facet = keyword(facet === true ? \"include\" : facet, \"facet\", [\"auto\", \"include\", \"exclude\", \"super\"]);\n this.fx = data === singleton && typeof fx === \"string\" ? [fx] : fx;\n this.fy = data === singleton && typeof fy === \"string\" ? [fy] : fy;\n }\n this.facetAnchor = maybeFacetAnchor(facetAnchor);\n channels = maybeNamed(channels);\n if (extraChannels !== undefined) channels = {...maybeChannels(extraChannels), ...channels};\n if (defaults !== undefined) channels = {...styles(this, options, defaults), ...channels};\n this.channels = Object.fromEntries(\n Object.entries(channels)\n .map(([name, channel]) => {\n if (isOptions(channel.value)) {\n // apply scale and label overrides\n const {value, label = channel.label, scale = channel.scale} = channel.value;\n channel = {...channel, label, scale, value};\n }\n if (data === singleton && typeof channel.value === \"string\") {\n // convert field names to singleton values for decoration marks (e.g., frame)\n const {value} = channel;\n channel = {...channel, value: [value]};\n }\n return [name, channel];\n })\n .filter(([name, {value, optional}]) => {\n if (value != null) return true;\n if (optional) return false;\n throw new Error(`missing channel value: ${name}`);\n })\n );\n this.dx = +dx;\n this.dy = +dy;\n this.marginTop = +marginTop;\n this.marginRight = +marginRight;\n this.marginBottom = +marginBottom;\n this.marginLeft = +marginLeft;\n this.clip = maybeClip(clip);\n this.tip = maybeTip(tip);\n // Super-faceting currently disallow position channels; in the future, we\n // could allow position to be specified in fx and fy in addition to (or\n // instead of) x and y.\n if (this.facet === \"super\") {\n if (fx || fy) throw new Error(`super-faceting cannot use fx or fy`);\n for (const name in this.channels) {\n const {scale} = channels[name];\n if (scale !== \"x\" && scale !== \"y\") continue;\n throw new Error(`super-faceting cannot use x or y`);\n }\n }\n if (render != null) {\n this.render = composeRender(render, this.render);\n }\n }\n initialize(facets, facetChannels, plotOptions) {\n let data = arrayify(this.data);\n if (facets === undefined && data != null) facets = [range(data)];\n const originalFacets = facets;\n if (this.transform != null) ({facets, data} = this.transform(data, facets, plotOptions)), (data = arrayify(data));\n if (facets !== undefined) facets.original = originalFacets; // needed to read facetChannels\n const channels = createChannels(this.channels, data);\n if (this.sort != null) channelDomain(data, facets, channels, facetChannels, this.sort); // mutates facetChannels!\n return {data, facets, channels};\n }\n filter(index, channels, values) {\n for (const name in channels) {\n const {filter = defined} = channels[name];\n if (filter !== null) {\n const value = values[name];\n index = index.filter((i) => filter(value[i]));\n }\n }\n return index;\n }\n // If there is a projection, and there are paired x and y channels associated\n // with the x and y scale respectively (and not already in screen coordinates\n // as with an initializer), then apply the projection, replacing the x and y\n // values. Note that the x and y scales themselves don’t exist if there is a\n // projection, but whether the channels are associated with scales still\n // determines whether the projection should apply; think of the projection as\n // a combination xy-scale.\n project(channels, values, context) {\n for (const cx in channels) {\n if (channels[cx].scale === \"x\" && /^x|x$/.test(cx)) {\n const cy = cx.replace(/^x|x$/, \"y\");\n if (cy in channels && channels[cy].scale === \"y\") {\n project(cx, cy, values, context.projection);\n }\n }\n }\n }\n scale(channels, scales, context) {\n const values = valueObject(channels, scales);\n if (context.projection) this.project(channels, values, context);\n return values;\n }\n}\n\nexport function marks(...marks) {\n marks.plot = Mark.prototype.plot; // Note: depends on side-effect in plot!\n return marks;\n}\n\nexport function composeRender(r1, r2) {\n if (r1 == null) return r2 === null ? undefined : r2;\n if (r2 == null) return r1 === null ? undefined : r1;\n if (typeof r1 !== \"function\") throw new TypeError(`invalid render transform: ${r1}`);\n if (typeof r2 !== \"function\") throw new TypeError(`invalid render transform: ${r2}`);\n return function (i, s, v, d, c, next) {\n return r1.call(this, i, s, v, d, c, (i, s, v, d, c) => {\n return r2.call(this, i, s, v, d, c, next); // preserve this\n });\n };\n}\n\nfunction maybeChannels(channels) {\n return Object.fromEntries(\n Object.entries(maybeNamed(channels)).map(([name, channel]) => {\n channel = typeof channel === \"string\" ? {value: channel, label: name} : maybeValue(channel); // for shorthand extra channels, use name as label\n if (channel.filter === undefined && channel.scale == null) channel = {...channel, filter: null};\n return [name, channel];\n })\n );\n}\n\nfunction maybeTip(tip) {\n return tip === true\n ? \"xy\"\n : tip === false || tip == null\n ? null\n : typeof tip === \"string\"\n ? keyword(tip, \"tip\", [\"x\", \"y\", \"xy\"])\n : tip; // tip options object\n}\n\nexport function withTip(options, pointer) {\n return options?.tip === true\n ? {...options, tip: pointer}\n : isObject(options?.tip) && options.tip.pointer === undefined\n ? {...options, tip: {...options.tip, pointer}}\n : options;\n}\n","import {pointer as pointof} from \"d3\";\nimport {composeRender} from \"../mark.js\";\nimport {applyFrameAnchor} from \"../style.js\";\n\nconst states = new WeakMap();\n\nfunction pointerK(kx, ky, {x, y, px, py, maxRadius = 40, channels, render, ...options} = {}) {\n maxRadius = +maxRadius;\n // When px or py is used, register an extra channel that the pointer\n // interaction can use to control which point is focused; this allows pointing\n // to function independently of where the downstream mark (e.g., a tip) is\n // displayed. Also default x or y to null to disable maybeTuple etc.\n if (px != null) (x ??= null), (channels = {...channels, px: {value: px, scale: \"x\"}});\n if (py != null) (y ??= null), (channels = {...channels, py: {value: py, scale: \"y\"}});\n return {\n x,\n y,\n channels,\n ...options,\n // Unlike other composed transforms, the render transform must be the\n // outermost render function because it will re-render dynamically in\n // response to pointer events.\n render: composeRender(function (index, scales, values, dimensions, context, next) {\n context = {...context, pointerSticky: false};\n const svg = context.ownerSVGElement;\n const {data} = context.getMarkState(this);\n\n // Isolate state per-pointer, per-plot; if the pointer is reused by\n // multiple marks, they will share the same state (e.g., sticky modality).\n let state = states.get(svg);\n if (!state) states.set(svg, (state = {sticky: false, roots: [], renders: []}));\n\n // This serves as a unique identifier of the rendered mark per-plot; it is\n // used to record the currently-rendered elements (state.roots) so that we\n // can tell when a rendered element is clicked on.\n let renderIndex = state.renders.push(render) - 1;\n\n // For faceting, we want to compute the local coordinates of each point,\n // which means subtracting out the facet translation, if any. (It’s\n // tempting to do this using the local coordinates in SVG, but that’s\n // complicated by mark-specific transforms such as dx and dy.) Also, since\n // band scales return the upper bound of the band, we have to offset by\n // half the bandwidth.\n const {x, y, fx, fy} = scales;\n let tx = fx ? fx(index.fx) - dimensions.marginLeft : 0;\n let ty = fy ? fy(index.fy) - dimensions.marginTop : 0;\n if (x?.bandwidth) tx += x.bandwidth() / 2;\n if (y?.bandwidth) ty += y.bandwidth() / 2;\n\n // For faceting, we also need to record the closest point per facet per\n // mark (!), since each facet has its own pointer event listeners; we only\n // want the closest point across facets to be visible.\n const faceted = index.fi != null;\n let facetState;\n if (faceted) {\n let facetStates = state.facetStates;\n if (!facetStates) state.facetStates = facetStates = new Map();\n facetState = facetStates.get(this);\n if (!facetState) facetStates.set(this, (facetState = new Map()));\n }\n\n // The order of precedence for the pointer position is: px & py; the\n // middle of x1 & y1 and x2 & y2; or x1 & y1 (e.g., area); or lastly x &\n // y. If a dimension is unspecified, the frame anchor is used.\n const [cx, cy] = applyFrameAnchor(this, dimensions);\n const {px: PX, py: PY} = values;\n const px = PX ? (i) => PX[i] : anchorX(values, cx);\n const py = PY ? (i) => PY[i] : anchorY(values, cy);\n\n let i; // currently focused index\n let g; // currently rendered mark\n let s; // currently rendered stickiness\n let f; // current animation frame\n\n // When faceting, if more than one pointer would be visible, only show\n // this one if it is the closest. We defer rendering using an animation\n // frame to allow all pointer events to be received before deciding which\n // mark to render; although when hiding, we render immediately.\n function update(ii, ri) {\n if (faceted) {\n if (f) f = cancelAnimationFrame(f);\n if (ii == null) facetState.delete(index.fi);\n else {\n facetState.set(index.fi, ri);\n f = requestAnimationFrame(() => {\n f = null;\n for (const [fi, r] of facetState) {\n if (r < ri || (r === ri && fi < index.fi)) {\n ii = null;\n break;\n }\n }\n render(ii);\n });\n return;\n }\n }\n render(ii);\n }\n\n function render(ii) {\n if (i === ii && s === state.sticky) return; // the tooltip hasn’t moved\n i = ii;\n s = context.pointerSticky = state.sticky;\n const I = i == null ? [] : [i];\n if (faceted) (I.fx = index.fx), (I.fy = index.fy), (I.fi = index.fi);\n const r = next(I, scales, values, dimensions, context);\n if (g) {\n // When faceting, preserve swapped mark and facet transforms; also\n // remove ARIA attributes since these are promoted to the parent. This\n // is perhaps brittle in that it depends on how Plot renders facets,\n // but it produces a cleaner and more accessible SVG structure.\n if (faceted) {\n const p = g.parentNode;\n const ft = g.getAttribute(\"transform\");\n const mt = r.getAttribute(\"transform\");\n ft ? r.setAttribute(\"transform\", ft) : r.removeAttribute(\"transform\");\n mt ? p.setAttribute(\"transform\", mt) : p.removeAttribute(\"transform\");\n r.removeAttribute(\"aria-label\");\n r.removeAttribute(\"aria-description\");\n r.removeAttribute(\"aria-hidden\");\n }\n g.replaceWith(r);\n }\n state.roots[renderIndex] = g = r;\n\n // Dispatch the value. When simultaneously exiting this facet and\n // entering a new one, prioritize the entering facet.\n if (!(i == null && facetState?.size > 1)) context.dispatchValue(i == null ? null : data[i]);\n return r;\n }\n\n // Select the closest point to the mouse in the current facet; for\n // pointerX or pointerY, the orthogonal component of the distance is\n // squashed, selecting primarily on the dominant dimension. Across facets,\n // use unsquashed distance to determine the winner.\n function pointermove(event) {\n if (state.sticky || (event.pointerType === \"mouse\" && event.buttons === 1)) return; // dragging\n let [xp, yp] = pointof(event);\n (xp -= tx), (yp -= ty); // correct for facets and band scales\n const kpx = xp < dimensions.marginLeft || xp > dimensions.width - dimensions.marginRight ? 1 : kx;\n const kpy = yp < dimensions.marginTop || yp > dimensions.height - dimensions.marginBottom ? 1 : ky;\n let ii = null;\n let ri = maxRadius * maxRadius;\n for (const j of index) {\n const dx = kpx * (px(j) - xp);\n const dy = kpy * (py(j) - yp);\n const rj = dx * dx + dy * dy;\n if (rj <= ri) (ii = j), (ri = rj);\n }\n if (ii != null && (kx !== 1 || ky !== 1)) {\n const dx = px(ii) - xp;\n const dy = py(ii) - yp;\n ri = dx * dx + dy * dy;\n }\n update(ii, ri);\n }\n\n function pointerdown(event) {\n if (event.pointerType !== \"mouse\") return;\n if (i == null) return; // not pointing\n if (state.sticky && state.roots.some((r) => r?.contains(event.target))) return; // stay sticky\n if (state.sticky) (state.sticky = false), state.renders.forEach((r) => r(null)); // clear all pointers\n else (state.sticky = true), render(i);\n event.stopImmediatePropagation(); // suppress other pointers\n }\n\n function pointerleave(event) {\n if (event.pointerType !== \"mouse\") return;\n if (!state.sticky) update(null);\n }\n\n // We listen to the svg element; listening to the window instead would let\n // us receive pointer events from farther away, but would also make it\n // hard to know when to remove the listeners. (Using a mutation observer\n // to watch the entire document is likely too expensive.)\n svg.addEventListener(\"pointerenter\", pointermove);\n svg.addEventListener(\"pointermove\", pointermove);\n svg.addEventListener(\"pointerdown\", pointerdown);\n svg.addEventListener(\"pointerleave\", pointerleave);\n\n return render(null);\n }, render)\n };\n}\n\nexport function pointer(options) {\n return pointerK(1, 1, options);\n}\n\nexport function pointerX(options) {\n return pointerK(1, 0.01, options);\n}\n\nexport function pointerY(options) {\n return pointerK(0.01, 1, options);\n}\n\nexport function anchorX({x1: X1, x2: X2, x: X = X1}, cx) {\n return X1 && X2 ? (i) => (X1[i] + X2[i]) / 2 : X ? (i) => X[i] : () => cx;\n}\n\nexport function anchorY({y1: Y1, y2: Y2, y: Y = Y1}, cy) {\n return Y1 && Y2 ? (i) => (Y1[i] + Y2[i]) / 2 : Y ? (i) => Y[i] : () => cy;\n}\n","import {isOrdinalScale} from \"./scales.js\";\n\nexport function inferFontVariant(scale) {\n return isOrdinalScale(scale) && scale.interval === undefined ? undefined : \"tabular-nums\";\n}\n","import {quantize, interpolateNumber, piecewise, format, scaleBand, scaleLinear, axisBottom} from \"d3\";\nimport {inferFontVariant} from \"../axes.js\";\nimport {createContext, create} from \"../context.js\";\nimport {map, maybeNumberChannel} from \"../options.js\";\nimport {interpolatePiecewise} from \"../scales/quantitative.js\";\nimport {applyInlineStyles, impliedString, maybeClassName} from \"../style.js\";\n\nexport function legendRamp(color, options) {\n let {\n label = color.label,\n tickSize = 6,\n width = 240,\n height = 44 + tickSize,\n marginTop = 18,\n marginRight = 0,\n marginBottom = 16 + tickSize,\n marginLeft = 0,\n style,\n ticks = (width - marginLeft - marginRight) / 64,\n tickFormat,\n fontVariant = inferFontVariant(color),\n round = true,\n opacity,\n className\n } = options;\n const context = createContext(options);\n className = maybeClassName(className);\n opacity = maybeNumberChannel(opacity)[1];\n if (tickFormat === null) tickFormat = () => null;\n\n const svg = create(\"svg\", context)\n .attr(\"class\", `${className}-ramp`)\n .attr(\"font-family\", \"system-ui, sans-serif\")\n .attr(\"font-size\", 10)\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"viewBox\", `0 0 ${width} ${height}`)\n .call((svg) =>\n // Warning: if you edit this, change defaultClassName.\n svg.append(\"style\").text(\n `.${className}-ramp {\n display: block;\n background: white;\n height: auto;\n height: intrinsic;\n max-width: 100%;\n overflow: visible;\n}\n.${className}-ramp text {\n white-space: pre;\n}`\n )\n )\n .call(applyInlineStyles, style);\n\n let tickAdjust = (g) => g.selectAll(\".tick line\").attr(\"y1\", marginTop + marginBottom - height);\n\n let x;\n\n // Some D3 scales use scale.interpolate, some scale.interpolator, and some\n // scale.round; this normalizes the API so it works with all scale types.\n const applyRange = round ? (x, range) => x.rangeRound(range) : (x, range) => x.range(range);\n\n const {type, domain, range, interpolate, scale, pivot} = color;\n\n // Continuous\n if (interpolate) {\n // Often interpolate is a “fixed” interpolator on the [0, 1] interval, as\n // with a built-in color scheme, but sometimes it is a function that takes\n // two arguments and is used in conjunction with the range.\n const interpolator =\n range === undefined\n ? interpolate\n : piecewise(interpolate.length === 1 ? interpolatePiecewise(interpolate) : interpolate, range);\n\n // Construct a D3 scale of the same type, but with a range that evenly\n // divides the horizontal extent of the legend. (In the common case, the\n // domain.length is two, and so the range is simply the extent.) For a\n // diverging scale, we need an extra point in the range for the pivot such\n // that the pivot is always drawn in the middle.\n x = applyRange(\n scale.copy(),\n quantize(\n interpolateNumber(marginLeft, width - marginRight),\n Math.min(domain.length + (pivot !== undefined), range === undefined ? Infinity : range.length)\n )\n );\n\n // Construct a 256×1 canvas, filling each pixel using the interpolator.\n const n = 256;\n const canvas = context.document.createElement(\"canvas\");\n canvas.width = n;\n canvas.height = 1;\n const context2 = canvas.getContext(\"2d\");\n for (let i = 0, j = n - 1; i < n; ++i) {\n context2.fillStyle = interpolator(i / j);\n context2.fillRect(i, 0, 1, 1);\n }\n\n svg\n .append(\"image\")\n .attr(\"opacity\", opacity)\n .attr(\"x\", marginLeft)\n .attr(\"y\", marginTop)\n .attr(\"width\", width - marginLeft - marginRight)\n .attr(\"height\", height - marginTop - marginBottom)\n .attr(\"preserveAspectRatio\", \"none\")\n .attr(\"xlink:href\", canvas.toDataURL());\n }\n\n // Threshold\n else if (type === \"threshold\") {\n const thresholds = domain;\n\n const thresholdFormat =\n tickFormat === undefined ? (d) => d : typeof tickFormat === \"string\" ? format(tickFormat) : tickFormat;\n\n // Construct a linear scale with evenly-spaced ticks for each of the\n // thresholds; the domain extends one beyond the threshold extent.\n x = applyRange(scaleLinear().domain([-1, range.length - 1]), [marginLeft, width - marginRight]);\n\n svg\n .append(\"g\")\n .attr(\"fill-opacity\", opacity)\n .selectAll()\n .data(range)\n .enter()\n .append(\"rect\")\n .attr(\"x\", (d, i) => x(i - 1))\n .attr(\"y\", marginTop)\n .attr(\"width\", (d, i) => x(i) - x(i - 1))\n .attr(\"height\", height - marginTop - marginBottom)\n .attr(\"fill\", (d) => d);\n\n ticks = map(thresholds, (_, i) => i);\n tickFormat = (i) => thresholdFormat(thresholds[i], i);\n }\n\n // Ordinal (hopefully!)\n else {\n x = applyRange(scaleBand().domain(domain), [marginLeft, width - marginRight]);\n\n svg\n .append(\"g\")\n .attr(\"fill-opacity\", opacity)\n .selectAll()\n .data(domain)\n .enter()\n .append(\"rect\")\n .attr(\"x\", x)\n .attr(\"y\", marginTop)\n .attr(\"width\", Math.max(0, x.bandwidth() - 1))\n .attr(\"height\", height - marginTop - marginBottom)\n .attr(\"fill\", scale);\n\n tickAdjust = () => {};\n }\n\n svg\n .append(\"g\")\n .attr(\"transform\", `translate(0,${height - marginBottom})`)\n .call(\n axisBottom(x)\n .ticks(Array.isArray(ticks) ? null : ticks, typeof tickFormat === \"string\" ? tickFormat : undefined)\n .tickFormat(typeof tickFormat === \"function\" ? tickFormat : undefined)\n .tickSize(tickSize)\n .tickValues(Array.isArray(ticks) ? ticks : null)\n )\n .attr(\"font-size\", null)\n .attr(\"font-family\", null)\n .attr(\"font-variant\", impliedString(fontVariant, \"normal\"))\n .call(tickAdjust)\n .call((g) => g.select(\".domain\").remove());\n\n if (label !== undefined) {\n svg\n .append(\"text\")\n .attr(\"x\", marginLeft)\n .attr(\"y\", marginTop - 6)\n .attr(\"fill\", \"currentColor\") // TODO move to stylesheet?\n .attr(\"font-weight\", \"bold\")\n .text(label);\n }\n\n return svg.node();\n}\n","export const radians = Math.PI / 180;\n","import {create} from \"./context.js\";\n\nexport function markers(mark, {marker, markerStart = marker, markerMid = marker, markerEnd = marker} = {}) {\n mark.markerStart = maybeMarker(markerStart);\n mark.markerMid = maybeMarker(markerMid);\n mark.markerEnd = maybeMarker(markerEnd);\n}\n\nfunction maybeMarker(marker) {\n if (marker == null || marker === false) return null;\n if (marker === true) return markerCircleFill;\n if (typeof marker === \"function\") return marker;\n switch (`${marker}`.toLowerCase()) {\n case \"none\":\n return null;\n case \"arrow\":\n return markerArrow(\"auto\");\n case \"arrow-reverse\":\n return markerArrow(\"auto-start-reverse\");\n case \"dot\":\n return markerDot;\n case \"circle\":\n case \"circle-fill\":\n return markerCircleFill;\n case \"circle-stroke\":\n return markerCircleStroke;\n }\n throw new Error(`invalid marker: ${marker}`);\n}\n\nfunction markerArrow(orient) {\n return (color, context) =>\n create(\"svg:marker\", context)\n .attr(\"viewBox\", \"-5 -5 10 10\")\n .attr(\"markerWidth\", 6.67)\n .attr(\"markerHeight\", 6.67)\n .attr(\"orient\", orient)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", color)\n .attr(\"stroke-width\", 1.5)\n .attr(\"stroke-linecap\", \"round\")\n .attr(\"stroke-linejoin\", \"round\")\n .call((marker) => marker.append(\"path\").attr(\"d\", \"M-1.5,-3l3,3l-3,3\"))\n .node();\n}\n\nfunction markerDot(color, context) {\n return create(\"svg:marker\", context)\n .attr(\"viewBox\", \"-5 -5 10 10\")\n .attr(\"markerWidth\", 6.67)\n .attr(\"markerHeight\", 6.67)\n .attr(\"fill\", color)\n .attr(\"stroke\", \"none\")\n .call((marker) => marker.append(\"circle\").attr(\"r\", 2.5))\n .node();\n}\n\nfunction markerCircleFill(color, context) {\n return create(\"svg:marker\", context)\n .attr(\"viewBox\", \"-5 -5 10 10\")\n .attr(\"markerWidth\", 6.67)\n .attr(\"markerHeight\", 6.67)\n .attr(\"fill\", color)\n .attr(\"stroke\", \"white\")\n .attr(\"stroke-width\", 1.5)\n .call((marker) => marker.append(\"circle\").attr(\"r\", 3))\n .node();\n}\n\nfunction markerCircleStroke(color, context) {\n return create(\"svg:marker\", context)\n .attr(\"viewBox\", \"-5 -5 10 10\")\n .attr(\"markerWidth\", 6.67)\n .attr(\"markerHeight\", 6.67)\n .attr(\"fill\", \"white\")\n .attr(\"stroke\", color)\n .attr(\"stroke-width\", 1.5)\n .call((marker) => marker.append(\"circle\").attr(\"r\", 3))\n .node();\n}\n\nlet nextMarkerId = 0;\n\nexport function applyMarkers(path, mark, {stroke: S}, context) {\n return applyMarkersColor(path, mark, S && ((i) => S[i]), context);\n}\n\nexport function applyGroupedMarkers(path, mark, {stroke: S}, context) {\n return applyMarkersColor(path, mark, S && (([i]) => S[i]), context);\n}\n\nfunction applyMarkersColor(path, {markerStart, markerMid, markerEnd, stroke}, strokeof = () => stroke, context) {\n const iriByMarkerColor = new Map();\n\n function applyMarker(marker) {\n return function (i) {\n const color = strokeof(i);\n let iriByColor = iriByMarkerColor.get(marker);\n if (!iriByColor) iriByMarkerColor.set(marker, (iriByColor = new Map()));\n let iri = iriByColor.get(color);\n if (!iri) {\n const node = this.parentNode.insertBefore(marker(color, context), this);\n const id = `plot-marker-${++nextMarkerId}`;\n node.setAttribute(\"id\", id);\n iriByColor.set(color, (iri = `url(#${id})`));\n }\n return iri;\n };\n }\n\n if (markerStart) path.attr(\"marker-start\", applyMarker(markerStart));\n if (markerMid) path.attr(\"marker-mid\", applyMarker(markerMid));\n if (markerEnd) path.attr(\"marker-end\", applyMarker(markerEnd));\n}\n","import {offset} from \"../style.js\";\n\nexport function maybeInsetX({inset, insetLeft, insetRight, ...options} = {}) {\n [insetLeft, insetRight] = maybeInset(inset, insetLeft, insetRight);\n return {inset, insetLeft, insetRight, ...options};\n}\n\nexport function maybeInsetY({inset, insetTop, insetBottom, ...options} = {}) {\n [insetTop, insetBottom] = maybeInset(inset, insetTop, insetBottom);\n return {inset, insetTop, insetBottom, ...options};\n}\n\nfunction maybeInset(inset, inset1, inset2) {\n return inset === undefined && inset1 === undefined && inset2 === undefined\n ? offset\n ? [1, 0]\n : [0.5, 0.5]\n : [inset1, inset2];\n}\n","import {isTemporal, labelof, map, maybeInterval, maybeValue, valueof} from \"../options.js\";\nimport {maybeInsetX, maybeInsetY} from \"./inset.js\";\n\n// The interval may be specified either as x: {value, interval} or as {x,\n// interval}. The former can be used to specify separate intervals for x and y,\n// for example with Plot.rect.\nfunction maybeIntervalValue(value, {interval}) {\n value = {...maybeValue(value)};\n value.interval = maybeInterval(value.interval === undefined ? interval : value.interval);\n return value;\n}\n\nfunction maybeIntervalK(k, maybeInsetK, options, trivial) {\n const {[k]: v, [`${k}1`]: v1, [`${k}2`]: v2} = options;\n const {value, interval} = maybeIntervalValue(v, options);\n if (value == null || (interval == null && !trivial)) return options;\n const label = labelof(v);\n if (interval == null) {\n let V;\n const kv = {transform: (data) => V || (V = valueof(data, value)), label};\n return {\n ...options,\n [k]: undefined,\n [`${k}1`]: v1 === undefined ? kv : v1,\n [`${k}2`]: v2 === undefined ? kv : v2\n };\n }\n let D1, V1;\n function transform(data) {\n if (V1 !== undefined && data === D1) return V1; // memoize\n return (V1 = map(valueof((D1 = data), value), (v) => interval.floor(v)));\n }\n return maybeInsetK({\n ...options,\n [k]: undefined,\n [`${k}1`]: v1 === undefined ? {transform, label} : v1,\n [`${k}2`]: v2 === undefined ? {transform: (data) => transform(data).map((v) => interval.offset(v)), label} : v2\n });\n}\n\nfunction maybeIntervalMidK(k, maybeInsetK, options) {\n const {[k]: v} = options;\n const {value, interval} = maybeIntervalValue(v, options);\n if (value == null || interval == null) return options;\n return maybeInsetK({\n ...options,\n [k]: {\n label: labelof(v),\n transform: (data) => {\n const V1 = map(valueof(data, value), (v) => interval.floor(v));\n const V2 = V1.map((v) => interval.offset(v));\n return V1.map(\n isTemporal(V1)\n ? (v1, v2) =>\n v1 == null || isNaN((v1 = +v1)) || ((v2 = V2[v2]), v2 == null) || isNaN((v2 = +v2))\n ? undefined\n : new Date((v1 + v2) / 2)\n : (v1, v2) => (v1 == null || ((v2 = V2[v2]), v2 == null) ? NaN : (+v1 + +v2) / 2)\n );\n }\n }\n });\n}\n\nexport function maybeTrivialIntervalX(options = {}) {\n return maybeIntervalK(\"x\", maybeInsetX, options, true);\n}\n\nexport function maybeTrivialIntervalY(options = {}) {\n return maybeIntervalK(\"y\", maybeInsetY, options, true);\n}\n\nexport function maybeIntervalX(options = {}) {\n return maybeIntervalK(\"x\", maybeInsetX, options);\n}\n\nexport function maybeIntervalY(options = {}) {\n return maybeIntervalK(\"y\", maybeInsetY, options);\n}\n\nexport function maybeIntervalMidX(options = {}) {\n return maybeIntervalMidK(\"x\", maybeInsetX, options);\n}\n\nexport function maybeIntervalMidY(options = {}) {\n return maybeIntervalMidK(\"y\", maybeInsetY, options);\n}\n","import {create} from \"../context.js\";\nimport {Mark, withTip} from \"../mark.js\";\nimport {applyMarkers, markers} from \"../marker.js\";\nimport {identity, number} from \"../options.js\";\nimport {isCollapsed} from \"../scales.js\";\nimport {applyChannelStyles, applyDirectStyles, applyIndirectStyles, applyTransform, offset} from \"../style.js\";\nimport {maybeIntervalX, maybeIntervalY} from \"../transforms/interval.js\";\n\nconst defaults = {\n ariaLabel: \"rule\",\n fill: null,\n stroke: \"currentColor\"\n};\n\nexport class RuleX extends Mark {\n constructor(data, options = {}) {\n const {x, y1, y2, inset = 0, insetTop = inset, insetBottom = inset} = options;\n super(\n data,\n {\n x: {value: x, scale: \"x\", optional: true},\n y1: {value: y1, scale: \"y\", optional: true},\n y2: {value: y2, scale: \"y\", optional: true}\n },\n withTip(options, \"x\"),\n defaults\n );\n this.insetTop = number(insetTop);\n this.insetBottom = number(insetBottom);\n markers(this, options);\n }\n render(index, scales, channels, dimensions, context) {\n const {x, y} = scales;\n const {x: X, y1: Y1, y2: Y2} = channels;\n const {width, height, marginTop, marginRight, marginLeft, marginBottom} = dimensions;\n const {insetTop, insetBottom} = this;\n return create(\"svg:g\", context)\n .call(applyIndirectStyles, this, dimensions, context)\n .call(applyTransform, this, {x: X && x}, offset, 0)\n .call((g) =>\n g\n .selectAll()\n .data(index)\n .enter()\n .append(\"line\")\n .call(applyDirectStyles, this)\n .attr(\"x1\", X ? (i) => X[i] : (marginLeft + width - marginRight) / 2)\n .attr(\"x2\", X ? (i) => X[i] : (marginLeft + width - marginRight) / 2)\n .attr(\"y1\", Y1 && !isCollapsed(y) ? (i) => Y1[i] + insetTop : marginTop + insetTop)\n .attr(\n \"y2\",\n Y2 && !isCollapsed(y)\n ? y.bandwidth\n ? (i) => Y2[i] + y.bandwidth() - insetBottom\n : (i) => Y2[i] - insetBottom\n : height - marginBottom - insetBottom\n )\n .call(applyChannelStyles, this, channels)\n .call(applyMarkers, this, channels, context)\n )\n .node();\n }\n}\n\nexport class RuleY extends Mark {\n constructor(data, options = {}) {\n const {x1, x2, y, inset = 0, insetRight = inset, insetLeft = inset} = options;\n super(\n data,\n {\n y: {value: y, scale: \"y\", optional: true},\n x1: {value: x1, scale: \"x\", optional: true},\n x2: {value: x2, scale: \"x\", optional: true}\n },\n withTip(options, \"y\"),\n defaults\n );\n this.insetRight = number(insetRight);\n this.insetLeft = number(insetLeft);\n markers(this, options);\n }\n render(index, scales, channels, dimensions, context) {\n const {x, y} = scales;\n const {y: Y, x1: X1, x2: X2} = channels;\n const {width, height, marginTop, marginRight, marginLeft, marginBottom} = dimensions;\n const {insetLeft, insetRight} = this;\n return create(\"svg:g\", context)\n .call(applyIndirectStyles, this, dimensions, context)\n .call(applyTransform, this, {y: Y && y}, 0, offset)\n .call((g) =>\n g\n .selectAll()\n .data(index)\n .enter()\n .append(\"line\")\n .call(applyDirectStyles, this)\n .attr(\"x1\", X1 && !isCollapsed(x) ? (i) => X1[i] + insetLeft : marginLeft + insetLeft)\n .attr(\n \"x2\",\n X2 && !isCollapsed(x)\n ? x.bandwidth\n ? (i) => X2[i] + x.bandwidth() - insetRight\n : (i) => X2[i] - insetRight\n : width - marginRight - insetRight\n )\n .attr(\"y1\", Y ? (i) => Y[i] : (marginTop + height - marginBottom) / 2)\n .attr(\"y2\", Y ? (i) => Y[i] : (marginTop + height - marginBottom) / 2)\n .call(applyChannelStyles, this, channels)\n .call(applyMarkers, this, channels, context)\n )\n .node();\n }\n}\n\nexport function ruleX(data, options) {\n let {x = identity, y, y1, y2, ...rest} = maybeIntervalY(options);\n [y1, y2] = maybeOptionalZero(y, y1, y2);\n return new RuleX(data, {...rest, x, y1, y2});\n}\n\nexport function ruleY(data, options) {\n let {y = identity, x, x1, x2, ...rest} = maybeIntervalX(options);\n [x1, x2] = maybeOptionalZero(x, x1, x2);\n return new RuleY(data, {...rest, y, x1, x2});\n}\n\n// For marks specified either as [0, x] or [x1, x2], or nothing.\nfunction maybeOptionalZero(x, x1, x2) {\n if (x == null) {\n if (x1 === undefined) {\n if (x2 !== undefined) return [0, x2];\n } else {\n if (x2 === undefined) return [0, x1];\n }\n } else if (x1 === undefined) {\n return x2 === undefined ? [0, x] : [x, x2];\n } else if (x2 === undefined) {\n return [x, x1];\n }\n return [x1, x2];\n}\n","export function template(strings, ...parts) {\n let n = parts.length;\n\n // If any of the interpolated parameters are strings rather than functions,\n // bake them into the template to optimize performance during render.\n for (let j = 0, copy = true; j < n; ++j) {\n if (typeof parts[j] !== \"function\") {\n if (copy) {\n strings = strings.slice(); // copy before mutate\n copy = false;\n }\n strings.splice(j, 2, strings[j] + parts[j] + strings[j + 1]);\n parts.splice(j, 1);\n --j, --n;\n }\n }\n\n return (i) => {\n let s = strings[0];\n for (let j = 0; j < n; ++j) {\n s += parts[j](i) + strings[j + 1];\n }\n return s;\n };\n}\n","import {namespaces} from \"d3\";\nimport {create} from \"../context.js\";\nimport {nonempty} from \"../defined.js\";\nimport {formatDefault} from \"../format.js\";\nimport {Mark} from \"../mark.js\";\nimport {\n indexOf,\n identity,\n string,\n maybeNumberChannel,\n maybeTuple,\n numberChannel,\n isNumeric,\n isTemporal,\n keyword,\n maybeFrameAnchor,\n isTextual,\n isIterable\n} from \"../options.js\";\nimport {\n applyChannelStyles,\n applyDirectStyles,\n applyIndirectStyles,\n applyAttr,\n applyTransform,\n impliedString,\n applyFrameAnchor\n} from \"../style.js\";\nimport {template} from \"../template.js\";\nimport {maybeIntervalMidX, maybeIntervalMidY} from \"../transforms/interval.js\";\n\nconst defaults = {\n ariaLabel: \"text\",\n strokeLinejoin: \"round\",\n strokeWidth: 3,\n paintOrder: \"stroke\"\n};\n\nconst softHyphen = \"\\u00ad\";\n\nexport class Text extends Mark {\n constructor(data, options = {}) {\n const {\n x,\n y,\n text = isIterable(data) && isTextual(data) ? identity : indexOf,\n frameAnchor,\n textAnchor = /right$/i.test(frameAnchor) ? \"end\" : /left$/i.test(frameAnchor) ? \"start\" : \"middle\",\n lineAnchor = /^top/i.test(frameAnchor) ? \"top\" : /^bottom/i.test(frameAnchor) ? \"bottom\" : \"middle\",\n lineHeight = 1,\n lineWidth = Infinity,\n textOverflow,\n monospace,\n fontFamily = monospace ? \"ui-monospace, monospace\" : undefined,\n fontSize,\n fontStyle,\n fontVariant,\n fontWeight,\n rotate\n } = options;\n const [vrotate, crotate] = maybeNumberChannel(rotate, 0);\n const [vfontSize, cfontSize] = maybeFontSizeChannel(fontSize);\n super(\n data,\n {\n x: {value: x, scale: \"x\", optional: true},\n y: {value: y, scale: \"y\", optional: true},\n fontSize: {value: vfontSize, optional: true},\n rotate: {value: numberChannel(vrotate), optional: true},\n text: {value: text, filter: nonempty, optional: true}\n },\n options,\n defaults\n );\n this.rotate = crotate;\n this.textAnchor = impliedString(textAnchor, \"middle\");\n this.lineAnchor = keyword(lineAnchor, \"lineAnchor\", [\"top\", \"middle\", \"bottom\"]);\n this.lineHeight = +lineHeight;\n this.lineWidth = +lineWidth;\n this.textOverflow = maybeTextOverflow(textOverflow);\n this.monospace = !!monospace;\n this.fontFamily = string(fontFamily);\n this.fontSize = cfontSize;\n this.fontStyle = string(fontStyle);\n this.fontVariant = string(fontVariant);\n this.fontWeight = string(fontWeight);\n this.frameAnchor = maybeFrameAnchor(frameAnchor);\n if (!(this.lineWidth >= 0)) throw new Error(`invalid lineWidth: ${lineWidth}`);\n this.splitLines = splitter(this);\n this.clipLine = clipper(this);\n }\n render(index, scales, channels, dimensions, context) {\n const {x, y} = scales;\n const {x: X, y: Y, rotate: R, text: T, title: TL, fontSize: FS} = channels;\n const {rotate} = this;\n const [cx, cy] = applyFrameAnchor(this, dimensions);\n return create(\"svg:g\", context)\n .call(applyIndirectStyles, this, dimensions, context)\n .call(applyIndirectTextStyles, this, T, dimensions)\n .call(applyTransform, this, {x: X && x, y: Y && y})\n .call((g) =>\n g\n .selectAll()\n .data(index)\n .enter()\n .append(\"text\")\n .call(applyDirectStyles, this)\n .call(applyMultilineText, this, T, TL)\n .attr(\n \"transform\",\n template`translate(${X ? (i) => X[i] : cx},${Y ? (i) => Y[i] : cy})${\n R ? (i) => ` rotate(${R[i]})` : rotate ? ` rotate(${rotate})` : ``\n }`\n )\n .call(applyAttr, \"font-size\", FS && ((i) => FS[i]))\n .call(applyChannelStyles, this, channels)\n )\n .node();\n }\n}\n\nexport function maybeTextOverflow(textOverflow) {\n return textOverflow == null\n ? null\n : keyword(textOverflow, \"textOverflow\", [\n \"clip\", // shorthand for clip-end\n \"ellipsis\", // … ellipsis-end\n \"clip-start\",\n \"clip-end\",\n \"ellipsis-start\",\n \"ellipsis-middle\",\n \"ellipsis-end\"\n ]).replace(/^(clip|ellipsis)$/, \"$1-end\");\n}\n\nfunction applyMultilineText(selection, mark, T, TL) {\n if (!T) return;\n const {lineAnchor, lineHeight, textOverflow, splitLines, clipLine} = mark;\n selection.each(function (i) {\n const lines = splitLines(formatDefault(T[i]) ?? \"\").map(clipLine);\n const n = lines.length;\n const y = lineAnchor === \"top\" ? 0.71 : lineAnchor === \"bottom\" ? 1 - n : (164 - n * 100) / 200;\n if (n > 1) {\n let m = 0;\n for (let i = 0; i < n; ++i) {\n ++m;\n if (!lines[i]) continue;\n const tspan = this.ownerDocument.createElementNS(namespaces.svg, \"tspan\");\n tspan.setAttribute(\"x\", 0);\n if (i === m - 1) tspan.setAttribute(\"y\", `${(y + i) * lineHeight}em`);\n else tspan.setAttribute(\"dy\", `${m * lineHeight}em`);\n tspan.textContent = lines[i];\n this.appendChild(tspan);\n m = 0;\n }\n } else {\n if (y) this.setAttribute(\"y\", `${y * lineHeight}em`);\n this.textContent = lines[0];\n }\n if (textOverflow && !TL && lines[0] !== T[i]) {\n const title = this.ownerDocument.createElementNS(namespaces.svg, \"title\");\n title.textContent = T[i];\n this.appendChild(title);\n }\n });\n}\n\nexport function text(data, {x, y, ...options} = {}) {\n if (options.frameAnchor === undefined) [x, y] = maybeTuple(x, y);\n return new Text(data, {...options, x, y});\n}\n\nexport function textX(data, {x = identity, ...options} = {}) {\n return new Text(data, maybeIntervalMidY({...options, x}));\n}\n\nexport function textY(data, {y = identity, ...options} = {}) {\n return new Text(data, maybeIntervalMidX({...options, y}));\n}\n\nexport function applyIndirectTextStyles(selection, mark, T) {\n applyAttr(selection, \"text-anchor\", mark.textAnchor);\n applyAttr(selection, \"font-family\", mark.fontFamily);\n applyAttr(selection, \"font-size\", mark.fontSize);\n applyAttr(selection, \"font-style\", mark.fontStyle);\n applyAttr(selection, \"font-variant\", mark.fontVariant === undefined ? inferFontVariant(T) : mark.fontVariant);\n applyAttr(selection, \"font-weight\", mark.fontWeight);\n}\n\nfunction inferFontVariant(T) {\n return T && (isNumeric(T) || isTemporal(T)) ? \"tabular-nums\" : undefined;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/font-size\nconst fontSizes = new Set([\n // global keywords\n \"inherit\",\n \"initial\",\n \"revert\",\n \"unset\",\n // absolute keywords\n \"xx-small\",\n \"x-small\",\n \"small\",\n \"medium\",\n \"large\",\n \"x-large\",\n \"xx-large\",\n \"xxx-large\",\n // relative keywords\n \"larger\",\n \"smaller\"\n]);\n\n// The font size may be expressed as a constant in the following forms:\n// - number in pixels\n// - string keyword: see above\n// - string <length>: e.g., \"12px\"\n// - string <percentage>: e.g., \"80%\"\n// Anything else is assumed to be a channel definition.\nfunction maybeFontSizeChannel(fontSize) {\n if (fontSize == null || typeof fontSize === \"number\") return [undefined, fontSize];\n if (typeof fontSize !== \"string\") return [fontSize, undefined];\n fontSize = fontSize.trim().toLowerCase();\n return fontSizes.has(fontSize) || /^[+-]?\\d*\\.?\\d+(e[+-]?\\d+)?(\\w*|%)$/.test(fontSize)\n ? [undefined, fontSize]\n : [fontSize, undefined];\n}\n\n// This is a greedy algorithm for line wrapping. It would be better to use the\n// Knuth–Plass line breaking algorithm (but that would be much more complex).\n// https://en.wikipedia.org/wiki/Line_wrap_and_word_wrap\nfunction lineWrap(input, maxWidth, widthof) {\n const lines = [];\n let lineStart,\n lineEnd = 0;\n for (const [wordStart, wordEnd, required] of lineBreaks(input)) {\n // Record the start of a line. This isn’t the same as the previous line’s\n // end because we often skip spaces between lines.\n if (lineStart === undefined) lineStart = wordStart;\n\n // If the current line is not empty, and if adding the current word would\n // make the line longer than the allowed width, then break the line at the\n // previous word end.\n if (lineEnd > lineStart && widthof(input, lineStart, wordEnd) > maxWidth) {\n lines.push(input.slice(lineStart, lineEnd) + (input[lineEnd - 1] === softHyphen ? \"-\" : \"\"));\n lineStart = wordStart;\n }\n\n // If this is a required break (a newline), emit the line and reset.\n if (required) {\n lines.push(input.slice(lineStart, wordEnd));\n lineStart = undefined;\n continue;\n }\n\n // Extend the current line to include the new word.\n lineEnd = wordEnd;\n }\n return lines;\n}\n\n// This is a rudimentary (and U.S.-centric) algorithm for finding opportunities\n// to break lines between words. A better and far more comprehensive approach\n// would be to use the official Unicode Line Breaking Algorithm.\n// https://unicode.org/reports/tr14/\nfunction* lineBreaks(input) {\n let i = 0,\n j = 0;\n const n = input.length;\n while (j < n) {\n let k = 1;\n switch (input[j]) {\n case softHyphen:\n case \"-\": // hyphen\n ++j;\n yield [i, j, false];\n i = j;\n break;\n case \" \":\n yield [i, j, false];\n while (input[++j] === \" \"); // skip multiple spaces\n i = j;\n break;\n case \"\\r\":\n if (input[j + 1] === \"\\n\") ++k; // falls through\n case \"\\n\":\n yield [i, j, true];\n j += k;\n i = j;\n break;\n default:\n ++j;\n break;\n }\n }\n yield [i, j, true];\n}\n\n// Computed as round(measureText(text).width * 10) at 10px system-ui. For\n// characters that are not represented in this map, we’d ideally want to use a\n// weighted average of what we expect to see. But since we don’t really know\n// what that is, using “e” seems reasonable.\nconst defaultWidthMap = {\n a: 56,\n b: 63,\n c: 57,\n d: 63,\n e: 58,\n f: 37,\n g: 62,\n h: 60,\n i: 26,\n j: 26,\n k: 55,\n l: 26,\n m: 88,\n n: 60,\n o: 60,\n p: 62,\n q: 62,\n r: 39,\n s: 54,\n t: 38,\n u: 60,\n v: 55,\n w: 79,\n x: 54,\n y: 55,\n z: 55,\n A: 69,\n B: 67,\n C: 73,\n D: 74,\n E: 61,\n F: 58,\n G: 76,\n H: 75,\n I: 28,\n J: 55,\n K: 67,\n L: 58,\n M: 89,\n N: 75,\n O: 78,\n P: 65,\n Q: 78,\n R: 67,\n S: 65,\n T: 65,\n U: 75,\n V: 69,\n W: 98,\n X: 69,\n Y: 67,\n Z: 67,\n 0: 64,\n 1: 48,\n 2: 62,\n 3: 64,\n 4: 66,\n 5: 63,\n 6: 65,\n 7: 58,\n 8: 65,\n 9: 65,\n \" \": 29,\n \"!\": 32,\n '\"': 49,\n \"'\": 31,\n \"(\": 39,\n \")\": 39,\n \",\": 31,\n \"-\": 48,\n \".\": 31,\n \"/\": 32,\n \":\": 31,\n \";\": 31,\n \"?\": 52,\n \"‘\": 31,\n \"’\": 31,\n \"“\": 47,\n \"”\": 47,\n \"…\": 82\n};\n\n// This is a rudimentary (and U.S.-centric) algorithm for measuring the width of\n// a string based on a technique of Gregor Aisch; it assumes that individual\n// characters are laid out independently and does not implement the Unicode\n// grapheme cluster breaking algorithm. It does understand code points, though,\n// and so treats things like emoji as having the width of a lowercase e (and\n// should be equivalent to using for-of to iterate over code points, while also\n// being fast). TODO Optimize this by noting that we often re-measure characters\n// that were previously measured?\n// http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries\n// https://exploringjs.com/impatient-js/ch_strings.html#atoms-of-text\nexport function defaultWidth(text, start = 0, end = text.length) {\n let sum = 0;\n for (let i = start; i < end; i = readCharacter(text, i)) {\n sum += defaultWidthMap[text[i]] ?? (isPictographic(text, i) ? 120 : defaultWidthMap.e);\n }\n return sum;\n}\n\n// Even for monospaced text, we can’t assume that the number of UTF-16 code\n// points (i.e., the length of a string) corresponds to the number of visible\n// characters; we still have to count graphemes. And note that pictographic\n// characters such as emojis are typically not monospaced!\nexport function monospaceWidth(text, start = 0, end = text.length) {\n let sum = 0;\n for (let i = start; i < end; i = readCharacter(text, i)) {\n sum += isPictographic(text, i) ? 200 : 100;\n }\n return sum;\n}\n\nexport function splitter({monospace, lineWidth, textOverflow}) {\n if (textOverflow != null || lineWidth == Infinity) return (text) => text.split(/\\r\\n?|\\n/g);\n const widthof = monospace ? monospaceWidth : defaultWidth;\n const maxWidth = lineWidth * 100;\n return (text) => lineWrap(text, maxWidth, widthof);\n}\n\nexport function clipper({monospace, lineWidth, textOverflow}) {\n if (textOverflow == null || lineWidth == Infinity) return (text) => text;\n const widthof = monospace ? monospaceWidth : defaultWidth;\n const maxWidth = lineWidth * 100;\n switch (textOverflow) {\n case \"clip-start\":\n return (text) => clipStart(text, maxWidth, widthof, \"\");\n case \"clip-end\":\n return (text) => clipEnd(text, maxWidth, widthof, \"\");\n case \"ellipsis-start\":\n return (text) => clipStart(text, maxWidth, widthof, ellipsis);\n case \"ellipsis-middle\":\n return (text) => clipMiddle(text, maxWidth, widthof, ellipsis);\n case \"ellipsis-end\":\n return (text) => clipEnd(text, maxWidth, widthof, ellipsis);\n }\n}\n\nexport const ellipsis = \"…\";\n\n// Cuts the given text to the given width, using the specified widthof function;\n// the returned [index, error] guarantees text.slice(0, index) fits within the\n// specified width with the given error. If the text fits naturally within the\n// given width, returns [-1, 0]. If the text needs cutting, the given inset\n// specifies how much space (in the same units as width and widthof) to reserve\n// for a possible ellipsis character.\nexport function cut(text, width, widthof, inset) {\n const I = []; // indexes of read character boundaries\n let w = 0; // current line width\n for (let i = 0, j = 0, n = text.length; i < n; i = j) {\n j = readCharacter(text, i); // read the next character\n const l = widthof(text, i, j); // current character width\n if (w + l > width) {\n w += inset;\n while (w > width && i > 0) (j = i), (i = I.pop()), (w -= widthof(text, i, j)); // remove excess\n return [i, width - w];\n }\n w += l;\n I.push(i);\n }\n return [-1, 0];\n}\n\nexport function clipEnd(text, width, widthof, ellipsis) {\n text = text.trim(); // ignore leading and trailing whitespace\n const e = widthof(ellipsis);\n const [i] = cut(text, width, widthof, e);\n return i < 0 ? text : text.slice(0, i).trimEnd() + ellipsis;\n}\n\nexport function clipMiddle(text, width, widthof, ellipsis) {\n text = text.trim(); // ignore leading and trailing whitespace\n const w = widthof(text);\n if (w <= width) return text;\n const e = widthof(ellipsis) / 2;\n const [i, ei] = cut(text, width / 2, widthof, e);\n const [j] = cut(text, w - width / 2 - ei + e, widthof, -e); // TODO read spaces?\n return j < 0 ? ellipsis : text.slice(0, i).trimEnd() + ellipsis + text.slice(readCharacter(text, j)).trimStart();\n}\n\nexport function clipStart(text, width, widthof, ellipsis) {\n text = text.trim(); // ignore leading and trailing whitespace\n const w = widthof(text);\n if (w <= width) return text;\n const e = widthof(ellipsis);\n const [j] = cut(text, w - width + e, widthof, -e); // TODO read spaces?\n return j < 0 ? ellipsis : ellipsis + text.slice(readCharacter(text, j)).trimStart();\n}\n\nconst reCombiner = /[\\p{Combining_Mark}\\p{Emoji_Modifier}]+/uy;\nconst rePictographic = /\\p{Extended_Pictographic}/uy;\n\n// Reads a single “character” element from the given text starting at the given\n// index, returning the index after the read character. Ideally, this implements\n// the Unicode text segmentation algorithm and understands grapheme cluster\n// boundaries, etc., but in practice this is only smart enough to detect UTF-16\n// surrogate pairs, combining marks, and zero-width joiner (zwj) sequences such\n// as emoji skin color modifiers. https://unicode.org/reports/tr29/\nexport function readCharacter(text, i) {\n i += isSurrogatePair(text, i) ? 2 : 1;\n if (isCombiner(text, i)) i = reCombiner.lastIndex;\n if (isZeroWidthJoiner(text, i)) return readCharacter(text, i + 1);\n return i;\n}\n\n// We avoid more expensive regex tests involving Unicode property classes by\n// first checking for the common case of 7-bit ASCII characters.\nfunction isAscii(text, i) {\n return text.charCodeAt(i) < 0x80;\n}\n\nfunction isSurrogatePair(text, i) {\n const hi = text.charCodeAt(i);\n if (hi >= 0xd800 && hi < 0xdc00) {\n const lo = text.charCodeAt(i + 1);\n return lo >= 0xdc00 && lo < 0xe000;\n }\n return false;\n}\n\nfunction isZeroWidthJoiner(text, i) {\n return text.charCodeAt(i) === 0x200d;\n}\n\nfunction isCombiner(text, i) {\n return isAscii(text, i) ? false : ((reCombiner.lastIndex = i), reCombiner.test(text));\n}\n\nfunction isPictographic(text, i) {\n return isAscii(text, i) ? false : ((rePictographic.lastIndex = i), rePictographic.test(text));\n}\n","import {pathRound as path} from \"d3\";\nimport {create} from \"../context.js\";\nimport {Mark} from \"../mark.js\";\nimport {maybeFrameAnchor, maybeNumberChannel, maybeTuple, keyword, identity} from \"../options.js\";\nimport {\n applyChannelStyles,\n applyDirectStyles,\n applyFrameAnchor,\n applyIndirectStyles,\n applyTransform\n} from \"../style.js\";\nimport {template} from \"../template.js\";\n\nconst defaults = {\n ariaLabel: \"vector\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\",\n strokeLinecap: \"round\"\n};\n\nconst defaultRadius = 3.5;\n\n// The size of the arrowhead is proportional to its length, but we still allow\n// the relative size of the head to be controlled via the mark’s width option;\n// doubling the default radius will produce an arrowhead that is twice as big.\n// That said, we’ll probably want a arrow with a fixed head size, too.\nconst wingRatio = defaultRadius * 5;\n\nconst shapeArrow = {\n draw(context, l, r) {\n const wing = (l * r) / wingRatio;\n context.moveTo(0, 0);\n context.lineTo(0, -l);\n context.moveTo(-wing, wing - l);\n context.lineTo(0, -l);\n context.lineTo(wing, wing - l);\n }\n};\n\nconst shapeSpike = {\n draw(context, l, r) {\n context.moveTo(-r, 0);\n context.lineTo(0, -l);\n context.lineTo(r, 0);\n }\n};\n\nconst shapes = new Map([\n [\"arrow\", shapeArrow],\n [\"spike\", shapeSpike]\n]);\n\nfunction isShapeObject(value) {\n return value && typeof value.draw === \"function\";\n}\n\nfunction maybeShape(shape) {\n if (isShapeObject(shape)) return shape;\n const value = shapes.get(`${shape}`.toLowerCase());\n if (value) return value;\n throw new Error(`invalid shape: ${shape}`);\n}\n\nexport class Vector extends Mark {\n constructor(data, options = {}) {\n const {x, y, r = defaultRadius, length, rotate, shape = shapeArrow, anchor = \"middle\", frameAnchor} = options;\n const [vl, cl] = maybeNumberChannel(length, 12);\n const [vr, cr] = maybeNumberChannel(rotate, 0);\n super(\n data,\n {\n x: {value: x, scale: \"x\", optional: true},\n y: {value: y, scale: \"y\", optional: true},\n length: {value: vl, scale: \"length\", optional: true},\n rotate: {value: vr, optional: true}\n },\n options,\n defaults\n );\n this.r = +r;\n this.length = cl;\n this.rotate = cr;\n this.shape = maybeShape(shape);\n this.anchor = keyword(anchor, \"anchor\", [\"start\", \"middle\", \"end\"]);\n this.frameAnchor = maybeFrameAnchor(frameAnchor);\n }\n render(index, scales, channels, dimensions, context) {\n const {x, y} = scales;\n const {x: X, y: Y, length: L, rotate: A} = channels;\n const {length, rotate, anchor, shape, r} = this;\n const [cx, cy] = applyFrameAnchor(this, dimensions);\n return create(\"svg:g\", context)\n .call(applyIndirectStyles, this, dimensions, context)\n .call(applyTransform, this, {x: X && x, y: Y && y})\n .call((g) =>\n g\n .selectAll()\n .data(index)\n .enter()\n .append(\"path\")\n .call(applyDirectStyles, this)\n .attr(\n \"transform\",\n template`translate(${X ? (i) => X[i] : cx},${Y ? (i) => Y[i] : cy})${\n A ? (i) => ` rotate(${A[i]})` : rotate ? ` rotate(${rotate})` : ``\n }${\n anchor === \"start\"\n ? ``\n : anchor === \"end\"\n ? L\n ? (i) => ` translate(0,${L[i]})`\n : ` translate(0,${length})`\n : L\n ? (i) => ` translate(0,${L[i] / 2})`\n : ` translate(0,${length / 2})`\n }`\n )\n .attr(\n \"d\",\n L\n ? (i) => {\n const p = path();\n shape.draw(p, L[i], r);\n return p;\n }\n : (() => {\n const p = path();\n shape.draw(p, length, r);\n return p;\n })()\n )\n .call(applyChannelStyles, this, channels)\n )\n .node();\n }\n}\n\nexport function vector(data, options = {}) {\n let {x, y, ...rest} = options;\n if (options.frameAnchor === undefined) [x, y] = maybeTuple(x, y);\n return new Vector(data, {...rest, x, y});\n}\n\nexport function vectorX(data, options = {}) {\n const {x = identity, ...rest} = options;\n return new Vector(data, {...rest, x});\n}\n\nexport function vectorY(data, options = {}) {\n const {y = identity, ...rest} = options;\n return new Vector(data, {...rest, y});\n}\n\nexport function spike(data, options = {}) {\n const {\n shape = shapeSpike,\n stroke = defaults.stroke,\n strokeWidth = 1,\n fill = stroke,\n fillOpacity = 0.3,\n anchor = \"start\",\n ...rest\n } = options;\n return vector(data, {...rest, shape, stroke, strokeWidth, fill, fillOpacity, anchor});\n}\n","import {InternSet, extent, format, utcFormat} from \"d3\";\nimport {formatDefault} from \"../format.js\";\nimport {marks} from \"../mark.js\";\nimport {radians} from \"../math.js\";\nimport {arrayify, constant, identity, keyword, number, range, valueof} from \"../options.js\";\nimport {isIterable, isNoneish, isTemporal, isInterval, orderof} from \"../options.js\";\nimport {maybeColorChannel, maybeNumberChannel, maybeRangeInterval} from \"../options.js\";\nimport {offset} from \"../style.js\";\nimport {generalizeTimeInterval, inferTimeFormat, intervalDuration} from \"../time.js\";\nimport {initializer} from \"../transforms/basic.js\";\nimport {warn} from \"../warnings.js\";\nimport {ruleX, ruleY} from \"./rule.js\";\nimport {text, textX, textY} from \"./text.js\";\nimport {vectorX, vectorY} from \"./vector.js\";\n\nfunction maybeData(data, options) {\n if (arguments.length < 2 && !isIterable(data)) (options = data), (data = null);\n if (options === undefined) options = {};\n return [data, options];\n}\n\nfunction maybeAnchor({anchor} = {}, anchors) {\n return anchor === undefined ? anchors[0] : keyword(anchor, \"anchor\", anchors);\n}\n\nfunction anchorY(options) {\n return maybeAnchor(options, [\"left\", \"right\"]);\n}\n\nfunction anchorFy(options) {\n return maybeAnchor(options, [\"right\", \"left\"]);\n}\n\nfunction anchorX(options) {\n return maybeAnchor(options, [\"bottom\", \"top\"]);\n}\n\nfunction anchorFx(options) {\n return maybeAnchor(options, [\"top\", \"bottom\"]);\n}\n\nexport function axisY() {\n const [data, options] = maybeData(...arguments);\n return axisKy(\"y\", anchorY(options), data, options);\n}\n\nexport function axisFy() {\n const [data, options] = maybeData(...arguments);\n return axisKy(\"fy\", anchorFy(options), data, options);\n}\n\nexport function axisX() {\n const [data, options] = maybeData(...arguments);\n return axisKx(\"x\", anchorX(options), data, options);\n}\n\nexport function axisFx() {\n const [data, options] = maybeData(...arguments);\n return axisKx(\"fx\", anchorFx(options), data, options);\n}\n\nfunction axisKy(\n k,\n anchor,\n data,\n {\n color = \"currentColor\",\n opacity = 1,\n stroke = color,\n strokeOpacity = opacity,\n strokeWidth = 1,\n fill = color,\n fillOpacity = opacity,\n textAnchor,\n textStroke,\n textStrokeOpacity,\n textStrokeWidth,\n tickSize = k === \"y\" ? 6 : 0,\n tickPadding,\n tickRotate,\n x,\n margin,\n marginTop = margin === undefined ? 20 : margin,\n marginRight = margin === undefined ? (anchor === \"right\" ? 40 : 0) : margin,\n marginBottom = margin === undefined ? 20 : margin,\n marginLeft = margin === undefined ? (anchor === \"left\" ? 40 : 0) : margin,\n label,\n labelAnchor,\n labelArrow,\n labelOffset,\n ...options\n }\n) {\n tickSize = number(tickSize);\n tickPadding = number(tickPadding);\n tickRotate = number(tickRotate);\n if (labelAnchor !== undefined) labelAnchor = keyword(labelAnchor, \"labelAnchor\", [\"center\", \"top\", \"bottom\"]);\n labelArrow = maybeLabelArrow(labelArrow);\n return marks(\n tickSize && !isNoneish(stroke)\n ? axisTickKy(k, anchor, data, {\n stroke,\n strokeOpacity,\n strokeWidth,\n tickSize,\n tickPadding,\n tickRotate,\n x,\n ...options\n })\n : null,\n !isNoneish(fill)\n ? axisTextKy(k, anchor, data, {\n fill,\n fillOpacity,\n stroke: textStroke,\n strokeOpacity: textStrokeOpacity,\n strokeWidth: textStrokeWidth,\n textAnchor,\n tickSize,\n tickPadding,\n tickRotate,\n x,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n ...options\n })\n : null,\n !isNoneish(fill) && label !== null\n ? text(\n [],\n labelOptions({fill, fillOpacity, ...options}, function (data, facets, channels, scales, dimensions) {\n const scale = scales[k];\n const {marginTop, marginRight, marginBottom, marginLeft} = (k === \"y\" && dimensions.inset) || dimensions;\n const cla = labelAnchor ?? (scale.bandwidth ? \"center\" : \"top\");\n const clo = labelOffset ?? (anchor === \"right\" ? marginRight : marginLeft) - 3;\n if (cla === \"center\") {\n this.textAnchor = undefined; // middle\n this.lineAnchor = anchor === \"right\" ? \"bottom\" : \"top\";\n this.frameAnchor = anchor;\n this.rotate = -90;\n } else {\n this.textAnchor = anchor === \"right\" ? \"end\" : \"start\";\n this.lineAnchor = cla;\n this.frameAnchor = `${cla}-${anchor}`;\n this.rotate = 0;\n }\n this.dy = cla === \"top\" ? 3 - marginTop : cla === \"bottom\" ? marginBottom - 3 : 0;\n this.dx = anchor === \"right\" ? clo : -clo;\n this.ariaLabel = `${k}-axis label`;\n return {\n facets: [[0]],\n channels: {text: {value: [formatAxisLabel(k, scale, {anchor, label, labelAnchor: cla, labelArrow})]}}\n };\n })\n )\n : null\n );\n}\n\nfunction axisKx(\n k,\n anchor,\n data,\n {\n color = \"currentColor\",\n opacity = 1,\n stroke = color,\n strokeOpacity = opacity,\n strokeWidth = 1,\n fill = color,\n fillOpacity = opacity,\n textAnchor,\n textStroke,\n textStrokeOpacity,\n textStrokeWidth,\n tickSize = k === \"x\" ? 6 : 0,\n tickPadding,\n tickRotate,\n y,\n margin,\n marginTop = margin === undefined ? (anchor === \"top\" ? 30 : 0) : margin,\n marginRight = margin === undefined ? 20 : margin,\n marginBottom = margin === undefined ? (anchor === \"bottom\" ? 30 : 0) : margin,\n marginLeft = margin === undefined ? 20 : margin,\n label,\n labelAnchor,\n labelArrow,\n labelOffset,\n ...options\n }\n) {\n tickSize = number(tickSize);\n tickPadding = number(tickPadding);\n tickRotate = number(tickRotate);\n if (labelAnchor !== undefined) labelAnchor = keyword(labelAnchor, \"labelAnchor\", [\"center\", \"left\", \"right\"]);\n labelArrow = maybeLabelArrow(labelArrow);\n return marks(\n tickSize && !isNoneish(stroke)\n ? axisTickKx(k, anchor, data, {\n stroke,\n strokeOpacity,\n strokeWidth,\n tickSize,\n tickPadding,\n tickRotate,\n y,\n ...options\n })\n : null,\n !isNoneish(fill)\n ? axisTextKx(k, anchor, data, {\n fill,\n fillOpacity,\n stroke: textStroke,\n strokeOpacity: textStrokeOpacity,\n strokeWidth: textStrokeWidth,\n textAnchor,\n tickSize,\n tickPadding,\n tickRotate,\n y,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n ...options\n })\n : null,\n !isNoneish(fill) && label !== null\n ? text(\n [],\n labelOptions({fill, fillOpacity, ...options}, function (data, facets, channels, scales, dimensions) {\n const scale = scales[k];\n const {marginTop, marginRight, marginBottom, marginLeft} = (k === \"x\" && dimensions.inset) || dimensions;\n const cla = labelAnchor ?? (scale.bandwidth ? \"center\" : \"right\");\n const clo = labelOffset ?? (anchor === \"top\" ? marginTop : marginBottom) - 3;\n if (cla === \"center\") {\n this.frameAnchor = anchor;\n this.textAnchor = undefined; // middle\n } else {\n this.frameAnchor = `${anchor}-${cla}`;\n this.textAnchor = cla === \"right\" ? \"end\" : \"start\";\n }\n this.lineAnchor = anchor;\n this.dy = anchor === \"top\" ? -clo : clo;\n this.dx = cla === \"right\" ? marginRight - 3 : cla === \"left\" ? 3 - marginLeft : 0;\n this.ariaLabel = `${k}-axis label`;\n return {\n facets: [[0]],\n channels: {text: {value: [formatAxisLabel(k, scale, {anchor, label, labelAnchor: cla, labelArrow})]}}\n };\n })\n )\n : null\n );\n}\n\nfunction axisTickKy(\n k,\n anchor,\n data,\n {\n strokeWidth = 1,\n strokeLinecap = null,\n strokeLinejoin = null,\n facetAnchor = anchor + (k === \"y\" ? \"-empty\" : \"\"),\n frameAnchor = anchor,\n tickSize,\n inset = 0,\n insetLeft = inset,\n insetRight = inset,\n dx = 0,\n y = k === \"y\" ? undefined : null,\n ...options\n }\n) {\n return axisMark(vectorY, k, anchor, `${k}-axis tick`, data, {\n strokeWidth,\n strokeLinecap,\n strokeLinejoin,\n facetAnchor,\n frameAnchor,\n y,\n ...options,\n dx: anchor === \"left\" ? +dx - offset + +insetLeft : +dx + offset - insetRight,\n anchor: \"start\",\n length: tickSize,\n shape: anchor === \"left\" ? shapeTickLeft : shapeTickRight\n });\n}\n\nfunction axisTickKx(\n k,\n anchor,\n data,\n {\n strokeWidth = 1,\n strokeLinecap = null,\n strokeLinejoin = null,\n facetAnchor = anchor + (k === \"x\" ? \"-empty\" : \"\"),\n frameAnchor = anchor,\n tickSize,\n inset = 0,\n insetTop = inset,\n insetBottom = inset,\n dy = 0,\n x = k === \"x\" ? undefined : null,\n ...options\n }\n) {\n return axisMark(vectorX, k, anchor, `${k}-axis tick`, data, {\n strokeWidth,\n strokeLinejoin,\n strokeLinecap,\n facetAnchor,\n frameAnchor,\n x,\n ...options,\n dy: anchor === \"bottom\" ? +dy - offset - insetBottom : +dy + offset + +insetTop,\n anchor: \"start\",\n length: tickSize,\n shape: anchor === \"bottom\" ? shapeTickBottom : shapeTickTop\n });\n}\n\nfunction axisTextKy(\n k,\n anchor,\n data,\n {\n facetAnchor = anchor + (k === \"y\" ? \"-empty\" : \"\"),\n frameAnchor = anchor,\n tickSize,\n tickRotate = 0,\n tickPadding = Math.max(3, 9 - tickSize) + (Math.abs(tickRotate) > 60 ? 4 * Math.cos(tickRotate * radians) : 0),\n text,\n textAnchor = Math.abs(tickRotate) > 60 ? \"middle\" : anchor === \"left\" ? \"end\" : \"start\",\n lineAnchor = tickRotate > 60 ? \"top\" : tickRotate < -60 ? \"bottom\" : \"middle\",\n fontVariant,\n inset = 0,\n insetLeft = inset,\n insetRight = inset,\n dx = 0,\n y = k === \"y\" ? undefined : null,\n ...options\n }\n) {\n return axisMark(\n textY,\n k,\n anchor,\n `${k}-axis tick label`,\n data,\n {\n facetAnchor,\n frameAnchor,\n text,\n textAnchor,\n lineAnchor,\n fontVariant,\n rotate: tickRotate,\n y,\n ...options,\n dx: anchor === \"left\" ? +dx - tickSize - tickPadding + +insetLeft : +dx + +tickSize + +tickPadding - insetRight\n },\n function (scale, data, ticks, tickFormat, channels) {\n if (fontVariant === undefined) this.fontVariant = inferFontVariant(scale);\n if (text === undefined) channels.text = inferTextChannel(scale, data, ticks, tickFormat, anchor);\n }\n );\n}\n\nfunction axisTextKx(\n k,\n anchor,\n data,\n {\n facetAnchor = anchor + (k === \"x\" ? \"-empty\" : \"\"),\n frameAnchor = anchor,\n tickSize,\n tickRotate = 0,\n tickPadding = Math.max(3, 9 - tickSize) + (Math.abs(tickRotate) >= 10 ? 4 * Math.cos(tickRotate * radians) : 0),\n text,\n textAnchor = Math.abs(tickRotate) >= 10 ? ((tickRotate < 0) ^ (anchor === \"bottom\") ? \"start\" : \"end\") : \"middle\",\n lineAnchor = Math.abs(tickRotate) >= 10 ? \"middle\" : anchor === \"bottom\" ? \"top\" : \"bottom\",\n fontVariant,\n inset = 0,\n insetTop = inset,\n insetBottom = inset,\n dy = 0,\n x = k === \"x\" ? undefined : null,\n ...options\n }\n) {\n return axisMark(\n textX,\n k,\n anchor,\n `${k}-axis tick label`,\n data,\n {\n facetAnchor,\n frameAnchor,\n text: text === undefined ? null : text,\n textAnchor,\n lineAnchor,\n fontVariant,\n rotate: tickRotate,\n x,\n ...options,\n dy: anchor === \"bottom\" ? +dy + +tickSize + +tickPadding - insetBottom : +dy - tickSize - tickPadding + +insetTop\n },\n function (scale, data, ticks, tickFormat, channels) {\n if (fontVariant === undefined) this.fontVariant = inferFontVariant(scale);\n if (text === undefined) channels.text = inferTextChannel(scale, data, ticks, tickFormat, anchor);\n }\n );\n}\n\nexport function gridY() {\n const [data, options] = maybeData(...arguments);\n return gridKy(\"y\", anchorY(options), data, options);\n}\n\nexport function gridFy() {\n const [data, options] = maybeData(...arguments);\n return gridKy(\"fy\", anchorFy(options), data, options);\n}\n\nexport function gridX() {\n const [data, options] = maybeData(...arguments);\n return gridKx(\"x\", anchorX(options), data, options);\n}\n\nexport function gridFx() {\n const [data, options] = maybeData(...arguments);\n return gridKx(\"fx\", anchorFx(options), data, options);\n}\n\nfunction gridKy(\n k,\n anchor,\n data,\n {\n y = k === \"y\" ? undefined : null,\n x = null,\n x1 = anchor === \"left\" ? x : null,\n x2 = anchor === \"right\" ? x : null,\n ...options\n }\n) {\n return axisMark(ruleY, k, anchor, `${k}-grid`, data, {y, x1, x2, ...gridDefaults(options)});\n}\n\nfunction gridKx(\n k,\n anchor,\n data,\n {\n x = k === \"x\" ? undefined : null,\n y = null,\n y1 = anchor === \"top\" ? y : null,\n y2 = anchor === \"bottom\" ? y : null,\n ...options\n }\n) {\n return axisMark(ruleX, k, anchor, `${k}-grid`, data, {x, y1, y2, ...gridDefaults(options)});\n}\n\nfunction gridDefaults({\n color = \"currentColor\",\n opacity = 0.1,\n stroke = color,\n strokeOpacity = opacity,\n strokeWidth = 1,\n ...options\n}) {\n return {stroke, strokeOpacity, strokeWidth, ...options};\n}\n\nfunction labelOptions(\n {\n fill,\n fillOpacity,\n fontFamily,\n fontSize,\n fontStyle,\n fontVariant,\n fontWeight,\n monospace,\n pointerEvents,\n shapeRendering,\n clip = false\n },\n initializer\n) {\n // Only propagate these options if constant.\n [, fill] = maybeColorChannel(fill);\n [, fillOpacity] = maybeNumberChannel(fillOpacity);\n return {\n facet: \"super\",\n x: null,\n y: null,\n fill,\n fillOpacity,\n fontFamily,\n fontSize,\n fontStyle,\n fontVariant,\n fontWeight,\n monospace,\n pointerEvents,\n shapeRendering,\n clip,\n initializer\n };\n}\n\nfunction axisMark(mark, k, anchor, ariaLabel, data, options, initialize) {\n let channels;\n\n function axisInitializer(data, facets, _channels, scales, dimensions, context) {\n const initializeFacets = data == null && (k === \"fx\" || k === \"fy\");\n const {[k]: scale} = scales;\n if (!scale) throw new Error(`missing scale: ${k}`);\n const domain = scale.domain();\n let {interval, ticks, tickFormat, tickSpacing = k === \"x\" ? 80 : 35} = options;\n // For a scale with a temporal domain, also allow the ticks to be specified\n // as a string which is promoted to a time interval. In the case of ordinal\n // scales, the interval is interpreted as UTC.\n if (typeof ticks === \"string\" && hasTemporalDomain(scale)) (interval = ticks), (ticks = undefined);\n // The interval axis option is an alternative method of specifying ticks;\n // for example, for a numeric scale, ticks = 5 means “about 5 ticks” whereas\n // interval = 5 means “ticks every 5 units”. (This is not to be confused\n // with the interval scale option, which affects the scale’s behavior!)\n // Lastly use the tickSpacing option to infer the desired tick count.\n if (ticks === undefined) ticks = maybeRangeInterval(interval, scale.type) ?? inferTickCount(scale, tickSpacing);\n if (data == null) {\n if (isIterable(ticks)) {\n // Use explicit ticks, if specified.\n data = arrayify(ticks);\n } else if (isInterval(ticks)) {\n // Use the tick interval, if specified.\n data = inclusiveRange(ticks, ...extent(domain));\n } else if (scale.interval) {\n // If the scale interval is a standard time interval such as \"day\", we\n // may be able to generalize the scale interval it to a larger aligned\n // time interval to create the desired number of ticks.\n let interval = scale.interval;\n if (scale.ticks) {\n const [min, max] = extent(domain);\n const n = (max - min) / interval[intervalDuration]; // current tick count\n // We don’t explicitly check that given interval is a time interval;\n // in that case the generalized interval will be undefined, just like\n // a nonstandard interval. TODO Generalize integer intervals, too.\n interval = generalizeTimeInterval(interval, n / ticks) ?? interval;\n data = inclusiveRange(interval, min, max);\n } else {\n data = domain;\n const n = data.length; // current tick count\n interval = generalizeTimeInterval(interval, n / ticks) ?? interval;\n if (interval !== scale.interval) data = inclusiveRange(interval, ...extent(data));\n }\n if (interval === scale.interval) {\n // If we weren’t able to generalize the scale’s interval, compute the\n // positive number n such that taking every nth value from the scale’s\n // domain produces as close as possible to the desired number of\n // ticks. For example, if the domain has 100 values and 5 ticks are\n // desired, n = 20.\n const n = Math.round(data.length / ticks);\n if (n > 1) data = data.filter((d, i) => i % n === 0);\n }\n } else if (scale.ticks) {\n data = scale.ticks(ticks);\n } else {\n // For ordinal scales, the domain will already be generated using the\n // scale’s interval, if any.\n data = domain;\n }\n if (!scale.ticks && data.length && data !== domain) {\n // For ordinal scales, intersect the ticks with the scale domain since\n // the scale is only defined on its domain. If all of the ticks are\n // removed, then warn that the ticks and scale domain may be misaligned\n // (e.g., \"year\" ticks and \"4 weeks\" interval).\n const domainSet = new InternSet(domain);\n data = data.filter((d) => domainSet.has(d));\n if (!data.length) warn(`Warning: the ${k}-axis ticks appear to not align with the scale domain, resulting in no ticks. Try different ticks?`); // prettier-ignore\n }\n if (k === \"y\" || k === \"x\") {\n facets = [range(data)];\n } else {\n channels[k] = {scale: k, value: identity};\n }\n }\n initialize?.call(this, scale, data, ticks, tickFormat, channels);\n const initializedChannels = Object.fromEntries(\n Object.entries(channels).map(([name, channel]) => {\n return [name, {...channel, value: valueof(data, channel.value)}];\n })\n );\n if (initializeFacets) facets = context.filterFacets(data, initializedChannels);\n return {data, facets, channels: initializedChannels};\n }\n\n // Apply any basic initializers after the axis initializer computes the ticks.\n const basicInitializer = initializer(options).initializer;\n const m = mark(data, initializer({...options, initializer: axisInitializer}, basicInitializer));\n if (data == null) {\n channels = m.channels;\n m.channels = {};\n } else {\n channels = {};\n }\n m.ariaLabel = ariaLabel;\n if (m.clip === undefined) m.clip = false; // don’t clip axes by default\n return m;\n}\n\nfunction inferTickCount(scale, tickSpacing) {\n const [min, max] = extent(scale.range());\n return (max - min) / tickSpacing;\n}\n\nfunction inferTextChannel(scale, data, ticks, tickFormat, anchor) {\n return {value: inferTickFormat(scale, data, ticks, tickFormat, anchor)};\n}\n\n// D3’s ordinal scales simply use toString by default, but if the ordinal scale\n// domain (or ticks) are numbers or dates (say because we’re applying a time\n// interval to the ordinal scale), we want Plot’s default formatter. And for\n// time ticks, we want to use the multi-line time format (e.g., Jan 26) if\n// possible, or the default ISO format (2014-01-26). TODO We need a better way\n// to infer whether the ordinal scale is UTC or local time.\nexport function inferTickFormat(scale, data, ticks, tickFormat, anchor) {\n return typeof tickFormat === \"function\"\n ? tickFormat\n : tickFormat === undefined && data && isTemporal(data)\n ? inferTimeFormat(data, anchor) ?? formatDefault\n : scale.tickFormat\n ? scale.tickFormat(typeof ticks === \"number\" ? ticks : null, tickFormat)\n : tickFormat === undefined\n ? formatDefault\n : typeof tickFormat === \"string\"\n ? (isTemporal(scale.domain()) ? utcFormat : format)(tickFormat)\n : constant(tickFormat);\n}\n\nfunction inclusiveRange(interval, min, max) {\n return interval.range(min, interval.offset(interval.floor(max)));\n}\n\nconst shapeTickBottom = {\n draw(context, l) {\n context.moveTo(0, 0);\n context.lineTo(0, l);\n }\n};\n\nconst shapeTickTop = {\n draw(context, l) {\n context.moveTo(0, 0);\n context.lineTo(0, -l);\n }\n};\n\nconst shapeTickLeft = {\n draw(context, l) {\n context.moveTo(0, 0);\n context.lineTo(-l, 0);\n }\n};\n\nconst shapeTickRight = {\n draw(context, l) {\n context.moveTo(0, 0);\n context.lineTo(l, 0);\n }\n};\n\n// TODO Unify this with the other inferFontVariant; here we only have a scale\n// function rather than a scale descriptor.\nfunction inferFontVariant(scale) {\n return scale.bandwidth && !scale.interval ? undefined : \"tabular-nums\";\n}\n\n// Determines whether the scale points in the “positive” (right or down) or\n// “negative” (left or up) direction; if the scale order cannot be determined,\n// returns NaN; used to assign an appropriate label arrow.\nfunction inferScaleOrder(scale) {\n return Math.sign(orderof(scale.domain())) * Math.sign(orderof(scale.range()));\n}\n\n// Takes the scale label, and if this is not an ordinal scale and the label was\n// inferred from an associated channel, adds an orientation-appropriate arrow.\nfunction formatAxisLabel(k, scale, {anchor, label = scale.label, labelAnchor, labelArrow} = {}) {\n if (label == null || (label.inferred && hasTemporalDomain(scale) && /^(date|time|year)$/i.test(label))) return;\n label = String(label); // coerce to a string after checking if inferred\n if (labelArrow === \"auto\") labelArrow = (!scale.bandwidth || scale.interval) && !/[↑↓→←]/.test(label);\n if (!labelArrow) return label;\n if (labelArrow === true) {\n const order = inferScaleOrder(scale);\n if (order)\n labelArrow =\n /x$/.test(k) || labelAnchor === \"center\"\n ? /x$/.test(k) === order < 0\n ? \"left\"\n : \"right\"\n : order < 0\n ? \"up\"\n : \"down\";\n }\n switch (labelArrow) {\n case \"left\":\n return `← ${label}`;\n case \"right\":\n return `${label} →`;\n case \"up\":\n return anchor === \"right\" ? `${label} ↑` : `↑ ${label}`;\n case \"down\":\n return anchor === \"right\" ? `${label} ↓` : `↓ ${label}`;\n }\n return label;\n}\n\nfunction maybeLabelArrow(labelArrow = \"auto\") {\n return isNoneish(labelArrow)\n ? false\n : typeof labelArrow === \"boolean\"\n ? labelArrow\n : keyword(labelArrow, \"labelArrow\", [\"auto\", \"up\", \"right\", \"down\", \"left\"]);\n}\n\nfunction hasTemporalDomain(scale) {\n return isTemporal(scale.domain());\n}\n","import {pathRound as path} from \"d3\";\nimport {inferFontVariant} from \"../axes.js\";\nimport {create, createContext} from \"../context.js\";\nimport {isNoneish, maybeColorChannel, maybeNumberChannel} from \"../options.js\";\nimport {isOrdinalScale, isThresholdScale} from \"../scales.js\";\nimport {applyInlineStyles, impliedString, maybeClassName} from \"../style.js\";\nimport {inferTickFormat} from \"../marks/axis.js\";\n\nfunction maybeScale(scale, key) {\n if (key == null) return key;\n const s = scale(key);\n if (!s) throw new Error(`scale not found: ${key}`);\n return s;\n}\n\nexport function legendSwatches(color, {opacity, ...options} = {}) {\n if (!isOrdinalScale(color) && !isThresholdScale(color))\n throw new Error(`swatches legend requires ordinal or threshold color scale (not ${color.type})`);\n return legendItems(color, options, (selection, scale, width, height) =>\n selection\n .append(\"svg\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"fill\", scale.scale)\n .attr(\"fill-opacity\", maybeNumberChannel(opacity)[1])\n .append(\"rect\")\n .attr(\"width\", \"100%\")\n .attr(\"height\", \"100%\")\n );\n}\n\nexport function legendSymbols(\n symbol,\n {\n fill = symbol.hint?.fill !== undefined ? symbol.hint.fill : \"none\",\n fillOpacity = 1,\n stroke = symbol.hint?.stroke !== undefined ? symbol.hint.stroke : isNoneish(fill) ? \"currentColor\" : \"none\",\n strokeOpacity = 1,\n strokeWidth = 1.5,\n r = 4.5,\n ...options\n } = {},\n scale\n) {\n const [vf, cf] = maybeColorChannel(fill);\n const [vs, cs] = maybeColorChannel(stroke);\n const sf = maybeScale(scale, vf);\n const ss = maybeScale(scale, vs);\n const size = r * r * Math.PI;\n fillOpacity = maybeNumberChannel(fillOpacity)[1];\n strokeOpacity = maybeNumberChannel(strokeOpacity)[1];\n strokeWidth = maybeNumberChannel(strokeWidth)[1];\n return legendItems(symbol, options, (selection, scale, width, height) =>\n selection\n .append(\"svg\")\n .attr(\"viewBox\", \"-8 -8 16 16\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"fill\", vf === \"color\" ? (d) => sf.scale(d) : cf)\n .attr(\"fill-opacity\", fillOpacity)\n .attr(\"stroke\", vs === \"color\" ? (d) => ss.scale(d) : cs)\n .attr(\"stroke-opacity\", strokeOpacity)\n .attr(\"stroke-width\", strokeWidth)\n .append(\"path\")\n .attr(\"d\", (d) => {\n const p = path();\n symbol.scale(d).draw(p, size);\n return p;\n })\n );\n}\n\nfunction legendItems(scale, options = {}, swatch) {\n let {\n columns,\n tickFormat,\n fontVariant = inferFontVariant(scale),\n // TODO label,\n swatchSize = 15,\n swatchWidth = swatchSize,\n swatchHeight = swatchSize,\n marginLeft = 0,\n className,\n style,\n width\n } = options;\n const context = createContext(options);\n className = maybeClassName(className);\n tickFormat = inferTickFormat(scale.scale, scale.domain, undefined, tickFormat);\n\n const swatches = create(\"div\", context).attr(\n \"class\",\n `${className}-swatches ${className}-swatches-${columns != null ? \"columns\" : \"wrap\"}`\n );\n\n let extraStyle;\n\n if (columns != null) {\n extraStyle = `.${className}-swatches-columns .${className}-swatch {\n display: flex;\n align-items: center;\n break-inside: avoid;\n padding-bottom: 1px;\n}\n.${className}-swatches-columns .${className}-swatch::before {\n flex-shrink: 0;\n}\n.${className}-swatches-columns .${className}-swatch-label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}`;\n\n swatches\n .style(\"columns\", columns)\n .selectAll()\n .data(scale.domain)\n .enter()\n .append(\"div\")\n .attr(\"class\", `${className}-swatch`)\n .call(swatch, scale, swatchWidth, swatchHeight)\n .call((item) =>\n item.append(\"div\").attr(\"class\", `${className}-swatch-label`).attr(\"title\", tickFormat).text(tickFormat)\n );\n } else {\n extraStyle = `.${className}-swatches-wrap {\n display: flex;\n align-items: center;\n min-height: 33px;\n flex-wrap: wrap;\n}\n.${className}-swatches-wrap .${className}-swatch {\n display: inline-flex;\n align-items: center;\n margin-right: 1em;\n}`;\n\n swatches\n .selectAll()\n .data(scale.domain)\n .enter()\n .append(\"span\")\n .attr(\"class\", `${className}-swatch`)\n .call(swatch, scale, swatchWidth, swatchHeight)\n .append(function () {\n return this.ownerDocument.createTextNode(tickFormat.apply(this, arguments));\n });\n }\n\n return swatches\n .call((div) =>\n div.insert(\"style\", \"*\").text(\n `.${className}-swatches {\n font-family: system-ui, sans-serif;\n font-size: 10px;\n margin-bottom: 0.5em;\n}\n.${className}-swatch > svg {\n margin-right: 0.5em;\n overflow: visible;\n}\n${extraStyle}`\n )\n )\n .style(\"margin-left\", marginLeft ? `${+marginLeft}px` : null)\n .style(\"width\", width === undefined ? null : `${+width}px`)\n .style(\"font-variant\", impliedString(fontVariant, \"normal\"))\n .call(applyInlineStyles, style)\n .node();\n}\n","import {rgb} from \"d3\";\nimport {createContext} from \"./context.js\";\nimport {legendRamp} from \"./legends/ramp.js\";\nimport {legendSwatches, legendSymbols} from \"./legends/swatches.js\";\nimport {inherit, isScaleOptions} from \"./options.js\";\nimport {normalizeScale} from \"./scales.js\";\n\nconst legendRegistry = new Map([\n [\"symbol\", legendSymbols],\n [\"color\", legendColor],\n [\"opacity\", legendOpacity]\n]);\n\nexport function legend(options = {}) {\n for (const [key, value] of legendRegistry) {\n const scale = options[key];\n if (isScaleOptions(scale)) {\n // e.g., ignore {color: \"red\"}\n const context = createContext(options);\n let hint;\n // For symbol legends, pass a hint to the symbol scale.\n if (key === \"symbol\") {\n const {fill, stroke = fill === undefined && isScaleOptions(options.color) ? \"color\" : undefined} = options;\n hint = {fill, stroke};\n }\n return value(normalizeScale(key, scale, hint), legendOptions(context, scale, options), (key) =>\n isScaleOptions(options[key]) ? normalizeScale(key, options[key]) : null\n );\n }\n }\n throw new Error(\"unknown legend type; no scale found\");\n}\n\nexport function exposeLegends(scales, context, defaults = {}) {\n return (key, options) => {\n if (!legendRegistry.has(key)) throw new Error(`unknown legend type: ${key}`);\n if (!(key in scales)) return;\n return legendRegistry.get(key)(scales[key], legendOptions(context, defaults[key], options), (key) => scales[key]);\n };\n}\n\nfunction legendOptions({className, ...context}, {label, ticks, tickFormat} = {}, options) {\n return inherit(options, {className, ...context}, {label, ticks, tickFormat});\n}\n\nfunction legendColor(color, {legend = true, ...options}) {\n if (legend === true) legend = color.type === \"ordinal\" ? \"swatches\" : \"ramp\";\n if (color.domain === undefined) return;\n switch (`${legend}`.toLowerCase()) {\n case \"swatches\":\n return legendSwatches(color, options);\n case \"ramp\":\n return legendRamp(color, options);\n default:\n throw new Error(`unknown legend type: ${legend}`);\n }\n}\n\nfunction legendOpacity({type, interpolate, ...scale}, {legend = true, color = rgb(0, 0, 0), ...options}) {\n if (!interpolate) throw new Error(`${type} opacity scales are not supported`);\n if (legend === true) legend = \"ramp\";\n if (`${legend}`.toLowerCase() !== \"ramp\") throw new Error(`${legend} opacity legends are not supported`);\n return legendColor({type, ...scale, interpolate: interpolateOpacity(color)}, {legend, ...options});\n}\n\nfunction interpolateOpacity(color) {\n const {r, g, b} = rgb(color) || rgb(0, 0, 0); // treat invalid color as black\n return (t) => `rgba(${r},${g},${b},${t})`;\n}\n\nexport function createLegends(scales, context, options) {\n const legends = [];\n for (const [key, value] of legendRegistry) {\n const o = options[key];\n if (o?.legend && key in scales) {\n const legend = value(scales[key], legendOptions(context, scales[key], o), (key) => scales[key]);\n if (legend != null) legends.push(legend);\n }\n }\n return legends;\n}\n","import {create} from \"../context.js\";\nimport {Mark} from \"../mark.js\";\nimport {maybeKeyword, number, singleton} from \"../options.js\";\nimport {applyChannelStyles, applyDirectStyles, applyIndirectStyles, applyTransform} from \"../style.js\";\n\nconst defaults = {\n ariaLabel: \"frame\",\n fill: \"none\",\n stroke: \"currentColor\",\n clip: false\n};\n\nconst lineDefaults = {\n ariaLabel: \"frame\",\n fill: null,\n stroke: \"currentColor\",\n strokeLinecap: \"square\",\n clip: false\n};\n\nexport class Frame extends Mark {\n constructor(options = {}) {\n const {\n anchor = null,\n inset = 0,\n insetTop = inset,\n insetRight = inset,\n insetBottom = inset,\n insetLeft = inset,\n rx,\n ry\n } = options;\n super(singleton, undefined, options, anchor == null ? defaults : lineDefaults);\n this.anchor = maybeKeyword(anchor, \"anchor\", [\"top\", \"right\", \"bottom\", \"left\"]);\n this.insetTop = number(insetTop);\n this.insetRight = number(insetRight);\n this.insetBottom = number(insetBottom);\n this.insetLeft = number(insetLeft);\n this.rx = number(rx);\n this.ry = number(ry);\n }\n render(index, scales, channels, dimensions, context) {\n const {marginTop, marginRight, marginBottom, marginLeft, width, height} = dimensions;\n const {anchor, insetTop, insetRight, insetBottom, insetLeft, rx, ry} = this;\n const x1 = marginLeft + insetLeft;\n const x2 = width - marginRight - insetRight;\n const y1 = marginTop + insetTop;\n const y2 = height - marginBottom - insetBottom;\n return create(anchor ? \"svg:line\" : \"svg:rect\", context)\n .datum(0)\n .call(applyIndirectStyles, this, dimensions, context)\n .call(applyDirectStyles, this)\n .call(applyChannelStyles, this, channels)\n .call(applyTransform, this, {})\n .call(\n anchor === \"left\"\n ? (line) => line.attr(\"x1\", x1).attr(\"x2\", x1).attr(\"y1\", y1).attr(\"y2\", y2)\n : anchor === \"right\"\n ? (line) => line.attr(\"x1\", x2).attr(\"x2\", x2).attr(\"y1\", y1).attr(\"y2\", y2)\n : anchor === \"top\"\n ? (line) => line.attr(\"x1\", x1).attr(\"x2\", x2).attr(\"y1\", y1).attr(\"y2\", y1)\n : anchor === \"bottom\"\n ? (line) => line.attr(\"x1\", x1).attr(\"x2\", x2).attr(\"y1\", y2).attr(\"y2\", y2)\n : (rect) =>\n rect\n .attr(\"x\", x1)\n .attr(\"y\", y1)\n .attr(\"width\", x2 - x1)\n .attr(\"height\", y2 - y1)\n .attr(\"rx\", rx)\n .attr(\"ry\", ry)\n )\n .node();\n }\n}\n\nexport function frame(options) {\n return new Frame(options);\n}\n","import {select, format as numberFormat, utcFormat} from \"d3\";\nimport {getSource} from \"../channel.js\";\nimport {create} from \"../context.js\";\nimport {defined} from \"../defined.js\";\nimport {formatDefault} from \"../format.js\";\nimport {anchorX, anchorY} from \"../interactions/pointer.js\";\nimport {Mark} from \"../mark.js\";\nimport {maybeAnchor, maybeFrameAnchor, maybeTuple, number, string} from \"../options.js\";\nimport {applyDirectStyles, applyFrameAnchor, applyIndirectStyles, applyTransform, impliedString} from \"../style.js\";\nimport {identity, isIterable, isTemporal, isTextual} from \"../options.js\";\nimport {inferTickFormat} from \"./axis.js\";\nimport {applyIndirectTextStyles, defaultWidth, ellipsis, monospaceWidth} from \"./text.js\";\nimport {cut, clipper, splitter, maybeTextOverflow} from \"./text.js\";\n\nconst defaults = {\n ariaLabel: \"tip\",\n fill: \"white\",\n stroke: \"currentColor\"\n};\n\n// These channels are not displayed in the default tip; see formatChannels.\nconst ignoreChannels = new Set([\"geometry\", \"href\", \"src\", \"ariaLabel\", \"scales\"]);\n\nexport class Tip extends Mark {\n constructor(data, options = {}) {\n if (options.tip) options = {...options, tip: false};\n if (options.title === undefined && isIterable(data) && isTextual(data)) options = {...options, title: identity};\n const {\n x,\n y,\n x1,\n x2,\n y1,\n y2,\n anchor,\n monospace,\n fontFamily = monospace ? \"ui-monospace, monospace\" : undefined,\n fontSize,\n fontStyle,\n fontVariant,\n fontWeight,\n lineHeight = 1,\n lineWidth = 20,\n frameAnchor,\n format,\n textAnchor = \"start\",\n textOverflow,\n textPadding = 8,\n title,\n pointerSize = 12,\n pathFilter = \"drop-shadow(0 3px 4px rgba(0,0,0,0.2))\"\n } = options;\n super(\n data,\n {\n x: {value: x1 != null && x2 != null ? null : x, scale: \"x\", optional: true}, // ignore midpoint\n y: {value: y1 != null && y2 != null ? null : y, scale: \"y\", optional: true}, // ignore midpoint\n x1: {value: x1, scale: \"x\", optional: x2 == null},\n y1: {value: y1, scale: \"y\", optional: y2 == null},\n x2: {value: x2, scale: \"x\", optional: x1 == null},\n y2: {value: y2, scale: \"y\", optional: y1 == null},\n title: {value: title, optional: true} // filter: defined\n },\n options,\n defaults\n );\n this.anchor = maybeAnchor(anchor, \"anchor\");\n this.previousAnchor = this.anchor ?? \"top-left\";\n this.frameAnchor = maybeFrameAnchor(frameAnchor);\n this.textAnchor = impliedString(textAnchor, \"middle\");\n this.textPadding = +textPadding;\n this.pointerSize = +pointerSize;\n this.pathFilter = string(pathFilter);\n this.lineHeight = +lineHeight;\n this.lineWidth = +lineWidth;\n this.textOverflow = maybeTextOverflow(textOverflow);\n this.monospace = !!monospace;\n this.fontFamily = string(fontFamily);\n this.fontSize = number(fontSize);\n this.fontStyle = string(fontStyle);\n this.fontVariant = string(fontVariant);\n this.fontWeight = string(fontWeight);\n for (const key in defaults) if (key in this.channels) this[key] = defaults[key]; // apply default even if channel\n this.splitLines = splitter(this);\n this.clipLine = clipper(this);\n this.format = {...format}; // defensive copy before mutate; also promote nullish to empty\n }\n render(index, scales, values, dimensions, context) {\n const mark = this;\n const {x, y, fx, fy} = scales;\n const {ownerSVGElement: svg, document} = context;\n const {anchor, monospace, lineHeight, lineWidth} = this;\n const {textPadding: r, pointerSize: m, pathFilter} = this;\n const {marginTop, marginLeft} = dimensions;\n\n // The anchor position is the middle of x1 & y1 and x2 & y2, if available,\n // or x & y; the former is considered more specific because it’s how we\n // disable the implicit stack and interval transforms. If any dimension is\n // unspecified, we fallback to the frame anchor. We also need to know the\n // facet offsets to detect when the tip would draw outside the plot, and\n // thus we need to change the orientation.\n const {x1: X1, y1: Y1, x2: X2, y2: Y2, x: X = X1 ?? X2, y: Y = Y1 ?? Y2} = values;\n const ox = fx ? fx(index.fx) - marginLeft : 0;\n const oy = fy ? fy(index.fy) - marginTop : 0;\n\n // The order of precedence for the anchor position is: the middle of x1 & y1\n // and x2 & y2; or x1 & y1 (e.g., area); or lastly x & y. If a dimension is\n // unspecified, the frame anchor is used.\n const [cx, cy] = applyFrameAnchor(this, dimensions);\n const px = anchorX(values, cx);\n const py = anchorY(values, cy);\n\n // Resolve the text metric implementation. We may need an ellipsis for text\n // truncation, so we optimistically compute the ellipsis width.\n const widthof = monospace ? monospaceWidth : defaultWidth;\n const ee = widthof(ellipsis);\n\n // If there’s a title channel, display that as-is; otherwise, show multiple\n // channels as name-value pairs.\n let sources, format;\n if (\"title\" in values) {\n sources = values.channels;\n format = formatTitle;\n } else {\n sources = getSourceChannels.call(this, values, scales);\n format = formatChannels;\n }\n\n // We don’t call applyChannelStyles because we only use the channels to\n // derive the content of the tip, not its aesthetics.\n const g = create(\"svg:g\", context)\n .call(applyIndirectStyles, this, dimensions, context)\n .call(applyIndirectTextStyles, this)\n .call(applyTransform, this, {x: X && x, y: Y && y})\n .call((g) =>\n g\n .selectAll()\n .data(index)\n .enter()\n .append(\"g\")\n .attr(\"transform\", (i) => `translate(${Math.round(px(i))},${Math.round(py(i))})`) // crisp edges\n .call(applyDirectStyles, this)\n .call((g) => g.append(\"path\").attr(\"filter\", pathFilter))\n .call((g) =>\n g.append(\"text\").each(function (i) {\n const that = select(this);\n // prevent style inheritance (from path)\n this.setAttribute(\"fill\", \"currentColor\");\n this.setAttribute(\"fill-opacity\", 1);\n this.setAttribute(\"stroke\", \"none\");\n // iteratively render each channel value\n const lines = format.call(mark, i, index, sources, scales, values);\n if (typeof lines === \"string\") {\n for (const line of mark.splitLines(lines)) {\n renderLine(that, {value: mark.clipLine(line)});\n }\n } else {\n const labels = new Set();\n for (const line of lines) {\n const {label = \"\"} = line;\n if (label && labels.has(label)) continue;\n else labels.add(label);\n renderLine(that, line);\n }\n }\n })\n )\n );\n\n // Renders a single line (a name-value pair) to the tip, truncating the text\n // as needed, and adding a title if the text is truncated. Note that this is\n // just the initial layout of the text; in postrender we will compute the\n // exact text metrics and translate the text as needed once we know the\n // tip’s orientation (anchor).\n function renderLine(selection, {label, value, color, opacity}) {\n (label ??= \"\"), (value ??= \"\");\n const swatch = color != null || opacity != null;\n let title;\n let w = lineWidth * 100;\n const [j] = cut(label, w, widthof, ee);\n if (j >= 0) {\n // label is truncated\n label = label.slice(0, j).trimEnd() + ellipsis;\n title = value.trim();\n value = \"\";\n } else {\n if (label || (!value && !swatch)) value = \" \" + value;\n const [k] = cut(value, w - widthof(label), widthof, ee);\n if (k >= 0) {\n // value is truncated\n value = value.slice(0, k).trimEnd() + ellipsis;\n title = value.trim();\n }\n }\n const line = selection.append(\"tspan\").attr(\"x\", 0).attr(\"dy\", `${lineHeight}em`).text(\"\\u200b\"); // zwsp for double-click\n if (label) line.append(\"tspan\").attr(\"font-weight\", \"bold\").text(label);\n if (value) line.append(() => document.createTextNode(value));\n if (swatch) line.append(\"tspan\").text(\" ■\").attr(\"fill\", color).attr(\"fill-opacity\", opacity).style(\"user-select\", \"none\"); // prettier-ignore\n if (title) line.append(\"title\").text(title);\n }\n\n // Only after the plot is attached to the page can we compute the exact text\n // metrics needed to determine the tip size and orientation (anchor).\n function postrender() {\n const {width, height} = dimensions.facet ?? dimensions;\n g.selectChildren().each(function (i) {\n let {x: tx, width: w, height: h} = this.getBBox();\n (w = Math.round(w)), (h = Math.round(h)); // crisp edges\n let a = anchor; // use the specified anchor, if any\n if (a === undefined) {\n a = mark.previousAnchor; // favor the previous anchor, if it fits\n const x = px(i) + ox;\n const y = py(i) + oy;\n const fitLeft = x + w + r * 2 < width;\n const fitRight = x - w - r * 2 > 0;\n const fitTop = y + h + m + r * 2 + 7 < height;\n const fitBottom = y - h - m - r * 2 > 0;\n const ax = (/-left$/.test(a) ? fitLeft || !fitRight : fitLeft && !fitRight) ? \"left\" : \"right\";\n const ay = (/^top-/.test(a) ? fitTop || !fitBottom : fitTop && !fitBottom) ? \"top\" : \"bottom\";\n a = mark.previousAnchor = `${ay}-${ax}`;\n }\n const path = this.firstChild; // note: assumes exactly two children!\n const text = this.lastChild; // note: assumes exactly two children!\n path.setAttribute(\"d\", getPath(a, m, r, w, h));\n if (tx) for (const t of text.childNodes) t.setAttribute(\"x\", -tx);\n text.setAttribute(\"y\", `${+getLineOffset(a, text.childNodes.length, lineHeight).toFixed(6)}em`);\n text.setAttribute(\"transform\", `translate(${getTextTranslate(a, m, r, w, h)})`);\n });\n g.attr(\"visibility\", null);\n }\n\n // Wait until the plot is inserted into the page so that we can use getBBox\n // to compute the exact text dimensions. If the SVG is already connected, as\n // when the pointer interaction triggers the re-render, use a faster\n // microtask instead of an animation frame; if this SSR (e.g., JSDOM), skip\n // this step. Perhaps this could be done synchronously; getting the\n // dimensions of the SVG is easy, and although accurate text metrics are\n // hard, we could use approximate heuristics.\n if (index.length) {\n g.attr(\"visibility\", \"hidden\"); // hide until postrender\n if (svg.isConnected) Promise.resolve().then(postrender);\n else if (typeof requestAnimationFrame !== \"undefined\") requestAnimationFrame(postrender);\n }\n\n return g.node();\n }\n}\n\nexport function tip(data, {x, y, ...options} = {}) {\n if (options.frameAnchor === undefined) [x, y] = maybeTuple(x, y);\n return new Tip(data, {...options, x, y});\n}\n\nfunction getLineOffset(anchor, length, lineHeight) {\n return /^top(?:-|$)/.test(anchor)\n ? 0.94 - lineHeight\n : /^bottom(?:-|$)/\n ? -0.29 - length * lineHeight\n : (length / 2) * lineHeight;\n}\n\nfunction getTextTranslate(anchor, m, r, width, height) {\n switch (anchor) {\n case \"middle\":\n return [-width / 2, height / 2];\n case \"top-left\":\n return [r, m + r];\n case \"top\":\n return [-width / 2, m / 2 + r];\n case \"top-right\":\n return [-width - r, m + r];\n case \"right\":\n return [-m / 2 - width - r, height / 2];\n case \"bottom-left\":\n return [r, -m - r];\n case \"bottom\":\n return [-width / 2, -m / 2 - r];\n case \"bottom-right\":\n return [-width - r, -m - r];\n case \"left\":\n return [r + m / 2, height / 2];\n }\n}\n\nfunction getPath(anchor, m, r, width, height) {\n const w = width + r * 2;\n const h = height + r * 2;\n switch (anchor) {\n case \"middle\":\n return `M${-w / 2},${-h / 2}h${w}v${h}h${-w}z`;\n case \"top-left\":\n return `M0,0l${m},${m}h${w - m}v${h}h${-w}z`;\n case \"top\":\n return `M0,0l${m / 2},${m / 2}h${(w - m) / 2}v${h}h${-w}v${-h}h${(w - m) / 2}z`;\n case \"top-right\":\n return `M0,0l${-m},${m}h${m - w}v${h}h${w}z`;\n case \"right\":\n return `M0,0l${-m / 2},${-m / 2}v${m / 2 - h / 2}h${-w}v${h}h${w}v${m / 2 - h / 2}z`;\n case \"bottom-left\":\n return `M0,0l${m},${-m}h${w - m}v${-h}h${-w}z`;\n case \"bottom\":\n return `M0,0l${m / 2},${-m / 2}h${(w - m) / 2}v${-h}h${-w}v${h}h${(w - m) / 2}z`;\n case \"bottom-right\":\n return `M0,0l${-m},${-m}h${m - w}v${-h}h${w}z`;\n case \"left\":\n return `M0,0l${m / 2},${-m / 2}v${m / 2 - h / 2}h${w}v${h}h${-w}v${m / 2 - h / 2}z`;\n }\n}\n\n// Note: mutates this.format!\nfunction getSourceChannels({channels}, scales) {\n const sources = {};\n\n // Promote x and y shorthand for paired channels (in order).\n let format = this.format;\n format = maybeExpandPairedFormat(format, channels, \"x\");\n format = maybeExpandPairedFormat(format, channels, \"y\");\n this.format = format;\n\n // Prioritize channels with explicit formats, in the given order.\n for (const key in format) {\n const value = format[key];\n if (value === null || value === false) {\n continue;\n } else if (key === \"fx\" || key === \"fy\") {\n sources[key] = true;\n } else {\n const source = getSource(channels, key);\n if (source) sources[key] = source;\n }\n }\n\n // Then fallback to all other (non-ignored) channels.\n for (const key in channels) {\n if (key in sources || key in format || ignoreChannels.has(key)) continue;\n const source = getSource(channels, key);\n if (source) sources[key] = source;\n }\n\n // And lastly facet channels, but only if this mark is faceted.\n if (this.facet) {\n if (scales.fx && !(\"fx\" in format)) sources.fx = true;\n if (scales.fy && !(\"fy\" in format)) sources.fy = true;\n }\n\n // Promote shorthand string formats, and materialize default formats.\n for (const key in sources) {\n const format = this.format[key];\n if (typeof format === \"string\") {\n const value = sources[key]?.value ?? scales[key]?.domain() ?? [];\n this.format[key] = (isTemporal(value) ? utcFormat : numberFormat)(format);\n } else if (format === undefined || format === true) {\n // For ordinal scales, the inferred tick format can be more concise, such\n // as only showing the year for yearly data.\n const scale = scales[key];\n this.format[key] = scale?.bandwidth ? inferTickFormat(scale, scale.domain()) : formatDefault;\n }\n }\n\n return sources;\n}\n\n// Promote x and y shorthand for paired channels, while preserving order.\nfunction maybeExpandPairedFormat(format, channels, key) {\n if (!(key in format)) return format;\n const key1 = `${key}1`;\n const key2 = `${key}2`;\n if ((key1 in format || !(key1 in channels)) && (key2 in format || !(key2 in channels))) return format;\n const entries = Object.entries(format);\n const value = format[key];\n entries.splice(entries.findIndex(([name]) => name === key) + 1, 0, [key1, value], [key2, value]);\n return Object.fromEntries(entries);\n}\n\nfunction formatTitle(i, index, {title}) {\n return formatDefault(title.value[i], i);\n}\n\nfunction* formatChannels(i, index, channels, scales, values) {\n for (const key in channels) {\n if (key === \"fx\" || key === \"fy\") {\n yield {\n label: formatLabel(scales, channels, key),\n value: this.format[key](index[key], i)\n };\n continue;\n }\n if (key === \"x1\" && \"x2\" in channels) continue;\n if (key === \"y1\" && \"y2\" in channels) continue;\n const channel = channels[key];\n if (key === \"x2\" && \"x1\" in channels) {\n yield {\n label: formatPairLabel(scales, channels, \"x\"),\n value: formatPair(this.format.x2, channels.x1, channel, i)\n };\n } else if (key === \"y2\" && \"y1\" in channels) {\n yield {\n label: formatPairLabel(scales, channels, \"y\"),\n value: formatPair(this.format.y2, channels.y1, channel, i)\n };\n } else {\n const value = channel.value[i];\n const scale = channel.scale;\n if (!defined(value) && scale == null) continue;\n yield {\n label: formatLabel(scales, channels, key),\n value: this.format[key](value, i),\n color: scale === \"color\" ? values[key][i] : null,\n opacity: scale === \"opacity\" ? values[key][i] : null\n };\n }\n }\n}\n\nfunction formatPair(formatValue, c1, c2, i) {\n return c2.hint?.length // e.g., stackY’s y1 and y2\n ? `${formatValue(c2.value[i] - c1.value[i], i)}`\n : `${formatValue(c1.value[i], i)}–${formatValue(c2.value[i], i)}`;\n}\n\nfunction formatPairLabel(scales, channels, key) {\n const l1 = formatLabel(scales, channels, `${key}1`, key);\n const l2 = formatLabel(scales, channels, `${key}2`, key);\n return l1 === l2 ? l1 : `${l1}–${l2}`;\n}\n\nfunction formatLabel(scales, channels, key, defaultLabel = key) {\n const channel = channels[key];\n const scale = scales[channel?.scale ?? key];\n return String(scale?.label ?? channel?.label ?? defaultLabel);\n}\n","import {creator, select} from \"d3\";\nimport {createChannel, inferChannelScale} from \"./channel.js\";\nimport {createContext} from \"./context.js\";\nimport {createDimensions} from \"./dimensions.js\";\nimport {createFacets, recreateFacets, facetExclude, facetGroups, facetTranslator, facetFilter} from \"./facet.js\";\nimport {pointer, pointerX, pointerY} from \"./interactions/pointer.js\";\nimport {createLegends, exposeLegends} from \"./legends.js\";\nimport {Mark} from \"./mark.js\";\nimport {axisFx, axisFy, axisX, axisY, gridFx, gridFy, gridX, gridY} from \"./marks/axis.js\";\nimport {frame} from \"./marks/frame.js\";\nimport {tip} from \"./marks/tip.js\";\nimport {isColor, isIterable, isNone, isScaleOptions} from \"./options.js\";\nimport {arrayify, map, yes, maybeIntervalTransform, subarray} from \"./options.js\";\nimport {createProjection, getGeometryChannels, hasProjection} from \"./projection.js\";\nimport {createScales, createScaleFunctions, autoScaleRange, exposeScales} from \"./scales.js\";\nimport {innerDimensions, outerDimensions} from \"./scales.js\";\nimport {isPosition, registry as scaleRegistry} from \"./scales/index.js\";\nimport {applyInlineStyles, maybeClassName} from \"./style.js\";\nimport {initializer} from \"./transforms/basic.js\";\nimport {consumeWarnings, warn} from \"./warnings.js\";\n\nexport function plot(options = {}) {\n const {facet, style, title, subtitle, caption, ariaLabel, ariaDescription} = options;\n\n // className for inline styles\n const className = maybeClassName(options.className);\n\n // Flatten any nested marks.\n const marks = options.marks === undefined ? [] : flatMarks(options.marks);\n\n // Add implicit tips.\n marks.push(...inferTips(marks));\n\n // Compute the top-level facet state. This has roughly the same structure as\n // mark-specific facet state, except there isn’t a facetsIndex, and there’s a\n // data and dataLength so we can warn the user if a different data of the same\n // length is used in a mark.\n const topFacetState = maybeTopFacet(facet, options);\n\n // Construct a map from (faceted) Mark instance to facet state, including:\n // channels - an {fx?, fy?} object to add to the fx and fy scale\n // groups - a possibly-nested map from facet values to indexes in the data array\n // facetsIndex - a sparse nested array of indices corresponding to the valid facets\n const facetStateByMark = new Map();\n for (const mark of marks) {\n const facetState = maybeMarkFacet(mark, topFacetState, options);\n if (facetState) facetStateByMark.set(mark, facetState);\n }\n\n // Compute a Map from scale name to an array of associated channels.\n const channelsByScale = new Map();\n if (topFacetState) addScaleChannels(channelsByScale, [topFacetState], options);\n addScaleChannels(channelsByScale, facetStateByMark, options);\n\n // Add implicit axis marks. Because this happens after faceting (because it\n // depends on whether faceting is present), we must initialize the facet state\n // of any implicit axes, too.\n const axes = flatMarks(inferAxes(marks, channelsByScale, options));\n for (const mark of axes) {\n const facetState = maybeMarkFacet(mark, topFacetState, options);\n if (facetState) facetStateByMark.set(mark, facetState);\n }\n marks.unshift(...axes);\n\n // All the possible facets are given by the domains of the fx or fy scales, or\n // the cross-product of these domains if we facet by both x and y. We sort\n // them in order to apply the facet filters afterwards.\n let facets = createFacets(channelsByScale, options);\n\n if (facets !== undefined) {\n const topFacetsIndex = topFacetState ? facetFilter(facets, topFacetState) : undefined;\n\n // Compute a facet index for each mark, parallel to the facets array. For\n // mark-level facets, compute an index for that mark’s data and options.\n // Otherwise, use the top-level facet index.\n for (const mark of marks) {\n if (mark.facet === null || mark.facet === \"super\") continue;\n const facetState = facetStateByMark.get(mark);\n if (facetState === undefined) continue;\n facetState.facetsIndex = mark.fx != null || mark.fy != null ? facetFilter(facets, facetState) : topFacetsIndex;\n }\n\n // The cross product of the domains of fx and fy can include fx-fy\n // combinations for which no mark has an instance associated with that\n // combination, and therefore we don’t want to render this facet (not even\n // the frame). The same can occur if you specify the domain of fx and fy\n // explicitly, but there is no mark instance associated with some values in\n // the domain. Expunge empty facets, and clear the corresponding elements\n // from the nested index in each mark.\n const nonEmpty = new Set();\n for (const {facetsIndex} of facetStateByMark.values()) {\n facetsIndex?.forEach((index, i) => {\n if (index?.length > 0) {\n nonEmpty.add(i);\n }\n });\n }\n\n // If all the facets are empty (as when none of the marks are actually\n // faceted), none of them are empty.\n facets.forEach(\n 0 < nonEmpty.size && nonEmpty.size < facets.length\n ? (f, i) => (f.empty = !nonEmpty.has(i))\n : (f) => (f.empty = false)\n );\n\n // For any mark using the “exclude” facet mode, invert the index.\n for (const mark of marks) {\n if (mark.facet === \"exclude\") {\n const facetState = facetStateByMark.get(mark);\n if (facetState !== undefined) facetState.facetsIndex = facetExclude(facetState.facetsIndex);\n }\n }\n }\n\n // If a scale is explicitly declared in options, initialize its associated\n // channels to the empty array; this will guarantee that a corresponding scale\n // will be created later (even if there are no other channels). Ignore facet\n // scale declarations, which are handled above.\n for (const key of scaleRegistry.keys()) {\n if (isScaleOptions(options[key]) && key !== \"fx\" && key !== \"fy\") {\n channelsByScale.set(key, []);\n }\n }\n\n // A Map from Mark instance to its render state, including:\n // index - the data index e.g. [0, 1, 2, 3, …]\n // channels - an array of materialized channels e.g. [[\"x\", {value}], …]\n // faceted - a boolean indicating whether this mark is faceted\n // values - an object of scaled values e.g. {x: [40, 32, …], …}\n const stateByMark = new Map();\n\n // Initialize the marks’ state.\n for (const mark of marks) {\n if (stateByMark.has(mark)) throw new Error(\"duplicate mark; each mark must be unique\");\n const {facetsIndex, channels: facetChannels} = facetStateByMark.get(mark) ?? {};\n const {data, facets, channels} = mark.initialize(facetsIndex, facetChannels, options);\n applyScaleTransforms(channels, options);\n stateByMark.set(mark, {data, facets, channels});\n }\n\n // Initalize the scales and dimensions.\n const scaleDescriptors = createScales(addScaleChannels(channelsByScale, stateByMark, options), options);\n const dimensions = createDimensions(scaleDescriptors, marks, options);\n\n autoScaleRange(scaleDescriptors, dimensions);\n\n const scales = createScaleFunctions(scaleDescriptors);\n const {fx, fy} = scales;\n const subdimensions = fx || fy ? innerDimensions(scaleDescriptors, dimensions) : dimensions;\n const superdimensions = fx || fy ? actualDimensions(scales, dimensions) : dimensions;\n\n // Initialize the context.\n const context = createContext(options);\n const document = context.document;\n const svg = creator(\"svg\").call(document.documentElement);\n let figure = svg; // replaced with the figure element, if any\n context.ownerSVGElement = svg;\n context.className = className;\n context.projection = createProjection(options, subdimensions);\n\n // Allows e.g. the axis mark to determine faceting lazily.\n context.filterFacets = (data, channels) => {\n return facetFilter(facets, {channels, groups: facetGroups(data, channels)});\n };\n\n // Allows e.g. the tip mark to reference channels and data on other marks.\n context.getMarkState = (mark) => {\n const state = stateByMark.get(mark);\n const facetState = facetStateByMark.get(mark);\n return {...state, channels: {...state.channels, ...facetState?.channels}};\n };\n\n // Allows e.g. the pointer transform to support viewof.\n context.dispatchValue = (value) => {\n if (figure.value === value) return;\n figure.value = value;\n figure.dispatchEvent(new Event(\"input\", {bubbles: true}));\n };\n\n // Reinitialize; for deriving channels dependent on other channels.\n const newByScale = new Set();\n for (const [mark, state] of stateByMark) {\n if (mark.initializer != null) {\n const dimensions = mark.facet === \"super\" ? superdimensions : subdimensions;\n const update = mark.initializer(state.data, state.facets, state.channels, scales, dimensions, context);\n if (update.data !== undefined) {\n state.data = update.data;\n }\n if (update.facets !== undefined) {\n state.facets = update.facets;\n }\n if (update.channels !== undefined) {\n const {fx, fy, ...channels} = update.channels; // separate facet channels\n inferChannelScales(channels);\n Object.assign(state.channels, channels);\n for (const channel of Object.values(channels)) {\n const {scale} = channel;\n // Initializers aren’t allowed to redefine position scales as this\n // would introduce a circular dependency; so simply scale these\n // channels as-is rather than creating new scales, and assume that\n // they already have the scale’s transform applied, if any (e.g., when\n // generating ticks for the axis mark).\n if (scale != null && !isPosition(scaleRegistry.get(scale))) {\n applyScaleTransform(channel, options);\n newByScale.add(scale);\n }\n }\n // If the initializer returns new mark-level facet channels, we must\n // record that the mark is now faceted. Note: we aren’t actually\n // populating the facet state, but subsequently we won’t need it.\n if (fx != null || fy != null) facetStateByMark.set(mark, true);\n }\n }\n }\n\n // Reconstruct scales if new scaled channels were created during\n // reinitialization. Preserve existing scale labels, if any.\n if (newByScale.size) {\n const newChannelsByScale = new Map();\n addScaleChannels(newChannelsByScale, stateByMark, options, (key) => newByScale.has(key));\n addScaleChannels(channelsByScale, stateByMark, options, (key) => newByScale.has(key));\n const newScaleDescriptors = inheritScaleLabels(createScales(newChannelsByScale, options), scaleDescriptors);\n const {scales: newExposedScales, ...newScales} = createScaleFunctions(newScaleDescriptors);\n Object.assign(scaleDescriptors, newScaleDescriptors);\n Object.assign(scales, newScales);\n Object.assign(scales.scales, newExposedScales);\n }\n\n // Sort and filter the facets to match the fx and fy domains; this is needed\n // because the facets were constructed prior to the fx and fy scales.\n let facetDomains, facetTranslate;\n if (facets !== undefined) {\n facetDomains = {x: fx?.domain(), y: fy?.domain()};\n facets = recreateFacets(facets, facetDomains);\n facetTranslate = facetTranslator(fx, fy, dimensions);\n }\n\n // Compute value objects, applying scales and projection as needed.\n for (const [mark, state] of stateByMark) {\n state.values = mark.scale(state.channels, scales, context);\n }\n\n const {width, height} = dimensions;\n\n select(svg)\n .attr(\"class\", className)\n .attr(\"fill\", \"currentColor\")\n .attr(\"font-family\", \"system-ui, sans-serif\")\n .attr(\"font-size\", 10)\n .attr(\"text-anchor\", \"middle\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"viewBox\", `0 0 ${width} ${height}`)\n .attr(\"aria-label\", ariaLabel)\n .attr(\"aria-description\", ariaDescription)\n .call((svg) =>\n // Warning: if you edit this, change defaultClassName.\n svg.append(\"style\").text(\n `.${className} {\n display: block;\n background: white;\n height: auto;\n height: intrinsic;\n max-width: 100%;\n}\n.${className} text,\n.${className} tspan {\n white-space: pre;\n}`\n )\n )\n .call(applyInlineStyles, style);\n\n // Render marks.\n for (const mark of marks) {\n const {channels, values, facets: indexes} = stateByMark.get(mark);\n\n // Render a non-faceted mark.\n if (facets === undefined || mark.facet === \"super\") {\n let index = null;\n if (indexes) {\n index = indexes[0];\n index = mark.filter(index, channels, values);\n if (index.length === 0) continue;\n }\n const node = mark.render(index, scales, values, superdimensions, context);\n if (node == null) continue;\n svg.appendChild(node);\n }\n\n // Render a faceted mark.\n else {\n let g;\n for (const f of facets) {\n if (!(mark.facetAnchor?.(facets, facetDomains, f) ?? !f.empty)) continue;\n let index = null;\n if (indexes) {\n const faceted = facetStateByMark.has(mark);\n index = indexes[faceted ? f.i : 0];\n index = mark.filter(index, channels, values);\n if (index.length === 0) continue;\n if (!faceted && index === indexes[0]) index = subarray(index); // copy before assigning fx, fy, fi\n (index.fx = f.x), (index.fy = f.y), (index.fi = f.i);\n }\n const node = mark.render(index, scales, values, subdimensions, context);\n if (node == null) continue;\n // Lazily construct the shared group (to drop empty marks).\n (g ??= select(svg).append(\"g\")).append(() => node).datum(f);\n // Promote ARIA attributes and mark transform to avoid repetition on\n // each facet; this assumes that these attributes are consistent across\n // facets, but that should be the case!\n for (const name of [\"aria-label\", \"aria-description\", \"aria-hidden\", \"transform\"]) {\n if (node.hasAttribute(name)) {\n g.attr(name, node.getAttribute(name));\n node.removeAttribute(name);\n }\n }\n }\n g?.selectChildren().attr(\"transform\", facetTranslate);\n }\n }\n\n // Wrap the plot in a figure, if needed.\n const legends = createLegends(scaleDescriptors, context, options);\n const {figure: figured = title != null || subtitle != null || caption != null || legends.length > 0} = options;\n if (figured) {\n figure = document.createElement(\"figure\");\n figure.className = `${className}-figure`;\n figure.style.maxWidth = \"initial\"; // avoid Observable default style\n if (title != null) figure.append(createTitleElement(document, title, \"h2\"));\n if (subtitle != null) figure.append(createTitleElement(document, subtitle, \"h3\"));\n figure.append(...legends, svg);\n if (caption != null) figure.append(createFigcaption(document, caption));\n }\n\n figure.scale = exposeScales(scales.scales);\n figure.legend = exposeLegends(scaleDescriptors, context, options);\n\n const w = consumeWarnings();\n if (w > 0) {\n select(svg)\n .append(\"text\")\n .attr(\"x\", width)\n .attr(\"y\", 20)\n .attr(\"dy\", \"-1em\")\n .attr(\"text-anchor\", \"end\")\n .attr(\"font-family\", \"initial\") // fix emoji rendering in Chrome\n .text(\"\\u26a0\\ufe0f\") // emoji variation selector\n .append(\"title\")\n .text(`${w.toLocaleString(\"en-US\")} warning${w === 1 ? \"\" : \"s\"}. Please check the console.`);\n }\n\n return figure;\n}\n\nfunction createTitleElement(document, contents, tag) {\n if (contents.ownerDocument) return contents;\n const e = document.createElement(tag);\n e.append(contents);\n return e;\n}\n\nfunction createFigcaption(document, caption) {\n const e = document.createElement(\"figcaption\");\n e.append(caption);\n return e;\n}\n\nfunction plotThis({marks = [], ...options} = {}) {\n return plot({...options, marks: [...marks, this]});\n}\n\n// Note: This side-effect avoids a circular dependency.\nMark.prototype.plot = plotThis;\n\nfunction flatMarks(marks) {\n return marks\n .flat(Infinity)\n .filter((mark) => mark != null)\n .map(markify);\n}\n\nfunction markify(mark) {\n return typeof mark.render === \"function\" ? mark : new Render(mark);\n}\n\nclass Render extends Mark {\n constructor(render) {\n if (typeof render !== \"function\") throw new TypeError(\"invalid mark; missing render function\");\n super();\n this.render = render;\n }\n render() {}\n}\n\n// Note: mutates channel.value to apply the scale transform, if any.\nfunction applyScaleTransforms(channels, options) {\n for (const name in channels) applyScaleTransform(channels[name], options);\n return channels;\n}\n\n// Note: mutates channel.value to apply the scale transform, if any. Also sets\n// channel.transform to false to prevent duplicate transform application.\nfunction applyScaleTransform(channel, options) {\n const {scale, transform: t = true} = channel;\n if (scale == null || !t) return;\n const {\n type,\n percent,\n interval,\n transform = percent ? (x) => x * 100 : maybeIntervalTransform(interval, type)\n } = options[scale] ?? {};\n if (transform == null) return;\n channel.value = map(channel.value, transform);\n channel.transform = false;\n}\n\n// An initializer may generate channels without knowing how the downstream mark\n// will use them. Marks are typically responsible associated scales with\n// channels, but here we assume common behavior across marks.\nfunction inferChannelScales(channels) {\n for (const name in channels) {\n inferChannelScale(name, channels[name]);\n }\n}\n\nfunction addScaleChannels(channelsByScale, stateByMark, options, filter = yes) {\n for (const {channels} of stateByMark.values()) {\n for (const name in channels) {\n const channel = channels[name];\n const {scale} = channel;\n if (scale != null && filter(scale)) {\n // Geo marks affect the default x and y domains if there is no\n // projection. Skip this (as an optimization) when a projection is\n // specified, or when the domains for x and y are specified.\n if (scale === \"projection\") {\n if (!hasProjection(options)) {\n const gx = options.x?.domain === undefined;\n const gy = options.y?.domain === undefined;\n if (gx || gy) {\n const [x, y] = getGeometryChannels(channel);\n if (gx) addScaleChannel(channelsByScale, \"x\", x);\n if (gy) addScaleChannel(channelsByScale, \"y\", y);\n }\n }\n } else {\n addScaleChannel(channelsByScale, scale, channel);\n }\n }\n }\n }\n return channelsByScale;\n}\n\nfunction addScaleChannel(channelsByScale, scale, channel) {\n const scaleChannels = channelsByScale.get(scale);\n if (scaleChannels !== undefined) scaleChannels.push(channel);\n else channelsByScale.set(scale, [channel]);\n}\n\n// Returns the facet groups, and possibly fx and fy channels, associated with\n// the top-level facet option {data, x, y}.\nfunction maybeTopFacet(facet, options) {\n if (facet == null) return;\n const {x, y} = facet;\n if (x == null && y == null) return;\n const data = arrayify(facet.data);\n if (data == null) throw new Error(\"missing facet data\");\n const channels = {};\n if (x != null) channels.fx = createChannel(data, {value: x, scale: \"fx\"});\n if (y != null) channels.fy = createChannel(data, {value: y, scale: \"fy\"});\n applyScaleTransforms(channels, options);\n const groups = facetGroups(data, channels);\n return {channels, groups, data: facet.data};\n}\n\n// Returns the facet groups, and possibly fx and fy channels, associated with a\n// mark, either through top-level faceting or mark-level facet options {fx, fy}.\nfunction maybeMarkFacet(mark, topFacetState, options) {\n if (mark.facet === null || mark.facet === \"super\") return;\n\n // This mark defines a mark-level facet. TODO There’s some code duplication\n // here with maybeTopFacet that we could reduce.\n const {fx, fy} = mark;\n if (fx != null || fy != null) {\n const data = arrayify(mark.data ?? fx ?? fy);\n if (data === undefined) throw new Error(`missing facet data in ${mark.ariaLabel}`);\n if (data === null) return; // ignore channel definitions if no data is provided TODO this right?\n const channels = {};\n if (fx != null) channels.fx = createChannel(data, {value: fx, scale: \"fx\"});\n if (fy != null) channels.fy = createChannel(data, {value: fy, scale: \"fy\"});\n applyScaleTransforms(channels, options);\n return {channels, groups: facetGroups(data, channels)};\n }\n\n // This mark links to a top-level facet, if present.\n if (topFacetState === undefined) return;\n\n // TODO Can we link the top-level facet channels here?\n const {channels, groups, data} = topFacetState;\n if (mark.facet !== \"auto\" || mark.data === data) return {channels, groups};\n\n // Warn for the common pitfall of wanting to facet mapped data with the\n // top-level facet option.\n if (\n data.length > 0 &&\n (groups.size > 1 || (groups.size === 1 && channels.fx && channels.fy && [...groups][0][1].size > 1)) &&\n arrayify(mark.data)?.length === data.length\n ) {\n warn(\n `Warning: the ${mark.ariaLabel} mark appears to use faceted data, but isn’t faceted. The mark data has the same length as the facet data and the mark facet option is \"auto\", but the mark data and facet data are distinct. If this mark should be faceted, set the mark facet option to true; otherwise, suppress this warning by setting the mark facet option to false.`\n );\n }\n}\n\nfunction derive(mark, options = {}) {\n return initializer({...options, x: null, y: null}, (data, facets, channels, scales, dimensions, context) => {\n return context.getMarkState(mark);\n });\n}\n\nfunction inferTips(marks) {\n const tips = [];\n for (const mark of marks) {\n let tipOptions = mark.tip;\n if (tipOptions) {\n if (tipOptions === true) tipOptions = {};\n else if (typeof tipOptions === \"string\") tipOptions = {pointer: tipOptions};\n let {pointer: p} = tipOptions;\n p = /^x$/i.test(p) ? pointerX : /^y$/i.test(p) ? pointerY : pointer; // TODO validate?\n tipOptions = p(derive(mark, tipOptions));\n tipOptions.title = null; // prevent implicit title for primitive data\n const t = tip(mark.data, tipOptions);\n t.facet = mark.facet; // inherit facet settings\n t.facetAnchor = mark.facetAnchor; // inherit facet settings\n tips.push(t);\n }\n }\n return tips;\n}\n\nfunction inferAxes(marks, channelsByScale, options) {\n let {\n projection,\n x = {},\n y = {},\n fx = {},\n fy = {},\n axis,\n grid,\n facet = {},\n facet: {axis: facetAxis = axis, grid: facetGrid} = facet,\n x: {axis: xAxis = axis, grid: xGrid = xAxis === null ? null : grid} = x,\n y: {axis: yAxis = axis, grid: yGrid = yAxis === null ? null : grid} = y,\n fx: {axis: fxAxis = facetAxis, grid: fxGrid = fxAxis === null ? null : facetGrid} = fx,\n fy: {axis: fyAxis = facetAxis, grid: fyGrid = fyAxis === null ? null : facetGrid} = fy\n } = options;\n\n // Disable axes if the corresponding scale is not present.\n if (projection || (!isScaleOptions(x) && !hasPositionChannel(\"x\", marks))) xAxis = xGrid = null;\n if (projection || (!isScaleOptions(y) && !hasPositionChannel(\"y\", marks))) yAxis = yGrid = null;\n if (!channelsByScale.has(\"fx\")) fxAxis = fxGrid = null;\n if (!channelsByScale.has(\"fy\")) fyAxis = fyGrid = null;\n\n // Resolve the default implicit axes by checking for explicit ones.\n if (xAxis === undefined) xAxis = !hasAxis(marks, \"x\");\n if (yAxis === undefined) yAxis = !hasAxis(marks, \"y\");\n if (fxAxis === undefined) fxAxis = !hasAxis(marks, \"fx\");\n if (fyAxis === undefined) fyAxis = !hasAxis(marks, \"fy\");\n\n // Resolve the default orientation of axes.\n if (xAxis === true) xAxis = \"bottom\";\n if (yAxis === true) yAxis = \"left\";\n if (fxAxis === true) fxAxis = xAxis === \"top\" || xAxis === null ? \"bottom\" : \"top\";\n if (fyAxis === true) fyAxis = yAxis === \"right\" || yAxis === null ? \"left\" : \"right\";\n\n const axes = [];\n maybeGrid(axes, fyGrid, gridFy, fy);\n maybeAxis(axes, fyAxis, axisFy, \"right\", \"left\", facet, fy);\n maybeGrid(axes, fxGrid, gridFx, fx);\n maybeAxis(axes, fxAxis, axisFx, \"top\", \"bottom\", facet, fx);\n maybeGrid(axes, yGrid, gridY, y);\n maybeAxis(axes, yAxis, axisY, \"left\", \"right\", options, y);\n maybeGrid(axes, xGrid, gridX, x);\n maybeAxis(axes, xAxis, axisX, \"bottom\", \"top\", options, x);\n return axes;\n}\n\nfunction maybeAxis(axes, axis, axisType, primary, secondary, defaults, options) {\n if (!axis) return;\n const both = isBoth(axis);\n options = axisOptions(both ? primary : axis, defaults, options);\n const {line} = options;\n if ((axisType === axisY || axisType === axisX) && line && !isNone(line)) axes.push(frame(lineOptions(options)));\n axes.push(axisType(options));\n if (both) axes.push(axisType({...options, anchor: secondary, label: null}));\n}\n\nfunction maybeGrid(axes, grid, gridType, options) {\n if (!grid || isNone(grid)) return;\n axes.push(gridType(gridOptions(grid, options)));\n}\n\nfunction isBoth(value) {\n return /^\\s*both\\s*$/i.test(value);\n}\n\nfunction axisOptions(\n anchor,\n defaults,\n {\n line = defaults.line,\n ticks,\n tickSize,\n tickSpacing,\n tickPadding,\n tickFormat,\n tickRotate,\n fontVariant,\n ariaLabel,\n ariaDescription,\n label = defaults.label,\n labelAnchor,\n labelArrow = defaults.labelArrow,\n labelOffset\n }\n) {\n return {\n anchor,\n line,\n ticks,\n tickSize,\n tickSpacing,\n tickPadding,\n tickFormat,\n tickRotate,\n fontVariant,\n ariaLabel,\n ariaDescription,\n label,\n labelAnchor,\n labelArrow,\n labelOffset\n };\n}\n\nfunction lineOptions(options) {\n const {anchor, line} = options;\n return {anchor, facetAnchor: anchor + \"-empty\", stroke: line === true ? undefined : line};\n}\n\nfunction gridOptions(\n grid,\n {\n stroke = isColor(grid) ? grid : undefined,\n ticks = isGridTicks(grid) ? grid : undefined,\n tickSpacing,\n ariaLabel,\n ariaDescription\n }\n) {\n return {\n stroke,\n ticks,\n tickSpacing,\n ariaLabel,\n ariaDescription\n };\n}\n\nfunction isGridTicks(grid) {\n switch (typeof grid) {\n case \"number\":\n return true;\n case \"string\":\n return !isColor(grid);\n }\n return isIterable(grid) || typeof grid?.range === \"function\";\n}\n\n// Is there an explicit axis already present? TODO We probably want a more\n// explicit test than looking for the ARIA label, but it does afford some\n// flexibility in axis implementation which is nice.\nfunction hasAxis(marks, k) {\n const prefix = `${k}-axis `;\n return marks.some((m) => m.ariaLabel?.startsWith(prefix));\n}\n\nfunction hasPositionChannel(k, marks) {\n for (const mark of marks) {\n for (const key in mark.channels) {\n const {scale} = mark.channels[key];\n if (scale === k || scale === \"projection\") {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction inheritScaleLabels(newScales, scales) {\n for (const key in newScales) {\n const newScale = newScales[key];\n const scale = scales[key];\n if (newScale.label === undefined && scale) {\n newScale.label = scale.label;\n }\n }\n return newScales;\n}\n\n// This differs from the other outerDimensions in that it accounts for rounding\n// and outer padding in the facet scales; we want the frame to align exactly\n// with the actual range, not the desired range.\nfunction actualDimensions({fx, fy}, dimensions) {\n const {marginTop, marginRight, marginBottom, marginLeft, width, height} = outerDimensions(dimensions);\n const fxr = fx && outerRange(fx);\n const fyr = fy && outerRange(fy);\n return {\n marginTop: fy ? fyr[0] : marginTop,\n marginRight: fx ? width - fxr[1] : marginRight,\n marginBottom: fy ? height - fyr[1] : marginBottom,\n marginLeft: fx ? fxr[0] : marginLeft,\n // Some marks, namely the x- and y-axis labels, want to know what the\n // desired (rather than actual) margins are for positioning.\n inset: {\n marginTop: dimensions.marginTop,\n marginRight: dimensions.marginRight,\n marginBottom: dimensions.marginBottom,\n marginLeft: dimensions.marginLeft\n },\n width,\n height\n };\n}\n\nfunction outerRange(scale) {\n const domain = scale.domain();\n let x1 = scale(domain[0]);\n let x2 = scale(domain[domain.length - 1]);\n if (x2 < x1) [x1, x2] = [x2, x1];\n return [x1, x2 + scale.bandwidth()];\n}\n","import {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveBundle,\n curveBumpX,\n curveBumpY,\n curveCardinal,\n curveCardinalClosed,\n curveCardinalOpen,\n curveCatmullRom,\n curveCatmullRomClosed,\n curveCatmullRomOpen,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n} from \"d3\";\n\nconst curves = new Map([\n [\"basis\", curveBasis],\n [\"basis-closed\", curveBasisClosed],\n [\"basis-open\", curveBasisOpen],\n [\"bundle\", curveBundle],\n [\"bump-x\", curveBumpX],\n [\"bump-y\", curveBumpY],\n [\"cardinal\", curveCardinal],\n [\"cardinal-closed\", curveCardinalClosed],\n [\"cardinal-open\", curveCardinalOpen],\n [\"catmull-rom\", curveCatmullRom],\n [\"catmull-rom-closed\", curveCatmullRomClosed],\n [\"catmull-rom-open\", curveCatmullRomOpen],\n [\"linear\", curveLinear],\n [\"linear-closed\", curveLinearClosed],\n [\"monotone-x\", curveMonotoneX],\n [\"monotone-y\", curveMonotoneY],\n [\"natural\", curveNatural],\n [\"step\", curveStep],\n [\"step-after\", curveStepAfter],\n [\"step-before\", curveStepBefore]\n]);\n\nexport function maybeCurve(curve = curveLinear, tension) {\n if (typeof curve === \"function\") return curve; // custom curve\n const c = curves.get(`${curve}`.toLowerCase());\n if (!c) throw new Error(`unknown curve: ${curve}`);\n if (tension !== undefined) {\n if (\"beta\" in c) {\n return c.beta(tension);\n } else if (\"tension\" in c) {\n return c.tension(tension);\n } else if (\"alpha\" in c) {\n return c.alpha(tension);\n }\n }\n return c;\n}\n\n// For the “auto” curve, return a symbol instead of a curve implementation;\n// we’ll use d3.geoPath to render if there’s a projection.\nexport function maybeCurveAuto(curve = curveAuto, tension) {\n return typeof curve !== \"function\" && `${curve}`.toLowerCase() === \"auto\" ? curveAuto : maybeCurve(curve, tension);\n}\n\n// This is a special built-in curve that will use d3.geoPath when there is a\n// projection, and the linear curve when there is not. You can explicitly\n// opt-out of d3.geoPath and instead use d3.line with the \"linear\" curve.\nexport function curveAuto(context) {\n return curveLinear(context);\n}\n","import {\n bisect,\n extent,\n thresholdFreedmanDiaconis,\n thresholdScott,\n thresholdSturges,\n tickIncrement,\n ticks,\n utcTickInterval\n} from \"d3\";\nimport {withTip} from \"../mark.js\";\nimport {\n coerceDate,\n coerceNumbers,\n identity,\n isInterval,\n isIterable,\n isTemporal,\n isTimeInterval,\n labelof,\n map,\n maybeApplyInterval,\n maybeColorChannel,\n maybeColumn,\n maybeRangeInterval,\n maybeTuple,\n maybeValue,\n mid,\n valueof\n} from \"../options.js\";\nimport {maybeUtcInterval} from \"../time.js\";\nimport {basic} from \"./basic.js\";\nimport {\n hasOutput,\n maybeEvaluator,\n maybeGroup,\n maybeOutput,\n maybeOutputs,\n maybeReduce,\n maybeSort,\n maybeSubgroup,\n reduceCount,\n reduceFirst,\n reduceIdentity\n} from \"./group.js\";\nimport {maybeInsetX, maybeInsetY} from \"./inset.js\";\n\n// Group on {z, fill, stroke}, then optionally on y, then bin x.\nexport function binX(outputs = {y: \"count\"}, options = {}) {\n [outputs, options] = mergeOptions(outputs, options);\n const {x, y} = options;\n return binn(maybeBinValue(x, options, identity), null, null, y, outputs, maybeInsetX(options));\n}\n\n// Group on {z, fill, stroke}, then optionally on x, then bin y.\nexport function binY(outputs = {x: \"count\"}, options = {}) {\n [outputs, options] = mergeOptions(outputs, options);\n const {x, y} = options;\n return binn(null, maybeBinValue(y, options, identity), x, null, outputs, maybeInsetY(options));\n}\n\n// Group on {z, fill, stroke}, then bin on x and y.\nexport function bin(outputs = {fill: \"count\"}, options = {}) {\n [outputs, options] = mergeOptions(outputs, options);\n const {x, y} = maybeBinValueTuple(options);\n return binn(x, y, null, null, outputs, maybeInsetX(maybeInsetY(options)));\n}\n\nfunction maybeDenseInterval(bin, k, options = {}) {\n if (options?.interval == null) return options;\n const {reduce = reduceFirst} = options;\n const outputs = {filter: null};\n if (options[k] != null) outputs[k] = reduce;\n if (options[`${k}1`] != null) outputs[`${k}1`] = reduce;\n if (options[`${k}2`] != null) outputs[`${k}2`] = reduce;\n return bin(outputs, options);\n}\n\nexport function maybeDenseIntervalX(options = {}) {\n return maybeDenseInterval(binX, \"y\", withTip(options, \"x\"));\n}\n\nexport function maybeDenseIntervalY(options = {}) {\n return maybeDenseInterval(binY, \"x\", withTip(options, \"y\"));\n}\n\nfunction binn(\n bx, // optionally bin on x (exclusive with gx)\n by, // optionally bin on y (exclusive with gy)\n gx, // optionally group on x (exclusive with bx and gy)\n gy, // optionally group on y (exclusive with by and gx)\n {\n data: reduceData = reduceIdentity, // TODO avoid materializing when unused?\n filter = reduceCount, // return only non-empty bins by default\n sort,\n reverse,\n ...outputs // output channel definitions\n } = {},\n inputs = {} // input channels and options\n) {\n bx = maybeBin(bx);\n by = maybeBin(by);\n\n // Compute the outputs.\n outputs = maybeBinOutputs(outputs, inputs);\n reduceData = maybeBinReduce(reduceData, identity);\n sort = sort == null ? undefined : maybeBinOutput(\"sort\", sort, inputs);\n filter = filter == null ? undefined : maybeBinEvaluator(\"filter\", filter, inputs);\n\n // Don’t group on a channel if an output requires it as an input!\n if (gx != null && hasOutput(outputs, \"x\", \"x1\", \"x2\")) gx = null;\n if (gy != null && hasOutput(outputs, \"y\", \"y1\", \"y2\")) gy = null;\n\n // Produce x1, x2, y1, and y2 output channels as appropriate (when binning).\n const [BX1, setBX1] = maybeColumn(bx);\n const [BX2, setBX2] = maybeColumn(bx);\n const [BY1, setBY1] = maybeColumn(by);\n const [BY2, setBY2] = maybeColumn(by);\n\n // Produce x or y output channels as appropriate (when grouping).\n const [k, gk] = gx != null ? [gx, \"x\"] : gy != null ? [gy, \"y\"] : [];\n const [GK, setGK] = maybeColumn(k);\n\n // Greedily materialize the z, fill, and stroke channels (if channels and not\n // constants) so that we can reference them for subdividing groups without\n // computing them more than once. We also want to consume options that should\n // only apply to this transform rather than passing them through to the next.\n const {\n x,\n y,\n z,\n fill,\n stroke,\n x1,\n x2, // consumed if x is an output\n y1,\n y2, // consumed if y is an output\n domain,\n cumulative,\n thresholds,\n interval,\n ...options\n } = inputs;\n const [GZ, setGZ] = maybeColumn(z);\n const [vfill] = maybeColorChannel(fill);\n const [vstroke] = maybeColorChannel(stroke);\n const [GF, setGF] = maybeColumn(vfill);\n const [GS, setGS] = maybeColumn(vstroke);\n\n return {\n ...(\"z\" in inputs && {z: GZ || z}),\n ...(\"fill\" in inputs && {fill: GF || fill}),\n ...(\"stroke\" in inputs && {stroke: GS || stroke}),\n ...basic(options, (data, facets, plotOptions) => {\n const K = maybeApplyInterval(valueof(data, k), plotOptions?.[gk]);\n const Z = valueof(data, z);\n const F = valueof(data, vfill);\n const S = valueof(data, vstroke);\n const G = maybeSubgroup(outputs, {z: Z, fill: F, stroke: S});\n const groupFacets = [];\n const groupData = [];\n const GK = K && setGK([]);\n const GZ = Z && setGZ([]);\n const GF = F && setGF([]);\n const GS = S && setGS([]);\n const BX1 = bx && setBX1([]);\n const BX2 = bx && setBX2([]);\n const BY1 = by && setBY1([]);\n const BY2 = by && setBY2([]);\n const bin = bing(bx?.(data), by?.(data));\n let i = 0;\n for (const o of outputs) o.initialize(data);\n if (sort) sort.initialize(data);\n if (filter) filter.initialize(data);\n for (const facet of facets) {\n const groupFacet = [];\n for (const o of outputs) o.scope(\"facet\", facet);\n if (sort) sort.scope(\"facet\", facet);\n if (filter) filter.scope(\"facet\", facet);\n for (const [f, I] of maybeGroup(facet, G)) {\n for (const [k, g] of maybeGroup(I, K)) {\n for (const [b, extent] of bin(g)) {\n if (filter && !filter.reduce(b, extent)) continue;\n groupFacet.push(i++);\n groupData.push(reduceData.reduceIndex(b, data, extent));\n if (K) GK.push(k);\n if (Z) GZ.push(G === Z ? f : Z[(b.length > 0 ? b : g)[0]]);\n if (F) GF.push(G === F ? f : F[(b.length > 0 ? b : g)[0]]);\n if (S) GS.push(G === S ? f : S[(b.length > 0 ? b : g)[0]]);\n if (BX1) BX1.push(extent.x1), BX2.push(extent.x2);\n if (BY1) BY1.push(extent.y1), BY2.push(extent.y2);\n for (const o of outputs) o.reduce(b, extent);\n if (sort) sort.reduce(b);\n }\n }\n }\n groupFacets.push(groupFacet);\n }\n maybeSort(groupFacets, sort, reverse);\n return {data: groupData, facets: groupFacets};\n }),\n ...(!hasOutput(outputs, \"x\") && (BX1 ? {x1: BX1, x2: BX2, x: mid(BX1, BX2)} : {x, x1, x2})),\n ...(!hasOutput(outputs, \"y\") && (BY1 ? {y1: BY1, y2: BY2, y: mid(BY1, BY2)} : {y, y1, y2})),\n ...(GK && {[gk]: GK}),\n ...Object.fromEntries(outputs.map(({name, output}) => [name, output]))\n };\n}\n\n// Allow bin options to be specified as part of outputs; merge them into options.\nfunction mergeOptions({cumulative, domain, thresholds, interval, ...outputs}, options) {\n return [outputs, {cumulative, domain, thresholds, interval, ...options}];\n}\n\nfunction maybeBinValue(value, {cumulative, domain, thresholds, interval}, defaultValue) {\n value = {...maybeValue(value)};\n if (value.domain === undefined) value.domain = domain;\n if (value.cumulative === undefined) value.cumulative = cumulative;\n if (value.thresholds === undefined) value.thresholds = thresholds;\n if (value.interval === undefined) value.interval = interval;\n if (value.value === undefined) value.value = defaultValue;\n value.thresholds = maybeThresholds(value.thresholds, value.interval);\n return value;\n}\n\nfunction maybeBinValueTuple(options) {\n let {x, y} = options;\n x = maybeBinValue(x, options);\n y = maybeBinValue(y, options);\n [x.value, y.value] = maybeTuple(x.value, y.value);\n return {x, y};\n}\n\nfunction maybeBin(options) {\n if (options == null) return;\n const {value, cumulative, domain = extent, thresholds} = options;\n const bin = (data) => {\n let V = valueof(data, value);\n let T; // bin thresholds\n if (isTemporal(V) || isTimeThresholds(thresholds)) {\n V = map(V, coerceDate, Float64Array); // like coerceDates, but faster\n let [min, max] = typeof domain === \"function\" ? domain(V) : domain;\n let t = typeof thresholds === \"function\" && !isInterval(thresholds) ? thresholds(V, min, max) : thresholds;\n if (typeof t === \"number\") t = utcTickInterval(min, max, t);\n if (isInterval(t)) {\n if (domain === extent) {\n min = t.floor(min);\n max = t.offset(t.floor(max));\n }\n t = t.range(min, t.offset(max));\n }\n T = t;\n } else {\n V = coerceNumbers(V);\n let [min, max] = typeof domain === \"function\" ? domain(V) : domain;\n let t = typeof thresholds === \"function\" && !isInterval(thresholds) ? thresholds(V, min, max) : thresholds;\n if (typeof t === \"number\") {\n // This differs from d3.ticks with regard to exclusive bounds: we want a\n // first threshold less than or equal to the minimum, and a last\n // threshold (strictly) greater than the maximum.\n if (domain === extent) {\n let step = tickIncrement(min, max, t);\n if (isFinite(step)) {\n if (step > 0) {\n let r0 = Math.round(min / step);\n let r1 = Math.round(max / step);\n if (!(r0 * step <= min)) --r0;\n if (!(r1 * step > max)) ++r1;\n let n = r1 - r0 + 1;\n t = new Float64Array(n);\n for (let i = 0; i < n; ++i) t[i] = (r0 + i) * step;\n } else if (step < 0) {\n step = -step;\n let r0 = Math.round(min * step);\n let r1 = Math.round(max * step);\n if (!(r0 / step <= min)) --r0;\n if (!(r1 / step > max)) ++r1;\n let n = r1 - r0 + 1;\n t = new Float64Array(n);\n for (let i = 0; i < n; ++i) t[i] = (r0 + i) / step;\n } else {\n t = [min];\n }\n } else {\n t = [min];\n }\n } else {\n t = ticks(min, max, t);\n }\n } else if (isInterval(t)) {\n if (domain === extent) {\n min = t.floor(min);\n max = t.offset(t.floor(max));\n }\n t = t.range(min, t.offset(max));\n }\n T = t;\n }\n const E = [];\n if (T.length === 1) E.push([T[0], T[0]]); // collapsed domain\n else for (let i = 1; i < T.length; ++i) E.push([T[i - 1], T[i]]);\n E.bin = (cumulative < 0 ? bin1cn : cumulative > 0 ? bin1cp : bin1)(E, T, V);\n return E;\n };\n bin.label = labelof(value);\n return bin;\n}\n\nexport function maybeThresholds(thresholds, interval, defaultThresholds = thresholdAuto) {\n if (thresholds === undefined) {\n return interval === undefined ? defaultThresholds : maybeRangeInterval(interval);\n }\n if (typeof thresholds === \"string\") {\n switch (thresholds.toLowerCase()) {\n case \"freedman-diaconis\":\n return thresholdFreedmanDiaconis;\n case \"scott\":\n return thresholdScott;\n case \"sturges\":\n return thresholdSturges;\n case \"auto\":\n return thresholdAuto;\n }\n return maybeUtcInterval(thresholds);\n }\n return thresholds; // pass array, count, or function to bin.thresholds\n}\n\nfunction maybeBinOutputs(outputs, inputs) {\n return maybeOutputs(outputs, inputs, maybeBinOutput);\n}\n\nfunction maybeBinOutput(name, reduce, inputs) {\n return maybeOutput(name, reduce, inputs, maybeBinEvaluator);\n}\n\nfunction maybeBinEvaluator(name, reduce, inputs) {\n return maybeEvaluator(name, reduce, inputs, maybeBinReduce);\n}\n\nfunction maybeBinReduce(reduce, value) {\n return maybeReduce(reduce, value, maybeBinReduceFallback);\n}\n\nfunction maybeBinReduceFallback(reduce) {\n switch (`${reduce}`.toLowerCase()) {\n case \"x\":\n return reduceX;\n case \"x1\":\n return reduceX1;\n case \"x2\":\n return reduceX2;\n case \"y\":\n return reduceY;\n case \"y1\":\n return reduceY1;\n case \"y2\":\n return reduceY2;\n }\n throw new Error(`invalid bin reduce: ${reduce}`);\n}\n\nfunction thresholdAuto(values, min, max) {\n return Math.min(200, thresholdScott(values, min, max));\n}\n\nfunction isTimeThresholds(t) {\n return isTimeInterval(t) || (isIterable(t) && isTemporal(t));\n}\n\nfunction bing(EX, EY) {\n return EX && EY\n ? function* (I) {\n const X = EX.bin(I); // first bin on x\n for (const [ix, [x1, x2]] of EX.entries()) {\n const Y = EY.bin(X[ix]); // then bin on y\n for (const [iy, [y1, y2]] of EY.entries()) {\n yield [Y[iy], {x1, y1, x2, y2}];\n }\n }\n }\n : EX\n ? function* (I) {\n const X = EX.bin(I);\n for (const [i, [x1, x2]] of EX.entries()) {\n yield [X[i], {x1, x2}];\n }\n }\n : function* (I) {\n const Y = EY.bin(I);\n for (const [i, [y1, y2]] of EY.entries()) {\n yield [Y[i], {y1, y2}];\n }\n };\n}\n\n// non-cumulative distribution\nfunction bin1(E, T, V) {\n T = coerceNumbers(T); // for faster bisection\n return (I) => {\n const B = E.map(() => []);\n for (const i of I) B[bisect(T, V[i]) - 1]?.push(i); // TODO quantization?\n return B;\n };\n}\n\n// cumulative distribution\nfunction bin1cp(E, T, V) {\n const bin = bin1(E, T, V);\n return (I) => {\n const B = bin(I);\n for (let i = 1, n = B.length; i < n; ++i) {\n const C = B[i - 1];\n const b = B[i];\n for (const j of C) b.push(j);\n }\n return B;\n };\n}\n\n// complementary cumulative distribution\nfunction bin1cn(E, T, V) {\n const bin = bin1(E, T, V);\n return (I) => {\n const B = bin(I);\n for (let i = B.length - 2; i >= 0; --i) {\n const C = B[i + 1];\n const b = B[i];\n for (const j of C) b.push(j);\n }\n return B;\n };\n}\n\nfunction mid1(x1, x2) {\n const m = (+x1 + +x2) / 2;\n return x1 instanceof Date ? new Date(m) : m;\n}\n\nconst reduceX = {\n reduceIndex(I, X, {x1, x2}) {\n return mid1(x1, x2);\n }\n};\n\nconst reduceY = {\n reduceIndex(I, X, {y1, y2}) {\n return mid1(y1, y2);\n }\n};\n\nconst reduceX1 = {\n reduceIndex(I, X, {x1}) {\n return x1;\n }\n};\n\nconst reduceX2 = {\n reduceIndex(I, X, {x2}) {\n return x2;\n }\n};\n\nconst reduceY1 = {\n reduceIndex(I, X, {y1}) {\n return y1;\n }\n};\n\nconst reduceY2 = {\n reduceIndex(I, X, {y2}) {\n return y2;\n }\n};\n","import {hasX, hasY, identity} from \"../options.js\";\n\nexport function maybeIdentityX(options = {}) {\n return hasX(options) ? options : {...options, x: identity};\n}\n\nexport function maybeIdentityY(options = {}) {\n return hasY(options) ? options : {...options, y: identity};\n}\n","import {reindex, slice} from \"../options.js\";\n\nexport function exclusiveFacets(data, facets) {\n if (facets.length === 1) return {data, facets}; // only one facet; trivially exclusive\n\n const n = data.length;\n const O = new Uint8Array(n);\n let overlaps = 0;\n\n // Count the number of overlapping indexes across facets.\n for (const facet of facets) {\n for (const i of facet) {\n if (O[i]) ++overlaps;\n O[i] = 1;\n }\n }\n\n // Do nothing if the facets are already exclusive.\n if (overlaps === 0) return {data, facets}; // facets are exclusive\n\n // For each overlapping index (duplicate), assign a new unique index at the\n // end of the existing array, duplicating the datum. For example, [[0, 1, 2],\n // [2, 1, 3]] would become [[0, 1, 2], [4, 5, 3]]. Also attach a reindex to\n // the data to preserve the association of channel values specified as arrays.\n data = slice(data);\n const R = (data[reindex] = new Uint32Array(n + overlaps));\n facets = facets.map((facet) => slice(facet, Uint32Array));\n let j = n;\n O.fill(0);\n for (const facet of facets) {\n for (let k = 0, m = facet.length; k < m; ++k) {\n const i = facet[k];\n if (O[i]) (facet[k] = j), (data[j] = data[i]), (R[j] = i), ++j;\n else R[i] = i;\n O[i] = 1;\n }\n }\n\n return {data, facets};\n}\n","import {InternMap, cumsum, greatest, group, groupSort, max, min, rollup, sum} from \"d3\";\nimport {ascendingDefined, descendingDefined} from \"../defined.js\";\nimport {withTip} from \"../mark.js\";\nimport {maybeApplyInterval, maybeColumn, maybeZ, maybeZero} from \"../options.js\";\nimport {column, field, mid, one, range, valueof} from \"../options.js\";\nimport {basic} from \"./basic.js\";\nimport {exclusiveFacets} from \"./exclusiveFacets.js\";\n\nexport function stackX(stackOptions = {}, options = {}) {\n if (arguments.length === 1) [stackOptions, options] = mergeOptions(stackOptions);\n const {y1, y = y1, x, ...rest} = options; // note: consumes x!\n const [transform, Y, x1, x2] = stack(y, x, \"y\", \"x\", stackOptions, rest);\n return {...transform, y1, y: Y, x1, x2, x: mid(x1, x2)};\n}\n\nexport function stackX1(stackOptions = {}, options = {}) {\n if (arguments.length === 1) [stackOptions, options] = mergeOptions(stackOptions);\n const {y1, y = y1, x} = options;\n const [transform, Y, X] = stack(y, x, \"y\", \"x\", stackOptions, options);\n return {...transform, y1, y: Y, x: X};\n}\n\nexport function stackX2(stackOptions = {}, options = {}) {\n if (arguments.length === 1) [stackOptions, options] = mergeOptions(stackOptions);\n const {y1, y = y1, x} = options;\n const [transform, Y, , X] = stack(y, x, \"y\", \"x\", stackOptions, options);\n return {...transform, y1, y: Y, x: X};\n}\n\nexport function stackY(stackOptions = {}, options = {}) {\n if (arguments.length === 1) [stackOptions, options] = mergeOptions(stackOptions);\n const {x1, x = x1, y, ...rest} = options; // note: consumes y!\n const [transform, X, y1, y2] = stack(x, y, \"x\", \"y\", stackOptions, rest);\n return {...transform, x1, x: X, y1, y2, y: mid(y1, y2)};\n}\n\nexport function stackY1(stackOptions = {}, options = {}) {\n if (arguments.length === 1) [stackOptions, options] = mergeOptions(stackOptions);\n const {x1, x = x1, y} = options;\n const [transform, X, Y] = stack(x, y, \"x\", \"y\", stackOptions, options);\n return {...transform, x1, x: X, y: Y};\n}\n\nexport function stackY2(stackOptions = {}, options = {}) {\n if (arguments.length === 1) [stackOptions, options] = mergeOptions(stackOptions);\n const {x1, x = x1, y} = options;\n const [transform, X, , Y] = stack(x, y, \"x\", \"y\", stackOptions, options);\n return {...transform, x1, x: X, y: Y};\n}\n\nexport function maybeStackX({x, x1, x2, ...options} = {}) {\n options = withTip(options, \"y\");\n if (x1 === undefined && x2 === undefined) return stackX({x, ...options});\n [x1, x2] = maybeZero(x, x1, x2);\n return {...options, x1, x2};\n}\n\nexport function maybeStackY({y, y1, y2, ...options} = {}) {\n options = withTip(options, \"x\");\n if (y1 === undefined && y2 === undefined) return stackY({y, ...options});\n [y1, y2] = maybeZero(y, y1, y2);\n return {...options, y1, y2};\n}\n\n// The reverse option is ambiguous: it is both a stack option and a basic\n// transform. If only one options object is specified, we interpret it as a\n// stack option, and therefore must remove it from the propagated options.\nfunction mergeOptions(options) {\n const {offset, order, reverse, ...rest} = options;\n return [{offset, order, reverse}, rest];\n}\n\n// This is a hint to the tooltip mark that the y1 and y2 channels (for stackY,\n// or conversely x1 and x2 for stackX) represent a stacked length, and that the\n// tooltip should therefore show y2-y1 instead of an extent.\nconst lengthy = {length: true};\n\nfunction stack(x, y = one, kx, ky, {offset, order, reverse}, options) {\n if (y === null) throw new Error(`stack requires ${ky}`);\n const z = maybeZ(options);\n const [X, setX] = maybeColumn(x);\n const [Y1, setY1] = column(y);\n const [Y2, setY2] = column(y);\n Y1.hint = Y2.hint = lengthy;\n offset = maybeOffset(offset);\n order = maybeOrder(order, offset, ky);\n return [\n basic(options, (data, facets, plotOptions) => {\n ({data, facets} = exclusiveFacets(data, facets));\n const X = x == null ? undefined : setX(maybeApplyInterval(valueof(data, x), plotOptions?.[kx]));\n const Y = valueof(data, y, Float64Array);\n const Z = valueof(data, z);\n const compare = order && order(data, X, Y, Z);\n const n = data.length;\n const Y1 = setY1(new Float64Array(n));\n const Y2 = setY2(new Float64Array(n));\n const facetstacks = [];\n for (const facet of facets) {\n const stacks = X ? Array.from(group(facet, (i) => X[i]).values()) : [facet];\n if (compare) for (const stack of stacks) stack.sort(compare);\n for (const stack of stacks) {\n let yn = 0;\n let yp = 0;\n if (reverse) stack.reverse();\n for (const i of stack) {\n const y = Y[i];\n if (y < 0) yn = Y2[i] = (Y1[i] = yn) + y;\n else if (y > 0) yp = Y2[i] = (Y1[i] = yp) + y;\n else Y2[i] = Y1[i] = yp; // NaN or zero\n }\n }\n facetstacks.push(stacks);\n }\n if (offset) offset(facetstacks, Y1, Y2, Z);\n return {data, facets};\n }),\n X,\n Y1,\n Y2\n ];\n}\n\nfunction maybeOffset(offset) {\n if (offset == null) return;\n if (typeof offset === \"function\") return offset;\n switch (`${offset}`.toLowerCase()) {\n case \"expand\":\n case \"normalize\":\n return offsetExpand;\n case \"center\":\n case \"silhouette\":\n return offsetCenter;\n case \"wiggle\":\n return offsetWiggle;\n }\n throw new Error(`unknown offset: ${offset}`);\n}\n\n// Given a single stack, returns the minimum and maximum values from the given\n// Y2 column. Note that this relies on Y2 always being the outer column for\n// diverging values.\nfunction extent(stack, Y2) {\n let min = 0,\n max = 0;\n for (const i of stack) {\n const y = Y2[i];\n if (y < min) min = y;\n if (y > max) max = y;\n }\n return [min, max];\n}\n\nfunction offsetExpand(facetstacks, Y1, Y2) {\n for (const stacks of facetstacks) {\n for (const stack of stacks) {\n const [yn, yp] = extent(stack, Y2);\n for (const i of stack) {\n const m = 1 / (yp - yn || 1);\n Y1[i] = m * (Y1[i] - yn);\n Y2[i] = m * (Y2[i] - yn);\n }\n }\n }\n}\n\nfunction offsetCenter(facetstacks, Y1, Y2) {\n for (const stacks of facetstacks) {\n for (const stack of stacks) {\n const [yn, yp] = extent(stack, Y2);\n for (const i of stack) {\n const m = (yp + yn) / 2;\n Y1[i] -= m;\n Y2[i] -= m;\n }\n }\n offsetZero(stacks, Y1, Y2);\n }\n offsetCenterFacets(facetstacks, Y1, Y2);\n}\n\nfunction offsetWiggle(facetstacks, Y1, Y2, Z) {\n for (const stacks of facetstacks) {\n const prev = new InternMap();\n let y = 0;\n for (const stack of stacks) {\n let j = -1;\n const Fi = stack.map((i) => Math.abs(Y2[i] - Y1[i]));\n const Df = stack.map((i) => {\n j = Z ? Z[i] : ++j;\n const value = Y2[i] - Y1[i];\n const diff = prev.has(j) ? value - prev.get(j) : 0;\n prev.set(j, value);\n return diff;\n });\n const Cf1 = [0, ...cumsum(Df)];\n for (const i of stack) {\n Y1[i] += y;\n Y2[i] += y;\n }\n const s1 = sum(Fi);\n if (s1) y -= sum(Fi, (d, i) => (Df[i] / 2 + Cf1[i]) * d) / s1;\n }\n offsetZero(stacks, Y1, Y2);\n }\n offsetCenterFacets(facetstacks, Y1, Y2);\n}\n\nfunction offsetZero(stacks, Y1, Y2) {\n const m = min(stacks, (stack) => min(stack, (i) => Y1[i]));\n for (const stack of stacks) {\n for (const i of stack) {\n Y1[i] -= m;\n Y2[i] -= m;\n }\n }\n}\n\nfunction offsetCenterFacets(facetstacks, Y1, Y2) {\n const n = facetstacks.length;\n if (n === 1) return;\n const facets = facetstacks.map((stacks) => stacks.flat());\n const m = facets.map((I) => (min(I, (i) => Y1[i]) + max(I, (i) => Y2[i])) / 2);\n const m0 = min(m);\n for (let j = 0; j < n; j++) {\n const p = m0 - m[j];\n for (const i of facets[j]) {\n Y1[i] += p;\n Y2[i] += p;\n }\n }\n}\n\nfunction maybeOrder(order, offset, ky) {\n if (order === undefined && offset === offsetWiggle) return orderInsideOut(ascendingDefined);\n if (order == null) return;\n if (typeof order === \"string\") {\n const negate = order.startsWith(\"-\");\n const compare = negate ? descendingDefined : ascendingDefined;\n switch ((negate ? order.slice(1) : order).toLowerCase()) {\n case \"value\":\n case ky:\n return orderY(compare);\n case \"z\":\n return orderZ(compare);\n case \"sum\":\n return orderSum(compare);\n case \"appearance\":\n return orderAppearance(compare);\n case \"inside-out\":\n return orderInsideOut(compare);\n }\n return orderAccessor(field(order));\n }\n if (typeof order === \"function\") return (order.length === 1 ? orderAccessor : orderComparator)(order);\n if (Array.isArray(order)) return orderGiven(order);\n throw new Error(`invalid order: ${order}`);\n}\n\n// by value\nfunction orderY(compare) {\n return (data, X, Y) => (i, j) => compare(Y[i], Y[j]);\n}\n\n// by location\nfunction orderZ(compare) {\n return (data, X, Y, Z) => (i, j) => compare(Z[i], Z[j]);\n}\n\n// by sum of value (a.k.a. “ascending”)\nfunction orderSum(compare) {\n return orderZDomain(compare, (data, X, Y, Z) =>\n groupSort(\n range(data),\n (I) => sum(I, (i) => Y[i]),\n (i) => Z[i]\n )\n );\n}\n\n// by x = argmax of value\nfunction orderAppearance(compare) {\n return orderZDomain(compare, (data, X, Y, Z) =>\n groupSort(\n range(data),\n (I) => X[greatest(I, (i) => Y[i])],\n (i) => Z[i]\n )\n );\n}\n\n// by x = argmax of value, but rearranged inside-out by alternating series\n// according to the sign of a running divergence of sums\nfunction orderInsideOut(compare) {\n return orderZDomain(compare, (data, X, Y, Z) => {\n const I = range(data);\n const K = groupSort(\n I,\n (I) => X[greatest(I, (i) => Y[i])],\n (i) => Z[i]\n );\n const sums = rollup(\n I,\n (I) => sum(I, (i) => Y[i]),\n (i) => Z[i]\n );\n const Kp = [],\n Kn = [];\n let s = 0;\n for (const k of K) {\n if (s < 0) {\n s += sums.get(k);\n Kp.push(k);\n } else {\n s -= sums.get(k);\n Kn.push(k);\n }\n }\n return Kn.reverse().concat(Kp);\n });\n}\n\nfunction orderAccessor(f) {\n return (data) => {\n const O = valueof(data, f);\n return (i, j) => ascendingDefined(O[i], O[j]);\n };\n}\n\nfunction orderComparator(f) {\n return (data) => (i, j) => f(data[i], data[j]);\n}\n\nfunction orderGiven(domain) {\n return orderZDomain(ascendingDefined, () => domain);\n}\n\n// Given an ordering (domain) of distinct values in z that can be derived from\n// the data, returns a comparator that can be used to sort stacks. Note that\n// this is a series order: it will be consistent across stacks.\nfunction orderZDomain(compare, domain) {\n return (data, X, Y, Z) => {\n if (!Z) throw new Error(\"missing channel: z\");\n const map = new InternMap(domain(data, X, Y, Z).map((d, i) => [d, i]));\n return (i, j) => compare(map.get(Z[i]), map.get(Z[j]));\n };\n}\n","import {geoPath, line as shapeLine} from \"d3\";\nimport {create} from \"../context.js\";\nimport {curveAuto, maybeCurveAuto} from \"../curve.js\";\nimport {Mark} from \"../mark.js\";\nimport {applyGroupedMarkers, markers} from \"../marker.js\";\nimport {coerceNumbers, indexOf, identity, maybeTuple, maybeZ} from \"../options.js\";\nimport {\n applyDirectStyles,\n applyIndirectStyles,\n applyTransform,\n applyGroupedChannelStyles,\n groupIndex\n} from \"../style.js\";\nimport {maybeDenseIntervalX, maybeDenseIntervalY} from \"../transforms/bin.js\";\n\nconst defaults = {\n ariaLabel: \"line\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 1\n};\n\nexport class Line extends Mark {\n constructor(data, options = {}) {\n const {x, y, z, curve, tension} = options;\n super(\n data,\n {\n x: {value: x, scale: \"x\"},\n y: {value: y, scale: \"y\"},\n z: {value: maybeZ(options), optional: true}\n },\n options,\n defaults\n );\n this.z = z;\n this.curve = maybeCurveAuto(curve, tension);\n markers(this, options);\n }\n filter(index) {\n return index;\n }\n project(channels, values, context) {\n // For the auto curve, projection is handled at render.\n if (this.curve !== curveAuto) {\n super.project(channels, values, context);\n }\n }\n render(index, scales, channels, dimensions, context) {\n const {x: X, y: Y} = channels;\n const {curve} = this;\n return create(\"svg:g\", context)\n .call(applyIndirectStyles, this, dimensions, context)\n .call(applyTransform, this, scales)\n .call((g) =>\n g\n .selectAll()\n .data(groupIndex(index, [X, Y], this, channels))\n .enter()\n .append(\"path\")\n .call(applyDirectStyles, this)\n .call(applyGroupedChannelStyles, this, channels)\n .call(applyGroupedMarkers, this, channels, context)\n .attr(\n \"d\",\n curve === curveAuto && context.projection\n ? sphereLine(context.projection, X, Y)\n : shapeLine()\n .curve(curve)\n .defined((i) => i >= 0)\n .x((i) => X[i])\n .y((i) => Y[i])\n )\n )\n .node();\n }\n}\n\nfunction sphereLine(projection, X, Y) {\n const path = geoPath(projection);\n X = coerceNumbers(X);\n Y = coerceNumbers(Y);\n return (I) => {\n let line = [];\n const lines = [line];\n for (const i of I) {\n // Check for undefined value; see groupIndex.\n if (i === -1) {\n line = [];\n lines.push(line);\n } else {\n line.push([X[i], Y[i]]);\n }\n }\n return path({type: \"MultiLineString\", coordinates: lines});\n };\n}\n\nexport function line(data, {x, y, ...options} = {}) {\n [x, y] = maybeTuple(x, y);\n return new Line(data, {...options, x, y});\n}\n\nexport function lineX(data, {x = identity, y = indexOf, ...options} = {}) {\n return new Line(data, maybeDenseIntervalY({...options, x, y}));\n}\n\nexport function lineY(data, {x = indexOf, y = identity, ...options} = {}) {\n return new Line(data, maybeDenseIntervalX({...options, x, y}));\n}\n","import {create} from \"../context.js\";\nimport {Mark} from \"../mark.js\";\nimport {hasXY, identity, indexOf, number} from \"../options.js\";\nimport {isCollapsed} from \"../scales.js\";\nimport {applyAttr, applyChannelStyles, applyDirectStyles, applyIndirectStyles, applyTransform} from \"../style.js\";\nimport {impliedString} from \"../style.js\";\nimport {maybeIdentityX, maybeIdentityY} from \"../transforms/identity.js\";\nimport {maybeTrivialIntervalX, maybeTrivialIntervalY} from \"../transforms/interval.js\";\nimport {maybeStackX, maybeStackY} from \"../transforms/stack.js\";\n\nconst defaults = {\n ariaLabel: \"rect\"\n};\n\nexport class Rect extends Mark {\n constructor(data, options = {}) {\n const {\n x1,\n y1,\n x2,\n y2,\n inset = 0,\n insetTop = inset,\n insetRight = inset,\n insetBottom = inset,\n insetLeft = inset,\n rx,\n ry\n } = options;\n super(\n data,\n {\n x1: {value: x1, scale: \"x\", optional: true},\n y1: {value: y1, scale: \"y\", optional: true},\n x2: {value: x2, scale: \"x\", optional: true},\n y2: {value: y2, scale: \"y\", optional: true}\n },\n options,\n defaults\n );\n this.insetTop = number(insetTop);\n this.insetRight = number(insetRight);\n this.insetBottom = number(insetBottom);\n this.insetLeft = number(insetLeft);\n this.rx = impliedString(rx, \"auto\"); // number or percentage\n this.ry = impliedString(ry, \"auto\");\n }\n render(index, scales, channels, dimensions, context) {\n const {x, y} = scales;\n const {x1: X1, y1: Y1, x2: X2, y2: Y2} = channels;\n const {marginTop, marginRight, marginBottom, marginLeft, width, height} = dimensions;\n const {projection} = context;\n const {insetTop, insetRight, insetBottom, insetLeft, rx, ry} = this;\n return create(\"svg:g\", context)\n .call(applyIndirectStyles, this, dimensions, context)\n .call(applyTransform, this, {x: X1 && X2 && x, y: Y1 && Y2 && y}, 0, 0)\n .call((g) =>\n g\n .selectAll()\n .data(index)\n .enter()\n .append(\"rect\")\n .call(applyDirectStyles, this)\n .attr(\n \"x\",\n X1 && X2 && (projection || !isCollapsed(x))\n ? (i) => Math.min(X1[i], X2[i]) + insetLeft\n : marginLeft + insetLeft\n )\n .attr(\n \"y\",\n Y1 && Y2 && (projection || !isCollapsed(y))\n ? (i) => Math.min(Y1[i], Y2[i]) + insetTop\n : marginTop + insetTop\n )\n .attr(\n \"width\",\n X1 && X2 && (projection || !isCollapsed(x))\n ? (i) => Math.max(0, Math.abs(X2[i] - X1[i]) - insetLeft - insetRight)\n : width - marginRight - marginLeft - insetRight - insetLeft\n )\n .attr(\n \"height\",\n Y1 && Y2 && (projection || !isCollapsed(y))\n ? (i) => Math.max(0, Math.abs(Y1[i] - Y2[i]) - insetTop - insetBottom)\n : height - marginTop - marginBottom - insetTop - insetBottom\n )\n .call(applyAttr, \"rx\", rx)\n .call(applyAttr, \"ry\", ry)\n .call(applyChannelStyles, this, channels)\n )\n .node();\n }\n}\n\nexport function rect(data, options) {\n return new Rect(data, maybeTrivialIntervalX(maybeTrivialIntervalY(options)));\n}\n\nexport function rectX(data, options = {}) {\n if (!hasXY(options)) options = {...options, y: indexOf, x2: identity, interval: 1};\n return new Rect(data, maybeStackX(maybeTrivialIntervalY(maybeIdentityX(options))));\n}\n\nexport function rectY(data, options = {}) {\n if (!hasXY(options)) options = {...options, x: indexOf, y2: identity, interval: 1};\n return new Rect(data, maybeStackY(maybeTrivialIntervalX(maybeIdentityY(options))));\n}\n","\nimport {html, css} from 'lit';\nimport * as Plot from '@observablehq/plot';\n\n// Special Web Worker import for rollup-plugin-web-worker-loader\nimport HTDFitWorker from 'web-worker:./htd-fit-worker'; /* eslint-disable-line import/no-unresolved */\n\nimport DiscountableElement from '../discountable-element';\n\n/*\n HTDFit element\n <htd-fit>\n\n Attributes:\n interactive: true/false\n\n*/\nexport default class HTDFit extends DiscountableElement {\n static get properties() {\n return {\n };\n }\n\n constructor() {\n super();\n\n this.k = 0.05;\n\n this.choices = [];\n this.samples = null;\n\n this.working = false;\n this.queued = false;\n this.worker = new HTDFitWorker();\n\n this.worker.onmessage = (event) => {\n this.working = false;\n this.samples = event.data.samples;\n this.k = event.data.results.k;\n this.requestUpdate();\n\n this.dispatchEvent(new CustomEvent('htd-fit-update', {\n detail: {\n k: this.k,\n },\n bubbles: true,\n }));\n\n if (this.queued) {\n this.fit();\n }\n };\n\n this.fit();\n }\n\n fit() {\n if (!this.working) {\n this.worker.postMessage(this.choices);\n this.working = true;\n this.queued = false;\n } else {\n this.queued = true;\n }\n }\n\n clear() {\n this.choices = [];\n\n this.fit();\n }\n\n get(name = 'default') {\n const choice = this.choices.find((item) => {\n return (item.name === name);\n });\n\n return (choice === undefined) ? null : choice;\n }\n\n set(as, ds, al, dl, response, name = '', label = '') {\n const choice = this.choices.find((item) => {\n return (item.name === name);\n });\n if (choice === undefined) {\n this.choices.push({\n as: as,\n ds: ds,\n al: al,\n dl: dl,\n response: response,\n name: name,\n label: label,\n });\n } else {\n choice.as = as;\n choice.ds = ds;\n choice.al = al;\n choice.dl = dl;\n choice.response = response;\n choice.label = label;\n }\n\n this.fit();\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n /* :host {\n display: inline-block;\n } */\n\n figure {\n margin: 0.625rem;\n }\n\n figure h2 {\n margin: 0.25rem 0;\n\n font-size: 1.125rem;\n font-weight: 600;\n }\n\n .trace,\n .hist {\n display: inline-block;\n }\n `,\n ];\n }\n\n render() {\n return html`\n <div>\n <div>After ${this.choices.length} trials:</div>\n <div>Current:\n <var class=\"math-var k\">k</var> = ${this.k.toFixed(2)}\n </div>\n <div class=\"param\">\n <div class=\"trace k\"></div>\n <div class=\"hist k\"></div>\n </div>\n <div class=\"param\">\n <div class=\"trace luce\"></div>\n <div class=\"hist luce\"></div>\n </div>\n </div>\n `;\n }\n\n plotParam(param) {\n this.shadowRoot.querySelector(`.hist.${param}`).replaceChildren(\n Plot.plot({\n title: `Posterior of ${param}`,\n x: {label: `${param}`},\n width: 320,\n height: 240,\n style: 'font-size: 0.75rem; font-family: var(---font-family-base);',\n marks: [\n Plot.rectY(\n this.samples[param],\n Plot.binX({y: 'count'}, {x: Plot.identity}),\n ),\n ],\n }),\n );\n\n this.shadowRoot.querySelector(`.trace.${param}`).replaceChildren(\n Plot.plot({\n title: `Traceplot of ${param}`,\n x: {label: 'Samples'},\n y: {label: `${param}`},\n width: 320,\n height: 240,\n style: 'font-size: 0.75rem; font-family: var(---font-family-base);',\n marks: [\n Plot.lineY(\n this.samples[param],\n ),\n ],\n }),\n );\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n if (this.samples !== null) {\n this.plotParam('k');\n this.plotParam('luce');\n }\n }\n}\n\ncustomElements.define('htd-fit', HTDFit);\n","\nimport {html, css} from 'lit';\n\nimport DiscountableElement from '../discountable-element';\n\n/*\n ITCOption element\n <itc-option>\n\n Attributes:\n State\n Amount, Delay\n*/\nexport default class ITCOption extends DiscountableElement {\n static get properties() {\n return {\n state: {\n attribute: 'state',\n type: String,\n reflect: true,\n },\n\n a: {\n attribute: 'amount',\n type: Number,\n reflect: true,\n },\n d: {\n attribute: 'delay',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n this.states = ['choice', 'fixation', 'blank']; // Possible states\n this.state = 'choice'; // Current state\n\n this.a = 0;\n this.d = 0;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n \n width: 10rem;\n height: 10rem;\n }\n\n .holder {\n display: flex;\n \n flex-flow: column nowrap;\n\n align-items: center;\n justify-content: center;\n\n width: 100%;\n height: 100%;\n overflow: visible;\n \n\n background: var(---color-element-background);\n border: 2px solid var(---color-element-emphasis);\n border-radius: 50%;\n }\n\n .interactive,\n .static {\n font-size: 1.75rem;\n }\n\n .interactive {\n --decidables-spinner-font-size: 1.75rem;\n }\n\n .static {\n padding: 0 0.25rem;\n \n border-radius: var(---border-radius);\n }\n\n .amount {\n --decidables-spinner-prefix: \"$\";\n background-color: var(---color-a-light);\n }\n\n .amount.interactive {\n --decidables-spinner-input-width: 4rem;\n }\n\n .delay {\n background-color: var(---color-d-light);\n }\n \n .delay.interactive {\n --decidables-spinner-input-width: 6.75rem;\n --decidables-spinner-postfix: \"days\";\n --decidables-spinner-postfix-padding: 3.75rem;\n }\n `,\n ];\n }\n\n sendEvent() {\n this.dispatchEvent(new CustomEvent('itc-option-change', {\n detail: {\n a: this.a,\n d: this.d,\n },\n bubbles: true,\n }));\n }\n\n aInput(event) {\n this.a = parseFloat(event.target.value);\n this.sendEvent();\n }\n\n dInput(event) {\n this.d = parseFloat(event.target.value);\n this.sendEvent();\n }\n\n render() { /* eslint-disable-line class-methods-use-this */\n return html`\n <div class=\"holder\">\n ${(this.state === 'choice')\n ? this.interactive\n ? html`<decidables-spinner\n class=\"amount interactive\"\n ?disabled=${!this.interactive}\n step=\"1\"\n .value=\"${this.a}\"\n @input=${this.aInput.bind(this)}\n ></decidables-spinner>`\n : html`<div\n class=\"amount static\"\n >$${this.a}</div>`\n : ''\n }\n ${(this.state === 'choice')\n ? html`<div class=\"in\">in</div>`\n : ''\n }\n ${(this.state === 'choice')\n ? this.interactive\n ? html`<decidables-spinner\n class=\"delay interactive\"\n ?disabled=${!this.interactive}\n min=\"0\" \n step=\"1\"\n .value=\"${this.d}\"\n @input=${this.dInput.bind(this)}\n ></decidables-spinner>`\n : html`<div\n class=\"delay static\"\n >${this.d} days</div>`\n : ''\n }\n </div>\n `;\n }\n}\n\ncustomElements.define('itc-option', ITCOption);\n","\nimport {html, css} from 'lit';\n\nimport DiscountableElement from '../discountable-element';\nimport './itc-option';\n\n/*\n ITCChoice element\n <itc-choice>\n\n Attributes:\n*/\nexport default class ITCChoice extends DiscountableElement {\n static get properties() {\n return {\n state: {\n attribute: 'state',\n type: String,\n reflect: true,\n },\n\n as: {\n attribute: 'amount-ss',\n type: Number,\n reflect: true,\n },\n ds: {\n attribute: 'delay-ss',\n type: Number,\n reflect: true,\n },\n al: {\n attribute: 'amount-ll',\n type: Number,\n reflect: true,\n },\n dl: {\n attribute: 'delay-ll',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n this.states = ['choice', 'fixation', 'blank']; // Possible states\n this.state = 'choice'; // Current state\n\n this.as = 10;\n this.ds = 5;\n this.al = 40;\n this.dl = 30;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n }\n\n .holder {\n user-select: none;\n }\n\n .holder > * {\n vertical-align: middle;\n }\n\n .query {\n margin: 0 0.5rem;\n\n font-family: var(--font-family-code);\n font-size: 1.75rem;\n }\n\n itc-option {\n width: 10rem;\n height: 10rem;\n }\n `,\n ];\n }\n\n sendEvent() {\n this.dispatchEvent(new CustomEvent('itc-choice-change', {\n detail: {\n as: this.as,\n ds: this.ds,\n al: this.al,\n dl: this.dl,\n },\n bubbles: true,\n }));\n }\n\n ssChange(event) {\n this.as = parseFloat(event.detail.a);\n this.ds = parseFloat(event.detail.d);\n this.sendEvent();\n }\n\n llChange(event) {\n this.al = parseFloat(event.detail.a);\n this.dl = parseFloat(event.detail.d);\n this.sendEvent();\n }\n\n render() {\n return html`\n <div class=\"holder\">\n <itc-option \n state=${this.state}\n ?interactive=${this.interactive}\n amount=\"${this.as}\"\n delay=\"${this.ds}\"\n @itc-option-change=${this.ssChange.bind(this)}>\n </itc-option><span class=\"query\"\n >${(this.state === 'choice') ? '?' : (this.state === 'fixation') ? '+' : html`∙`}</span\n ><itc-option \n state=${this.state}\n ?interactive=${this.interactive}\n amount=\"${this.al}\"\n delay=\"${this.dl}\"\n @itc-option-change=${this.llChange.bind(this)}>\n </itc-option>\n </div>`;\n }\n}\n\ncustomElements.define('itc-choice', ITCChoice);\n","\nimport {html, css} from 'lit';\nimport * as d3 from 'd3';\n\nimport DiscountableElement from '../discountable-element';\nimport './itc-choice';\n\n/*\n ITCTask element\n <itc-task>\n\n Attributes:\n Dots; Coherence;\n # Direction, Speed, Lifetime\n*/\nexport default class ITCTask extends DiscountableElement {\n static get properties() {\n return {\n duration: {\n attribute: 'duration',\n type: Number,\n reflect: true,\n },\n iti: {\n attribute: 'iti',\n type: Number,\n reflect: true,\n },\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n running: {\n attribute: 'running',\n type: Boolean,\n reflect: true,\n },\n\n state: {\n attribute: false,\n type: String,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.duration = 2000; // Duration of stimulus in milliseconds\n this.iti = 2000; // Duration of inter-trial interval in milliseconds\n this.trials = 5; // Number of trials per block\n this.running = false; // Currently executing block of trials\n\n // Properties\n this.states = ['resetted', 'iti', 'stimulus', 'ended']; // Possible states of task\n this.state = 'resetted'; // Current state of task\n\n // Decision parameters\n this.range = {};\n this.range.as = {start: 10, stop: 20, step: 1}; // Amount SS\n this.range.ds = {start: 10, stop: 40, step: 1}; // Delay SS\n this.range.al = {start: 20, stop: 40, step: 1}; // Amount LL\n this.range.dl = {start: 50, stop: 80, step: 1}; // Delay LL\n\n this.range.as.values = d3.range(\n this.range.as.start,\n this.range.as.stop + 0.01,\n this.range.as.step,\n );\n this.range.ds.values = d3.range(\n this.range.ds.start,\n this.range.ds.stop + 0.01,\n this.range.ds.step,\n );\n this.range.al.values = d3.range(\n this.range.al.start,\n this.range.al.stop + 0.01,\n this.range.al.step,\n );\n this.range.dl.values = d3.range(\n this.range.dl.start,\n this.range.dl.stop + 0.01,\n this.range.dl.step,\n );\n\n // Private\n this.firstUpdate = true;\n\n this.as = 0;\n this.ds = 0;\n this.al = 0;\n this.dl = 0;\n\n this.trial = 0; // Count of current trial\n\n this.baseTime = 0; // Real time, in milliseconds, that the current block started\n this.pauseTime = 0; // Real time, in milliseconds, that block was paused at\n this.startTime = 0; // Virtual time, in milliseconds, that current stage of trial started\n this.lastTime = 0; // Virtual time, in milliseconds, of the most recent frame\n\n this.runner = undefined; // D3 Interval for frame timing\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n }\n `,\n ];\n }\n\n render() {\n return html`\n <div class=\"holder\">\n <itc-choice \n state=\"${(this.state === 'stimulus')\n ? 'choice'\n : (this.state === 'iti')\n ? 'fixation'\n : 'blank'}\"\n amount-ss=\"${this.as}\"\n delay-ss=\"${this.ds}\"\n amount-ll=\"${this.al}\"\n delay-ll=\"${this.dl}\">\n </itc-choice>\n </div>`;\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n // Start or stop trial block\n if (this.firstUpdate || changedProperties.has('running')) {\n if (this.running) {\n // (Re)Start\n if (this.pauseTime) {\n // Shift timeline forward as if paused time never happened\n this.baseTime += (d3.now() - this.pauseTime);\n this.pauseTime = 0;\n }\n this.runner = d3.interval(this.run.bind(this), 20); // FIXME??\n } else if (this.runner !== undefined) {\n // Pause\n this.runner.stop();\n this.pauseTime = d3.now();\n }\n }\n\n this.firstUpdate = false;\n }\n\n reset() {\n this.runner.stop();\n this.running = false;\n this.trial = 0;\n this.state = 'resetted';\n\n this.as = 0;\n this.ds = 0;\n this.al = 0;\n this.dl = 0;\n\n this.baseTime = 0;\n this.pauseTime = 0;\n this.startTime = 0;\n this.lastTime = 0;\n }\n\n run(/* elapsed */) {\n const realTime = d3.now();\n const currentTime = (this.baseTime) ? (realTime - this.baseTime) : 0;\n const elapsedTime = (this.baseTime) ? (currentTime - this.startTime) : 0;\n this.lastTime = currentTime;\n if (this.state === 'resetted') {\n // Start block with an ITI\n this.state = 'iti';\n this.baseTime = realTime;\n this.startTime = 0;\n this.dispatchEvent(new CustomEvent('itc-block-start', {\n detail: {\n trials: this.trials,\n },\n bubbles: true,\n }));\n } else if ((this.state === 'iti') && (elapsedTime >= this.iti)) {\n // Start new trial with a stimulus\n this.trial += 1;\n this.state = 'stimulus';\n this.startTime = currentTime;\n // Determine trial\n this.as = this.range.as.values[Math.floor(Math.random() * this.range.as.values.length)];\n this.ds = this.range.ds.values[Math.floor(Math.random() * this.range.ds.values.length)];\n this.al = this.range.al.values[Math.floor(Math.random() * this.range.al.values.length)];\n this.dl = this.range.dl.values[Math.floor(Math.random() * this.range.dl.values.length)];\n this.dispatchEvent(new CustomEvent('itc-trial-start', {\n detail: {\n trials: this.trials,\n duration: this.duration,\n iti: this.iti,\n trial: this.trial,\n as: this.as,\n ds: this.ds,\n al: this.al,\n dl: this.dl,\n },\n bubbles: true,\n }));\n } else if ((this.state === 'stimulus') && (elapsedTime >= this.duration)) {\n // Stimulus is over, end of trial\n this.dispatchEvent(new CustomEvent('itc-trial-end', {\n detail: {\n trials: this.trials,\n duration: this.duration,\n iti: this.iti,\n trial: this.trial,\n as: this.as,\n ds: this.ds,\n al: this.al,\n dl: this.dl,\n },\n bubbles: true,\n }));\n if (this.trial >= this.trials) {\n // End of block\n this.runner.stop();\n this.running = false;\n this.state = 'ended';\n this.baseTime = 0;\n this.pauseTime = 0;\n this.startTime = 0;\n this.lastTime = 0;\n this.dispatchEvent(new CustomEvent('itc-block-end', {\n detail: {\n trials: this.trial,\n },\n bubbles: true,\n }));\n } else {\n // ITI\n this.state = 'iti';\n this.startTime = currentTime;\n }\n }\n }\n}\n\ncustomElements.define('itc-task', ITCTask);\n","\nimport {html} from 'lit';\n\nimport '@decidables/decidables-elements/spinner';\nimport HTDMath from '@decidables/discountable-math';\n\nimport HTDEquation from './htd-equation';\n\n/*\n HTDEquationADK2V element\n <htd-equation-adk2v>\n\n Attributes:\n amount, delay, k, value;\n*/\nexport default class HTDEquationADK2V extends HTDEquation {\n static get properties() {\n return {\n a: {\n attribute: 'amount',\n type: Number,\n reflect: true,\n },\n d: {\n attribute: 'delay',\n type: Number,\n reflect: true,\n },\n k: {\n attribute: 'k',\n type: Number,\n reflect: true,\n },\n\n v: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n this.a = 100;\n this.d = 30;\n this.k = 0.05;\n this.alignState();\n }\n\n alignState() {\n this.v = HTDMath.adk2v(this.a, this.d, this.k);\n }\n\n sendEvent() {\n this.dispatchEvent(new CustomEvent('htd-equation-adk2v-change', {\n detail: {\n a: this.a,\n d: this.d,\n k: this.k,\n v: this.v,\n },\n bubbles: true,\n }));\n }\n\n aInput(event) {\n this.a = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n dInput(event) {\n this.d = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n kInput(event) {\n this.k = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n render() {\n this.alignState();\n let a;\n let d;\n let k;\n let v;\n if (this.numeric) {\n a = html`<decidables-spinner class=\"a bottom\" ?disabled=${!this.interactive} step=\"1\" .value=\"${this.a}\" @input=${this.aInput.bind(this)}>\n <var class=\"math-var\">A</var>\n </decidables-spinner>`;\n d = html`<decidables-spinner class=\"d bottom\" ?disabled=${!this.interactive} min=\"0\" step=\"1\" .value=\"${this.d}\" @input=${this.dInput.bind(this)}>\n <var class=\"math-var\">D</var>\n </decidables-spinner>`;\n k = html`<decidables-spinner class=\"k bottom\" ?disabled=${!this.interactive} min=\"0\" max=\"100\" step=\".001\" .value=\"${this.k}\" @input=${this.kInput.bind(this)}>\n <var class=\"math-var\">k</var>\n </decidables-spinner>`;\n v = html`<decidables-spinner class=\"v bottom\" disabled step=\".001\" .value=\"${+this.v.toFixed(3)}\">\n <var class=\"math-var\">V</var>\n </decidables-spinner>`;\n } else {\n a = html`<var class=\"math-var a\">A</var>`;\n d = html`<var class=\"math-var d\">D</var>`;\n k = html`<var class=\"math-var k\">k</var>`;\n v = html`<var class=\"math-var v\">V</var>`;\n }\n const equation = html`\n <tr>\n <td rowspan=\"2\">\n ${v}<span class=\"equals\">=</span>\n </td>\n <td class=\"underline\">\n ${a}\n </td>\n </tr>\n <tr>\n <td class=\"\">\n <span class=\"paren tight\">(</span>1<span class=\"plus\">+</span>${k}${d}<span class=\"paren tight\">)</span>\n </td>\n </tr>`;\n return html`\n <div class=\"holder\">\n <table class=\"equation\">\n <tbody>\n ${equation}\n </tbody>\n </table>\n </div>`;\n }\n}\n\ncustomElements.define('htd-equation-adk2v', HTDEquationADK2V);\n","\nimport {html, css} from 'lit';\n\nimport DiscountableElement from '../discountable-element';\n\n/*\n CPTExample Base Class - Not intended for instantiation!\n <sdt-example>\n*/\nexport default class HTDExample extends DiscountableElement {\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n ---border: var(--border, 1px solid var(---color-border));\n display: inline-block;\n\n margin-bottom: 1rem;\n }\n\n .holder {\n display: flex;\n }\n\n .body {\n display: flex;\n\n flex-wrap: wrap;\n\n align-items: center;\n justify-content: left;\n\n padding: 0.625rem;\n\n border: var(---border);\n border-radius: 0.25rem;\n }\n\n .body ::slotted(*) {\n margin: 0.625rem;\n }\n\n /* HACK: Sibling selectors not working with ::slotted */\n /* .body > rdk-task + sdt-response,\n ::slotted(rdk-task) + ::slotted(sdt-response) { */\n /* .body ::slotted(sdt-response) {\n margin-left: 0;\n } */\n\n /* HACK: Sibling selectors not working with ::slotted */\n /* .body > sdt-control + rdk-task,\n ::slotted(sdt-control) + ::slotted(rdk-task) {\n margin-left: 0;\n } */\n /* .body ::slotted(rdk-task) {\n margin-left: 0;\n } */\n `,\n ];\n }\n\n render() { /* eslint-disable-line class-methods-use-this */\n return html`\n <div class=\"holder\">\n <div class=\"body\">\n <slot>Empty!</slot>\n </div>\n </div>`;\n }\n}\n\ncustomElements.define('htd-example', HTDExample);\n","\n// import HTDMath from '@decidables/discountable-math';\n\nimport HTDExample from './htd-example';\n\n/*\n HTDExampleHuman element\n <htd-example-human>\n*/\nexport default class HTDExampleHuman extends HTDExample {\n firstUpdated(/* changedProperties */) {\n this.discountableControl = this.querySelector('discountable-control');\n this.itcTask = this.querySelector('itc-task');\n this.discountableResponse = this.querySelector('discountable-response');\n\n this.htdFit = this.querySelector('htd-fit');\n this.htdCurves = this.querySelector('htd-curves');\n\n if (this.discountableControl) {\n if (this.discountableControl.hasAttribute('trials')) {\n this.discountableControl.addEventListener('discountable-control-trials', (event) => {\n if (this.itcTask) {\n this.itcTask.trials = event.detail.trials;\n }\n\n if (this.discountableResponse) {\n this.discountableResponse.trialTotal = event.detail.trials;\n }\n });\n }\n\n if (this.discountableControl.hasAttribute('duration')) {\n this.discountableControl.addEventListener('discountable-control-duration', (event) => {\n if (this.itcTask) {\n this.itcTask.duration = event.detail.duration;\n this.itcTask.iti = event.detail.duration;\n }\n });\n }\n\n if (this.discountableControl.hasAttribute('run')) {\n this.discountableControl.addEventListener('discountable-control-run', (/* event */) => {\n if (this.itcTask) {\n this.itcTask.running = true;\n }\n });\n }\n\n if (this.discountableControl.hasAttribute('pause')) {\n this.discountableControl.addEventListener('discountable-control-pause', (/* event */) => {\n if (this.itcTask) {\n this.itcTask.running = false;\n }\n });\n }\n\n if (this.discountableControl.hasAttribute('reset')) {\n this.discountableControl.addEventListener('discountable-control-reset', (/* event */) => {\n if (this.itcTask) {\n this.itcTask.reset();\n }\n\n if (this.discountableResponse) {\n this.discountableResponse.reset();\n }\n\n if (this.htdFit) {\n this.htdFit.clear();\n }\n\n if (this.htdCurves) {\n this.htdCurves.clearOptions();\n }\n });\n }\n }\n\n if (this.itcTask) {\n if (this.discountableResponse) {\n this.discountableResponse.trialTotal = this.itcTask.trials;\n }\n\n this.itcTask.addEventListener('itc-trial-start', (event) => {\n if (this.discountableResponse) {\n this.discountableResponse.start(\n event.detail.as,\n event.detail.ds,\n event.detail.al,\n event.detail.dl,\n event.detail.trial,\n );\n }\n\n if (this.htdCurves) {\n this.htdCurves.setOption(\n event.detail.as,\n event.detail.ds,\n 'smaller-sooner',\n 's',\n );\n this.htdCurves.setOption(\n event.detail.al,\n event.detail.dl,\n 'larger-later',\n 'l',\n );\n }\n });\n\n this.itcTask.addEventListener('itc-trial-end', (/* event */) => {\n if (this.discountableResponse) {\n this.discountableResponse.stop();\n }\n\n if (this.htdCurves) {\n this.htdCurves.removeOption('smaller-sooner');\n this.htdCurves.removeOption('larger-later');\n }\n });\n\n this.itcTask.addEventListener('itc-block-end', (/* event */) => {\n if (this.discountableControl) {\n this.discountableControl.complete();\n }\n });\n }\n\n if (this.discountableResponse) {\n this.discountableResponse.addEventListener('discountable-response', (event) => {\n if (this.htdFit) {\n this.htdFit.set(\n event.detail.as,\n event.detail.ds,\n event.detail.al,\n event.detail.dl,\n event.detail.response,\n event.detail.trial.toString(),\n event.detail.trial.toString(),\n );\n }\n });\n }\n\n if (this.htdFit) {\n this.htdFit.addEventListener('htd-fit-update', (event) => {\n if (this.htdCurves) {\n this.htdCurves.k = event.detail.k;\n }\n });\n }\n }\n}\n\ncustomElements.define('htd-example-human', HTDExampleHuman);\n","\nimport HTDExample from './htd-example';\n\n/*\n HTDExampleInteractive element\n <htd-example-interactive>\n*/\nexport default class HTDExampleInteractive extends HTDExample {\n static get properties() {\n return {\n as: {\n attribute: 'amount-ss',\n type: Number,\n reflect: true,\n },\n ds: {\n attribute: 'delay-ss',\n type: Number,\n reflect: true,\n },\n al: {\n attribute: 'amount-ll',\n type: Number,\n reflect: true,\n },\n dl: {\n attribute: 'delay-ll',\n type: Number,\n reflect: true,\n },\n\n k: {\n attribute: 'k',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n this.as = 10;\n this.ds = 1;\n this.al = 50;\n this.dl = 40;\n this.k = 0.05;\n\n this.htdCalculation = null;\n this.htdCurves = null;\n this.itcChoice = null;\n }\n\n firstUpdated(/* changedProperties */) {\n this.htdCalculation = this.querySelector('htd-calculation');\n this.htdCurves = this.querySelector('htd-curves');\n this.itcChoice = this.querySelector('itc-choice');\n\n if (this.htdCalculation) {\n this.htdCalculation.addEventListener('htd-calculation-change', (event) => {\n this.as = event.detail.as;\n this.ds = event.detail.ds;\n this.al = event.detail.al;\n this.dl = event.detail.dl;\n\n this.k = event.detail.k;\n });\n }\n\n if (this.htdCurves) {\n this.htdCurves.addEventListener('htd-curves-change', (event) => {\n this.k = event.detail.k;\n if (event.detail.name === 'default') {\n this.as = event.detail.a;\n this.ds = event.detail.d;\n } else if (event.detail.name === 'larger-later') {\n this.al = event.detail.a;\n this.dl = event.detail.d;\n }\n });\n }\n\n if (this.itcChoice) {\n this.itcChoice.addEventListener('itc-choice-change', (event) => {\n this.as = event.detail.as;\n this.ds = event.detail.ds;\n this.al = event.detail.al;\n this.dl = event.detail.dl;\n });\n }\n\n this.requestUpdate();\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n if (this.htdCalculation) {\n this.htdCalculation.as = this.as;\n this.htdCalculation.ds = this.ds;\n this.htdCalculation.al = this.al;\n this.htdCalculation.dl = this.dl;\n\n this.htdCalculation.k = this.k;\n }\n\n if (this.htdCurves) {\n this.htdCurves.setOption(this.as, this.ds, 'default', 's');\n this.htdCurves.setOption(this.al, this.dl, 'larger-later', 'l');\n\n this.htdCurves.k = this.k;\n }\n\n if (this.itcChoice) {\n this.itcChoice.as = this.as;\n this.itcChoice.ds = this.ds;\n this.itcChoice.al = this.al;\n this.itcChoice.dl = this.dl;\n }\n }\n}\n\ncustomElements.define('htd-example-interactive', HTDExampleInteractive);\n","\nimport HTDMath from '@decidables/discountable-math';\n\nimport HTDExample from './htd-example';\n\n/*\n HTDExampleModel element\n <htd-example-model>\n*/\nexport default class HTDExampleModel extends HTDExample {\n static get properties() {\n return {\n k: {\n attribute: 'k',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n this.k = 0.2;\n\n this.discountableControl = null;\n this.discountableResponse = null;\n this.htdCalculation = null;\n this.htdCurves = null;\n this.itcTask = null;\n }\n\n firstUpdated(/* changedProperties */) {\n this.discountableControl = this.querySelector('discountable-control');\n this.discountableResponse = this.querySelector('discountable-response');\n this.htdCalculation = this.querySelector('htd-calculation');\n this.htdCurves = this.querySelector('htd-curves');\n this.itcTask = this.querySelector('itc-task');\n\n if (this.discountableControl) {\n if (this.discountableControl.hasAttribute('trials')) {\n this.discountableControl.addEventListener('discountable-control-trials', (event) => {\n if (this.itcTask) {\n this.itcTask.trials = event.detail.trials;\n }\n\n if (this.discountableResponse) {\n this.discountableResponse.trialTotal = event.detail.trials;\n }\n });\n }\n\n if (this.discountableControl.hasAttribute('duration')) {\n this.discountableControl.addEventListener('discountable-control-duration', (event) => {\n if (this.itcTask) {\n this.itcTask.duration = event.detail.duration;\n this.itcTask.iti = event.detail.duration;\n }\n });\n }\n\n if (this.discountableControl.hasAttribute('run')) {\n this.discountableControl.addEventListener('discountable-control-run', (/* event */) => {\n if (this.htdCurves) {\n this.htdCurves.resumeTrial();\n }\n\n if (this.itcTask) {\n this.itcTask.running = true;\n }\n });\n }\n\n if (this.discountableControl.hasAttribute('pause')) {\n this.discountableControl.addEventListener('discountable-control-pause', (/* event */) => {\n if (this.htdCurves) {\n this.htdCurves.pauseTrial();\n }\n\n if (this.itcTask) {\n this.itcTask.running = false;\n }\n });\n }\n\n if (this.discountableControl.hasAttribute('reset')) {\n this.discountableControl.addEventListener('discountable-control-reset', (/* event */) => {\n if (this.discountableResponse) {\n this.discountableResponse.reset();\n }\n\n if (this.htdCurves) {\n this.htdCurves.clearOptions();\n }\n\n if (this.itcTask) {\n this.itcTask.reset();\n }\n });\n }\n }\n\n if (this.htdCurves) {\n this.htdCurves.addEventListener('htd-curves-change', (event) => {\n this.k = event.detail.k;\n });\n\n this.htdCurves.addEventListener('discountable-response', (event) => {\n if (this.discountableResponse) {\n this.discountableResponse.responded(event.detail.response);\n }\n });\n }\n\n if (this.itcTask) {\n if (this.discountableResponse) {\n this.discountableResponse.trialTotal = this.itcTask.trials;\n }\n\n this.itcTask.addEventListener('itc-trial-start', (event) => {\n if (this.discountableResponse) {\n this.discountableResponse.start(\n event.detail.as,\n event.detail.ds,\n event.detail.al,\n event.detail.dl,\n event.detail.trial,\n );\n }\n\n const vs = HTDMath.adk2v(event.detail.as, event.detail.ds, this.k);\n const vl = HTDMath.adk2v(event.detail.al, event.detail.dl, this.k);\n\n const response = (vs > vl)\n ? 'first'\n : 'second';\n\n if (this.htdCurves) {\n this.htdCurves.trial(\n event.detail.as,\n event.detail.ds,\n event.detail.al,\n event.detail.dl,\n event.detail.trial,\n response,\n );\n }\n });\n\n this.itcTask.addEventListener('itc-trial-end', (/* event */) => {\n if (this.discountableResponse) {\n this.discountableResponse.stop();\n }\n });\n\n this.itcTask.addEventListener('itc-block-end', (/* event */) => {\n if (this.discountableControl) {\n this.discountableControl.complete();\n }\n });\n }\n\n this.requestUpdate();\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n if (this.htdCalculation) {\n this.htdCalculation.k = this.k;\n }\n\n if (this.htdCurves) {\n this.htdCurves.k = this.k;\n }\n }\n}\n\ncustomElements.define('htd-example-model', HTDExampleModel);\n"],"names":["t","window","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","n","WeakMap","o","constructor","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","r","i","css","reduce","S","adoptStyles","adoptedStyleSheets","map","forEach","document","createElement","litNonce","setAttribute","textContent","appendChild","c","cssRules","trustedTypes","h","emptyScript","reactiveElementPolyfillSupport","toAttribute","Boolean","Object","Array","JSON","stringify","fromAttribute","Number","parse","a","notEqual","l","attribute","type","String","converter","reflect","hasChanged","d","u","HTMLElement","_$Ei","Map","isUpdatePending","hasUpdated","_$El","_$Eu","addInitializer","finalize","push","observedAttributes","elementProperties","_$Ep","_$Ev","createProperty","state","noAccessor","hasOwnProperty","getPropertyDescriptor","defineProperty","requestUpdate","configurable","enumerable","getPropertyOptions","getPrototypeOf","properties","getOwnPropertyNames","getOwnPropertySymbols","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","_$E_","Promise","enableUpdating","_$AL","_$Eg","addController","_$ES","renderRoot","isConnected","hostConnected","call","removeController","splice","indexOf","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EO","removeAttribute","has","_$EC","_$Ej","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$Ek","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","slice","createMarker","createComment","v","iterator","f","_","m","p","RegExp","g","$","y","w","_$litType$","strings","values","x","b","T","for","A","E","C","createTreeWalker","P","V","getTemplateHtml","lastIndex","exec","test","startsWith","N","parts","el","currentNode","content","firstChild","remove","append","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","H","L","z","k","tagName","data","innerHTML","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","R","nextSibling","Z","_$AI","_$AH","_$AA","_$AB","options","_$Cp","startNode","endNode","_$AR","insertBefore","createTextNode","_$AC","_$AP","setConnected","element","fill","j","arguments","I","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","B","litHtmlPolyfillSupport","litHtmlVersions","D","render","renderBefore","_$litPart$","renderOptions","_$Do","finalized","_$litElement$","globalThis","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","ascending","NaN","descending","bisector","compare1","compare2","delta","zero","left","lo","hi","mid","right","center","number","numbers","valueof","undefined","value","ascendingBisect","bisectRight","count","array","empty","arrayify","from","reducer","cross","pop","lengths","product","some","cumsum","sum","Float64Array","variance","mean","deviation","sqrt","extent","min","max","Adder","_partials","_n","add","abs","valueOf","InternMap","entries","key","keyof","defineProperties","_intern","_key","intern_get","intern_set","delete","intern_delete","InternSet","identity","group","keys","nest","rollup","rollups","regroup","groups","permute","source","sort","F","TypeError","Uint32Array","ascendingDefined","compareDefined","compare","groupSort","ak","av","bk","bv","e10","e5","e2","tickSpec","start","stop","step","power","floor","log10","error","pow","factor","i1","i2","inc","round","ticks","tickIncrement","tickStep","thresholdSturges","ceil","log","LN2","maxIndex","minIndex","quickselect","Infinity","exp","sd","newLeft","newRight","swap","greatest","defined","maxValue","quantile","isNaN","i0","value0","subarray","value1","quantileSorted","thresholdFreedmanDiaconis","thresholdScott","cbrt","median","flatten","arrays","merge","counts","modeValue","modeCount","pairs","pairof","pair","previous","first","range","top","bottom","epsilon","translateX","translateY","scale","offset","bandwidth","entering","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","devicePixelRatio","transform","context","apply","domain","format","spacing","range0","range1","position","copy","selection","path","selectAll","tick","order","tickExit","exit","tickEnter","enter","attr","line","select","text","insert","transition","isFinite","filter","each","tickSize","axisBottom","axisLeft","noop","dispatch","Dispatch","parseTypenames","typenames","types","trim","on","typename","callback","that","args","concat","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","creatorInherit","ownerDocument","uri","namespaceURI","documentElement","createElementNS","creatorFixed","fullname","namespace","none","selector","querySelector","_groups","subgroups","subgroup","node","subnode","__data__","Selection","_parents","querySelectorAll","arrayAll","selectorAll","parents","matches","childMatcher","find","childFind","match","children","childFirst","firstElementChild","childrenFilter","matcher","_enter","sparse","EnterNode","parent","datum","_next","_parent","child","next","bindIndex","groupLength","dataLength","bindKey","nodeByKeyValue","keyValues","keyValue","bind","constant","arraylike","enterGroup","updateGroup","exitGroup","_exit","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","compareNode","sortgroups","sortgroup","size","attrRemove","attrRemoveNS","removeAttributeNS","attrConstant","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","getAttributeNS","defaultView","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","classList","ClassList","_node","_names","join","contains","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","lower","previousSibling","create","creator","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","deep","property","contextListener","listener","event","onRemove","__on","onAdd","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","root","selection_selection","selection_select","selection_selectAll","selectChild","selection_selectChild","selectChildren","selection_selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_join","selection_merge","selection_order","selection_sort","selection_call","nodes","selection_nodes","selection_node","selection_size","selection_empty","selection_each","selection_attr","selection_style","selection_property","classed","selection_classed","selection_text","html","selection_html","selection_raise","selection_lower","selection_append","selection_insert","selection_remove","selection_clone","selection_datum","selection_on","selection_dispatch","selection_iterator","sourceEvent","currentTarget","ownerSVGElement","createSVGPoint","point","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","clientLeft","clientTop","pageX","pageY","nonpassive","nonpassivecapture","nopropagation","stopImmediatePropagation","preventDefault","view","noevent","__noselect","MozUserSelect","yesdrag","noclick","setTimeout","DragEvent","subject","target","identifier","active","dx","dy","defaultFilter","ctrlKey","button","defaultContainer","defaultSubject","defaultTouchable","navigator","maxTouchPoints","container","touchable","gestures","listeners","mousedownx","mousedowny","mousemoving","touchending","clickDistance2","drag","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","nodrag","mouse","touches","changedTouches","clearTimeout","touch","pointer","p0","clickDistance","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","define","color","channels","assign","displayable","rgb","hex","color_formatHex","formatHex","formatHex8","color_formatHex8","formatHsl","color_formatHsl","formatRgb","color_formatRgb","hslConvert","parseInt","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","clamp","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","Hsl","hsl","m2","hsl2rgb","clamph","clampt","radians","PI","degrees","K","Xn","Yn","Zn","t0","t1","t2","t3","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab","lab2xyz","lrgb2rgb","hclConvert","atan2","hcl","cos","sin","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","cubehelix","cosh","sinh","basis","v0","v1","v2","v3","linear","exponential","hue","gamma","nogamma","rgbGamma","end","colorRgb","rgbSpline","spline","colors","rgbBasis","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","Date","setTime","reA","reB","one","bi","am","bm","bs","q","date","numberArray","object","rotate","skewX","scaleX","scaleY","atan","svgNode","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","baseVal","consolidate","matrix","interpolateTransform","pxComma","pxParen","degParen","translate","xa","ya","xb","yb","interpolateTransformCss","interpolateTransformSvg","colorHsl","colorLab","colorHcl","cubehelixGamma","colorCubehelix","cubehelixLong","piecewise","interpolate","interpolator","samples","frame","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","performance","now","setFrame","requestAnimationFrame","clearNow","Timer","_call","_time","timer","restart","delay","time","sleep","timerFlush","wake","nap","poke","clearInterval","setInterval","elapsed","total","_restart","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","id","timing","schedules","__transition","tween","duration","ease","init","schedule","self","interrupt","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","interpolateNumber","interpolateRgb","interpolateString","string00","string1","interpolate0","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","every","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","resolve","cancel","selection_prototype","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_ease","transition_easeVarying","transition_end","cubicOut","cubicInOut","defaultTiming","easeCubicInOut","selection_interrupt","selection_transition","pi","tau","tauEpsilon","appendRound","digits","Path","_x0","_y0","_x1","_y1","_append","moveTo","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","cw","da","pathRound","toLocaleString","replace","formatDecimalParts","toExponential","coefficient","grouping","thousands","width","substring","numerals","re","formatSpecifier","specifier","FormatSpecifier","align","sign","symbol","comma","precision","out","prefixExponent","exponent","%","toFixed","formatDecimal","toPrecision","formatRounded","formatPrefixAuto","toUpperCase","prefixes","locale","formatGroup","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","charCodeAt","padding","formatPrefix","defaultLocale","formatLocale","epsilon2","halfPi","quarterPi","asin","streamGeometry","geometry","stream","streamGeometryType","streamObjectType","Feature","FeatureCollection","features","Sphere","sphere","Point","coordinates","MultiPoint","LineString","streamLine","MultiLineString","Polygon","streamPolygon","MultiPolygon","GeometryCollection","geometries","closed","coordinate","lineStart","lineEnd","polygonStart","polygonEnd","spherical","cartesian","lambda","phi","cosPhi","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","cartesianNormalizeInPlace","compose","invert","rotationIdentity","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","forward","circleStream","radius","direction","cosRadius","sinRadius","circleRadius","lines","rejoin","shift","result","Intersection","points","other","entry","segments","compareIntersection","startInside","clip","segment","p1","pointEqual","link","current","isSubject","longitude","polygon","sinPhi","normal","angle","winding","ring","point0","lambda0","phi0","sinPhi0","cosPhi0","lambda1","sinPhi1","cosPhi1","point1","phi1","absDelta","antimeridian","intersection","phiArc","pointVisible","clipLine","sink","ringBuffer","clipBuffer","ringSink","polygonStarted","pointRing","ringStart","ringEnd","polygonContains","clipRejoin","pointLine","clean","ringSegments","validSegment","clipAntimeridianLine","clipAntimeridianInterpolate","sign0","sign1","clipAntimeridianIntersect","sinLambda0Lambda1","to","cr","smallRadius","notHemisphere","visible","c0","v00","point2","code","intersect","two","pa","pb","n1","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_","clipStream","polygonInside","b0","b1","cleanInside","linePoint","areaSum","areaRingSum","x00","y00","areaStream","areaRingStart","areaRingEnd","area","areaPointFirst","areaPoint","boundsStream","boundsPoint","bounds","X0","Y0","Z0","X1","Y1","Z1","X2","Y2","Z2","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroid","centroidPointFirstLine","centroidPointLine","centroidPointFirstRing","centroidPointRing","PathContext","_context","_radius","pointRadius","_line","_point","lengthSum","lengthRing","lengthStream","lengthPointFirst","lengthPoint","cacheDigits","cacheAppend","cacheRadius","cacheCircle","PathString","RangeError","projection","projectionStream","contextStream","pathArea","measure","pathMeasure","pathBounds","pathCentroid","methods","transformer","TransformStream","fit","fitBounds","clipExtent","geoStream","fitExtent","fitSize","fitWidth","fitHeight","height","maxDepth","cosMinDistance","project","delta2","resample","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","clipAntimeridian","postclip","projectResample","projectTransform","projectRotateTransform","cache","cacheStream","reset","clipAngle","clipCircle","recenter","reflectX","reflectY","conicProjection","parallels","cylindricalEqualAreaRaw","conicEqualAreaRaw","sy0","r0","r0y","conicEqualArea","multiplex","streams","lower48","albers","lower48Point","alaska","alaskaPoint","hawaii","hawaiiPoint","pointStream","albersUsa","azimuthalRaw","cx","cy","azimuthalInvert","sc","cc","azimuthalEqualAreaRaw","cxcy","azimuthalEquidistantRaw","mercatorRaw","mercatorProjection","reclip","tany","conicConformalRaw","cy0","fy","equirectangularRaw","conicEquidistantRaw","gy","nx","A1","A2","A3","A4","iterations","equalEarthRaw","l2","l6","fpy","gnomonicRaw","orthographicRaw","stereographicRaw","transverseMercatorRaw","initRange","initInterpolator","implicit","ordinal","unknown","band","ordinalRange","r1","paddingInner","paddingOuter","rescale","sequence","rangeRound","pointish","constants","unit","normalize","clamper","bimap","d0","d1","polymap","bisect","interpolateValue","untransform","output","input","interpolateRound","continuous","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","powp","base","logp","log2","loggish","logs","pows","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","thresholds","threshold","invertExtent","quantiles","timeInterval","floori","offseti","field","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","UTC","newDate","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","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","X","pad","pads","charAt","newParse","parseSpecifier","Q","W","U","utcFormat","utcParse","numberRe","percentRe","requoteRe","requote","dISO","getUTCMilliseconds","dow","UTCdISO","timeFormat","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","timeWeek","timeSecond","utcTime","utcWeek","utcSecond","k10","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","scheme","interpolateRgbBasis","ramp","interpolateCubehelixLong","warm","cool","ts","pi_1_3","pi_2_3","magma","inferno","plasma","withPath","shape","Linear","areaStart","areaEnd","curve","curveLinear","pointX","pointY","defined0","buffer","Bump","_x","bumpX","bumpY","sqrt3","draw","tan30","tan30_2","ka","kr","kx","ky","symbolsFill","circle","diamond","square","star","triangle","wye","symbolsStroke","plus","times","triangle2","asterisk","square2","diamond2","Basis","BasisClosed","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bundle","beta","_basis","_beta","_y","custom","bundle","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","slope3","h0","h1","s0","s1","slope2","MonotoneX","_t0","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","px","controlPoints","py","Step","_t","stepBefore","stepAfter","Transform","applyX","applyY","location","invertX","invertY","rescaleX","rescaleY","DecidablesElement","getComputedStyleValue","changedProperties","d3","greys","light75","light50","light25","dark25","dark50","dark75","shadows","elevations","baselineColor","baselineColorString","inverseBaselineColor","inverseBaselineColorString","opacityUmbra","opacityPenumbra","opacityAmbient","opacityBoost","mapUmbra","mapPenumbra","mapAmbient","cssBoxShadow","elevation","umbraO","penumbraO","ambientO","umbraC","penumbraC","ambientC","umbraM","penumbraM","ambientM","umbraS","penumbraS","ambientS","svgDefs","filters","svgFilters","unsafeCSS","DecidablesButton","disabled","customElements","DecidablesSlider","changed","inputted","ifDefined","DecidablesSpinner","DecidablesSwitch","checked","DecidablesToggle","DecidablesToggleOption","DecidablesMixinResizeable","superClass","rem","getDimensions","parseFloat","resizeObserver","ResizeObserver","observe","unobserve","DiscountableElement","interactive","chosen","better","worse","even","correct","nr","lights","acc","cur","darks","DiscountableControl","trials","run","pause","atribute","states","setTrials","setDuration","doRun","doPause","doReset","complete","DiscountableResponse","trial","feedback","trialCount","trialTotal","as","ds","al","dl","responses","response","responded","ATTRIBUTE","CHILD","PROPERTY","BOOLEAN_ATTRIBUTE","EVENT","ELEMENT","_$Ct","_$Ci","notifyChildrenConnectedChanged","_$AQ","reconnected","disconnected","setValue","WeakSet","animationFrame","diffOp","quotientOp","overrideFrom","easing","shouldLog","createFinished","resolveFinished","finished","getController","isDisabled","optionsOrCallback","defaultOptions","keyframeOptions","guard","isAnimating","skipInitial","isHostRendered","prepare","O","calculateKeyframes","inId","in","zIndex","animate","resetStyles","commitStyles","webAnimation","stabilizeOut","onStart","didFinish","onComplete","animatingProperties","frames","then","transformOrigin","onFrames","playState","pending","console","HTDMath","adk2v","adv2k","HTDEquation","numeric","HTDCalculation","alignState","vs","vl","vDiff","sendEvent","asInput","dsInput","alInput","dlInput","kInput","fadeIn","equation","HTDCurves","label","firstUpdate","discount","option","removeOption","setOption","pauseTrial","lineNew","paused","resumeTrial","clearOptions","getOption","myOption","new","hostWidth","hostHeight","hostAspectRatio","elementAspectRatio","elementWidth","elementHeight","margin","transitionDuration","xScale","yScale","svgUpdate","svgEnter","svgMerge","plotEnter","plotMerge","underlayerEnter","underlayerMerge","scaleXMerge","scaleXTransition","titleXEnter","scaleYTransition","titleYEnter","contentMerge","optionUpdate","optionEnter","getTotalLength","pointEnter","optionMerge","dragD","dragV","includes","keyK","shiftKey","keyD","keyA","elements","interpolateA","interpolateD","descendingDefined","nonempty","finite","positive","negative","fallback","hours","minutes","seconds","milliseconds","padStart","durations","timeIntervals","utcIntervals","intervalDuration","intervalType","formatIntervals","parseInterval","intervals","period","maybeTimeInterval","maybeUtcInterval","generalizeTimeInterval","formatTimeInterval","anchor","template","getTimeTemplate","formatConditional","f1","f2","inferTimeFormat","dates","maxStep","format1","format2","orderof","TypedArray","Uint8Array","objectToString","reindex","valueType","maybeTypedMap","maybeTypedArrayify","maybeTake","take","floater","coerceNumber","singleton","yes","percentile","coerceNumbers","coerceDates","coerceDate","isoParse","maybeColorChannel","defaultValue","isColor","maybeNumberChannel","maybeKeyword","allowed","keyword","hasX","hasY","hasXY","isObject","isScaleOptions","isOptions","isDomainSort","channel","maybeZero","x3","maybeTuple","maybeZ","stroke","maybeInput","column","labelof","maybeColumn","isTemporal","maybeApplyInterval","maybeIntervalTransform","maybeInterval","isInteger","rangei","maybeRangeInterval","maybeNiceInterval","isTimeInterval","isInterval","maybeValue","numberChannel","isIterable","isTextual","isOrdinal","isTemporalString","isNumericString","isNumeric","isEvery","is","namedColors","isOpacity","isNoneish","isNone","isRound","maybeAnchor","maybeFrameAnchor","last","rest","defaults","things","warn","fromEntries","thing","maybeNamed","registry","isPosition","kind","hasNumericRange","sqrt4_3","symbolHexagon","rx","ry","hy","symbols","symbolAsterisk","symbolCircle","symbolCross","symbolDiamond","symbolDiamond2","symbolPlus","symbolSquare","symbolSquare2","symbolStar","symbolTimes","symbolTriangle","symbolTriangle2","symbolWye","isSymbolObject","isSymbol","maybeSymbol","basic","initializer","filterTransform","composeTransform","sortTransform","reverseTransform","composeInitializer","facets","plotOptions","sortData","sortValue","compareData","negate","compareValue","hasOutput","outputs","maybeOutputs","inputs","asOutput","maybeOutput","title","reduceTitle","href","reduceFirst","nullOutput","asEvaluator","maybeEvaluator","evaluator","setOutput","initialize","scope","asReduce","maybeReduce","reduceCount","reduceIndex","maybeGroup","grouper","invalidReduce","reduceReduce","reduceFunction","reduceAccessor","reduceLast","reduceIdentity","reduceDistinct","reduceSum","reduceProportion","reduceMaybeTemporalAccessor","maybeSubgroup","maybeSort","createChannel","hint","inferChannelScale","createChannels","valueObject","scales","scaleName","channelDomain","facetChannels","defaultOrder","defaultReverse","defaultReduce","limit","defaultLimit","descendingGroup","ascendingGroup","maybeOrder","reindexFacetChannel","findScaleChannel","XV","YV","difference","originalFacets","original","V1","V2","vi","k1","k2","alias","getSource","memoize1","compute","cacheValue","cacheKeys","numberFormat","Intl","NumberFormat","formatNumber","formatIsoDate","isoFormat","formatAuto","formatDefault","warnings","lastMessage","consumeWarnings","message","it","nextClipId","getClipId","mark","ariaLabel","variaLabel","ariaDescription","ariaHidden","fillOpacity","strokeWidth","strokeOpacity","strokeLinejoin","strokeLinecap","strokeMiterlimit","strokeDasharray","strokeDashoffset","mixBlendMode","imageFilter","paintOrder","pointerEvents","shapeRendering","cariaLabel","defaultFill","defaultFillOpacity","defaultStroke","defaultStrokeOpacity","defaultStrokeWidth","defaultStrokeLinecap","defaultStrokeLinejoin","defaultStrokeMiterlimit","defaultPaintOrder","vfill","cfill","vfillOpacity","cfillOpacity","vstroke","cstroke","vstrokeOpacity","cstrokeOpacity","vopacity","copacity","vstrokeWidth","cstrokeWidth","impliedString","impliedNumber","optional","applyTitle","applyText","applyTitleGroup","applyTextGroup","applyChannelStyles","tip","AL","FO","SO","SW","applyAttr","applyHref","applyGroupedChannelStyles","groupAesthetics","groupZ","G","groupIndex","Ag","Gg","maybeClip","applyClip","dimensions","clipUrl","marginLeft","marginRight","marginTop","marginBottom","geoPath","applyIndirectStyles","pointerSticky","applyDirectStyles","applyStyle","applyTransform","tx","ty","impliedValue","validClassName","maybeClassName","applyInlineStyles","applyFrameAnchor","frameAnchor","createContext","defaultAspectRatio","createProjection","inset","globalInset","insetTop","insetRight","insetBottom","insetLeft","namedProjection","maybePostClip","geoTransform","scaleProjection","geoAlbersUsa","geoAlbers","geoAzimuthalEqualArea","geoAzimuthalEquidistant","geoConicConformal","geoConicEqualArea","geoConicEquidistant","geoEqualEarth","geoEquirectangular","geoGnomonic","geoMercator","geoOrthographic","geoStereographic","geoTransverseMercator","geoClipRectangle","aspectRatio","Y","hasProjection","projectionAspectRatio","getGeometryChannels","categoricalSchemes","schemeAccent","schemeCategory10","schemeDark2","schemePaired","schemePastel1","schemePastel2","schemeSet1","schemeSet2","schemeSet3","schemeTableau10","isCategoricalScheme","ordinalSchemes","scheme11","schemeBrBG","interpolateBrBG","schemePRGn","interpolatePRGn","schemePiYG","interpolatePiYG","schemePuOr","interpolatePuOr","schemeRdBu","interpolateRdBu","schemeRdGy","interpolateRdGy","schemeRdYlBu","interpolateRdYlBu","schemeRdYlGn","interpolateRdYlGn","schemeSpectral","interpolateSpectral","scheme11r","scheme9","schemeBlues","interpolateBlues","schemeGreens","interpolateGreens","schemeGreys","interpolateGreys","schemeOranges","interpolateOranges","schemePurples","interpolatePurples","schemeReds","interpolateReds","schemei","interpolateTurbo","interpolateViridis","interpolateMagma","interpolateInferno","interpolatePlasma","interpolateCividis","interpolateCubehelixDefault","interpolateWarm","interpolateCool","schemeBuGn","interpolateBuGn","schemeBuPu","interpolateBuPu","schemeGnBu","interpolateGnBu","schemeOrRd","interpolateOrRd","schemePuBu","interpolatePuBu","schemePuBuGn","interpolatePuBuGn","schemePuRd","interpolatePuRd","schemeRdPu","interpolateRdPu","schemeYlGn","interpolateYlGn","schemeYlGnBu","interpolateYlGnBu","schemeYlOrBr","interpolateYlOrBr","schemeYlOrRd","interpolateYlOrRd","schemeicyclical","interpolateRainbow","interpolateSinebow","quantize","ordinalScheme","maybeBooleanRange","quantitativeSchemes","quantitativeScheme","divergingSchemes","isDivergingScheme","flip","interpolators","interpolateHsl","interpolateHcl","interpolateLab","maybeInterpolator","createScaleQ","inferAutoDomain","inferRadialRange","inferLengthRange","interpolatePiecewise","reverseof","maybeNice","createScaleLinear","scaleLinear","createScaleSqrt","createScalePow","scalePow","createScaleLog","inferLogDomain","scaleLog","createScaleSymlog","scaleSymlog","createScaleQuantile","inferQuantileDomain","scaleQuantile","createScaleThreshold","createScaleQuantize","isOrdered","scaleThreshold","createScaleIdentity","scaleIdentity","inferDomain","inferZeroDomain","h25","h50","createScaleD","pivot","symmetric","mindelta","maxdelta","createScaleDiverging","scaleDiverging","transformIdentity","createScaleDivergingSqrt","createScaleDivergingPow","scaleDivergingPow","createScaleDivergingLog","scaleDivergingLog","createScaleDivergingSymlog","scaleDivergingSymlog","createScaleT","createScaleTime","scaleTime","createScaleUtc","scaleUtc","ordinalImplicit","createScaleO","createScaleOrdinal","inferSymbolHint","inferSymbolRange","scaleImplicit","scaleOrdinal","createScalePoint","maybeRound","scalePoint","createScaleBand","scaleBand","inferHint","candidate","createScales","channelsByScale","globalLabel","globalInsetTop","globalInsetRight","globalInsetBottom","globalInsetLeft","facet","facetLabel","scaleOptions","createScale","inferScaleLabel","createScaleFunctions","descriptors","scaleFunctions","descriptor","exposeScale","autoScaleRange","fx","superdimensions","outerDimensions","autoScaleRangeX","autoScaleRangeY","subdimensions","innerDimensions","isOrdinalScale","inferred","facetMarginTop","facetMarginRight","facetMarginBottom","facetMarginLeft","piecewiseRange","autoScaleRound","isBandScale","roundError","isThresholdScale","inferScaleType","formatScaleType","coerceType","coerceSymbols","description","typeProjection","asOrdinalType","isCollapsed","coerceValues","exposeScales","createDimensions","marks","marginTopDefault","marginRightDefault","marginBottomDefault","marginLeftDefault","autoHeight","facetMargin","nfy","ar","nfx","far","lar","ny","ratio","aspectRatioLength","fxb","fyb","createFacets","fxDomain","fyDomain","recreateFacets","facetIndex","facetGroups","FX","FY","facetTranslator","facetExclude","ex","facetAnchors","facetAnchorTop","facetAnchorRight","facetAnchorBottom","facetAnchorLeft","and","facetAnchorTopEmpty","facetAnchorRightEmpty","facetAnchorBottomEmpty","facetAnchorLeftEmpty","facetAnchorEmpty","maybeFacetAnchor","facetAnchor","indexCache","facetIndexOf","facetFind","facetEmpty","facetFilter","Mark","extraChannels","maybeChannels","maybeTip","composeRender","plot","withTip","pointerK","maxRadius","getMarkState","sticky","roots","renders","renderIndex","faceted","facetState","facetStates","PX","PY","anchorX","anchorY","ii","ri","cancelAnimationFrame","ft","mt","replaceWith","dispatchValue","pointermove","pointerType","buttons","xp","yp","pointof","kpx","kpy","rj","pointerdown","pointerleave","pointerX","pointerY","inferFontVariant","legendRamp","fontVariant","className","tickAdjust","applyRange","canvas","context2","getContext","fillStyle","fillRect","toDataURL","thresholdFormat","markers","marker","markerStart","markerMid","markerEnd","maybeMarker","markerCircleFill","markerArrow","markerDot","markerCircleStroke","nextMarkerId","applyMarkers","applyMarkersColor","applyGroupedMarkers","strokeof","iriByMarkerColor","applyMarker","iriByColor","iri","maybeInsetX","maybeInset","maybeInsetY","inset1","inset2","maybeIntervalValue","maybeIntervalK","maybeInsetK","trivial","kv","D1","maybeIntervalMidK","maybeTrivialIntervalX","maybeIntervalX","maybeIntervalY","maybeIntervalMidX","maybeIntervalMidY","RuleX","RuleY","ruleX","maybeOptionalZero","ruleY","softHyphen","Text","textAnchor","lineAnchor","lineHeight","lineWidth","textOverflow","monospace","fontFamily","fontSize","fontStyle","fontWeight","vrotate","crotate","vfontSize","cfontSize","maybeFontSizeChannel","maybeTextOverflow","splitLines","splitter","clipper","TL","FS","applyIndirectTextStyles","applyMultilineText","tspan","textX","textY","fontSizes","lineWrap","maxWidth","widthof","wordStart","wordEnd","required","lineBreaks","defaultWidthMap","J","defaultWidth","readCharacter","isPictographic","monospaceWidth","clipStart","clipEnd","ellipsis","clipMiddle","cut","trimEnd","ei","trimStart","reCombiner","rePictographic","isSurrogatePair","isCombiner","isZeroWidthJoiner","isAscii","defaultRadius","wingRatio","shapeArrow","wing","shapeSpike","shapes","isShapeObject","maybeShape","Vector","cl","vr","vectorX","vectorY","maybeData","anchors","anchorFy","anchorFx","axisY","axisKy","axisFy","axisX","axisKx","axisFx","textStroke","textStrokeOpacity","textStrokeWidth","tickRotate","labelAnchor","labelArrow","labelOffset","maybeLabelArrow","axisTickKy","axisTextKy","labelOptions","cla","clo","formatAxisLabel","axisTickKx","axisTextKx","axisMark","shapeTickLeft","shapeTickRight","shapeTickBottom","shapeTickTop","inferTextChannel","gridY","gridKy","gridFy","gridX","gridKx","gridFx","gridDefaults","axisInitializer","_channels","initializeFacets","tickSpacing","hasTemporalDomain","inferTickCount","inclusiveRange","domainSet","initializedChannels","filterFacets","basicInitializer","inferTickFormat","inferScaleOrder","maybeScale","legendSwatches","legendItems","legendSymbols","vf","cf","cs","sf","ss","swatch","columns","swatchSize","swatchWidth","swatchHeight","swatches","extraStyle","item","div","legendRegistry","legendColor","legendOpacity","exposeLegends","legendOptions","legend","interpolateOpacity","createLegends","legends","lineDefaults","Frame","ignoreChannels","Tip","textPadding","pointerSize","pathFilter","previousAnchor","ox","oy","ee","sources","formatTitle","getSourceChannels","formatChannels","renderLine","labels","postrender","getBBox","fitLeft","fitRight","fitTop","fitBottom","lastChild","getPath","getLineOffset","getTextTranslate","maybeExpandPairedFormat","key1","key2","findIndex","formatLabel","formatPairLabel","formatPair","formatValue","l1","defaultLabel","subtitle","caption","flatMarks","inferTips","topFacetState","maybeTopFacet","facetStateByMark","maybeMarkFacet","addScaleChannels","axes","inferAxes","topFacetsIndex","facetsIndex","nonEmpty","scaleRegistry","stateByMark","applyScaleTransforms","scaleDescriptors","actualDimensions","figure","Event","newByScale","inferChannelScales","applyScaleTransform","newChannelsByScale","newScaleDescriptors","inheritScaleLabels","newExposedScales","newScales","facetDomains","facetTranslate","indexes","hasAttribute","figured","createTitleElement","createFigcaption","contents","tag","plotThis","markify","Render","gx","addScaleChannel","scaleChannels","derive","tips","tipOptions","grid","facetAxis","facetGrid","xAxis","xGrid","yAxis","yGrid","fxAxis","fxGrid","fyAxis","fyGrid","hasPositionChannel","hasAxis","maybeGrid","maybeAxis","axisType","primary","secondary","both","isBoth","axisOptions","lineOptions","gridType","gridOptions","isGridTicks","newScale","fxr","outerRange","fyr","curves","curveBasis","curveBasisClosed","curveBasisOpen","curveBundle","curveBumpX","curveBumpY","curveCardinal","curveCardinalClosed","curveCardinalOpen","curveCatmullRom","curveCatmullRomClosed","curveCatmullRomOpen","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","maybeCurve","maybeCurveAuto","curveAuto","binX","mergeOptions","binn","maybeBinValue","maybeDenseInterval","bin","maybeDenseIntervalX","reduceData","maybeBin","maybeBinOutputs","maybeBinReduce","maybeBinOutput","maybeBinEvaluator","BX1","setBX1","BX2","setBX2","BY1","setBY1","BY2","setBY2","gk","GK","setGK","cumulative","GZ","setGZ","GF","setGF","GS","setGS","groupFacets","groupData","bing","groupFacet","maybeThresholds","isTimeThresholds","bin1cn","bin1cp","bin1","defaultThresholds","thresholdAuto","maybeBinReduceFallback","reduceX","reduceX1","reduceX2","reduceY","reduceY1","reduceY2","EX","EY","ix","iy","mid1","maybeIdentityY","exclusiveFacets","overlaps","stackY","stackOptions","stack","maybeStackY","lengthy","setX","setY1","setY2","maybeOffset","facetstacks","stacks","yn","offsetExpand","offsetCenter","offsetWiggle","offsetZero","offsetCenterFacets","prev","Fi","Df","diff","Cf1","orderInsideOut","orderY","orderZ","orderSum","orderAppearance","orderAccessor","orderComparator","orderGiven","orderZDomain","sums","Kp","Kn","Line","sphereLine","shapeLine","lineY","Rect","rectY","HTDFit","choices","working","queued","worker","HTDFitWorker","onmessage","results","postMessage","clear","choice","plotParam","param","replaceChildren","Plot","ITCOption","aInput","dInput","ITCChoice","ssChange","llChange","ITCTask","iti","running","baseTime","pauseTime","startTime","lastTime","runner","realTime","currentTime","elapsedTime","HTDEquationADK2V","HTDExample","HTDExampleHuman","discountableControl","itcTask","discountableResponse","htdFit","htdCurves","HTDExampleInteractive","htdCalculation","itcChoice","HTDExampleModel"],"mappings":"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AK,CAAChsC,IAAI,CAAE,CAAA;AAC9F,6DAAA,EAA+DquC,GAAS,CAAC,IAAI,CAACrC,KAAK,CAACK,MAAM,CAAE,CAAA;AAC5F,iEAAA,EAAmEgC,GAAS,CAAC,IAAI,CAACrC,KAAK,CAACM,MAAM,CAAE,CAAA;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAK,CAAA,CAAA;EACH,GAAA;EACF;;ECjSe,MAAMgC,gBAAgB,SAAS1C,iBAAiB,CAAC;IAC9D,WAAW94D,UAAUA,GAAG;MACtB,OAAO;EACLy7D,MAAAA,QAAQ,EAAE;EACR19D,QAAAA,SAAS,EAAE,UAAU;EACrBC,QAAAA,IAAI,EAAEZ,OAAO;EACbe,QAAAA,OAAO,EAAE,IAAA;EACX,OAAA;OACD,CAAA;EACH,GAAA;EAEA/C,EAAAA,WAAWA,GAAG;EACZ,IAAA,KAAK,EAAE,CAAA;;EAEP;MACA,IAAI,CAACqgE,QAAQ,GAAG,KAAK,CAAA;EACvB,GAAA;IAEA,WAAWp7D,MAAMA,GAAG;EAClB,IAAA,OAAO,CACL,KAAK,CAACA,MAAM,EACZrE,GAAI,CAAA;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAA,CAAO,CACF,CAAA;EACH,GAAA;EAEAuO,EAAAA,MAAMA,GAAG;EACP,IAAA,OAAOgZ,GAAK,CAAA;AAChB,wBAA0B,EAAA,IAAI,CAACk4C,QAAS,CAAA;AACxC;AACA;AACA,IAAK,CAAA,CAAA;EACH,GAAA;EACF,CAAA;EAEAC,cAAc,CAAC5oC,MAAM,CAAC,mBAAmB,EAAE0oC,gBAAgB,CAAC;;;;;;;EC9E/C,MAAA19D,GAAA,GAAgBA,CAAA,IAAa,QAAAA,CAAA,GAAAA,CAAA,GAASxD,GAAA;;ECRpC,MAAMqhE,gBAAgB,SAAS7C,iBAAiB,CAAC;IAC9D,WAAW94D,UAAUA,GAAG;MACtB,OAAO;EACLy7D,MAAAA,QAAQ,EAAE;EACR19D,QAAAA,SAAS,EAAE,UAAU;EACrBC,QAAAA,IAAI,EAAEZ,OAAO;EACbe,QAAAA,OAAO,EAAE,IAAA;SACV;EACDyP,MAAAA,GAAG,EAAE;EACH7P,QAAAA,SAAS,EAAE,KAAK;EAChBC,QAAAA,IAAI,EAAEN,MAAM;EACZS,QAAAA,OAAO,EAAE,IAAA;SACV;EACDwP,MAAAA,GAAG,EAAE;EACH5P,QAAAA,SAAS,EAAE,KAAK;EAChBC,QAAAA,IAAI,EAAEN,MAAM;EACZS,QAAAA,OAAO,EAAE,IAAA;SACV;EACDwS,MAAAA,IAAI,EAAE;EACJ5S,QAAAA,SAAS,EAAE,MAAM;EACjBC,QAAAA,IAAI,EAAEN,MAAM;EACZS,QAAAA,OAAO,EAAE,IAAA;SACV;EACDkO,MAAAA,KAAK,EAAE;EACLtO,QAAAA,SAAS,EAAE,OAAO;EAClBC,QAAAA,IAAI,EAAEN,MAAM;EACZS,QAAAA,OAAO,EAAE,IAAA;EACX,OAAA;OACD,CAAA;EACH,GAAA;EAEA/C,EAAAA,WAAWA,GAAG;EACZ,IAAA,KAAK,EAAE,CAAA;;EAEP;MACA,IAAI,CAACqgE,QAAQ,GAAG,KAAK,CAAA;MACrB,IAAI,CAAC7tD,GAAG,GAAGxB,SAAS,CAAA;MACpB,IAAI,CAACuB,GAAG,GAAGvB,SAAS,CAAA;MACpB,IAAI,CAACuE,IAAI,GAAGvE,SAAS,CAAA;MACrB,IAAI,CAACC,KAAK,GAAGD,SAAS,CAAA;EACxB,GAAA;IAEAwvD,OAAOA,CAACh7C,KAAK,EAAE;EACb,IAAA,IAAI,CAACvU,KAAK,GAAGuU,KAAK,CAACqF,MAAM,CAAC5Z,KAAK,CAAA;EAC/B,IAAA,IAAI,CAAC2U,aAAa,CAAC,IAAIE,WAAW,CAAC,QAAQ,EAAE;EAC3CK,MAAAA,MAAM,EAAE;UACNlV,KAAK,EAAE,IAAI,CAACA,KAAAA;SACb;EACDgV,MAAAA,OAAO,EAAE,IAAA;EACX,KAAC,CAAC,CAAC,CAAA;EACL,GAAA;IAEAw6C,QAAQA,CAACj7C,KAAK,EAAE;EACd,IAAA,IAAI,CAACvU,KAAK,GAAGuU,KAAK,CAACqF,MAAM,CAAC5Z,KAAK,CAAA;EACjC,GAAA;IAEA,WAAWhM,MAAMA,GAAG;EAClB,IAAA,OAAO,CACL,KAAK,CAACA,MAAM,EACZrE,GAAI,CAAA;AACV;AACA,qDAAA,EAAuDu/D,GAAS,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAE,CAAA;AACpG,qDAAA,EAAuDiB,GAAS,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAE,CAAA;AACpG,qDAAA,EAAuDiB,GAAS,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAE,CAAA;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAA,CAAO,CACF,CAAA;EACH,GAAA;EAEA/vD,EAAAA,MAAMA,GAAG;EACP,IAAA,OAAOgZ,GAAK,CAAA;AAChB;AACA;AACA;AACA;AACA,4CAAA,EAA8Cu4C,GAAS,CAAC,IAAI,CAACnuD,GAAG,CAAE,QAAOmuD,GAAS,CAAC,IAAI,CAACluD,GAAG,CAAE,CAAA,MAAA,EAAQkuD,GAAS,CAAC,IAAI,CAACnrD,IAAI,CAAE,CAAU,QAAA,EAAA,IAAI,CAACtE,KAAM,CAAA,SAAA,EAAW,IAAI,CAACuvD,OAAO,CAAClgD,IAAI,CAAC,IAAI,CAAE,CAAA,QAAA,EAAU,IAAI,CAACmgD,QAAQ,CAACngD,IAAI,CAAC,IAAI,CAAE,CAAA;AACrN;AACA,8BAAA,EAAgCogD,GAAS,CAAC,IAAI,CAACnuD,GAAG,CAAE,CAAA,KAAA,EAAOmuD,GAAS,CAAC,IAAI,CAACluD,GAAG,CAAE,SAAQkuD,GAAS,CAAC,IAAI,CAACnrD,IAAI,CAAE,CAAU,QAAA,EAAA,IAAI,CAACtE,KAAM,CAAA,QAAA,EAAU,IAAI,CAACwvD,QAAQ,CAACngD,IAAI,CAAC,IAAI,CAAE,CAAA;AACpK,IAAK,CAAA,CAAA;EACH,GAAA;EACF,CAAA;EAEAggD,cAAc,CAAC5oC,MAAM,CAAC,mBAAmB,EAAE6oC,gBAAgB,CAAC;;ECtU7C,MAAMI,iBAAiB,SAASjD,iBAAiB,CAAC;IAC/D,WAAW94D,UAAUA,GAAG;MACtB,OAAO;EACLy7D,MAAAA,QAAQ,EAAE;EACR19D,QAAAA,SAAS,EAAE,UAAU;EACrBC,QAAAA,IAAI,EAAEZ,OAAO;EACbe,QAAAA,OAAO,EAAE,IAAA;SACV;EACDyP,MAAAA,GAAG,EAAE;EACH7P,QAAAA,SAAS,EAAE,KAAK;EAChBC,QAAAA,IAAI,EAAEN,MAAM;EACZS,QAAAA,OAAO,EAAE,IAAA;SACV;EACDwP,MAAAA,GAAG,EAAE;EACH5P,QAAAA,SAAS,EAAE,KAAK;EAChBC,QAAAA,IAAI,EAAEN,MAAM;EACZS,QAAAA,OAAO,EAAE,IAAA;SACV;EACDwS,MAAAA,IAAI,EAAE;EACJ5S,QAAAA,SAAS,EAAE,MAAM;EACjBC,QAAAA,IAAI,EAAEN,MAAM;EACZS,QAAAA,OAAO,EAAE,IAAA;SACV;EACDkO,MAAAA,KAAK,EAAE;EACLtO,QAAAA,SAAS,EAAE,OAAO;EAClBC,QAAAA,IAAI,EAAEN,MAAM;EACZS,QAAAA,OAAO,EAAE,IAAA;EACX,OAAA;OACD,CAAA;EACH,GAAA;EAEA/C,EAAAA,WAAWA,GAAG;EACZ,IAAA,KAAK,EAAE,CAAA;;EAEP;MACA,IAAI,CAACqgE,QAAQ,GAAG,KAAK,CAAA;MACrB,IAAI,CAAC7tD,GAAG,GAAGxB,SAAS,CAAA;MACpB,IAAI,CAACuB,GAAG,GAAGvB,SAAS,CAAA;MACpB,IAAI,CAACuE,IAAI,GAAGvE,SAAS,CAAA;MACrB,IAAI,CAACC,KAAK,GAAGD,SAAS,CAAA;EACxB,GAAA;IAEAyvD,QAAQA,CAACj7C,KAAK,EAAE;EACd,IAAA,IAAI,CAACvU,KAAK,GAAGuU,KAAK,CAACqF,MAAM,CAAC5Z,KAAK,CAAA;EACjC,GAAA;IAEA,WAAWhM,MAAMA,GAAG;EAClB,IAAA,OAAO,CACL,KAAK,CAACA,MAAM,EACZrE,GAAI,CAAA;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAA,CAAO,CACF,CAAA;EACH,GAAA;EAEAuO,EAAAA,MAAMA,GAAG;EACP,IAAA,OAAOgZ,GAAK,CAAA;AAChB;AACA;AACA,yBAAA,EAA2B,IAAI,CAACk4C,QAAS,CAAqBK,mBAAAA,EAAAA,GAAS,CAAC,IAAI,CAACnuD,GAAG,CAAE,QAAOmuD,GAAS,CAAC,IAAI,CAACluD,GAAG,CAAE,CAAA,MAAA,EAAQkuD,GAAS,CAAC,IAAI,CAACnrD,IAAI,CAAE,CAAA,QAAA,EAAU,IAAI,CAACtE,KAAM,CAAU,QAAA,EAAA,IAAI,CAACwvD,QAAQ,CAACngD,IAAI,CAAC,IAAI,CAAE,CAAA;AAClM;AACA,IAAK,CAAA,CAAA;EACH,GAAA;EACF,CAAA;EAEAggD,cAAc,CAAC5oC,MAAM,CAAC,oBAAoB,EAAEipC,iBAAiB,CAAC;;EC9J/C,MAAMC,gBAAgB,SAASlD,iBAAiB,CAAC;IAC9D,WAAW94D,UAAUA,GAAG;MACtB,OAAO;EACLi8D,MAAAA,OAAO,EAAE;EACPl+D,QAAAA,SAAS,EAAE,SAAS;EACpBC,QAAAA,IAAI,EAAEZ,OAAO;EACbe,QAAAA,OAAO,EAAE,IAAA;SACV;EACDs9D,MAAAA,QAAQ,EAAE;EACR19D,QAAAA,SAAS,EAAE,UAAU;EACrBC,QAAAA,IAAI,EAAEZ,OAAO;EACbe,QAAAA,OAAO,EAAE,IAAA;EACX,OAAA;OACD,CAAA;EACH,GAAA;EAEA/C,EAAAA,WAAWA,GAAG;EACZ,IAAA,KAAK,EAAE,CAAA;;EAEP;MACA,IAAI,CAAC6gE,OAAO,GAAG,KAAK,CAAA;MACpB,IAAI,CAACR,QAAQ,GAAG,KAAK,CAAA;EACvB,GAAA;IAEAG,OAAOA,CAACh7C,KAAK,EAAE;EACb,IAAA,IAAI,CAACq7C,OAAO,GAAGr7C,KAAK,CAACqF,MAAM,CAACg2C,OAAO,CAAA;EACnC,IAAA,IAAI,CAACj7C,aAAa,CAAC,IAAIE,WAAW,CAAC,QAAQ,EAAE;EAC3CK,MAAAA,MAAM,EAAE;UACN06C,OAAO,EAAE,IAAI,CAACA,OAAAA;SACf;EACD56C,MAAAA,OAAO,EAAE,IAAA;EACX,KAAC,CAAC,CAAC,CAAA;EACL,GAAA;IAEA,WAAWhhB,MAAMA,GAAG;EAClB,IAAA,OAAO,CACL,KAAK,CAACA,MAAM,EACZrE,GAAI,CAAA;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAA,CAAO,CACF,CAAA;EACH,GAAA;EAEAuO,EAAAA,MAAMA,GAAG;EACP,IAAA,OAAOgZ,GAAK,CAAA;AAChB,kDAAA,EAAoD,IAAI,CAACzc,IAAK,UAAS,IAAI,CAACuF,KAAM,CAAY,UAAA,EAAA,IAAI,CAAC4vD,OAAQ,CAAA,SAAA,EAAW,IAAI,CAACL,OAAO,CAAClgD,IAAI,CAAC,IAAI,CAAE,CAAA;AAC9I;AACA;AACA;AACA,IAAK,CAAA,CAAA;EACH,GAAA;EACF,CAAA;EAEAggD,cAAc,CAAC5oC,MAAM,CAAC,0BAA0B,EAAEqpC,sBAAsB,CAAC;;ECjK1D,SAASC,yBAAyBA,CAACC,UAAU,EAAE;IAC5D,OAAO,cAAcA,UAAU,CAAC;MAC9B,WAAWr8D,UAAUA,GAAG;QACtB,OAAO;EACL4mC,QAAAA,KAAK,EAAE;EACL7oC,UAAAA,SAAS,EAAE,KAAK;EAChBC,UAAAA,IAAI,EAAEN,MAAM;EACZS,UAAAA,OAAO,EAAE,KAAA;WACV;EACD46C,QAAAA,MAAM,EAAE;EACNh7C,UAAAA,SAAS,EAAE,KAAK;EAChBC,UAAAA,IAAI,EAAEN,MAAM;EACZS,UAAAA,OAAO,EAAE,KAAA;WACV;EACDm+D,QAAAA,GAAG,EAAE;EACHv+D,UAAAA,SAAS,EAAE,KAAK;EAChBC,UAAAA,IAAI,EAAEN,MAAM;EACZS,UAAAA,OAAO,EAAE,KAAA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EACA;EACA;EACA;EACe,MAAMqkE,WAAW,SAAS7F,mBAAmB,CAAC;IAC3D,WAAW78D,UAAUA,GAAG;MACtB,OAAO;EACL2iE,MAAAA,OAAO,EAAE;EACP5kE,QAAAA,SAAS,EAAE,SAAS;EACpBC,QAAAA,IAAI,EAAEZ,OAAO;EACbe,QAAAA,OAAO,EAAE,IAAA;EACX,OAAA;OACD,CAAA;EACH,GAAA;EAEA/C,EAAAA,WAAWA,GAAG;EACZ,IAAA,KAAK,EAAE,CAAA;MACP,IAAI,CAACunE,OAAO,GAAG,KAAK,CAAA;EACtB,GAAA;IAEA,WAAWtiE,MAAMA,GAAG;EAClB,IAAA,OAAO,CACL,KAAK,CAACA,MAAM,EACZrE,GAAI,CAAA;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,333,343,344,345,346,347,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400]}
|