{"version":3,"sources":["node_modules/tslib/tslib.es6.js","../../../src/internal/util/isFunction.ts","../../src/internal/config.ts","../../../src/internal/util/hostReportError.ts","../../src/internal/Observer.ts","../../../src/internal/util/isArray.ts","../../../src/internal/util/isObject.ts","../../../src/internal/util/UnsubscriptionError.ts","../../src/internal/Subscription.ts","../../../src/internal/symbol/rxSubscriber.ts","../../src/internal/Subscriber.ts","../../../src/internal/util/canReportError.ts","../../../src/internal/util/toSubscriber.ts","../../../src/internal/symbol/observable.ts","../../../src/internal/util/identity.ts","../../../src/internal/util/pipe.ts","../../src/internal/Observable.ts","../../../src/internal/util/ObjectUnsubscribedError.ts","../../src/internal/SubjectSubscription.ts","../../src/internal/Subject.ts","../../../src/internal/operators/refCount.ts","../../../src/internal/observable/ConnectableObservable.ts","../../../src/internal/operators/groupBy.ts","../../src/internal/BehaviorSubject.ts","../../../src/internal/scheduler/Action.ts","../../../src/internal/scheduler/AsyncAction.ts","../../../src/internal/scheduler/QueueAction.ts","../../src/internal/Scheduler.ts","../../../src/internal/scheduler/AsyncScheduler.ts","../../../src/internal/scheduler/QueueScheduler.ts","../../../src/internal/scheduler/queue.ts","../../../src/internal/observable/empty.ts","../../../src/internal/util/isScheduler.ts","../../../src/internal/util/subscribeToArray.ts","../../../src/internal/scheduled/scheduleArray.ts","../../../src/internal/observable/fromArray.ts","../../../src/internal/observable/of.ts","../../../src/internal/observable/throwError.ts","../../src/internal/Notification.ts","../../../src/internal/operators/observeOn.ts","../../src/internal/ReplaySubject.ts","../../src/internal/AsyncSubject.ts","../../../src/internal/util/Immediate.ts","../../../src/internal/scheduler/AsapAction.ts","../../../src/internal/scheduler/AsapScheduler.ts","../../../src/internal/scheduler/asap.ts","../../../src/internal/scheduler/async.ts","../../../src/internal/scheduler/AnimationFrameAction.ts","../../../src/internal/scheduler/AnimationFrameScheduler.ts","../../../src/internal/scheduler/animationFrame.ts","../../../src/internal/scheduler/VirtualTimeScheduler.ts","../../../src/internal/util/noop.ts","../../../src/internal/util/isObservable.ts","../../../src/internal/util/ArgumentOutOfRangeError.ts","../../../src/internal/util/EmptyError.ts","../../../src/internal/util/TimeoutError.ts","../../../src/internal/operators/map.ts","../../../src/internal/observable/bindCallback.ts","../../../src/internal/observable/bindNodeCallback.ts","../../src/internal/OuterSubscriber.ts","../../src/internal/InnerSubscriber.ts","../../../src/internal/util/subscribeToPromise.ts","../../../src/internal/symbol/iterator.ts","../../../src/internal/util/subscribeToIterable.ts","../../../src/internal/util/subscribeToObservable.ts","../../../src/internal/util/isArrayLike.ts","../../../src/internal/util/isPromise.ts","../../../src/internal/util/subscribeTo.ts","../../../src/internal/util/subscribeToResult.ts","../../../src/internal/observable/combineLatest.ts","../../../src/internal/scheduled/scheduleObservable.ts","../../../src/internal/scheduled/schedulePromise.ts","../../../src/internal/scheduled/scheduleIterable.ts","../../../src/internal/util/isInteropObservable.ts","../../../src/internal/util/isIterable.ts","../../../src/internal/scheduled/scheduled.ts","../../../src/internal/observable/from.ts","../../src/internal/innerSubscribe.ts","../../../src/internal/operators/mergeMap.ts","../../../src/internal/operators/mergeAll.ts","../../../src/internal/operators/concatAll.ts","../../../src/internal/observable/concat.ts","../../../src/internal/observable/defer.ts","../../../src/internal/observable/forkJoin.ts","../../../src/internal/observable/fromEvent.ts","../../../src/internal/observable/fromEventPattern.ts","../../../src/internal/observable/generate.ts","../../../src/internal/observable/iif.ts","../../../src/internal/util/isNumeric.ts","../../../src/internal/observable/interval.ts","../../../src/internal/observable/merge.ts","../../../src/internal/observable/never.ts","../../../src/internal/observable/onErrorResumeNext.ts","../../../src/internal/observable/pairs.ts","../../../src/internal/util/not.ts","../../../src/internal/operators/filter.ts","../../../src/internal/observable/partition.ts","../../../src/internal/observable/race.ts","../../../src/internal/observable/range.ts","../../../src/internal/observable/timer.ts","../../../src/internal/observable/using.ts","../../../src/internal/observable/zip.ts","../src/index.ts","../../../src/internal/operators/audit.ts","../../../src/internal/operators/auditTime.ts","../../../src/internal/operators/buffer.ts","../../../src/internal/operators/bufferCount.ts","../../../src/internal/operators/bufferTime.ts","../../../src/internal/operators/bufferToggle.ts","../../../src/internal/operators/bufferWhen.ts","../../../src/internal/operators/catchError.ts","../../../src/internal/operators/combineAll.ts","../../../src/internal/operators/combineLatest.ts","../../../src/internal/operators/concat.ts","../../../src/internal/operators/concatMap.ts","../../../src/internal/operators/concatMapTo.ts","../../../src/internal/operators/count.ts","../../../src/internal/operators/debounce.ts","../../../src/internal/operators/debounceTime.ts","../../../src/internal/operators/defaultIfEmpty.ts","../../../src/internal/util/isDate.ts","../../../src/internal/operators/delay.ts","../../../src/internal/operators/delayWhen.ts","../../../src/internal/operators/dematerialize.ts","../../../src/internal/operators/distinct.ts","../../../src/internal/operators/distinctUntilChanged.ts","../../../src/internal/operators/distinctUntilKeyChanged.ts","../../../src/internal/operators/throwIfEmpty.ts","../../../src/internal/operators/take.ts","../../../src/internal/operators/elementAt.ts","../../../src/internal/operators/endWith.ts","../../../src/internal/operators/every.ts","../../../src/internal/operators/exhaust.ts","../../../src/internal/operators/exhaustMap.ts","../../../src/internal/operators/expand.ts","../../../src/internal/operators/finalize.ts","../../../src/internal/operators/find.ts","../../../src/internal/operators/findIndex.ts","../../../src/internal/operators/first.ts","../../../src/internal/operators/ignoreElements.ts","../../../src/internal/operators/isEmpty.ts","../../../src/internal/operators/takeLast.ts","../../../src/internal/operators/last.ts","../../../src/internal/operators/mapTo.ts","../../../src/internal/operators/materialize.ts","../../../src/internal/operators/scan.ts","../../../src/internal/operators/reduce.ts","../../../src/internal/operators/max.ts","../../../src/internal/operators/merge.ts","../../../src/internal/operators/mergeMapTo.ts","../../../src/internal/operators/mergeScan.ts","../../../src/internal/operators/min.ts","../../../src/internal/operators/multicast.ts","../../../src/internal/operators/onErrorResumeNext.ts","../../../src/internal/operators/pairwise.ts","../../../src/internal/operators/partition.ts","../../../src/internal/operators/pluck.ts","../../../src/internal/operators/publish.ts","../../../src/internal/operators/publishBehavior.ts","../../../src/internal/operators/publishLast.ts","../../../src/internal/operators/publishReplay.ts","../../../src/internal/operators/race.ts","../../../src/internal/operators/repeat.ts","../../../src/internal/operators/repeatWhen.ts","../../../src/internal/operators/retry.ts","../../../src/internal/operators/retryWhen.ts","../../../src/internal/operators/sample.ts","../../../src/internal/operators/sampleTime.ts","../../../src/internal/operators/sequenceEqual.ts","../../../src/internal/operators/share.ts","../../../src/internal/operators/shareReplay.ts","../../../src/internal/operators/single.ts","../../../src/internal/operators/skip.ts","../../../src/internal/operators/skipLast.ts","../../../src/internal/operators/skipUntil.ts","../../../src/internal/operators/skipWhile.ts","../../../src/internal/operators/startWith.ts","../../../src/internal/observable/SubscribeOnObservable.ts","../../../src/internal/operators/subscribeOn.ts","../../../src/internal/operators/switchMap.ts","../../../src/internal/operators/switchAll.ts","../../../src/internal/operators/switchMapTo.ts","../../../src/internal/operators/takeUntil.ts","../../../src/internal/operators/takeWhile.ts","../../../src/internal/operators/tap.ts","../../../src/internal/operators/throttle.ts","../../../src/internal/operators/throttleTime.ts","../../../src/internal/operators/timeInterval.ts","../../../src/internal/operators/timeoutWith.ts","../../../src/internal/operators/timeout.ts","../../../src/internal/operators/timestamp.ts","../../../src/internal/operators/toArray.ts","../../../src/internal/operators/window.ts","../../../src/internal/operators/windowCount.ts","../../../src/internal/operators/windowTime.ts","../../../src/internal/operators/windowToggle.ts","../../../src/internal/operators/windowWhen.ts","../../../src/internal/operators/withLatestFrom.ts","../../../src/internal/operators/zip.ts","../../../src/internal/operators/zipAll.ts","../../src/operators/index.ts","src/Graphic.ts","src/VideoScene.ts","src/text.ts","node_modules/d3/dist/package.js","node_modules/d3-array/src/ascending.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/descending.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/array.js","node_modules/d3-array/src/constant.js","node_modules/d3-array/src/ticks.js","node_modules/d3-array/src/nice.js","node_modules/d3-array/src/threshold/sturges.js","node_modules/d3-array/src/bin.js","node_modules/d3-array/src/max.js","node_modules/d3-array/src/min.js","node_modules/d3-array/src/quickselect.js","node_modules/d3-array/src/quantile.js","node_modules/d3-array/src/threshold/freedmanDiaconis.js","node_modules/d3-array/src/threshold/scott.js","node_modules/d3-array/src/maxIndex.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/minIndex.js","node_modules/d3-array/src/pairs.js","node_modules/d3-array/src/range.js","node_modules/d3-array/src/least.js","node_modules/d3-array/src/leastIndex.js","node_modules/d3-array/src/greatest.js","node_modules/d3-array/src/greatestIndex.js","node_modules/d3-array/src/scan.js","node_modules/d3-array/src/shuffle.js","node_modules/d3-array/src/sum.js","node_modules/d3-array/src/transpose.js","node_modules/d3-array/src/zip.js","node_modules/d3-array/src/every.js","node_modules/d3-array/src/some.js","node_modules/d3-array/src/filter.js","node_modules/d3-array/src/map.js","node_modules/d3-array/src/reduce.js","node_modules/d3-array/src/reverse.js","node_modules/d3-array/src/difference.js","node_modules/d3-array/src/disjoint.js","node_modules/d3-array/src/set.js","node_modules/d3-array/src/intersection.js","node_modules/d3-array/src/superset.js","node_modules/d3-array/src/subset.js","node_modules/d3-array/src/union.js","node_modules/d3-array/src/index.js","node_modules/d3-axis/src/array.js","node_modules/d3-axis/src/identity.js","node_modules/d3-axis/src/axis.js","node_modules/d3-axis/src/index.js","node_modules/d3-dispatch/src/dispatch.js","node_modules/d3-dispatch/src/index.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/create.js","node_modules/d3-selection/src/local.js","node_modules/d3-selection/src/sourceEvent.js","node_modules/d3-selection/src/pointer.js","node_modules/d3-selection/src/pointers.js","node_modules/d3-selection/src/selectAll.js","node_modules/d3-selection/src/index.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-drag/src/index.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-color/src/index.js","node_modules/d3-interpolate/src/basis.js","node_modules/d3-interpolate/src/basisClosed.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/discrete.js","node_modules/d3-interpolate/src/hue.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/zoom.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-interpolate/src/index.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-timer/src/index.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/quad.js","node_modules/d3-ease/src/cubic.js","node_modules/d3-ease/src/poly.js","node_modules/d3-ease/src/sin.js","node_modules/d3-ease/src/math.js","node_modules/d3-ease/src/exp.js","node_modules/d3-ease/src/circle.js","node_modules/d3-ease/src/bounce.js","node_modules/d3-ease/src/back.js","node_modules/d3-ease/src/elastic.js","node_modules/d3-ease/src/index.js","node_modules/d3-transition/src/selection/transition.js","node_modules/d3-transition/src/selection/index.js","node_modules/d3-transition/src/active.js","node_modules/d3-transition/src/index.js","node_modules/d3-brush/src/constant.js","node_modules/d3-brush/src/event.js","node_modules/d3-brush/src/noevent.js","node_modules/d3-brush/src/brush.js","node_modules/d3-brush/src/index.js","node_modules/d3-chord/src/math.js","node_modules/d3-chord/src/chord.js","node_modules/d3-path/src/path.js","node_modules/d3-path/src/index.js","node_modules/d3-chord/src/array.js","node_modules/d3-chord/src/constant.js","node_modules/d3-chord/src/ribbon.js","node_modules/d3-chord/src/index.js","node_modules/d3-contour/src/array.js","node_modules/d3-contour/src/ascending.js","node_modules/d3-contour/src/area.js","node_modules/d3-contour/src/constant.js","node_modules/d3-contour/src/contains.js","node_modules/d3-contour/src/noop.js","node_modules/d3-contour/src/contours.js","node_modules/d3-contour/src/blur.js","node_modules/d3-contour/src/density.js","node_modules/d3-contour/src/index.js","node_modules/delaunator/index.js","node_modules/d3-delaunay/src/path.js","node_modules/d3-delaunay/src/polygon.js","node_modules/d3-delaunay/src/voronoi.js","node_modules/d3-delaunay/src/delaunay.js","node_modules/d3-delaunay/src/index.js","node_modules/d3-dsv/src/dsv.js","node_modules/d3-dsv/src/csv.js","node_modules/d3-dsv/src/tsv.js","node_modules/d3-dsv/src/autoType.js","node_modules/d3-dsv/src/index.js","node_modules/d3-fetch/src/blob.js","node_modules/d3-fetch/src/buffer.js","node_modules/d3-fetch/src/text.js","node_modules/d3-fetch/src/dsv.js","node_modules/d3-fetch/src/image.js","node_modules/d3-fetch/src/json.js","node_modules/d3-fetch/src/xml.js","node_modules/d3-fetch/src/index.js","node_modules/d3-force/src/center.js","node_modules/d3-quadtree/src/add.js","node_modules/d3-quadtree/src/cover.js","node_modules/d3-quadtree/src/data.js","node_modules/d3-quadtree/src/extent.js","node_modules/d3-quadtree/src/quad.js","node_modules/d3-quadtree/src/find.js","node_modules/d3-quadtree/src/remove.js","node_modules/d3-quadtree/src/root.js","node_modules/d3-quadtree/src/size.js","node_modules/d3-quadtree/src/visit.js","node_modules/d3-quadtree/src/visitAfter.js","node_modules/d3-quadtree/src/x.js","node_modules/d3-quadtree/src/y.js","node_modules/d3-quadtree/src/quadtree.js","node_modules/d3-quadtree/src/index.js","node_modules/d3-force/src/constant.js","node_modules/d3-force/src/jiggle.js","node_modules/d3-force/src/collide.js","node_modules/d3-force/src/link.js","node_modules/d3-force/src/lcg.js","node_modules/d3-force/src/simulation.js","node_modules/d3-force/src/manyBody.js","node_modules/d3-force/src/radial.js","node_modules/d3-force/src/x.js","node_modules/d3-force/src/y.js","node_modules/d3-force/src/index.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-format/src/index.js","node_modules/d3-geo/src/math.js","node_modules/d3-geo/src/noop.js","node_modules/d3-geo/src/stream.js","node_modules/d3-geo/src/area.js","node_modules/d3-geo/src/cartesian.js","node_modules/d3-geo/src/bounds.js","node_modules/d3-geo/src/centroid.js","node_modules/d3-geo/src/constant.js","node_modules/d3-geo/src/compose.js","node_modules/d3-geo/src/rotation.js","node_modules/d3-geo/src/circle.js","node_modules/d3-geo/src/clip/buffer.js","node_modules/d3-geo/src/pointEqual.js","node_modules/d3-geo/src/clip/rejoin.js","node_modules/d3-geo/src/polygonContains.js","node_modules/d3-geo/src/clip/index.js","node_modules/d3-geo/src/clip/antimeridian.js","node_modules/d3-geo/src/clip/circle.js","node_modules/d3-geo/src/clip/line.js","node_modules/d3-geo/src/clip/rectangle.js","node_modules/d3-geo/src/clip/extent.js","node_modules/d3-geo/src/length.js","node_modules/d3-geo/src/distance.js","node_modules/d3-geo/src/contains.js","node_modules/d3-geo/src/graticule.js","node_modules/d3-geo/src/interpolate.js","node_modules/d3-geo/src/identity.js","node_modules/d3-geo/src/path/area.js","node_modules/d3-geo/src/path/bounds.js","node_modules/d3-geo/src/path/centroid.js","node_modules/d3-geo/src/path/context.js","node_modules/d3-geo/src/path/measure.js","node_modules/d3-geo/src/path/string.js","node_modules/d3-geo/src/path/index.js","node_modules/d3-geo/src/transform.js","node_modules/d3-geo/src/projection/fit.js","node_modules/d3-geo/src/projection/resample.js","node_modules/d3-geo/src/projection/index.js","node_modules/d3-geo/src/projection/conic.js","node_modules/d3-geo/src/projection/cylindricalEqualArea.js","node_modules/d3-geo/src/projection/conicEqualArea.js","node_modules/d3-geo/src/projection/albers.js","node_modules/d3-geo/src/projection/albersUsa.js","node_modules/d3-geo/src/projection/azimuthal.js","node_modules/d3-geo/src/projection/azimuthalEqualArea.js","node_modules/d3-geo/src/projection/azimuthalEquidistant.js","node_modules/d3-geo/src/projection/mercator.js","node_modules/d3-geo/src/projection/conicConformal.js","node_modules/d3-geo/src/projection/equirectangular.js","node_modules/d3-geo/src/projection/conicEquidistant.js","node_modules/d3-geo/src/projection/equalEarth.js","node_modules/d3-geo/src/projection/gnomonic.js","node_modules/d3-geo/src/projection/identity.js","node_modules/d3-geo/src/projection/naturalEarth1.js","node_modules/d3-geo/src/projection/orthographic.js","node_modules/d3-geo/src/projection/stereographic.js","node_modules/d3-geo/src/projection/transverseMercator.js","node_modules/d3-geo/src/index.js","node_modules/d3-hierarchy/src/cluster.js","node_modules/d3-hierarchy/src/hierarchy/count.js","node_modules/d3-hierarchy/src/hierarchy/each.js","node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","node_modules/d3-hierarchy/src/hierarchy/find.js","node_modules/d3-hierarchy/src/hierarchy/sum.js","node_modules/d3-hierarchy/src/hierarchy/sort.js","node_modules/d3-hierarchy/src/hierarchy/path.js","node_modules/d3-hierarchy/src/hierarchy/ancestors.js","node_modules/d3-hierarchy/src/hierarchy/descendants.js","node_modules/d3-hierarchy/src/hierarchy/leaves.js","node_modules/d3-hierarchy/src/hierarchy/links.js","node_modules/d3-hierarchy/src/hierarchy/iterator.js","node_modules/d3-hierarchy/src/hierarchy/index.js","node_modules/d3-hierarchy/src/array.js","node_modules/d3-hierarchy/src/pack/enclose.js","node_modules/d3-hierarchy/src/pack/siblings.js","node_modules/d3-hierarchy/src/accessors.js","node_modules/d3-hierarchy/src/constant.js","node_modules/d3-hierarchy/src/pack/index.js","node_modules/d3-hierarchy/src/treemap/round.js","node_modules/d3-hierarchy/src/treemap/dice.js","node_modules/d3-hierarchy/src/partition.js","node_modules/d3-hierarchy/src/stratify.js","node_modules/d3-hierarchy/src/tree.js","node_modules/d3-hierarchy/src/treemap/slice.js","node_modules/d3-hierarchy/src/treemap/squarify.js","node_modules/d3-hierarchy/src/treemap/index.js","node_modules/d3-hierarchy/src/treemap/binary.js","node_modules/d3-hierarchy/src/treemap/sliceDice.js","node_modules/d3-hierarchy/src/treemap/resquarify.js","node_modules/d3-hierarchy/src/index.js","node_modules/d3-polygon/src/area.js","node_modules/d3-polygon/src/centroid.js","node_modules/d3-polygon/src/cross.js","node_modules/d3-polygon/src/hull.js","node_modules/d3-polygon/src/contains.js","node_modules/d3-polygon/src/length.js","node_modules/d3-polygon/src/index.js","node_modules/d3-random/src/defaultSource.js","node_modules/d3-random/src/uniform.js","node_modules/d3-random/src/int.js","node_modules/d3-random/src/normal.js","node_modules/d3-random/src/logNormal.js","node_modules/d3-random/src/irwinHall.js","node_modules/d3-random/src/bates.js","node_modules/d3-random/src/exponential.js","node_modules/d3-random/src/pareto.js","node_modules/d3-random/src/bernoulli.js","node_modules/d3-random/src/geometric.js","node_modules/d3-random/src/gamma.js","node_modules/d3-random/src/beta.js","node_modules/d3-random/src/binomial.js","node_modules/d3-random/src/weibull.js","node_modules/d3-random/src/cauchy.js","node_modules/d3-random/src/logistic.js","node_modules/d3-random/src/poisson.js","node_modules/d3-random/src/lcg.js","node_modules/d3-random/src/index.js","node_modules/d3-scale/src/init.js","node_modules/d3-scale/src/ordinal.js","node_modules/d3-scale/src/band.js","node_modules/d3-scale/src/constant.js","node_modules/d3-scale/src/number.js","node_modules/d3-scale/src/continuous.js","node_modules/d3-scale/src/tickFormat.js","node_modules/d3-scale/src/linear.js","node_modules/d3-scale/src/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/radial.js","node_modules/d3-scale/src/quantile.js","node_modules/d3-scale/src/quantize.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/utcMinute.js","node_modules/d3-time/src/utcHour.js","node_modules/d3-time/src/utcDay.js","node_modules/d3-time/src/utcWeek.js","node_modules/d3-time/src/utcMonth.js","node_modules/d3-time/src/utcYear.js","node_modules/d3-time/src/index.js","node_modules/d3-time-format/src/locale.js","node_modules/d3-time-format/src/defaultLocale.js","node_modules/d3-time-format/src/isoFormat.js","node_modules/d3-time-format/src/isoParse.js","node_modules/d3-time-format/src/index.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/sequentialQuantile.js","node_modules/d3-scale/src/diverging.js","node_modules/d3-scale/src/index.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-scale-chromatic/src/index.js","node_modules/d3-shape/src/constant.js","node_modules/d3-shape/src/math.js","node_modules/d3-shape/src/arc.js","node_modules/d3-shape/src/array.js","node_modules/d3-shape/src/curve/linear.js","node_modules/d3-shape/src/point.js","node_modules/d3-shape/src/line.js","node_modules/d3-shape/src/area.js","node_modules/d3-shape/src/descending.js","node_modules/d3-shape/src/identity.js","node_modules/d3-shape/src/pie.js","node_modules/d3-shape/src/curve/radial.js","node_modules/d3-shape/src/lineRadial.js","node_modules/d3-shape/src/areaRadial.js","node_modules/d3-shape/src/pointRadial.js","node_modules/d3-shape/src/link/index.js","node_modules/d3-shape/src/symbol/circle.js","node_modules/d3-shape/src/symbol/cross.js","node_modules/d3-shape/src/symbol/diamond.js","node_modules/d3-shape/src/symbol/star.js","node_modules/d3-shape/src/symbol/square.js","node_modules/d3-shape/src/symbol/triangle.js","node_modules/d3-shape/src/symbol/wye.js","node_modules/d3-shape/src/symbol.js","node_modules/d3-shape/src/noop.js","node_modules/d3-shape/src/curve/basis.js","node_modules/d3-shape/src/curve/basisClosed.js","node_modules/d3-shape/src/curve/basisOpen.js","node_modules/d3-shape/src/curve/bundle.js","node_modules/d3-shape/src/curve/cardinal.js","node_modules/d3-shape/src/curve/cardinalClosed.js","node_modules/d3-shape/src/curve/cardinalOpen.js","node_modules/d3-shape/src/curve/catmullRom.js","node_modules/d3-shape/src/curve/catmullRomClosed.js","node_modules/d3-shape/src/curve/catmullRomOpen.js","node_modules/d3-shape/src/curve/linearClosed.js","node_modules/d3-shape/src/curve/monotone.js","node_modules/d3-shape/src/curve/natural.js","node_modules/d3-shape/src/curve/step.js","node_modules/d3-shape/src/offset/none.js","node_modules/d3-shape/src/order/none.js","node_modules/d3-shape/src/stack.js","node_modules/d3-shape/src/offset/expand.js","node_modules/d3-shape/src/offset/diverging.js","node_modules/d3-shape/src/offset/silhouette.js","node_modules/d3-shape/src/offset/wiggle.js","node_modules/d3-shape/src/order/appearance.js","node_modules/d3-shape/src/order/ascending.js","node_modules/d3-shape/src/order/descending.js","node_modules/d3-shape/src/order/insideOut.js","node_modules/d3-shape/src/order/reverse.js","node_modules/d3-shape/src/index.js","node_modules/d3-zoom/src/constant.js","node_modules/d3-zoom/src/event.js","node_modules/d3-zoom/src/transform.js","node_modules/d3-zoom/src/noevent.js","node_modules/d3-zoom/src/zoom.js","node_modules/d3-zoom/src/index.js","node_modules/d3/index.js","src/TriggerScene.ts","src/main.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","adopt","done","then","__generator","body","_","f","y","g","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","push","__createBinding","o","m","k","k2","undefined","__exportStar","exports","__values","__read","ar","error","__spread","concat","__spreadArrays","il","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","__esModule","default","__importDefault","__classPrivateFieldGet","receiver","privateMap","has","get","__classPrivateFieldSet","set","name","version","description","keywords","homepage","license","author","main","unpkg","jsdelivr","module","repository","files","scripts","devDependencies","dependencies","NaN","delta","compare","left","x","lo","hi","mid","ascendingComparator","center","right","numbers","values","valueof","index","bisectRight","ascendingBisect","ascending","bisectLeft","bisectCenter","number","count","array","empty","arrayify","from","reducer","reduce","cross","lengths","map","fill","product","some","cumsum","sum","Float64Array","variance","mean","deviation","Math","sqrt","min","max","Adder","_partials","_n","add","abs","valueOf","adder","InternMap","Map","entries","keyof","defineProperties","_intern","_key","intern_get","intern_set","delete","intern_delete","InternSet","Set","group","keys","nest","identity","groups","rollup","rollups","unique","indexes","Error","regroup","source","sort","F","Uint32Array","groupSort","ak","av","bk","bv","slice","e10","e5","e2","start","stop","reverse","ticks","tickIncrement","isFinite","ceil","floor","power","log","LN10","pow","tickStep","step0","step1","nice","prestep","LN2","domain","extent","threshold","sturges","histogram","data","isArray","xz","x0","x1","tz","tn","bins","bin","thresholds","quickselect","z","exp","sd","swap","quantile","i0","value0","subarray","quantileSorted","maxIndex","flatten","arrays","merge","minIndex","pairs","pairof","pair","previous","first","range","least","defined","minValue","element","leastIndex","greatest","maxValue","greatestIndex","scan","shuffler","random","i1","matrix","transpose","row","every","test","filter","mapper","difference","others","other","disjoint","is","intersection","out","superset","subset","union","top","bottom","epsilon","translateX","translateY","scale","offset","bandwidth","round","entering","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","transform","context","format","spacing","range0","range1","position","copy","selection","path","selectAll","tick","order","tickExit","exit","tickEnter","enter","append","attr","line","select","text","insert","transition","getAttribute","parentNode","remove","each","tickSize","axisTop","axisRight","axisBottom","axisLeft","dispatch","noop","Dispatch","parseTypenames","typenames","types","trim","split","type","callback","on","typename","T","that","args","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","creatorInherit","document","ownerDocument","uri","namespaceURI","documentElement","createElement","createElementNS","creatorFixed","fullname","none","selector","querySelector","_groups","subgroups","node","subnode","subgroup","__data__","Selection","_parents","querySelectorAll","arrayAll","parents","matches","childMatcher","find","childFind","match","children","childFirst","firstElementChild","childrenFilter","update","_enter","sparse","EnterNode","parent","datum","_next","_parent","appendChild","child","insertBefore","bindIndex","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","bind","enterGroup","updateGroup","_exit","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","compareNode","sortgroups","sortgroup","size","attrRemove","removeAttribute","attrRemoveNS","removeAttributeNS","attrConstant","setAttribute","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","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","contains","join","splice","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","deep","property","contextListener","listener","event","onRemove","__on","removeEventListener","options","onAdd","addEventListener","dispatchEvent","params","window","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","nextId","Local","toString","id","sourceEvent","currentTarget","ownerSVGElement","createSVGPoint","point","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","clientLeft","clientTop","pageX","pageY","events","touches","nopropagation","stopImmediatePropagation","preventDefault","view","noevent","__noselect","MozUserSelect","yesdrag","noclick","setTimeout","DragEvent","subject","identifier","active","dx","dy","enumerable","configurable","defaultFilter","ctrlKey","button","defaultContainer","defaultSubject","defaultTouchable","navigator","maxTouchPoints","mousedownx","mousedowny","mousemoving","touchending","container","touchable","gestures","listeners","clickDistance2","drag","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","mouse","changedTouches","clearTimeout","touch","p0","clickDistance","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","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","color_formatHex","rgb","formatHex","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","color","l","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","h","Hsl","hsl","hsl2rgb","m2","channels","displayable","radians","PI","degrees","K","Xn","Yn","Zn","t0","t1","t2","t3","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab","lab2xyz","lrgb2rgb","hclConvert","atan2","lch","hcl","cos","sin","A","B","C","D","E","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","cubehelix","cosh","sinh","basis","v0","v1","v2","v3","linear","exponential","hue","gamma","nogamma","rgbGamma","end","rgbSpline","spline","colors","rgbBasis","rgbBasisClosed","basisClosed","isNumberArray","ArrayBuffer","isView","DataView","numberArray","genericArray","nb","na","Date","setTime","reA","reB","zero","one","bi","am","bm","bs","lastIndex","date","object","rotate","skewX","scaleX","scaleY","atan","svgNode","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","parseSvg","baseVal","consolidate","interpolateTransform","parse","pxComma","pxParen","degParen","translate","xa","ya","xb","yb","interpolateTransformCss","interpolateTransformSvg","epsilon2","tanh","zoomRho","rho","rho2","rho4","zoom","p1","ux0","S","uy0","w0","ux1","uy1","w1","d2","d1","b0","b1","r0","r1","coshr0","u","duration","SQRT2","_1","_2","hslLong","hclLong","cubehelixGamma","cubehelixLong","piecewise","interpolate","I","interpolator","samples","taskHead","taskTail","frame","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","setFrame","requestAnimationFrame","clearNow","Timer","_call","_time","timer","delay","time","restart","timerFlush","wake","nap","poke","Infinity","sleep","clearInterval","setInterval","elapsed","total","_restart","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","timing","schedules","__transition","tween","ease","state","init","schedule","self","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","interpolateNumber","interpolateRgb","interpolateString","value1","string00","interpolate0","string1","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","cancel","interrupt","newId","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","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","exponent","polyIn","custom","polyOut","polyInOut","pi","halfPi","sinIn","sinOut","sinInOut","tpmt","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","b2","b3","b4","b5","b6","b7","b8","b9","bounceIn","bounceOut","bounceInOut","overshoot","backIn","backOut","backInOut","tau","amplitude","period","elasticIn","asin","elasticOut","elasticInOut","defaultTiming","easeCubicInOut","selection_interrupt","selection_transition","BrushEvent","mode","MODE_DRAG","MODE_SPACE","MODE_HANDLE","MODE_CENTER","number1","number2","X","handles","input","output","xy","Y","XY","cursors","overlay","w","nw","ne","se","sw","flipX","flipY","signsX","signsY","defaultExtent","hasAttribute","viewBox","width","height","__brush","brushSelection","dim","brushX","brush","brushY","handleSize","initialize","handle","redraw","started","emitter","clean","emit","Emitter","n0","n1","e0","e1","s0","s1","moving","lockX","lockY","metaKey","altKey","signX","signY","W","N","shifting","shiftKey","points","point0","pts","move","moved","ended","keydowned","keyCode","keyupped","cur","selection0","selection1","clear","starting","keyModifiers","compareValue","chord","chordTranspose","chordDirected","directed","padAngle","sortGroups","sortSubgroups","sortChords","groupSums","groupIndex","chords","subgroupIndex","startAngle","endAngle","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","y1","bezierCurveTo","x2","y2","arcTo","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","cw","da","defaultSource","defaultTarget","defaultRadius","radius","defaultStartAngle","defaultEndAngle","defaultPadAngle","defaultArrowheadRadius","ribbon","headRadius","sourceRadius","targetRadius","buffer","ap","argv","sr","sa0","sa1","tr","ta0","ta1","hr","tr2","ta2","ribbonArrow","ring","area","hole","ringContains","xi","yi","pj","xj","yj","segmentContains","collinear","within","cases","thresholdSturges","smooth","smoothLinear","contours","contour","polygons","holes","isorings","fragmentByStart","fragmentByEnd","forEach","stitch","startIndex","endIndex","unshift","polygon","coordinates","xt","yt","_0","blurX","blurY","defaultX","defaultY","defaultWeight","weight","density","values0","Float32Array","values1","wi","geometry","transformPolygon","transformRing","transformPoint","resize","cellSize","EPSILON","EDGE_STACK","Delaunator","getX","defaultGetX","getY","defaultGetY","coords","maxTriangles","_triangles","_halfedges","Int32Array","_hashSize","_hullPrev","_hullNext","_hullTri","_hullHash","_ids","_dists","hullPrev","hullNext","hullTri","hullHash","minX","minY","maxX","maxY","cx","cy","minDist","i2","dist","i0x","i0y","i1x","i1y","minRadius","circumradius","i2x","i2y","quicksort","hull","d0","triangles","halfedges","circumcenter","_cx","_cy","_hullStart","hullSize","_hashKey","trianglesLen","_addTriangle","xp","yp","_legalize","pseudoAngle","al","pr","pl","illegal","inCircle","hbl","_link","br","ax","ay","bx","by","orientIfSure","px","py","rx","ry","qx","qy","sign","ex","ey","fx","fy","bp","cp","cl","ids","dists","temp","tempDist","arr","tmp","Polygon","Voronoi","delaunay","xmin","ymin","xmax","ymax","_circumcenters","vectors","_init","circumcenters","x3","y3","ab","render","inedges","ti","tj","_renderSegment","h0","h1","_project","renderBounds","renderCell","_clip","cellPolygons","cell","cellPolygon","c0","_regioncode","c1","_clipSegment","_step","neighbors","ci","cj","loop","ai","li","aj","lj","_cell","V","_clipInfinite","_clipFinite","sx0","sy0","sx1","sy1","_edgecode","_edge","vx0","vy0","vxn","vyn","vx","vy","pointX","pointY","jitter","Delaunay","flatArray","flatIterable","_delaunator","_hullIndex","bounds","hypot","hullIndex","voronoi","dc","dt","renderHull","renderPoints","hullPolygon","renderTriangle","trianglePolygons","trianglePolygon","EOL","EOF","QUOTE","NEWLINE","RETURN","objectConverter","columns","Function","JSON","stringify","customConverter","inferColumns","rows","columnSet","column","pad","formatYear","year","formatDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","getUTCFullYear","getUTCMonth","getUTCDate","delimiter","reFormat","DELIMITER","charCodeAt","parseRows","eof","eol","token","replace","preformatBody","formatValue","formatRow","convert","formatBody","formatRows","csv","csvParse","csvParseRows","csvFormat","csvFormatBody","csvFormatRows","csvFormatRow","csvFormatValue","tsv","tsvParse","tsvParseRows","tsvFormat","tsvFormatBody","tsvFormatRows","tsvFormatRow","tsvFormatValue","autoType","fixtz","getHours","responseBlob","response","ok","status","statusText","blob","fetch","responseArrayBuffer","arrayBuffer","responseText","dsvParse","dsv","image","Image","onerror","onload","src","responseJson","json","parser","DOMParser","parseFromString","strength","force","sx","sy","_x","_y","cover","tree","xm","ym","_root","leaf","addAll","yz","visit","quads","Quad","retainer","removeAll","quadtree","Quadtree","leaf_copy","treeProto","tree_add","tree_addAll","tree_cover","tree_data","tree_extent","tree_find","tree_remove","tree_removeAll","tree_root","tree_size","tree_visit","visitAfter","tree_visitAfter","tree_x","tree_y","radii","iterations","ri","ri2","prepare","quad","rj","_nodes","_random","nodeById","nodeId","links","strengths","distances","bias","defaultStrength","link","distance","alpha","initializeStrength","initializeDistance","initialRadius","initialAngle","simulation","alphaMin","alphaDecay","alphaTarget","velocityDecay","forces","stepper","initializeNodes","angle","initializeForce","randomSource","closest","distanceMin2","distanceMax2","theta2","accumulate","distanceMin","distanceMax","theta","radiuses","toLocaleString","formatDecimalParts","toExponential","coefficient","grouping","thousands","substring","numerals","re","formatSpecifier","specifier","FormatSpecifier","align","symbol","comma","precision","prefixExponent","toFixed","formatDecimal","toPrecision","formatRounded","formatPrefixAuto","toUpperCase","prefixes","locale","Number","currencyPrefix","currency","currencySuffix","decimal","String","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","defaultLocale","quarterPi","haversin","streamGeometry","stream","streamGeometryType","streamObjectType","Feature","FeatureCollection","features","Sphere","sphere","Point","MultiPoint","LineString","streamLine","MultiLineString","streamPolygon","MultiPolygon","GeometryCollection","geometries","closed","coordinate","lineStart","lineEnd","polygonStart","polygonEnd","areaRingSum","lambda00","phi00","lambda0","cosPhi0","sinPhi0","areaSum","areaStream","areaRingStart","areaRingEnd","areaRing","areaPointFirst","areaPoint","lambda","phi","dLambda","sdLambda","adLambda","cosPhi","sinPhi","spherical","cartesian","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","cartesianNormalizeInPlace","phi0","lambda1","phi1","lambda2","deltaSum","ranges","boundsStream","boundsPoint","boundsLineStart","boundsLineEnd","boundsRingPoint","boundsRingStart","boundsRingEnd","linePoint","normal","equatorial","inflection","phii","lambdai","antimeridian","rangeCompare","rangeContains","feature","merged","deltaMax","W0","W1","X0","Y0","Z0","X1","Y1","Z1","X2","Y2","Z2","z0","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroidPointCartesian","centroidLinePointFirst","centroidLinePoint","centroidRingPointFirst","centroidRingPoint","cz","compose","invert","rotationIdentity","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","forward","circleStream","direction","cosRadius","sinRadius","circleRadius","circle","lines","rejoin","Intersection","entry","segments","compareIntersection","startInside","clip","segment","current","isSubject","longitude","winding","sinPhi1","cosPhi1","point1","absDelta","phiArc","pointVisible","clipLine","sink","ringBuffer","ringSink","polygonStarted","pointRing","ringStart","ringEnd","pointLine","ringSegments","validSegment","clipAntimeridianLine","clipAntimeridianInterpolate","sign0","sign1","clipAntimeridianIntersect","sinLambda0Lambda1","to","cr","smallRadius","notHemisphere","visible","intersect","two","pa","pb","n2","n2n2","n1n2","determinant","c2","n1xn2","uu","polar","meridian","q1","code","v00","point2","clipMax","clipMin","clipRectangle","corner","comparePoint","ca","cb","activeStream","x__","y__","v__","x_","y_","v_","bufferStream","clipStream","polygonInside","cleanInside","cache","cacheStream","lengthSum","lengthStream","lengthLineStart","lengthPointFirst","lengthLineEnd","lengthPoint","cosDelta","containsObjectType","containsGeometry","containsGeometryType","containsPoint","containsLine","containsPolygon","ao","bo","ringRadians","pointRadians","graticuleX","graticuleY","graticule","DX","DY","outline","extentMajor","extentMinor","stepMajor","stepMinor","graticule10","cy0","cy1","kx0","ky0","kx1","ky1","x00","y00","centroid","centroidPointFirstLine","centroidPointLine","centroidPointFirstRing","centroidPointRing","PathContext","_context","_radius","pointRadius","_line","_point","lengthRing","PathString","_string","_circle","projection","projectionStream","contextStream","pathArea","measure","pathMeasure","pathBounds","pathCentroid","methods","transformer","TransformStream","fit","fitBounds","clipExtent","fitExtent","fitSize","fitWidth","fitHeight","maxDepth","cosMinDistance","project","delta2","resample","resampleNone","resampleLineTo","depth","phi2","dx2","dy2","dz","a00","b00","c00","resampleStream","ringPoint","transformRadians","transformRotate","scaleTranslate","scaleTranslateRotate","cosAlpha","sinAlpha","fi","projectionMutator","projectAt","projectResample","projectTransform","projectRotateTransform","preclip","clipAntimeridian","postclip","recenter","reset","clipAngle","reflectX","reflectY","conicProjection","parallels","cylindricalEqualAreaRaw","conicEqualAreaRaw","r0y","multiplex","streams","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","albersUsa","azimuthalRaw","azimuthalInvert","sc","cc","azimuthalEqualAreaRaw","cxcy","azimuthalEquidistantRaw","mercatorRaw","mercatorProjection","reclip","tany","conicConformalRaw","equirectangularRaw","conicEquidistantRaw","gy","nx","A1","A2","A3","A4","M","equalEarthRaw","l2","l6","gnomonicRaw","sa","tx","ty","kx","ky","naturalEarth1Raw","phi4","orthographicRaw","stereographicRaw","transverseMercatorRaw","defaultSeparation","meanX","meanXReduce","maxYReduce","leafLeft","leafRight","separation","nodeSize","cluster","previousNode","eachAfter","eachBefore","ancestor","leastCommonAncestor","aNodes","ancestors","bNodes","leaves","hierarchy","mapChildren","objectChildren","childs","Node","computeHeight","node_copy","copyData","node_count","node_each","node_eachAfter","node_eachBefore","node_find","node_sum","node_sort","node_path","node_ancestors","descendants","node_descendants","node_leaves","node_links","node_iterator","shuffle","circles","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","dr","encloseBasis1","r2","r21","r3","a2","a3","c3","d3","place","intersects","score","packEnclose","aa","sj","sk","pack","optional","required","constantZero","radiusLeaf","packChildren","translateChild","partition","positionNode","roundNode","preroot","ambiguous","defaultId","defaultParentId","parentId","stratify","nodeKey","nodeByKey","nextLeft","nextRight","moveSubtree","wm","wp","change","executeShifts","nextAncestor","vim","TreeNode","treeRoot","firstWalk","secondWalk","sizeNode","siblings","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","squarifyRatio","ratio","nodeValue","sumValue","newRatio","minRatio","beta","dice","squarify","tile","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","treemap","paddingOuter","sums","valueOffset","valueTarget","valueLeft","valueRight","xk","yk","resquarify","_squarify","lexicographicOrder","computeUpperHullIndexes","sortedPoints","flippedPoints","upperIndexes","lowerIndexes","skipLeft","skipRight","inside","perimeter","sourceRandomUniform","randomUniform","sourceRandomInt","randomInt","sourceRandomNormal","randomNormal","mu","sigma","sourceRandomLogNormal","randomLogNormal","sourceRandomIrwinHall","randomIrwinHall","sourceRandomBates","irwinHall","randomBates","sourceRandomExponential","randomExponential","log1p","sourceRandomPareto","randomPareto","RangeError","sourceRandomBernoulli","randomBernoulli","sourceRandomGeometric","randomGeometric","sourceRandomGamma","randomGamma","multiplier","sourceRandomBeta","G","randomBeta","sourceRandomBinomial","geometric","randomBinomial","nn","acc","pp","sourceRandomWeibull","randomWeibull","outerFunc","sourceRandomCauchy","randomCauchy","sourceRandomLogistic","randomLogistic","sourceRandomPoisson","binomial","randomPoisson","mul","inc","eps","lcg","seed","initRange","initInterpolator","implicit","ordinal","unknown","band","ordinalRange","rescale","rangeRound","pointish","constants","unit","normalize","clamper","bimap","polymap","clamp","untransform","interpolateValue","interpolateRound","continuous","linearish","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","powp","base","logp","log10","log2","reflect","loggish","logs","pows","transformSymlog","transformSymexp","expm1","symlogish","constant","symlog","transformPow","transformSqrt","transformSquare","powish","square","unsquare","radial","squared","invertExtent","quantiles","quantize","newInterval","floori","offseti","field","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","second","getMilliseconds","minute","getSeconds","getMinutes","hour","day","setHours","setDate","getDate","getTimezoneOffset","days","weekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","sundays","mondays","tuesdays","wednesdays","thursdays","fridays","saturdays","month","setMonth","getMonth","getFullYear","months","setFullYear","years","utcMinute","setUTCSeconds","utcMinutes","utcHour","setUTCMinutes","utcHours","utcDay","setUTCHours","setUTCDate","utcDays","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSundays","utcMondays","utcTuesdays","utcWednesdays","utcThursdays","utcFridays","utcSaturdays","utcMonth","setUTCMonth","utcMonths","utcYear","setUTCFullYear","utcYears","localDate","H","L","utcDate","UTC","newDate","formatLocale","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_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","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","parseSpecifier","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","pads","charAt","newParse","Z","week","Q","timeMonday","timeDay","U","utcFormat","utcParse","numberRe","percentRe","requoteRe","requote","timeSunday","dISO","timeThursday","dow","UTCdISO","timeFormat","timeParse","formatIso","isoSpecifier","formatIsoNative","toISOString","parseIso","parseIsoNative","durationMonth","durationYear","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","tickIntervals","tickInterval","timeYear","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","timeMillisecond","utcTime","utcWeek","utcSecond","utcMillisecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","scheme","warm","cool","ts","pi_1_3","pi_2_3","ramp","magma","inferno","plasma","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","arcEndAngle","arcPadAngle","x10","y10","x32","y32","cornerTangents","rc","ox","oy","x11","y11","cx0","cx1","dx0","dy0","dx1","dy1","cornerRadius","padRadius","a01","a11","a10","da0","da1","rp","rc0","rc1","oc","kc","lc","Linear","areaStart","areaEnd","curve","curveLinear","defined0","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","sortValues","descending","pie","arcs","curveRadialLinear","curveRadial","Radial","_curve","lineRadial","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","linkSource","linkTarget","curveHorizontal","curveVertical","p2","p3","linkHorizontal","linkVertical","linkRadial","draw","tan30","tan30_2","ka","kr","sqrt3","symbols","diamond","star","triangle","wye","Basis","BasisClosed","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bundle","_basis","_beta","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","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","_t0","Natural","controlPoints","Step","_t","stepBefore","stepAfter","series","stackValue","stackSeries","orderNone","offsetNone","stack","sz","oz","yn","s2","si","sij0","s3","peaks","peak","vi","vj","tops","bottoms","ZoomEvent","Transform","applyX","applyY","location","invertX","invertY","rescaleX","rescaleY","__zoom","SVGElement","clientWidth","clientHeight","defaultTransform","defaultWheelDelta","deltaY","deltaMode","defaultConstrain","translateExtent","touchstarting","touchfirst","constrain","wheelDelta","scaleExtent","interpolateZoom","touchDelay","wheelDelay","tapDistance","wheeled","dblclicked","__zooming","Gesture","taps","wheel","wheelidled","k1","touch0","touch1","l0","l1","dp","dl","collection","scaleBy","scaleTo","k0","translateBy","translateTo"],"mappings":"A0QEC,A6IFyBkJ,AEOzB,AOPM,ACIN,AMJyBA,A0CIzB,AoBFA,AcEA,ANJgC,AmEEhC,A9NFyBA,AmRIzB,AxUAA,AgaAA,AQFA,ACAA,AeF2B,A4BAFA,AGOzB,a1ePc,A6IAWA,AEAnB,AOAA,ACAQ,AMAWA,A0CAX,AoBAA,AcAA,ANAA,AmEAA,A9NAWA,AmRAX,AxUAA,AgaAA,AQAA,ACAA,AeAA,A4BAWA,AGAnB,O7VAmBA,ASAnB,AOAmBA,ArFAAA,A+ZAAA,EveAFA,A+IAR2c,AQAQ3c,AgDAAA,AoBAAA,AcAAA,ANAA4N,AmEAE,AqDAFo5D,AxUAAhnE,AgaAAA,AQAAhD,ACAAjG,AeAE,A+BAV4lB,E1eAQ3c,A+IAM0X,AQAN1X,AgDAAA,AoBAAA,AcAAA,AkHAUA,AxUAVA,AgaAAA,AQAAhD,ACAAjG,A8CAM2gB,EpMCrBtgB,AqJDkBJ,C3bClBgJ,A+IAP0X,AQAO,AgDAA,AoBAA1X,AcAA,ANDwB,AwHCxB,AxUAA,AgaAA,ASAAjJ,AeDmB,A+BC1B2gB,E3VAMkF,A4SAC5lB,A+CAD4lB,IpMACxlB,CtSAA4I,AuJAA,AgDAA,AoBAAA,AcAA,ANDwB,AwHCxB,AxUAA,AgaAA,ASAAjJ,AeDmB,C9TAFiJ,ASAnB,AOAmBA,ArFAAA,A+ZAAA,CveEzB,A2NAA,AgODQhJ,ACCR,EDDYgG,CrJAEqE,EqJAG,E3bCjB,A6IFyBrB,ASAnB,AOAmBA,A8DEzB,AnJFyBA,AmXCJhJ,ACCrB,A2CFyBgJ,CjMCN,C/ICTA,AgDAAA,AkCAAA,AkHAAA,AxUAAA,AgaAAA,AQDehD,EAAI,ExNDG,AwNCChG,AgBDN,CrKE3B,E/IAUgJ,AgDAAA,AkCAAA,AkHAAA,AxUAAA,AgaAAA,AQD4BhD,EAAI,CpSG1C,AgDAA,AkCAA,AkHAA,AxUAA,AgaAA,CtSJyBgD,AEIX,AOJR,AOAmBA,ArFAAA,AmXCqBJ,A4CDrBI,AGIX,C7VJWA,ASAnB,AOAmBA,AsEAO,AmEEhC,A9NFyBA,AmYAE,A4BAFA,CveEzB,A2NAA,AiOAA,EDAA,EpSEA,AgDAA,AkCAA,AkHAA,AxUAA,AgaAA,EtSJyBA,ASAnB,AOAmBA,ArFAAA,A+ZAAA,CxVIF0X,A2VAAA,C1eFvB,A2NAA,AiOAA,C7SEuBA,A4SFvB,A+CEuBA,C7VJE1X,ASAnB,AOAmBA,ArFAAA,A+ZAAA,ExVKxB0X,AoFL+B,AwOAL,A+BK1BA,CvQL+B,AwOAL,C5TKpBmF,AuJHP,AoMGOA,I7VLkB7c,ASAnB,AOAmBA,ArFAAA,A+ZAAA,ChVIzB,AgDAA,AkCAA,AkHAA,AxUAA,AgaAA,ChNJgC,AwOAL,C3cE3B,A2NAA,AiOAA,C5bAA,A2NAA,A2EAA,AsJAA,EzNFgC,AwNEhC,AgBF2B,GpTI3B,AgDAA,AkCAA,AkHAA,AxUAA,AgaAA,EnbFA,AsJFM,AqEEN,AiOAA,E/SFyBA,AEMxB0X,AONK,AOAmB1X,ArFAAA,A+ZAAA,AGMxB0X,CvQN+B,AwNEhC,AgBF2B,C3cE3B,A6IFc1X,AEMP4c,AcNO5c,A8DEd,AnJFcA,AoXEd,A2CFcA,AGMP4c,EpVNG5X,AgJEV,CAAA,CzJFchF,ASAI5I,AOAJ4I,ArFAAA,A+ZAAA,E1VAAA,AgBAAA,ArFAAA,A+ZAAA,ChVId,AgDAA,AkCAA,ANJgC,AwHIhC,AxUAA,AgaAA,AwBJ2B,C3cE3B,AuJEA,AgDAA,AoBFA,AcEA,AkHAA,AxUAA,AgaAA,ASFA,C/SFmB,AgBAA,ArFAA,A+ZAA,CjVAKtI,AgJExB,EqJAA,C9SFyBsI,AgBAAA,ArFAAA,AmXEzB,A4CFyBA,CjMEzB,CzJFyBA,AUIzB,AMJyBA,A0CIzB,AkCAA,AjKJyBA,AmRIzB,AxUAA,AgaAA,AoDJyBA,CveEzB,A2NAA,AiOAA,GrSEA,AgDAA,AkCAA,AkHAA,AxUAA,AgaAA,C7RJkCgF,AqSElC,ErJAA,CzJFyBhF,AgBAAA,ArFAAA,A+ZAAA,C5CEzB,ErSFM,CPON,AQHA,AgDAA,AkCAA,AkHAA,AxUAA,AgaAA,AuDGA,GpMLA,CzJFyBA,AgBAAA,ArFAAA,A+ZAAA,C5CEzB,E5SKA,AOPM,AoVON,CnVHA,AgDAA,AkCAA,AkHAA,AxUAA,AgaAA,K7RJM,AqSEN,S5SKA,A2VAA,Q3VAA,A2VAA,a3VAA,A2VAA,C3VAA,A2VAA,O3VAA,A2VAA,I3VA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","file":"main.fb88d48d.js","sourceRoot":"..","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export function isFunction(x: any): x is Function {\n return typeof x === 'function';\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like what Promise contructor should used to create Promises\n */\nexport const config = {\n /**\n * The promise constructor used by default for methods such as\n * {@link toPromise} and {@link forEach}\n */\n Promise: undefined as PromiseConstructorLike,\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME\n * FOR MIGRATION REASONS.\n */\n set useDeprecatedSynchronousErrorHandling(value: boolean) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n } else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","/**\n * Throws an error on another job so that it's picked up by the runtime's\n * uncaught error handling mechanism.\n * @param err the error to throw\n */\nexport function hostReportError(err: any) {\n setTimeout(() => { throw err; }, 0);\n}","import { Observer } from './types';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\nexport const empty: Observer = {\n closed: true,\n next(value: any): void { /* noop */},\n error(err: any): void {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n },\n complete(): void { /*noop*/ }\n};\n","export const isArray = (() => Array.isArray || ((x: any): x is T[] => x && typeof x.length === 'number'))();\n","export function isObject(x: any): x is Object {\n return x !== null && typeof x === 'object';\n}\n","export interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n new(errors: any[]): UnsubscriptionError;\n}\n\nconst UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(this: any, errors: any[]) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n\n return UnsubscriptionErrorImpl;\n})();\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = UnsubscriptionErrorImpl as any;","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic } from './types';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY: Subscription = (function(empty: any) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n public closed: boolean = false;\n\n /** @internal */\n protected _parentOrParents: Subscription | Subscription[] = null;\n /** @internal */\n private _subscriptions: SubscriptionLike[] = null;\n\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n constructor(unsubscribe?: () => void) {\n if (unsubscribe) {\n (this as any)._ctorUnsubscribe = true;\n (this as any)._unsubscribe = unsubscribe;\n }\n }\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[];\n\n if (this.closed) {\n return;\n }\n\n let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = (this as any);\n\n this.closed = true;\n this._parentOrParents = null;\n // null out _subscriptions first so any child subscriptions that attempt\n // to remove themselves from this subscription will noop\n this._subscriptions = null;\n\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n } else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n\n if (isFunction(_unsubscribe)) {\n // It's only possible to null _unsubscribe - to release the reference to\n // any teardown function passed in the constructor - if the property was\n // actually assigned in the constructor, as there are some classes that\n // are derived from Subscriber (which derives from Subscription) that\n // implement an _unsubscribe method as a mechanism for obtaining\n // unsubscription notifications and some of those subscribers are\n // recycled. Also, in some of those subscribers, _unsubscribe switches\n // from a prototype method to an instance property - see notifyNext in\n // RetryWhenSubscriber.\n if (_ctorUnsubscribe) {\n (this as any)._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n } catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n } else {\n errors.push(e);\n }\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription. Can also be used to add a child subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n add(teardown: TeardownLogic): Subscription {\n let subscription = (teardown);\n\n if (!teardown) {\n return Subscription.EMPTY;\n }\n\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(<(() => void)>teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n // This also covers the case where `subscription` is `Subscription.EMPTY`, which is always in `closed` state.\n return subscription;\n } else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n } else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n\n // Add `this` as parent of `subscription` if that's not already the case.\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n // If we don't have a parent, then set `subscription._parents` to\n // the `this`, which is the common case that we optimize for.\n subscription._parentOrParents = this;\n } else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n // The `subscription` already has `this` as a parent.\n return subscription;\n }\n // If there's already one parent, but not multiple, allocate an\n // Array to store the rest of the parent Subscriptions.\n subscription._parentOrParents = [_parentOrParents, this];\n } else if (_parentOrParents.indexOf(this) === -1) {\n // Only add `this` to the _parentOrParents list if it's not already there.\n _parentOrParents.push(this);\n } else {\n // The `subscription` already has `this` as a parent.\n return subscription;\n }\n\n // Optimize for the common case when adding the first subscription.\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n } else {\n subscriptions.push(subscription);\n }\n\n return subscription;\n }\n\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n remove(subscription: Subscription): void {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\n\nfunction flattenUnsubscriptionErrors(errors: any[]) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","/** @deprecated do not use, this is no longer checked by RxJS internals */\nexport const rxSubscriber = (() =>\n typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\n\n/**\n * @deprecated use rxSubscriber instead\n */\nexport const $$rxSubscriber = rxSubscriber;\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Observer, PartialObserver, TeardownLogic } from './types';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n\n [rxSubscriberSymbol]() { return this; }\n\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n */\n static create(next?: (x?: T) => void,\n error?: (e?: any) => void,\n complete?: () => void): Subscriber {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n\n /** @internal */ syncErrorValue: any = null;\n /** @internal */ syncErrorThrown: boolean = false;\n /** @internal */ syncErrorThrowable: boolean = false;\n\n protected isStopped: boolean = false;\n protected destination: PartialObserver | Subscriber; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n constructor(destinationOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super();\n\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n } else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, > destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, <((value: T) => void)> destinationOrNext, error, complete);\n break;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n this.destination.error(err);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.destination.complete();\n this.unsubscribe();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribeAndRecycle(): Subscriber {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SafeSubscriber extends Subscriber {\n\n private _context: any;\n\n constructor(private _parentSubscriber: Subscriber,\n observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super();\n\n let next: ((value: T) => void);\n let context: any = this;\n\n if (isFunction(observerOrNext)) {\n next = (<((value: T) => void)> observerOrNext);\n } else if (observerOrNext) {\n next = (> observerOrNext).next;\n error = (> observerOrNext).error;\n complete = (> observerOrNext).complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(<() => void> context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n\n next(value?: T): void {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n } else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n\n error(err?: any): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n } else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n } else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n } else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n\n complete(): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n } else {\n this.unsubscribe();\n }\n }\n }\n\n private __tryOrUnsub(fn: Function, value?: any): void {\n try {\n fn.call(this._context, value);\n } catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n }\n }\n\n private __tryOrSetError(parent: Subscriber, fn: Function, value?: any): boolean {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n } else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n\n /** @internal This is an internal implementation detail, do not use. */\n _unsubscribe(): void {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\n\n/**\n * Determines whether the ErrorObserver is closed or stopped or has a\n * destination that is closed or stopped - in which case errors will\n * need to be reported via a different mechanism.\n * @param observer the observer\n */\nexport function canReportError(observer: Subscriber | Subject): boolean {\n while (observer) {\n const { closed, destination, isStopped } = observer as any;\n if (closed || isStopped) {\n return false;\n } else if (destination && destination instanceof Subscriber) {\n observer = destination;\n } else {\n observer = null;\n }\n }\n return true;\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nimport { PartialObserver } from '../types';\n\nexport function toSubscriber(\n nextOrObserver?: PartialObserver | ((value: T) => void),\n error?: (error: any) => void,\n complete?: () => void): Subscriber {\n\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return (> nextOrObserver);\n }\n\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n\n return new Subscriber(nextOrObserver, error, complete);\n}\n","/** Symbol.observable addition */\n/* Note: This will add Symbol.observable globally for all TypeScript users,\n however, we are no longer polyfilling Symbol.observable */\ndeclare global {\n interface SymbolConstructor {\n readonly observable: symbol;\n }\n}\n\n/** Symbol.observable or a string \"@@observable\". Used for interop */\nexport const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n","export function identity(x: T): T {\n return x;\n}\n","import { noop } from './noop';\nimport { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function pipe(): UnaryFunction;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[]): UnaryFunction;\n/* tslint:enable:max-line-length */\n\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n","import { Operator } from './Operator';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types';\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { iif } from './observable/iif';\nimport { throwError } from './observable/throwError';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n\n /** Internal implementation detail, do not use directly. */\n public _isScalar: boolean = false;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n source: Observable;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n operator: Operator;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new cold Observable by calling the Observable constructor\n * @static true\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new cold observable\n * @nocollapse\n * @deprecated use new Observable() instead\n */\n static create: Function = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n }\n\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n lift(operator: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observer?: PartialObserver): Subscription;\n /** @deprecated Use an observer instead of a complete callback */\n subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\n /** @deprecated Use an observer instead of an error callback */\n subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\n /** @deprecated Use an observer instead of a complete callback */\n subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription;\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided, all errors will\n * be left uncaught.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of Observer,\n * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * ## Example\n * ### Subscribe with an Observer\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n * ```\n *\n * ### Subscribe with functions\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n * ```\n *\n * ### Cancel a subscription\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe(\n * num => console.log(num),\n * undefined,\n * () => {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * );\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // \"unsubscribed!\" after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (error: any) => void,\n complete?: () => void): Subscription {\n\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n\n if (operator) {\n sink.add(operator.call(sink, this.source));\n } else {\n sink.add(\n this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink)\n );\n }\n\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n\n return sink;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n } else {\n console.warn(err);\n }\n }\n }\n\n /**\n * @method forEach\n * @param {Function} next a handler for each value emitted by the observable\n * @param {PromiseConstructor} [promiseCtor] a constructor function used to instantiate the Promise\n * @return {Promise} a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n // Must be declared in a separate statement to avoid a ReferenceError when\n // accessing subscription below in the closure due to Temporal Dead Zone.\n let subscription: Subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n }) as Promise;\n }\n\n /** @internal This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): TeardownLogic {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n\n // `if` and `throw` are special snow flakes, the compiler sees them as reserved words. Deprecated in\n // favor of iif and throwError functions.\n /**\n * @nocollapse\n * @deprecated In favor of iif creation function: import { iif } from 'rxjs';\n */\n static if: typeof iif;\n /**\n * @nocollapse\n * @deprecated In favor of throwError creation function: import { throwError } from 'rxjs';\n */\n static throw: typeof throwError;\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction, ...operations: OperatorFunction[]): Observable<{}>;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ### Example\n * ```ts\n * import { interval } from 'rxjs';\n * import { map, filter, scan } from 'rxjs/operators';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x))\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n if (operations.length === 0) {\n return this as any;\n }\n\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n toPromise(this: Observable): Promise;\n toPromise(this: Observable, PromiseCtor: typeof Promise): Promise;\n toPromise(this: Observable, PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: any;\n this.subscribe((x: T) => value = x, (err: any) => reject(err), () => resolve(value));\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n\n return promiseCtor;\n}\n","export interface ObjectUnsubscribedError extends Error {\n}\n\nexport interface ObjectUnsubscribedErrorCtor {\n new(): ObjectUnsubscribedError;\n}\n\nconst ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl(this: any) {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n\n return ObjectUnsubscribedErrorImpl;\n})();\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = ObjectUnsubscribedErrorImpl as any;","import { Subject } from './Subject';\nimport { Observer } from './types';\nimport { Subscription } from './Subscription';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SubjectSubscription extends Subscription {\n closed: boolean = false;\n\n constructor(public subject: Subject, public subscriber: Observer) {\n super();\n }\n\n unsubscribe() {\n if (this.closed) {\n return;\n }\n\n this.closed = true;\n\n const subject = this.subject;\n const observers = subject.observers;\n\n this.subject = null;\n\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n\n const subscriberIndex = observers.indexOf(this.subscriber);\n\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\n\n/**\n * @class SubjectSubscriber\n */\nexport class SubjectSubscriber extends Subscriber {\n constructor(protected destination: Subject) {\n super(destination);\n }\n}\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n *\n * @class Subject\n */\nexport class Subject extends Observable implements SubscriptionLike {\n\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n\n observers: Observer[] = [];\n\n closed = false;\n\n isStopped = false;\n\n hasError = false;\n\n thrownError: any = null;\n\n constructor() {\n super();\n }\n\n /**@nocollapse\n * @deprecated use new Subject() instead\n */\n static create: Function = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n }\n\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n\n next(value?: T) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n\n error(err: any) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _trySubscribe(subscriber: Subscriber): TeardownLogic {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return super._trySubscribe(subscriber);\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create customize Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable = new Observable();\n (observable).source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(protected destination?: Observer, source?: Observable) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n\n error(err: any) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n } else {\n return Subscription.EMPTY;\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { Observable } from '../Observable';\n\n/**\n * Make a {@link ConnectableObservable} behave like a ordinary observable and automates the way\n * you can connect to it.\n *\n * Internally it counts the subscriptions to the observable and subscribes (only once) to the source if\n * the number of subscriptions is larger than 0. If the number of subscriptions is smaller than 1, it\n * unsubscribes from the source. This way you can make sure that everything before the *published*\n * refCount has only a single subscription independently of the number of subscribers to the target\n * observable.\n *\n * Note that using the {@link share} operator is exactly the same as using the *publish* operator\n * (making the observable hot) and the *refCount* operator in a sequence.\n *\n * ![](refCount.png)\n *\n * ## Example\n *\n * In the following example there are two intervals turned into connectable observables\n * by using the *publish* operator. The first one uses the *refCount* operator, the\n * second one does not use it. You will notice that a connectable observable does nothing\n * until you call its connect function.\n *\n * ```ts\n * import { interval } from 'rxjs';\n * import { tap, publish, refCount } from 'rxjs/operators';\n *\n * // Turn the interval observable into a ConnectableObservable (hot)\n * const refCountInterval = interval(400).pipe(\n * tap((num) => console.log(`refCount ${num}`)),\n * publish(),\n * refCount()\n * );\n *\n * const publishedInterval = interval(400).pipe(\n * tap((num) => console.log(`publish ${num}`)),\n * publish()\n * );\n *\n * refCountInterval.subscribe();\n * refCountInterval.subscribe();\n * // 'refCount 0' -----> 'refCount 1' -----> etc\n * // All subscriptions will receive the same value and the tap (and\n * // every other operator) before the publish operator will be executed\n * // only once per event independently of the number of subscriptions.\n *\n * publishedInterval.subscribe();\n * // Nothing happens until you call .connect() on the observable.\n * ```\n *\n * @see {@link ConnectableObservable}\n * @see {@link share}\n * @see {@link publish}\n */\nexport function refCount(): MonoTypeOperatorFunction {\n return function refCountOperatorFunction(source: ConnectableObservable): Observable {\n return source.lift(new RefCountOperator(source));\n } as MonoTypeOperatorFunction;\n}\n\nclass RefCountOperator implements Operator {\n constructor(private connectable: ConnectableObservable) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n\n const { connectable } = this;\n ( connectable)._refCount++;\n\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n\n if (!refCounter.closed) {\n ( refCounter).connection = connectable.connect();\n }\n\n return subscription;\n }\n}\n\nclass RefCountSubscriber extends Subscriber {\n\n private connection: Subscription;\n\n constructor(destination: Subscriber,\n private connectable: ConnectableObservable) {\n super(destination);\n }\n\n protected _unsubscribe() {\n\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n\n this.connectable = null;\n const refCount = ( connectable)._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n\n ( connectable)._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n\n ///\n // Compare the local RefCountSubscriber's connection Subscription to the\n // connection Subscription on the shared ConnectableObservable. In cases\n // where the ConnectableObservable source synchronously emits values, and\n // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n // execution continues to here before the RefCountOperator has a chance to\n // supply the RefCountSubscriber with the shared connection Subscription.\n // For example:\n // ```\n // range(0, 10).pipe(\n // publish(),\n // refCount(),\n // take(5),\n // )\n // .subscribe();\n // ```\n // In order to account for this case, RefCountSubscriber should only dispose\n // the ConnectableObservable's shared connection Subscription if the\n // connection Subscription exists, *and* either:\n // a. RefCountSubscriber doesn't have a reference to the shared connection\n // Subscription yet, or,\n // b. RefCountSubscriber's connection Subscription reference is identical\n // to the shared connection Subscription\n ///\n const { connection } = this;\n const sharedConnection = ( connectable)._connection;\n this.connection = null;\n\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { Subject, SubjectSubscriber } from '../Subject';\nimport { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { TeardownLogic } from '../types';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\n\n/**\n * @class ConnectableObservable\n */\nexport class ConnectableObservable extends Observable {\n\n protected _subject: Subject;\n protected _refCount: number = 0;\n protected _connection: Subscription;\n /** @internal */\n _isComplete = false;\n\n constructor(public source: Observable,\n protected subjectFactory: () => Subject) {\n super();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n\n protected getSubject(): Subject {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n\n connect(): Subscription {\n let connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n\n refCount(): Observable {\n return higherOrderRefCount()(this) as Observable;\n }\n}\n\nexport const connectableObservableDescriptor: PropertyDescriptorMap = (() => {\n const connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null as null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null as null, writable: true },\n _connection: { value: null as null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\n\nclass ConnectableSubscriber extends SubjectSubscriber {\n constructor(destination: Subject,\n private connectable: ConnectableObservable) {\n super(destination);\n }\n protected _error(err: any): void {\n this._unsubscribe();\n super._error(err);\n }\n protected _complete(): void {\n this.connectable._isComplete = true;\n this._unsubscribe();\n super._complete();\n }\n protected _unsubscribe() {\n const connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n const connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n }\n}\n\nclass RefCountOperator implements Operator {\n constructor(private connectable: ConnectableObservable) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n\n const { connectable } = this;\n ( connectable)._refCount++;\n\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n\n if (!refCounter.closed) {\n ( refCounter).connection = connectable.connect();\n }\n\n return subscription;\n }\n}\n\nclass RefCountSubscriber extends Subscriber {\n\n private connection: Subscription;\n\n constructor(destination: Subscriber,\n private connectable: ConnectableObservable) {\n super(destination);\n }\n\n protected _unsubscribe() {\n\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n\n this.connectable = null;\n const refCount = ( connectable)._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n\n ( connectable)._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n\n ///\n // Compare the local RefCountSubscriber's connection Subscription to the\n // connection Subscription on the shared ConnectableObservable. In cases\n // where the ConnectableObservable source synchronously emits values, and\n // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n // execution continues to here before the RefCountOperator has a chance to\n // supply the RefCountSubscriber with the shared connection Subscription.\n // For example:\n // ```\n // range(0, 10).pipe(\n // publish(),\n // refCount(),\n // take(5),\n // ).subscribe();\n // ```\n // In order to account for this case, RefCountSubscriber should only dispose\n // the ConnectableObservable's shared connection Subscription if the\n // connection Subscription exists, *and* either:\n // a. RefCountSubscriber doesn't have a reference to the shared connection\n // Subscription yet, or,\n // b. RefCountSubscriber's connection Subscription reference is identical\n // to the shared connection Subscription\n ///\n const { connection } = this;\n const sharedConnection = ( connectable)._connection;\n this.connection = null;\n\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subject } from '../Subject';\nimport { OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function groupBy(keySelector: (value: T) => K): OperatorFunction>;\nexport function groupBy(keySelector: (value: T) => K, elementSelector: void, durationSelector: (grouped: GroupedObservable) => Observable): OperatorFunction>;\nexport function groupBy(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable): OperatorFunction>;\nexport function groupBy(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable, subjectSelector?: () => Subject): OperatorFunction>;\n/* tslint:enable:max-line-length */\n\n/**\n * Groups the items emitted by an Observable according to a specified criterion,\n * and emits these grouped items as `GroupedObservables`, one\n * {@link GroupedObservable} per group.\n *\n * ![](groupBy.png)\n *\n * When the Observable emits an item, a key is computed for this item with the keySelector function.\n *\n * If a {@link GroupedObservable} for this key exists, this {@link GroupedObservable} emits. Elsewhere, a new\n * {@link GroupedObservable} for this key is created and emits.\n *\n * A {@link GroupedObservable} represents values belonging to the same group represented by a common key. The common\n * key is available as the key field of a {@link GroupedObservable} instance.\n *\n * The elements emitted by {@link GroupedObservable}s are by default the items emitted by the Observable, or elements\n * returned by the elementSelector function.\n *\n * ## Examples\n *\n * ### Group objects by id and return as array\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { mergeMap, groupBy, reduce } from 'rxjs/operators';\n *\n * of(\n * {id: 1, name: 'JavaScript'},\n * {id: 2, name: 'Parcel'},\n * {id: 2, name: 'webpack'},\n * {id: 1, name: 'TypeScript'},\n * {id: 3, name: 'TSLint'}\n * ).pipe(\n * groupBy(p => p.id),\n * mergeMap((group$) => group$.pipe(reduce((acc, cur) => [...acc, cur], []))),\n * )\n * .subscribe(p => console.log(p));\n *\n * // displays:\n * // [ { id: 1, name: 'JavaScript'},\n * // { id: 1, name: 'TypeScript'} ]\n * //\n * // [ { id: 2, name: 'Parcel'},\n * // { id: 2, name: 'webpack'} ]\n * //\n * // [ { id: 3, name: 'TSLint'} ]\n * ```\n *\n * ### Pivot data on the id field\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { groupBy, map, mergeMap, reduce } from 'rxjs/operators';\n *\n * of(\n * { id: 1, name: 'JavaScript' },\n * { id: 2, name: 'Parcel' },\n * { id: 2, name: 'webpack' },\n * { id: 1, name: 'TypeScript' },\n * { id: 3, name: 'TSLint' }\n * )\n * .pipe(\n * groupBy(p => p.id, p => p.name),\n * mergeMap(group$ =>\n * group$.pipe(reduce((acc, cur) => [...acc, cur], [`${group$.key}`]))\n * ),\n * map(arr => ({ id: parseInt(arr[0], 10), values: arr.slice(1) }))\n * )\n * .subscribe(p => console.log(p));\n *\n * // displays:\n * // { id: 1, values: [ 'JavaScript', 'TypeScript' ] }\n * // { id: 2, values: [ 'Parcel', 'webpack' ] }\n * // { id: 3, values: [ 'TSLint' ] }\n * ```\n *\n * @param {function(value: T): K} keySelector A function that extracts the key\n * for each item.\n * @param {function(value: T): R} [elementSelector] A function that extracts the\n * return element for each item.\n * @param {function(grouped: GroupedObservable): Observable} [durationSelector]\n * A function that returns an Observable to determine how long each group should\n * exist.\n * @return {Observable>} An Observable that emits\n * GroupedObservables, each of which corresponds to a unique key value and each\n * of which emits those items from the source Observable that share that key\n * value.\n * @method groupBy\n * @owner Observable\n */\nexport function groupBy(keySelector: (value: T) => K,\n elementSelector?: ((value: T) => R) | void,\n durationSelector?: (grouped: GroupedObservable) => Observable,\n subjectSelector?: () => Subject): OperatorFunction> {\n return (source: Observable) =>\n source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n}\n\nexport interface RefCountSubscription {\n count: number;\n unsubscribe: () => void;\n closed: boolean;\n attemptedToUnsubscribe: boolean;\n}\n\nclass GroupByOperator implements Operator> {\n constructor(private keySelector: (value: T) => K,\n private elementSelector?: ((value: T) => R) | void,\n private durationSelector?: (grouped: GroupedObservable) => Observable,\n private subjectSelector?: () => Subject) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new GroupBySubscriber(\n subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass GroupBySubscriber extends Subscriber implements RefCountSubscription {\n private groups: Map> = null;\n public attemptedToUnsubscribe: boolean = false;\n public count: number = 0;\n\n constructor(destination: Subscriber>,\n private keySelector: (value: T) => K,\n private elementSelector?: ((value: T) => R) | void,\n private durationSelector?: (grouped: GroupedObservable) => Observable,\n private subjectSelector?: () => Subject) {\n super(destination);\n }\n\n protected _next(value: T): void {\n let key: K;\n try {\n key = this.keySelector(value);\n } catch (err) {\n this.error(err);\n return;\n }\n\n this._group(value, key);\n }\n\n private _group(value: T, key: K) {\n let groups = this.groups;\n\n if (!groups) {\n groups = this.groups = new Map>();\n }\n\n let group = groups.get(key);\n\n let element: R;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n } catch (err) {\n this.error(err);\n }\n } else {\n element = value;\n }\n\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new Subject()) as Subject;\n groups.set(key, group);\n const groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n let duration: any;\n try {\n duration = this.durationSelector(new GroupedObservable(key, >group));\n } catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n\n if (!group.closed) {\n group.next(element);\n }\n }\n\n protected _error(err: any): void {\n const groups = this.groups;\n if (groups) {\n groups.forEach((group, key) => {\n group.error(err);\n });\n\n groups.clear();\n }\n this.destination.error(err);\n }\n\n protected _complete(): void {\n const groups = this.groups;\n if (groups) {\n groups.forEach((group, key) => {\n group.complete();\n });\n\n groups.clear();\n }\n this.destination.complete();\n }\n\n removeGroup(key: K): void {\n this.groups.delete(key);\n }\n\n unsubscribe() {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n super.unsubscribe();\n }\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass GroupDurationSubscriber extends Subscriber {\n constructor(private key: K,\n private group: Subject,\n private parent: GroupBySubscriber) {\n super(group);\n }\n\n protected _next(value: T): void {\n this.complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { parent, key } = this;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n }\n}\n\n/**\n * An Observable representing values belonging to the same group represented by\n * a common key. The values emitted by a GroupedObservable come from the source\n * Observable. The common key is available as the field `key` on a\n * GroupedObservable instance.\n *\n * @class GroupedObservable\n */\nexport class GroupedObservable extends Observable {\n /** @deprecated Do not construct this type. Internal use only */\n constructor(public key: K,\n private groupSubject: Subject,\n private refCountSubscription?: RefCountSubscription) {\n super();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n const subscription = new Subscription();\n const { refCountSubscription, groupSubject } = this;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass InnerRefCountSubscription extends Subscription {\n constructor(private parent: RefCountSubscription) {\n super();\n parent.count++;\n }\n\n unsubscribe() {\n const parent = this.parent;\n if (!parent.closed && !this.closed) {\n super.unsubscribe();\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n }\n}\n","import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { SubscriptionLike } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n if (subscription && !(subscription).closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n\n getValue(): T {\n if (this.hasError) {\n throw this.thrownError;\n } else if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return this._value;\n }\n }\n\n next(value: T): void {\n super.next(this._value = value);\n }\n}\n","import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n","import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AsyncAction extends Action {\n\n public id: any;\n public state: T;\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, id?: any, delay: number = 0): any {\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(scheduler: AsyncScheduler, id: any, delay: number = 0): any {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n clearInterval(id);\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, delay: number): any {\n let errored: boolean = false;\n let errorValue: any = undefined;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n\n const id = this.id;\n const scheduler = this.scheduler;\n const actions = scheduler.actions;\n const index = actions.indexOf(this);\n\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n\n if (index !== -1) {\n actions.splice(index, 1);\n }\n\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class QueueAction extends AsyncAction {\n\n constructor(protected scheduler: QueueScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return (delay > 0 || this.closed) ?\n super.execute(state, delay) :\n this._execute(state, delay) ;\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: any, delay: number = 0): any {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Otherwise flush the scheduler starting with this action.\n return scheduler.flush(this);\n }\n}\n","import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}\n */\nexport class Scheduler implements SchedulerLike {\n\n /**\n * Note: the extra arrow function wrapper is to make testing by overriding\n * Date.now easier.\n * @nocollapse\n */\n public static now: () => number = () => Date.now();\n\n constructor(private SchedulerAction: typeof Action,\n now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.SchedulerAction(this, work).schedule(state, delay);\n }\n}\n","import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\n\nexport class AsyncScheduler extends Scheduler {\n public static delegate?: Scheduler;\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @deprecated internal use only\n */\n public active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @deprecated internal use only\n */\n public scheduled: any = undefined;\n\n constructor(SchedulerAction: typeof Action,\n now: () => number = Scheduler.now) {\n super(SchedulerAction, () => {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.now();\n } else {\n return now();\n }\n });\n }\n\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n } else {\n return super.schedule(work, delay, state);\n }\n }\n\n public flush(action: AsyncAction): void {\n\n const {actions} = this;\n\n if (this.active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this.active = true;\n\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift()); // exhaust the scheduler queue\n\n this.active = false;\n\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated renamed. Use {@link queueScheduler}\n */\nexport const queue = queueScheduler;\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * The same Observable instance returned by any call to {@link empty} without a\n * `scheduler`. It is preferrable to use this over `empty()`.\n */\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\n\n/**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n * \n *\n * ![](empty.png)\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the complete notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n * ### Emit the number 7, then complete\n * ```ts\n * import { empty } from 'rxjs';\n * import { startWith } from 'rxjs/operators';\n *\n * const result = empty().pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * ### Map and flatten only odd numbers to the sequence 'a', 'b', 'c'\n * ```ts\n * import { empty, interval, of } from 'rxjs';\n * import { mergeMap } from 'rxjs/operators';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : empty()),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval eg(0,1,2,3,...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1 print abc\n * // if x % 2 is not equal to 1 nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link never}\n * @see {@link of}\n * @see {@link throwError}\n *\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @return An \"empty\" Observable: emits only the complete\n * notification.\n * @deprecated Deprecated in favor of using {@link EMPTY} constant, or {@link scheduled} (e.g. `scheduled([], scheduler)`)\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n","import { SchedulerLike } from '../types';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && typeof (value).schedule === 'function';\n}\n","import { Subscriber } from '../Subscriber';\n\n/**\n * Subscribes to an ArrayLike with a subscriber\n * @param array The array or array-like to subscribe to\n */\nexport const subscribeToArray = (array: ArrayLike) => (subscriber: Subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n};\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\n\nexport function scheduleArray(input: ArrayLike, scheduler: SchedulerLike) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\n\nexport function fromArray(input: ArrayLike, scheduler?: SchedulerLike) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n } else {\n return scheduleArray(input, scheduler);\n }\n}\n","import { SchedulerLike } from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { Observable } from '../Observable';\nimport { scheduleArray } from '../scheduled/scheduleArray';\n\n/* tslint:disable:max-line-length */\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, scheduler: SchedulerLike):\n Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, scheduler: SchedulerLike):\n Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler: SchedulerLike):\n Observable;\nexport function of(...args: (T | SchedulerLike)[]): Observable;\n\n// TODO(benlesh): Update the typings for this when we can switch to TS 3.x\nexport function of(a: T): Observable;\nexport function of(a: T, b: T2): Observable;\nexport function of(a: T, b: T2, c: T3): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7):\n Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8):\n Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9):\n Observable;\nexport function of(...args: T[]): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Converts the arguments to an observable sequence.\n *\n * Each argument becomes a `next` notification.\n *\n * ![](of.png)\n *\n * Unlike {@link from}, it does not do any flattening and emits each argument in whole\n * as a separate `next` notification.\n *\n * ## Examples\n *\n * Emit the values `10, 20, 30`\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * of(10, 20, 30)\n * .subscribe(\n * next => console.log('next:', next),\n * err => console.log('error:', err),\n * () => console.log('the end'),\n * );\n * // result:\n * // 'next: 10'\n * // 'next: 20'\n * // 'next: 30'\n *\n * ```\n *\n * Emit the array `[1,2,3]`\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * of([1,2,3])\n * .subscribe(\n * next => console.log('next:', next),\n * err => console.log('error:', err),\n * () => console.log('the end'),\n * );\n * // result:\n * // 'next: [1,2,3]'\n * ```\n *\n * @see {@link from}\n * @see {@link range}\n *\n * @param {...T} values A comma separated list of arguments you want to be emitted\n * @return {Observable} An Observable that emits the arguments\n * described above and then completes.\n * @method of\n * @owner Observable\n */\n\nexport function of(...args: Array): Observable {\n let scheduler = args[args.length - 1] as SchedulerLike;\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args as T[], scheduler);\n } else {\n return fromArray(args as T[]);\n }\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits an error notification.\n *\n * Just emits 'error', and nothing else.\n * \n *\n * ![](throw.png)\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the error notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n * ### Emit the number 7, then emit an error\n * ```ts\n * import { throwError, concat, of } from 'rxjs';\n *\n * const result = concat(of(7), throwError(new Error('oops!')));\n * result.subscribe(x => console.log(x), e => console.error(e));\n *\n * // Logs:\n * // 7\n * // Error: oops!\n * ```\n *\n * ---\n *\n * ### Map and flatten numbers to the sequence 'a', 'b', 'c', but throw an error for 2\n * ```ts\n * import { throwError, interval, of } from 'rxjs';\n * import { mergeMap } from 'rxjs/operators';\n *\n * interval(1000).pipe(\n * mergeMap(x => x === 2\n * ? throwError('Twos are bad')\n * : of('a', 'b', 'c')\n * ),\n * ).subscribe(x => console.log(x), e => console.error(e));\n *\n * // Logs:\n * // a\n * // b\n * // c\n * // a\n * // b\n * // c\n * // Twos are bad\n * ```\n *\n * @see {@link Observable}\n * @see {@link empty}\n * @see {@link never}\n * @see {@link of}\n *\n * @param {any} error The particular Error to pass to the error notification.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling\n * the emission of the error notification.\n * @return {Observable} An error Observable: emits only the error notification\n * using the given error argument.\n * @static true\n * @name throwError\n * @owner Observable\n */\nexport function throwError(error: any, scheduler?: SchedulerLike): Observable {\n if (!scheduler) {\n return new Observable(subscriber => subscriber.error(error));\n } else {\n return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));\n }\n}\n\ninterface DispatchArg {\n error: any;\n subscriber: Subscriber;\n}\n\nfunction dispatch({ error, subscriber }: DispatchArg) {\n subscriber.error(error);\n}\n","import { PartialObserver } from './types';\nimport { Observable } from './Observable';\nimport { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nimport { deprecate } from 'util';\n\n// TODO: When this enum is removed, replace it with a type alias. See #4556.\n/**\n * @deprecated NotificationKind is deprecated as const enums are not compatible with isolated modules. Use a string literal instead.\n */\nexport enum NotificationKind {\n NEXT = 'N',\n ERROR = 'E',\n COMPLETE = 'C',\n}\n\n/**\n * Represents a push-based event or value that an {@link Observable} can emit.\n * This class is particularly useful for operators that manage notifications,\n * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and\n * others. Besides wrapping the actual delivered value, it also annotates it\n * with metadata of, for instance, what type of push message it is (`next`,\n * `error`, or `complete`).\n *\n * @see {@link materialize}\n * @see {@link dematerialize}\n * @see {@link observeOn}\n *\n * @class Notification\n */\nexport class Notification {\n hasValue: boolean;\n\n constructor(public kind: 'N' | 'E' | 'C', public value?: T, public error?: any) {\n this.hasValue = kind === 'N';\n }\n\n /**\n * Delivers to the given `observer` the value wrapped by this Notification.\n * @param {Observer} observer\n * @return\n */\n observe(observer: PartialObserver): any {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n }\n\n /**\n * Given some {@link Observer} callbacks, deliver the value represented by the\n * current Notification to the correctly corresponding callback.\n * @param {function(value: T): void} next An Observer `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n do(next: (value: T) => void, error?: (err: any) => void, complete?: () => void): any {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n }\n\n /**\n * Takes an Observer or its individual callback functions, and calls `observe`\n * or `do` methods accordingly.\n * @param {Observer|function(value: T): void} nextOrObserver An Observer or\n * the `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n accept(nextOrObserver: PartialObserver | ((value: T) => void), error?: (err: any) => void, complete?: () => void) {\n if (nextOrObserver && typeof (>nextOrObserver).next === 'function') {\n return this.observe(>nextOrObserver);\n } else {\n return this.do(<(value: T) => void>nextOrObserver, error, complete);\n }\n }\n\n /**\n * Returns a simple Observable that just delivers the notification represented\n * by this Notification instance.\n * @return {any}\n */\n toObservable(): Observable {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n }\n\n private static completeNotification: Notification = new Notification('C');\n private static undefinedValueNotification: Notification = new Notification('N', undefined);\n\n /**\n * A shortcut to create a Notification instance of the type `next` from a\n * given value.\n * @param {T} value The `next` value.\n * @return {Notification} The \"next\" Notification representing the\n * argument.\n * @nocollapse\n */\n static createNext(value: T): Notification {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n }\n\n /**\n * A shortcut to create a Notification instance of the type `error` from a\n * given error.\n * @param {any} [err] The `error` error.\n * @return {Notification} The \"error\" Notification representing the\n * argument.\n * @nocollapse\n */\n static createError(err?: any): Notification {\n return new Notification('E', undefined, err);\n }\n\n /**\n * A shortcut to create a Notification instance of the type `complete`.\n * @return {Notification} The valueless \"complete\" Notification.\n * @nocollapse\n */\n static createComplete(): Notification {\n return Notification.completeNotification;\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Notification } from '../Notification';\nimport { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n *\n * Re-emits all notifications from source Observable with specified scheduler.\n *\n * Ensure a specific scheduler is used, from outside of an Observable.\n *\n * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule\n * notifications emitted by the source Observable. It might be useful, if you do not have control over\n * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.\n *\n * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,\n * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal\n * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits\n * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.\n * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split\n * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source\n * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a\n * little bit more, to ensure that they are emitted at expected moments.\n *\n * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications\n * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`\n * will delay all notifications - including error notifications - while `delay` will pass through error\n * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator\n * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used\n * for notification emissions in general.\n *\n * ## Example\n * Ensure values in subscribe are called just before browser repaint.\n * ```ts\n * import { interval } from 'rxjs';\n * import { observeOn } from 'rxjs/operators';\n *\n * const intervals = interval(10); // Intervals are scheduled\n * // with async scheduler by default...\n * intervals.pipe(\n * observeOn(animationFrameScheduler), // ...but we will observe on animationFrame\n * ) // scheduler to ensure smooth animation.\n * .subscribe(val => {\n * someDiv.style.height = val + 'px';\n * });\n * ```\n *\n * @see {@link delay}\n *\n * @param {SchedulerLike} scheduler Scheduler that will be used to reschedule notifications from source Observable.\n * @param {number} [delay] Number of milliseconds that states with what delay every notification should be rescheduled.\n * @return {Observable} Observable that emits the same notifications as the source Observable,\n * but with provided scheduler.\n *\n * @method observeOn\n * @owner Observable\n */\nexport function observeOn(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction {\n return function observeOnOperatorFunction(source: Observable): Observable {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\n\nexport class ObserveOnOperator implements Operator {\n constructor(private scheduler: SchedulerLike, private delay: number = 0) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ObserveOnSubscriber extends Subscriber {\n /** @nocollapse */\n static dispatch(this: SchedulerAction, arg: ObserveOnMessage) {\n const { notification, destination } = arg;\n notification.observe(destination);\n this.unsubscribe();\n }\n\n constructor(destination: Subscriber,\n private scheduler: SchedulerLike,\n private delay: number = 0) {\n super(destination);\n }\n\n private scheduleMessage(notification: Notification): void {\n const destination = this.destination as Subscription;\n destination.add(this.scheduler.schedule(\n ObserveOnSubscriber.dispatch,\n this.delay,\n new ObserveOnMessage(notification, this.destination)\n ));\n }\n\n protected _next(value: T): void {\n this.scheduleMessage(Notification.createNext(value));\n }\n\n protected _error(err: any): void {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n }\n}\n\nexport class ObserveOnMessage {\n constructor(public notification: Notification,\n public destination: PartialObserver) {\n }\n}\n","import { Subject } from './Subject';\nimport { SchedulerLike } from './types';\nimport { queue } from './scheduler/queue';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\n/**\n * A variant of Subject that \"replays\" or emits old values to new subscribers.\n * It buffers a set number of values and will emit those values immediately to\n * any new subscribers in addition to emitting new values to existing subscribers.\n *\n * @class ReplaySubject\n */\nexport class ReplaySubject extends Subject {\n private _events: (ReplayEvent | T)[] = [];\n private _bufferSize: number;\n private _windowTime: number;\n private _infiniteTimeWindow: boolean = false;\n\n constructor(bufferSize: number = Number.POSITIVE_INFINITY,\n windowTime: number = Number.POSITIVE_INFINITY,\n private scheduler?: SchedulerLike) {\n super();\n this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n this._windowTime = windowTime < 1 ? 1 : windowTime;\n\n if (windowTime === Number.POSITIVE_INFINITY) {\n this._infiniteTimeWindow = true;\n this.next = this.nextInfiniteTimeWindow;\n } else {\n this.next = this.nextTimeWindow;\n }\n }\n\n private nextInfiniteTimeWindow(value: T): void {\n if (!this.isStopped) {\n const _events = this._events;\n _events.push(value);\n // Since this method is invoked in every next() call than the buffer\n // can overgrow the max size only by one item\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n }\n super.next(value);\n }\n\n private nextTimeWindow(value: T): void {\n if (!this.isStopped) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n }\n super.next(value);\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n // When `_infiniteTimeWindow === true` then the buffer is already trimmed\n const _infiniteTimeWindow = this._infiniteTimeWindow;\n const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n const scheduler = this.scheduler;\n const len = _events.length;\n let subscription: Subscription;\n\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n\n if (_infiniteTimeWindow) {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n } else {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next((>_events[i]).value);\n }\n }\n\n if (this.hasError) {\n subscriber.error(this.thrownError);\n } else if (this.isStopped) {\n subscriber.complete();\n }\n\n return subscription;\n }\n\n _getNow(): number {\n return (this.scheduler || queue).now();\n }\n\n private _trimBufferThenGetEvents(): ReplayEvent[] {\n const now = this._getNow();\n const _bufferSize = this._bufferSize;\n const _windowTime = this._windowTime;\n const _events = []>this._events;\n\n const eventsCount = _events.length;\n let spliceCount = 0;\n\n // Trim events that fall out of the time window.\n // Start at the front of the list. Break early once\n // we encounter an event that falls within the window.\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n\n return _events;\n }\n\n}\n\nclass ReplayEvent {\n constructor(public time: number, public value: T) {\n }\n}\n","import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that only emits a value when it completes. It will emit\n * its latest value to all its observers on completion.\n *\n * @class AsyncSubject\n */\nexport class AsyncSubject extends Subject {\n private value: T = null;\n private hasNext: boolean = false;\n private hasCompleted: boolean = false;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n return super._subscribe(subscriber);\n }\n\n next(value: T): void {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n }\n\n error(error: any): void {\n if (!this.hasCompleted) {\n super.error(error);\n }\n }\n\n complete(): void {\n this.hasCompleted = true;\n if (this.hasNext) {\n super.next(this.value);\n }\n super.complete();\n }\n}\n","let nextHandle = 1;\nconst RESOLVED = (() => Promise.resolve())();\nconst activeHandles: { [key: number]: any } = {};\n\n/**\n * Finds the handle in the list of active handles, and removes it.\n * Returns `true` if found, `false` otherwise. Used both to clear\n * Immediate scheduled tasks, and to identify if a task should be scheduled.\n */\nfunction findAndClearHandle(handle: number): boolean {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\n\n/**\n * Helper functions to schedule and unschedule microtasks.\n */\nexport const Immediate = {\n setImmediate(cb: () => void): number {\n const handle = nextHandle++;\n activeHandles[handle] = true;\n RESOLVED.then(() => findAndClearHandle(handle) && cb());\n return handle;\n },\n\n clearImmediate(handle: number): void {\n findAndClearHandle(handle);\n },\n};\n\n/**\n * Used for internal testing purposes only. Do not export from library.\n */\nexport const TestTools = {\n pending() {\n return Object.keys(activeHandles).length;\n }\n};\n","import { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nimport { AsapScheduler } from './AsapScheduler';\nimport { SchedulerAction } from '../types';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AsapAction extends AsyncAction {\n\n constructor(protected scheduler: AsapScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If a microtask has already been scheduled, don't schedule another\n // one. If a microtask hasn't been scheduled yet, schedule one now. Return\n // the current scheduled microtask id.\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(\n scheduler.flush.bind(scheduler, null)\n ));\n }\n protected recycleAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue is empty, cancel the requested microtask and\n // set the scheduled flag to undefined so the next AsapAction will schedule\n // its own.\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AsapScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n\n this.active = true;\n this.scheduled = undefined;\n\n const {actions} = this;\n let error: any;\n let index: number = -1;\n let count: number = actions.length;\n action = action || actions.shift();\n\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n\n this.active = false;\n\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\n\n/**\n *\n * Asap Scheduler\n *\n * Perform task as fast as it can be performed asynchronously\n *\n * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task\n * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing\n * code to end and then it will try to execute given task as fast as possible.\n *\n * `asap` scheduler will do its best to minimize time between end of currently executing code\n * and start of scheduled task. This makes it best candidate for performing so called \"deferring\".\n * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves\n * some (although minimal) unwanted delay.\n *\n * Note that using `asap` scheduler does not necessarily mean that your task will be first to process\n * after currently executing code. In particular, if some task was also scheduled with `asap` before,\n * that task will execute first. That being said, if you need to schedule task asynchronously, but\n * as soon as possible, `asap` scheduler is your best bet.\n *\n * ## Example\n * Compare async and asap scheduler<\n * ```ts\n * import { asapScheduler, asyncScheduler } from 'rxjs';\n *\n * asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first...\n * asapScheduler.schedule(() => console.log('asap'));\n *\n * // Logs:\n * // \"asap\"\n * // \"async\"\n * // ... but 'asap' goes first!\n * ```\n */\nexport const asapScheduler = new AsapScheduler(AsapAction);\n\n/**\n * @deprecated renamed. Use {@link asapScheduler}\n */\nexport const asap = asapScheduler;\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated renamed. Use {@link asyncScheduler}\n */\nexport const async = asyncScheduler;","import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AnimationFrameAction extends AsyncAction {\n\n constructor(protected scheduler: AnimationFrameScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(\n () => scheduler.flush(null)));\n }\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue is empty, cancel the requested animation frame and\n // set the scheduled flag to undefined so the next AnimationFrameAction will\n // request its own.\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n\n this.active = true;\n this.scheduled = undefined;\n\n const {actions} = this;\n let error: any;\n let index: number = -1;\n let count: number = actions.length;\n action = action || actions.shift();\n\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n\n this.active = false;\n\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:
\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated renamed. Use {@link animationFrameScheduler}\n */\nexport const animationFrame = animationFrameScheduler;\n","import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { SchedulerAction } from '../types';\n\nexport class VirtualTimeScheduler extends AsyncScheduler {\n\n protected static frameTimeFactor: number = 10;\n\n public frame: number = 0;\n public index: number = -1;\n\n constructor(SchedulerAction: typeof AsyncAction = VirtualAction as any,\n public maxFrames: number = Number.POSITIVE_INFINITY) {\n super(SchedulerAction, () => this.frame);\n }\n\n /**\n * Prompt the Scheduler to execute all of its queued actions, therefore\n * clearing its queue.\n * @return {void}\n */\n public flush(): void {\n\n const {actions, maxFrames} = this;\n let error: any, action: AsyncAction;\n\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @nodoc\n */\nexport class VirtualAction extends AsyncAction {\n\n protected active: boolean = true;\n\n constructor(protected scheduler: VirtualTimeScheduler,\n protected work: (this: SchedulerAction, state?: T) => void,\n protected index: number = scheduler.index += 1) {\n super(scheduler, work);\n this.index = scheduler.index = index;\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (!this.id) {\n return super.schedule(state, delay);\n }\n this.active = false;\n // If an action is rescheduled, we save allocations by mutating its state,\n // pushing it to the end of the scheduler queue, and recycling the action.\n // But since the VirtualTimeScheduler is used for testing, VirtualActions\n // must be immutable so they can be inspected later.\n const action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n }\n\n protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any {\n this.delay = scheduler.frame + delay;\n const {actions} = scheduler;\n actions.push(this);\n (actions as Array>).sort(VirtualAction.sortActions);\n return true;\n }\n\n protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any {\n return undefined;\n }\n\n protected _execute(state: T, delay: number): any {\n if (this.active === true) {\n return super._execute(state, delay);\n }\n }\n\n public static sortActions(a: VirtualAction, b: VirtualAction) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n } else if (a.index > b.index) {\n return 1;\n } else {\n return -1;\n }\n } else if (a.delay > b.delay) {\n return 1;\n } else {\n return -1;\n }\n }\n}\n","/* tslint:disable:no-empty */\nexport function noop() { }\n","import { Observable } from '../Observable';\nimport { ObservableInput } from '../types';\n\n/**\n * Tests to see if the object is an RxJS {@link Observable}\n * @param obj the object to test\n */\nexport function isObservable(obj: any): obj is Observable {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n","export interface ArgumentOutOfRangeError extends Error {\n}\n\nexport interface ArgumentOutOfRangeErrorCtor {\n new(): ArgumentOutOfRangeError;\n}\n\nconst ArgumentOutOfRangeErrorImpl = (() => {\n function ArgumentOutOfRangeErrorImpl(this: any) {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n\n return ArgumentOutOfRangeErrorImpl;\n})();\n\n/**\n * An error thrown when an element was queried at a certain index of an\n * Observable, but no such index or position exists in that sequence.\n *\n * @see {@link elementAt}\n * @see {@link take}\n * @see {@link takeLast}\n *\n * @class ArgumentOutOfRangeError\n */\nexport const ArgumentOutOfRangeError: ArgumentOutOfRangeErrorCtor = ArgumentOutOfRangeErrorImpl as any;","export interface EmptyError extends Error {\n}\n\nexport interface EmptyErrorCtor {\n new(): EmptyError;\n}\n\nconst EmptyErrorImpl = (() => {\n function EmptyErrorImpl(this: any) {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n\n EmptyErrorImpl.prototype = Object.create(Error.prototype);\n\n return EmptyErrorImpl;\n})();\n\n/**\n * An error thrown when an Observable or a sequence was queried but has no\n * elements.\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link single}\n *\n * @class EmptyError\n */\nexport const EmptyError: EmptyErrorCtor = EmptyErrorImpl as any;","export interface TimeoutError extends Error {\n}\n\nexport interface TimeoutErrorCtor {\n new(): TimeoutError;\n}\n\nconst TimeoutErrorImpl = (() => {\n function TimeoutErrorImpl(this: any) {\n Error.call(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n return this;\n }\n\n TimeoutErrorImpl.prototype = Object.create(Error.prototype);\n\n return TimeoutErrorImpl;\n})();\n\n/**\n * An error thrown when duetime elapses.\n *\n * @see {@link operators/timeout}\n *\n * @class TimeoutError\n */\nexport const TimeoutError: TimeoutErrorCtor = TimeoutErrorImpl as any;\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.\n *\n * ![](map.png)\n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * ## Example\n * Map every click to the clientX position of that click\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const positions = clicks.pipe(map(ev => ev.clientX));\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return {Observable} An Observable that emits the values from the source\n * Observable transformed by the given `project` function.\n * @method map\n * @owner Observable\n */\nexport function map(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction {\n return function mapOperation(source: Observable): Observable {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\n\nexport class MapOperator implements Operator {\n constructor(private project: (value: T, index: number) => R, private thisArg: any) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass MapSubscriber extends Subscriber {\n count: number = 0;\n private thisArg: any;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => R,\n thisArg: any) {\n super(destination);\n this.thisArg = thisArg || this;\n }\n\n // NOTE: This looks unoptimized, but it's actually purposefully NOT\n // using try/catch optimizations.\n protected _next(value: T) {\n let result: R;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { SchedulerLike, SchedulerAction } from '../types';\nimport { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { Subscriber } from '../Subscriber';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\n\n// tslint:disable:max-line-length\n/** @deprecated resultSelector is no longer supported, use a mapping function. */\nexport function bindCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n\nexport function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): () => Observable;\nexport function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable;\nexport function bindCallback(callbackFunc: (callback: () => any) => any, scheduler?: SchedulerLike): () => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\n\nexport function bindCallback(callbackFunc: (...args: Array
any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable;\nexport function bindCallback(callbackFunc: (...args: Array any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable;\n\nexport function bindCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n\n// tslint:enable:max-line-length\n\n/**\n * Converts a callback API to a function that returns an Observable.\n *\n * Give it a function `f` of type `f(x, callback)` and\n * it will return a function `g` that when called as `g(x)` will output an\n * Observable.\n *\n * `bindCallback` is not an operator because its input and output are not\n * Observables. The input is a function `func` with some parameters. The\n * last parameter must be a callback function that `func` calls when it is\n * done.\n *\n * The output of `bindCallback` is a function that takes the same parameters\n * as `func`, except the last one (the callback). When the output function\n * is called with arguments it will return an Observable. If function `func`\n * calls its callback with one argument, the Observable will emit that value.\n * If on the other hand the callback is called with multiple values the resulting\n * Observable will emit an array with said values as arguments.\n *\n * It is **very important** to remember that input function `func` is not called\n * when the output function is, but rather when the Observable returned by the output\n * function is subscribed. This means if `func` makes an AJAX request, that request\n * will be made every time someone subscribes to the resulting Observable, but not before.\n *\n * The last optional parameter - `scheduler` - can be used to control when the call\n * to `func` happens after someone subscribes to Observable, as well as when results\n * passed to callback will be emitted. By default, the subscription to an Observable calls `func`\n * synchronously, but using {@link asyncScheduler} as the last parameter will defer the call to `func`,\n * just like wrapping the call in `setTimeout` with a timeout of `0` would. If you were to use the async Scheduler\n * and call `subscribe` on the output Observable, all function calls that are currently executing\n * will end before `func` is invoked.\n *\n * By default, results passed to the callback are emitted immediately after `func` invokes the callback.\n * In particular, if the callback is called synchronously, then the subscription of the resulting Observable\n * will call the `next` function synchronously as well. If you want to defer that call,\n * you may use {@link asyncScheduler} just as before. This means that by using `Scheduler.async` you can\n * ensure that `func` always calls its callback asynchronously, thus avoiding terrifying Zalgo.\n *\n * Note that the Observable created by the output function will always emit a single value\n * and then complete immediately. If `func` calls the callback multiple times, values from subsequent\n * calls will not appear in the stream. If you need to listen for multiple calls,\n * you probably want to use {@link fromEvent} or {@link fromEventPattern} instead.\n *\n * If `func` depends on some context (`this` property) and is not already bound, the context of `func`\n * will be the context that the output function has at call time. In particular, if `func`\n * is called as a method of some objec and if `func` is not already bound, in order to preserve the context\n * it is recommended that the context of the output function is set to that object as well.\n *\n * If the input function calls its callback in the \"node style\" (i.e. first argument to callback is\n * optional error parameter signaling whether the call failed or not), {@link bindNodeCallback}\n * provides convenient error handling and probably is a better choice.\n * `bindCallback` will treat such functions the same as any other and error parameters\n * (whether passed or not) will always be interpreted as regular callback argument.\n *\n * ## Examples\n *\n * ### Convert jQuery's getJSON to an Observable API\n * ```ts\n * import { bindCallback } from 'rxjs';\n * import * as jQuery from 'jquery';\n *\n * // Suppose we have jQuery.getJSON('/my/url', callback)\n * const getJSONAsObservable = bindCallback(jQuery.getJSON);\n * const result = getJSONAsObservable('/my/url');\n * result.subscribe(x => console.log(x), e => console.error(e));\n * ```\n *\n * ### Receive an array of arguments passed to a callback\n * ```ts\n * import { bindCallback } from 'rxjs';\n *\n * const someFunction = (a, b, c) => {\n * console.log(a); // 5\n * console.log(b); // 'some string'\n * console.log(c); // {someProperty: 'someValue'}\n * };\n *\n * const boundSomeFunction = bindCallback(someFunction);\n * boundSomeFunction().subscribe(values => {\n * console.log(values) // [5, 'some string', {someProperty: 'someValue'}]\n * });\n * ```\n *\n * ### Compare behaviour with and without async Scheduler\n * ```ts\n * import { bindCallback } from 'rxjs';\n *\n * function iCallMyCallbackSynchronously(cb) {\n * cb();\n * }\n *\n * const boundSyncFn = bindCallback(iCallMyCallbackSynchronously);\n * const boundAsyncFn = bindCallback(iCallMyCallbackSynchronously, null, Rx.Scheduler.async);\n *\n * boundSyncFn().subscribe(() => console.log('I was sync!'));\n * boundAsyncFn().subscribe(() => console.log('I was async!'));\n * console.log('This happened...');\n *\n * // Logs:\n * // I was sync!\n * // This happened...\n * // I was async!\n * ```\n *\n * ### Use bindCallback on an object method\n * ```ts\n * import { bindCallback } from 'rxjs';\n *\n * const boundMethod = bindCallback(someObject.methodWithCallback);\n * boundMethod.call(someObject) // make sure methodWithCallback has access to someObject\n * .subscribe(subscriber);\n * ```\n *\n * @see {@link bindNodeCallback}\n * @see {@link from}\n *\n * @param {function} func A function with a callback as the last parameter.\n * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the\n * callbacks.\n * @return {function(...params: *): Observable} A function which returns the\n * Observable that delivers the same values the callback would deliver.\n * @name bindCallback\n */\nexport function bindCallback(\n callbackFunc: Function,\n resultSelector?: Function|SchedulerLike,\n scheduler?: SchedulerLike\n): (...args: any[]) => Observable {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n } else {\n // DEPRECATED PATH\n return (...args: any[]) => bindCallback(callbackFunc, scheduler)(...args).pipe(\n map((args) => isArray(args) ? resultSelector(...args) : resultSelector(args)),\n );\n }\n }\n\n return function (this: any, ...args: any[]): Observable {\n const context = this;\n let subject: AsyncSubject;\n const params = {\n context,\n subject,\n callbackFunc,\n scheduler,\n };\n return new Observable(subscriber => {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n const handler = (...innerArgs: any[]) => {\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n } else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n } else {\n const state: DispatchState = {\n args, subscriber, params,\n };\n return scheduler.schedule>(dispatch, 0, state);\n }\n });\n };\n}\n\ninterface DispatchState {\n args: any[];\n subscriber: Subscriber;\n params: ParamsContext;\n}\n\ninterface ParamsContext {\n callbackFunc: Function;\n scheduler: SchedulerLike;\n context: any;\n subject: AsyncSubject;\n}\n\nfunction dispatch(this: SchedulerAction>, state: DispatchState) {\n const self = this;\n const { args, subscriber, params } = state;\n const { callbackFunc, context, scheduler } = params;\n let { subject } = params;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n\n const handler = (...innerArgs: any[]) => {\n const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n this.add(scheduler.schedule>(dispatchNext, 0, { value, subject }));\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n subject.error(err);\n }\n }\n\n this.add(subject.subscribe(subscriber));\n}\n\ninterface NextState {\n subject: AsyncSubject;\n value: T;\n}\n\nfunction dispatchNext(this: SchedulerAction>, state: NextState) {\n const { value, subject } = state;\n subject.next(value);\n subject.complete();\n}\n\ninterface ErrorState {\n subject: AsyncSubject;\n err: any;\n}\n\nfunction dispatchError(this: SchedulerAction>, state: ErrorState) {\n const { err, subject } = state;\n subject.error(err);\n}\n","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { Subscriber } from '../Subscriber';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\n\n/* tslint:disable:max-line-length */\n/** @deprecated resultSelector is deprecated, pipe to map instead */\nexport function bindNodeCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any) => any) => any, scheduler?: SchedulerLike): () => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; /* tslint:enable:max-line-length */\n\nexport function bindNodeCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n/**\n * Converts a Node.js-style callback API to a function that returns an\n * Observable.\n *\n * It's just like {@link bindCallback}, but the\n * callback is expected to be of type `callback(error, result)`.\n *\n * `bindNodeCallback` is not an operator because its input and output are not\n * Observables. The input is a function `func` with some parameters, but the\n * last parameter must be a callback function that `func` calls when it is\n * done. The callback function is expected to follow Node.js conventions,\n * where the first argument to the callback is an error object, signaling\n * whether call was successful. If that object is passed to callback, it means\n * something went wrong.\n *\n * The output of `bindNodeCallback` is a function that takes the same\n * parameters as `func`, except the last one (the callback). When the output\n * function is called with arguments, it will return an Observable.\n * If `func` calls its callback with error parameter present, Observable will\n * error with that value as well. If error parameter is not passed, Observable will emit\n * second parameter. If there are more parameters (third and so on),\n * Observable will emit an array with all arguments, except first error argument.\n *\n * Note that `func` will not be called at the same time output function is,\n * but rather whenever resulting Observable is subscribed. By default call to\n * `func` will happen synchronously after subscription, but that can be changed\n * with proper `scheduler` provided as optional third parameter. {@link SchedulerLike}\n * can also control when values from callback will be emitted by Observable.\n * To find out more, check out documentation for {@link bindCallback}, where\n * {@link SchedulerLike} works exactly the same.\n *\n * As in {@link bindCallback}, context (`this` property) of input function will be set to context\n * of returned function, when it is called.\n *\n * After Observable emits value, it will complete immediately. This means\n * even if `func` calls callback again, values from second and consecutive\n * calls will never appear on the stream. If you need to handle functions\n * that call callbacks multiple times, check out {@link fromEvent} or\n * {@link fromEventPattern} instead.\n *\n * Note that `bindNodeCallback` can be used in non-Node.js environments as well.\n * \"Node.js-style\" callbacks are just a convention, so if you write for\n * browsers or any other environment and API you use implements that callback style,\n * `bindNodeCallback` can be safely used on that API functions as well.\n *\n * Remember that Error object passed to callback does not have to be an instance\n * of JavaScript built-in `Error` object. In fact, it does not even have to an object.\n * Error parameter of callback function is interpreted as \"present\", when value\n * of that parameter is truthy. It could be, for example, non-zero number, non-empty\n * string or boolean `true`. In all of these cases resulting Observable would error\n * with that value. This means usually regular style callbacks will fail very often when\n * `bindNodeCallback` is used. If your Observable errors much more often then you\n * would expect, check if callback really is called in Node.js-style and, if not,\n * switch to {@link bindCallback} instead.\n *\n * Note that even if error parameter is technically present in callback, but its value\n * is falsy, it still won't appear in array emitted by Observable.\n *\n * ## Examples\n * ### Read a file from the filesystem and get the data as an Observable\n * ```ts\n * import * as fs from 'fs';\n * const readFileAsObservable = bindNodeCallback(fs.readFile);\n * const result = readFileAsObservable('./roadNames.txt', 'utf8');\n * result.subscribe(x => console.log(x), e => console.error(e));\n * ```\n *\n * ### Use on function calling callback with multiple arguments\n * ```ts\n * someFunction((err, a, b) => {\n * console.log(err); // null\n * console.log(a); // 5\n * console.log(b); // \"some string\"\n * });\n * const boundSomeFunction = bindNodeCallback(someFunction);\n * boundSomeFunction()\n * .subscribe(value => {\n * console.log(value); // [5, \"some string\"]\n * });\n * ```\n *\n * ### Use on function calling callback in regular style\n * ```ts\n * someFunction(a => {\n * console.log(a); // 5\n * });\n * const boundSomeFunction = bindNodeCallback(someFunction);\n * boundSomeFunction()\n * .subscribe(\n * value => {} // never gets called\n * err => console.log(err) // 5\n * );\n * ```\n *\n * @see {@link bindCallback}\n * @see {@link from}\n *\n * @param {function} func Function with a Node.js-style callback as the last parameter.\n * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the\n * callbacks.\n * @return {function(...params: *): Observable} A function which returns the\n * Observable that delivers the same values the Node.js callback would\n * deliver.\n * @name bindNodeCallback\n */\nexport function bindNodeCallback(\n callbackFunc: Function,\n resultSelector: Function|SchedulerLike,\n scheduler?: SchedulerLike\n): (...args: any[]) => Observable {\n\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n } else {\n // DEPRECATED PATH\n return (...args: any[]) => bindNodeCallback(callbackFunc, scheduler)(...args).pipe(\n map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n );\n }\n }\n\n return function(this: any, ...args: any[]): Observable {\n const params: ParamsState = {\n subject: undefined,\n args,\n callbackFunc,\n scheduler,\n context: this,\n };\n return new Observable(subscriber => {\n const { context } = params;\n let { subject } = params;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n const handler = (...innerArgs: any[]) => {\n const err = innerArgs.shift();\n\n if (err) {\n subject.error(err);\n return;\n }\n\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n } else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n } else {\n return scheduler.schedule>(dispatch, 0, { params, subscriber, context });\n }\n });\n };\n}\n\ninterface DispatchState {\n subscriber: Subscriber;\n context: any;\n params: ParamsState;\n}\n\ninterface ParamsState {\n callbackFunc: Function;\n args: any[];\n scheduler: SchedulerLike;\n subject: AsyncSubject;\n context: any;\n}\n\nfunction dispatch(this: SchedulerAction>, state: DispatchState) {\n const { params, subscriber, context } = state;\n const { callbackFunc, args, scheduler } = params;\n let subject = params.subject;\n\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n\n const handler = (...innerArgs: any[]) => {\n const err = innerArgs.shift();\n if (err) {\n this.add(scheduler.schedule>(dispatchError, 0, { err, subject }));\n } else {\n const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n this.add(scheduler.schedule>(dispatchNext, 0, { value, subject }));\n }\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n this.add(scheduler.schedule>(dispatchError, 0, { err, subject }));\n }\n }\n\n this.add(subject.subscribe(subscriber));\n}\n\ninterface DispatchNextArg {\n subject: AsyncSubject;\n value: T;\n}\n\nfunction dispatchNext(arg: DispatchNextArg) {\n const { value, subject } = arg;\n subject.next(value);\n subject.complete();\n}\n\ninterface DispatchErrorArg {\n subject: AsyncSubject;\n err: any;\n}\n\nfunction dispatchError(arg: DispatchErrorArg) {\n const { err, subject } = arg;\n subject.error(err);\n}\n","import { Subscriber } from './Subscriber';\nimport { InnerSubscriber } from './InnerSubscriber';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class OuterSubscriber extends Subscriber {\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(innerValue);\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this.destination.error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.destination.complete();\n }\n}\n","import { Subscriber } from './Subscriber';\nimport { OuterSubscriber } from './OuterSubscriber';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class InnerSubscriber extends Subscriber {\n private index = 0;\n\n constructor(private parent: OuterSubscriber, public outerValue: T, public outerIndex: number) {\n super();\n }\n\n protected _next(value: R): void {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n }\n\n protected _error(error: any): void {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { hostReportError } from './hostReportError';\n\nexport const subscribeToPromise = (promise: PromiseLike) => (subscriber: Subscriber) => {\n promise.then(\n (value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n },\n (err: any) => subscriber.error(err)\n )\n .then(null, hostReportError);\n return subscriber;\n};\n","export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n\n/**\n * @deprecated use {@link iterator} instead\n */\nexport const $$iterator = iterator;\n","import { Subscriber } from '../Subscriber';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\n\nexport const subscribeToIterable = (iterable: Iterable) => (subscriber: Subscriber) => {\n const iterator = (iterable as any)[Symbol_iterator]();\n\n do {\n let item: IteratorResult;\n try {\n item = iterator.next();\n } catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n\n // Finalize the iterator if it happens to be a Generator\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n\n return subscriber;\n};\n","import { Subscriber } from '../Subscriber';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\n/**\n * Subscribes to an object that implements Symbol.observable with the given\n * Subscriber.\n * @param obj An object that implements Symbol.observable\n */\nexport const subscribeToObservable = (obj: any) => (subscriber: Subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n // Should be caught by observable subscribe function error handling.\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n } else {\n return obs.subscribe(subscriber);\n }\n};\n","export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');","/**\n * Tests to see if the object is an ES2015 (ES6) Promise\n * @see {@link https://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects}\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return !!value && typeof (value).subscribe !== 'function' && typeof (value as any).then === 'function';\n}\n","import { ObservableInput } from '../types';\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { Subscription } from '../Subscription';\nimport { Subscriber } from '../Subscriber';\n\nexport const subscribeTo = (result: ObservableInput): (subscriber: Subscriber) => Subscription | void => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result as any);\n } else if (isArrayLike(result)) {\n return subscribeToArray(result);\n } else if (isPromise(result)) {\n return subscribeToPromise(result as Promise);\n } else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result as any);\n } else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n","import { Subscription } from '../Subscription';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { Subscriber } from '../Subscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\n\nexport function subscribeToResult(\n outerSubscriber: OuterSubscriber,\n result: any,\n outerValue: undefined,\n outerIndex: undefined,\n innerSubscriber: InnerSubscriber\n): Subscription | undefined;\n\nexport function subscribeToResult(\n outerSubscriber: OuterSubscriber,\n result: any,\n outerValue?: T,\n outerIndex?: number\n): Subscription | undefined;\n\nexport function subscribeToResult(\n outerSubscriber: OuterSubscriber,\n result: any,\n outerValue?: T,\n outerIndex?: number,\n innerSubscriber: Subscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)\n): Subscription | undefined {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber) as Subscription;\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { Operator } from '../Operator';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\n\nconst NONE = {};\n\n/* tslint:disable:max-line-length */\n\n// If called with a single array, it \"auto-spreads\" the array, with result selector\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, R>(sources: [O1], resultSelector: (v1: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, R>(sources: [O1, O2], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, R>(sources: [O1, O2, O3], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(sources: [O1, O2, O3, O4], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(sources: [O1, O2, O3, O4, O5], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(sources: [O1, O2, O3, O4, O5, O6], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, R>(sources: O[], resultSelector: (...args: ObservedValueOf[]) => R, scheduler?: SchedulerLike): Observable;\n\n// standard call, but with a result selector\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, R>(v1: O1, resultSelector: (v1: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n\n// With a scheduler (deprecated)\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest>(sources: [O1], scheduler: SchedulerLike): Observable<[ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, O2 extends ObservableInput>(sources: [O1, O2], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(sources: [O1, O2, O3], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(sources: [O1, O2, O3, O4], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(sources: [O1, O2, O3, O4, O5], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(sources: [O1, O2, O3, O4, O5, O6], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest>(sources: O[], scheduler: SchedulerLike): Observable[]>;\n\n// Best case\nexport function combineLatest>(sources: [O1]): Observable<[ObservedValueOf]>;\nexport function combineLatest, O2 extends ObservableInput>(sources: [O1, O2]): Observable<[ObservedValueOf, ObservedValueOf]>;\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(sources: [O1, O2, O3]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(sources: [O1, O2, O3, O4]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(sources: [O1, O2, O3, O4, O5]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(sources: [O1, O2, O3, O4, O5, O6]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function combineLatest>(sources: O[]): Observable[]>;\n\n// Standard calls\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest>(v1: O1, scheduler?: SchedulerLike): Observable<[ObservedValueOf]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, O2 extends ObservableInput>(v1: O1, v2: O2, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest>(...observables: O[]): Observable;\n\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, R>(...observables: Array | ((...values: Array) => R)>): Observable;\n\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, R>(array: O[], resultSelector: (...values: ObservedValueOf[]) => R, scheduler?: SchedulerLike): Observable;\n\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest>(...observables: Array): Observable;\n\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, R>(...observables: Array[]) => R) | SchedulerLike>): Observable;\n\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest(...observables: Array | ((...values: Array) => R) | SchedulerLike>): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Combines multiple Observables to create an Observable whose values are\n * calculated from the latest values of each of its input Observables.\n *\n * Whenever any input Observable emits a value, it\n * computes a formula using the latest values from all the inputs, then emits\n * the output of that formula.\n *\n * ![](combineLatest.png)\n *\n * `combineLatest` combines the values from all the Observables passed as\n * arguments. This is done by subscribing to each Observable in order and,\n * whenever any Observable emits, collecting an array of the most recent\n * values from each Observable. So if you pass `n` Observables to operator,\n * returned Observable will always emit an array of `n` values, in order\n * corresponding to order of passed Observables (value from the first Observable\n * on the first place and so on).\n *\n * Static version of `combineLatest` accepts either an array of Observables\n * or each Observable can be put directly as an argument. Note that array of\n * Observables is good choice, if you don't know beforehand how many Observables\n * you will combine. Passing empty array will result in Observable that\n * completes immediately.\n *\n * To ensure output array has always the same length, `combineLatest` will\n * actually wait for all input Observables to emit at least once,\n * before it starts emitting results. This means if some Observable emits\n * values before other Observables started emitting, all these values but the last\n * will be lost. On the other hand, if some Observable does not emit a value but\n * completes, resulting Observable will complete at the same moment without\n * emitting anything, since it will be now impossible to include value from\n * completed Observable in resulting array. Also, if some input Observable does\n * not emit any value and never completes, `combineLatest` will also never emit\n * and never complete, since, again, it will wait for all streams to emit some\n * value.\n *\n * If at least one Observable was passed to `combineLatest` and all passed Observables\n * emitted something, resulting Observable will complete when all combined\n * streams complete. So even if some Observable completes, result of\n * `combineLatest` will still emit values when other Observables do. In case\n * of completed Observable, its value from now on will always be the last\n * emitted value. On the other hand, if any Observable errors, `combineLatest`\n * will error immediately as well, and all other Observables will be unsubscribed.\n *\n * `combineLatest` accepts as optional parameter `project` function, which takes\n * as arguments all values that would normally be emitted by resulting Observable.\n * `project` can return any kind of value, which will be then emitted by Observable\n * instead of default array. Note that `project` does not take as argument that array\n * of values, but values themselves. That means default `project` can be imagined\n * as function that takes all its arguments and puts them into an array.\n *\n * ## Examples\n * ### Combine two timer Observables\n * ```ts\n * import { combineLatest, timer } from 'rxjs';\n *\n * const firstTimer = timer(0, 1000); // emit 0, 1, 2... after every second, starting from now\n * const secondTimer = timer(500, 1000); // emit 0, 1, 2... after every second, starting 0,5s from now\n * const combinedTimers = combineLatest(firstTimer, secondTimer);\n * combinedTimers.subscribe(value => console.log(value));\n * // Logs\n * // [0, 0] after 0.5s\n * // [1, 0] after 1s\n * // [1, 1] after 1.5s\n * // [2, 1] after 2s\n * ```\n *\n * ### Combine an array of Observables\n * ```ts\n * import { combineLatest, of } from 'rxjs';\n * import { delay, starWith } from 'rxjs/operators';\n *\n * const observables = [1, 5, 10].map(\n * n => of(n).pipe(\n * delay(n * 1000), // emit 0 and then emit n after n seconds\n * startWith(0),\n * )\n * );\n * const combined = combineLatest(observables);\n * combined.subscribe(value => console.log(value));\n * // Logs\n * // [0, 0, 0] immediately\n * // [1, 0, 0] after 1s\n * // [1, 5, 0] after 5s\n * // [1, 5, 10] after 10s\n * ```\n *\n *\n * ### Use project function to dynamically calculate the Body-Mass Index\n * ```ts\n * import { combineLatest, of } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * const weight = of(70, 72, 76, 79, 75);\n * const height = of(1.76, 1.77, 1.78);\n * const bmi = combineLatest(weight, height).pipe(\n * map(([w, h]) => w / (h * h)),\n * );\n * bmi.subscribe(x => console.log('BMI is ' + x));\n *\n * // With output to console:\n * // BMI is 24.212293388429753\n * // BMI is 23.93948099205209\n * // BMI is 23.671253629592222\n * ```\n *\n * @see {@link combineAll}\n * @see {@link merge}\n * @see {@link withLatestFrom}\n *\n * @param {ObservableInput} observable1 An input Observable to combine with other Observables.\n * @param {ObservableInput} observable2 An input Observable to combine with other Observables.\n * More than one input Observables may be given as arguments\n * or an array of Observables may be given as the first argument.\n * @param {function} [project] An optional function to project the values from\n * the combined latest values into a new value on the output Observable.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to\n * each input Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n */\nexport function combineLatest, R>(\n ...observables: (O | ((...values: ObservedValueOf[]) => R) | SchedulerLike)[]\n): Observable {\n let resultSelector: ((...values: Array) => R) | undefined = undefined;\n let scheduler: SchedulerLike|undefined = undefined;\n\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop() as SchedulerLike;\n }\n\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop() as (...values: Array) => R;\n }\n\n // if the first and only other argument besides the resultSelector is an array\n // assume it's been called with `combineLatest([obs1, obs2, obs3], resultSelector)`\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0] as any;\n }\n\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\n\nexport class CombineLatestOperator implements Operator {\n constructor(private resultSelector?: (...values: Array) => R) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class CombineLatestSubscriber extends OuterSubscriber {\n private active: number = 0;\n private values: any[] = [];\n private observables: any[] = [];\n private toRespond?: number;\n\n constructor(destination: Subscriber, private resultSelector?: (...values: Array) => R) {\n super(destination);\n }\n\n protected _next(observable: any) {\n this.values.push(NONE);\n this.observables.push(observable);\n }\n\n protected _complete() {\n const observables = this.observables;\n const len = observables.length;\n if (len === 0) {\n this.destination.complete!();\n } else {\n this.active = len;\n this.toRespond = len;\n for (let i = 0; i < len; i++) {\n const observable = observables[i];\n this.add(subscribeToResult(this, observable, undefined, i));\n }\n }\n }\n\n notifyComplete(unused: Subscriber): void {\n if ((this.active -= 1) === 0) {\n this.destination.complete!();\n }\n }\n\n notifyNext(_outerValue: T, innerValue: R,\n outerIndex: number): void {\n const values = this.values;\n const oldVal = values[outerIndex];\n const toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n } else {\n this.destination.next!(values.slice());\n }\n }\n }\n\n private _tryResultSelector(values: any[]) {\n let result: any;\n try {\n result = this.resultSelector!.apply(this, values);\n } catch (err) {\n this.destination.error!(err);\n return;\n }\n this.destination.next!(result);\n }\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { InteropObservable, SchedulerLike, Subscribable } from '../types';\n\nexport function scheduleObservable(input: InteropObservable, scheduler: SchedulerLike) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable: Subscribable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\n\nexport function schedulePromise(input: PromiseLike, scheduler: SchedulerLike) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(\n value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n },\n err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n }\n )));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\n\nexport function scheduleIterable(input: Iterable, scheduler: SchedulerLike) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator: Iterator;\n sub.add(() => {\n // Finalize generators\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value: T;\n let done: boolean;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n } catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n } else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n","import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return input && typeof input[Symbol_observable] === 'function';\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { ObservableInput, SchedulerLike, Observable } from 'rxjs';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\n\n/**\n * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions\n * are scheduled on the provided scheduler.\n *\n * @see from\n * @see of\n *\n * @param input The observable, array, promise, iterable, etc you would like to schedule\n * @param scheduler The scheduler to use to schedule the subscription and emissions from\n * the returned observable.\n */\nexport function scheduled(input: ObservableInput, scheduler: SchedulerLike): Observable {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n } else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n } else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n } else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { scheduled } from '../scheduled/scheduled';\n\nexport function from>(input: O): Observable>;\n/** @deprecated use {@link scheduled} instead. */\nexport function from>(input: O, scheduler: SchedulerLike): Observable>;\n\n/**\n * Creates an Observable from an Array, an array-like object, a Promise, an iterable object, or an Observable-like object.\n *\n * Converts almost anything to an Observable.\n *\n * ![](from.png)\n *\n * `from` converts various other objects and data types into Observables. It also converts a Promise, an array-like, or an\n * iterable\n * object into an Observable that emits the items in that promise, array, or iterable. A String, in this context, is treated\n * as an array of characters. Observable-like objects (contains a function named with the ES2015 Symbol for Observable) can also be\n * converted through this operator.\n *\n * ## Examples\n *\n * ### Converts an array to an Observable\n *\n * ```ts\n * import { from } from 'rxjs';\n *\n * const array = [10, 20, 30];\n * const result = from(array);\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 10\n * // 20\n * // 30\n * ```\n *\n * ---\n *\n * ### Convert an infinite iterable (from a generator) to an Observable\n *\n * ```ts\n * import { from } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * function* generateDoubles(seed) {\n * let i = seed;\n * while (true) {\n * yield i;\n * i = 2 * i; // double it\n * }\n * }\n *\n * const iterator = generateDoubles(3);\n * const result = from(iterator).pipe(take(10));\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 3\n * // 6\n * // 12\n * // 24\n * // 48\n * // 96\n * // 192\n * // 384\n * // 768\n * // 1536\n * ```\n *\n * ---\n *\n * ### With async scheduler\n *\n * ```ts\n * import { from, asyncScheduler } from 'rxjs';\n *\n * console.log('start');\n *\n * const array = [10, 20, 30];\n * const result = from(array, asyncScheduler);\n *\n * result.subscribe(x => console.log(x));\n *\n * console.log('end');\n *\n * // Logs:\n * // start\n * // end\n * // 10\n * // 20\n * // 30\n * ```\n *\n * @see {@link fromEvent}\n * @see {@link fromEventPattern}\n *\n * @param {ObservableInput} A subscription object, a Promise, an Observable-like,\n * an Array, an iterable, or an array-like object to be converted.\n * @param {SchedulerLike} An optional {@link SchedulerLike} on which to schedule the emission of values.\n * @return {Observable}\n * @name from\n * @owner Observable\n */\nexport function from(input: ObservableInput, scheduler?: SchedulerLike): Observable {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n } else {\n return scheduled(input, scheduler);\n }\n}\n","/** @prettier */\nimport { Subscription } from './Subscription';\nimport { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\n\ninterface SimpleOuterSubscriberLike {\n /**\n * A handler for inner next notifications from the inner subscription\n * @param innerValue the value nexted by the inner producer\n */\n notifyNext(innerValue: T): void;\n /**\n * A handler for inner error notifications from the inner subscription\n * @param err the error from the inner producer\n */\n notifyError(err: any): void;\n /**\n * A handler for inner complete notifications from the inner subscription.\n */\n notifyComplete(): void;\n}\n\nexport class SimpleInnerSubscriber extends Subscriber {\n constructor(private parent: SimpleOuterSubscriberLike) {\n super();\n }\n\n protected _next(value: T): void {\n this.parent.notifyNext(value);\n }\n\n protected _error(error: any): void {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.parent.notifyComplete();\n this.unsubscribe();\n }\n}\n\nexport class ComplexInnerSubscriber extends Subscriber {\n constructor(private parent: ComplexOuterSubscriber, public outerValue: T, public outerIndex: number) {\n super();\n }\n\n protected _next(value: R): void {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n }\n\n protected _error(error: any): void {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n\nexport class SimpleOuterSubscriber extends Subscriber implements SimpleOuterSubscriberLike {\n notifyNext(innerValue: R): void {\n this.destination.next(innerValue);\n }\n\n notifyError(err: any): void {\n this.destination.error(err);\n }\n\n notifyComplete(): void {\n this.destination.complete();\n }\n}\n\n/**\n * DO NOT USE (formerly \"OuterSubscriber\")\n * TODO: We want to refactor this and remove it. It is retaining values it shouldn't for long\n * periods of time.\n */\nexport class ComplexOuterSubscriber extends Subscriber {\n /**\n * @param _outerValue Used by: bufferToggle, delayWhen, windowToggle\n * @param innerValue Used by: subclass default, combineLatest, race, bufferToggle, windowToggle, withLatestFrom\n * @param _outerIndex Used by: combineLatest, race, withLatestFrom\n * @param _innerSub Used by: delayWhen\n */\n notifyNext(_outerValue: T, innerValue: R, _outerIndex: number, _innerSub: ComplexInnerSubscriber): void {\n this.destination.next(innerValue);\n }\n\n notifyError(error: any): void {\n this.destination.error(error);\n }\n\n /**\n * @param _innerSub Used by: race, bufferToggle, delayWhen, windowToggle, windowWhen\n */\n notifyComplete(_innerSub: ComplexInnerSubscriber): void {\n this.destination.complete();\n }\n}\n\nexport function innerSubscribe(result: any, innerSubscriber: Subscriber): Subscription | undefined {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber) as Subscription;\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\n\n/* tslint:disable:max-line-length */\nexport function mergeMap>(project: (value: T, index: number) => O, concurrent?: number): OperatorFunction>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function mergeMap>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function mergeMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.\n *\n * ![](mergeMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger.\n *\n * ## Example\n * Map and flatten each letter to an Observable ticking every 1 second\n * ```ts\n * import { of, interval } from 'rxjs';\n * import { mergeMap, map } from 'rxjs/operators';\n *\n * const letters = of('a', 'b', 'c');\n * const result = letters.pipe(\n * mergeMap(x => interval(1000).pipe(map(i => x+i))),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // a0\n * // b0\n * // c0\n * // a1\n * // b1\n * // c1\n * // continues to list a,b,c with respective ascending integers\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional deprecated `resultSelector`) to each item\n * emitted by the source Observable and merging the results of the Observables\n * obtained from this transformation.\n */\nexport function mergeMap>(\n project: (value: T, index: number) => O,\n resultSelector?: ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R) | number,\n concurrent: number = Number.POSITIVE_INFINITY\n): OperatorFunction|R> {\n if (typeof resultSelector === 'function') {\n // DEPRECATED PATH\n return (source: Observable) => source.pipe(\n mergeMap((a, i) => from(project(a, i)).pipe(\n map((b: any, ii: number) => resultSelector(a, b, i, ii)),\n ), concurrent)\n );\n } else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source: Observable) => source.lift(new MergeMapOperator(project, concurrent));\n}\n\nexport class MergeMapOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput,\n private concurrent: number = Number.POSITIVE_INFINITY) {\n }\n\n call(observer: Subscriber, source: any): any {\n return source.subscribe(new MergeMapSubscriber(\n observer, this.project, this.concurrent\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class MergeMapSubscriber extends SimpleOuterSubscriber {\n private hasCompleted: boolean = false;\n private buffer: T[] = [];\n private active: number = 0;\n protected index: number = 0;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput,\n private concurrent: number = Number.POSITIVE_INFINITY) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n } else {\n this.buffer.push(value);\n }\n }\n\n protected _tryNext(value: T) {\n let result: ObservableInput;\n const index = this.index++;\n try {\n result = this.project(value, index);\n } catch (err) {\n this.destination.error!(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n }\n\n private _innerSub(ish: ObservableInput): void {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination as Subscription;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(ish, innerSubscriber);\n // The returned subscription will usually be the subscriber that was\n // passed. However, interop subscribers will be wrapped and for\n // unsubscriptions to chain correctly, the wrapper needs to be added, too.\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete!();\n }\n this.unsubscribe();\n }\n\n notifyNext(innerValue: R): void {\n this.destination.next!(innerValue);\n }\n\n notifyComplete(): void {\n const buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift()!);\n } else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete!();\n }\n }\n}\n\n/**\n * @deprecated renamed. Use {@link mergeMap}\n */\nexport const flatMap = mergeMap;","\nimport { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nimport { OperatorFunction, ObservableInput } from '../types';\n\n/**\n * Converts a higher-order Observable into a first-order Observable which\n * concurrently delivers all values that are emitted on the inner Observables.\n *\n * Flattens an Observable-of-Observables.\n *\n * ![](mergeAll.png)\n *\n * `mergeAll` subscribes to an Observable that emits Observables, also known as\n * a higher-order Observable. Each time it observes one of these emitted inner\n * Observables, it subscribes to that and delivers all the values from the\n * inner Observable on the output Observable. The output Observable only\n * completes once all inner Observables have completed. Any error delivered by\n * a inner Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n * Spawn a new interval Observable for each click event, and blend their outputs as one Observable\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { map, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(map((ev) => interval(1000)));\n * const firstOrder = higherOrder.pipe(mergeAll());\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { take, map, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map((ev) => interval(1000).pipe(take(10))),\n * );\n * const firstOrder = higherOrder.pipe(mergeAll(2));\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link exhaust}\n * @see {@link merge}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits values coming from all the\n * inner Observables emitted by the source Observable.\n * @method mergeAll\n * @owner Observable\n */\nexport function mergeAll(concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction, T> {\n return mergeMap(identity, concurrent);\n}\n","\nimport { mergeAll } from './mergeAll';\nimport { OperatorFunction, ObservableInput } from '../types';\n\nexport function concatAll(): OperatorFunction, T>;\nexport function concatAll(): OperatorFunction;\n\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * concatenating the inner Observables in order.\n *\n * Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.\n *\n * ![](concatAll.png)\n *\n * Joins every Observable emitted by the source (a higher-order Observable), in\n * a serial fashion. It subscribes to each inner Observable only after the\n * previous inner Observable has completed, and merges all of their values into\n * the returned observable.\n *\n * __Warning:__ If the source Observable emits Observables quickly and\n * endlessly, and the inner Observables it emits generally complete slower than\n * the source emits, you can run into memory issues as the incoming Observables\n * collect in an unbounded buffer.\n *\n * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set\n * to `1`.\n *\n * ## Example\n *\n * For each click event, tick every second from 0 to 3, with no concurrency\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { map, take, concatAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map(ev => interval(1000).pipe(take(4))),\n * );\n * const firstOrder = higherOrder.pipe(concatAll());\n * firstOrder.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concat}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link exhaust}\n * @see {@link mergeAll}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @return {Observable} An Observable emitting values from all the inner\n * Observables concatenated.\n * @method concatAll\n * @owner Observable\n */\nexport function concatAll(): OperatorFunction, T> {\n return mergeAll(1);\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { of } from './of';\nimport { from } from './from';\nimport { concatAll } from '../operators/concatAll';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat>(v1: O1, scheduler: SchedulerLike): Observable>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat, O2 extends ObservableInput>(v1: O1, v2: O2, scheduler: SchedulerLike): Observable | ObservedValueOf>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\n\nexport function concat>(v1: O1): Observable>;\nexport function concat, O2 extends ObservableInput>(v1: O1, v2: O2): Observable | ObservedValueOf>;\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3): Observable | ObservedValueOf | ObservedValueOf>;\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\nexport function concat>(...observables: O[]): Observable>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat>(...observables: (O | SchedulerLike)[]): Observable>;\nexport function concat(...observables: ObservableInput[]): Observable;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat(...observables: (ObservableInput | SchedulerLike)[]): Observable;\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which sequentially emits all values from given\n * Observable and then moves on to the next.\n *\n * Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.\n *\n * ![](concat.png)\n *\n * `concat` joins multiple Observables together, by subscribing to them one at a time and\n * merging their results into the output Observable. You can pass either an array of\n * Observables, or put them directly as arguments. Passing an empty array will result\n * in Observable that completes immediately.\n *\n * `concat` will subscribe to first input Observable and emit all its values, without\n * changing or affecting them in any way. When that Observable completes, it will\n * subscribe to then next Observable passed and, again, emit its values. This will be\n * repeated, until the operator runs out of Observables. When last input Observable completes,\n * `concat` will complete as well. At any given moment only one Observable passed to operator\n * emits values. If you would like to emit values from passed Observables concurrently, check out\n * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact,\n * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`.\n *\n * Note that if some input Observable never completes, `concat` will also never complete\n * and Observables following the one that did not complete will never be subscribed. On the other\n * hand, if some Observable simply completes immediately after it is subscribed, it will be\n * invisible for `concat`, which will just move on to the next Observable.\n *\n * If any Observable in chain errors, instead of passing control to the next Observable,\n * `concat` will error immediately as well. Observables that would be subscribed after\n * the one that emitted error, never will.\n *\n * If you pass to `concat` the same Observable many times, its stream of values\n * will be \"replayed\" on every subscription, which means you can repeat given Observable\n * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious,\n * you can always use {@link repeat}.\n *\n * ## Examples\n * ### Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10\n * ```ts\n * import { concat, interval, range } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer = interval(1000).pipe(take(4));\n * const sequence = range(1, 10);\n * const result = concat(timer, sequence);\n * result.subscribe(x => console.log(x));\n *\n * // results in:\n * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10\n * ```\n *\n * ### Concatenate 3 Observables\n * ```ts\n * import { concat, interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer1 = interval(1000).pipe(take(10));\n * const timer2 = interval(2000).pipe(take(6));\n * const timer3 = interval(500).pipe(take(10));\n *\n * const result = concat(timer1, timer2, timer3);\n * result.subscribe(x => console.log(x));\n *\n * // results in the following:\n * // (Prints to console sequentially)\n * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9\n * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5\n * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9\n * ```\n *\n * ### Concatenate the same Observable to repeat it\n * ```ts\n * import { concat, interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer = interval(1000).pipe(take(2));\n *\n * concat(timer, timer) // concatenating the same Observable!\n * .subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('...and it is done!')\n * );\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 0 after 3s\n * // 1 after 4s\n * // \"...and it is done!\" also after 4s\n * ```\n *\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link startWith}\n * @see {@link endWith}\n *\n * @param {ObservableInput} input1 An input Observable to concatenate with others.\n * @param {ObservableInput} input2 An input Observable to concatenate with others.\n * More than one input Observables may be given as argument.\n * @param {SchedulerLike} [scheduler=null] An optional {@link SchedulerLike} to schedule each\n * Observable subscription on.\n * @return {Observable} All values of each passed Observable merged into a\n * single Observable, in order, in serial fashion.\n * @static true\n * @name concat\n * @owner Observable\n */\nexport function concat, R>(...observables: Array): Observable | R> {\n return concatAll()(of(...observables));\n}\n","import { Observable } from '../Observable';\nimport { SubscribableOrPromise, ObservedValueOf, ObservableInput } from '../types';\nimport { from } from './from'; // lol\nimport { empty } from './empty';\n\n/**\n * Creates an Observable that, on subscribe, calls an Observable factory to\n * make an Observable for each new Observer.\n *\n * Creates the Observable lazily, that is, only when it\n * is subscribed.\n * \n *\n * ![](defer.png)\n *\n * `defer` allows you to create the Observable only when the Observer\n * subscribes, and create a fresh Observable for each Observer. It waits until\n * an Observer subscribes to it, and then it generates an Observable,\n * typically with an Observable factory function. It does this afresh for each\n * subscriber, so although each subscriber may think it is subscribing to the\n * same Observable, in fact each subscriber gets its own individual\n * Observable.\n *\n * ## Example\n * ### Subscribe to either an Observable of clicks or an Observable of interval, at random\n * ```ts\n * import { defer, fromEvent, interval } from 'rxjs';\n *\n * const clicksOrInterval = defer(function () {\n * return Math.random() > 0.5\n * ? fromEvent(document, 'click')\n * : interval(1000);\n * });\n * clicksOrInterval.subscribe(x => console.log(x));\n *\n * // Results in the following behavior:\n * // If the result of Math.random() is greater than 0.5 it will listen\n * // for clicks anywhere on the \"document\"; when document is clicked it\n * // will log a MouseEvent object to the console. If the result is less\n * // than 0.5 it will emit ascending numbers, one every second(1000ms).\n * ```\n *\n * @see {@link Observable}\n *\n * @param {function(): SubscribableOrPromise} observableFactory The Observable\n * factory function to invoke for each Observer that subscribes to the output\n * Observable. May also return a Promise, which will be converted on the fly\n * to an Observable.\n * @return {Observable} An Observable whose Observers' subscriptions trigger\n * an invocation of the given Observable factory function.\n * @static true\n * @name defer\n * @owner Observable\n */\nexport function defer | void>(observableFactory: () => R): Observable> {\n return new Observable>(subscriber => {\n let input: R | void;\n try {\n input = observableFactory();\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n const source = input ? from(input as ObservableInput>) : empty();\n return source.subscribe(subscriber);\n });\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, ObservedValuesFromArray, ObservedValueOf, SubscribableOrPromise } from '../types';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { isObservable } from '../util/isObservable';\nimport { from } from './from';\n\n/* tslint:disable:max-line-length */\n\n// forkJoin(a$, b$, c$)\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: SubscribableOrPromise): Observable<[T]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput): Observable<[T, T2]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput): Observable<[T, T2, T3]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable<[T, T2, T3, T4]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable<[T, T2, T3, T4, T5]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable<[T, T2, T3, T4, T5, T6]>;\n\n// forkJoin([a$, b$, c$]);\n// TODO(benlesh): Uncomment for TS 3.0\n// export function forkJoin(sources: []): Observable;\nexport function forkJoin(sources: [ObservableInput]): Observable<[A]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput]): Observable<[A, B]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D, E]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D, E, F]>;\nexport function forkJoin[]>(sources: A): Observable[]>;\n\n// forkJoin({})\nexport function forkJoin(sourcesObject: {}): Observable;\nexport function forkJoin(sourcesObject: T): Observable<{ [K in keyof T]: ObservedValueOf }>;\n\n/** @deprecated resultSelector is deprecated, pipe to map instead */\nexport function forkJoin(...args: Array|Function>): Observable;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(...sources: ObservableInput[]): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Accepts an `Array` of {@link ObservableInput} or a dictionary `Object` of {@link ObservableInput} and returns\n * an {@link Observable} that emits either an array of values in the exact same order as the passed array,\n * or a dictionary of values in the same shape as the passed dictionary.\n *\n * Wait for Observables to complete and then combine last values they emitted.\n *\n * ![](forkJoin.png)\n *\n * `forkJoin` is an operator that takes any number of input observables which can be passed either as an array\n * or a dictionary of input observables. If no input observables are provided, resulting stream will complete\n * immediately.\n *\n * `forkJoin` will wait for all passed observables to complete and then it will emit an array or an object with last\n * values from corresponding observables.\n *\n * If you pass an array of `n` observables to the operator, resulting\n * array will have `n` values, where first value is the last thing emitted by the first observable,\n * second value is the last thing emitted by the second observable and so on.\n *\n * If you pass a dictionary of observables to the operator, resulting\n * objects will have the same keys as the dictionary passed, with their last values they've emitted\n * located at the corresponding key.\n *\n * That means `forkJoin` will not emit more than once and it will complete after that. If you need to emit combined\n * values not only at the end of lifecycle of passed observables, but also throughout it, try out {@link combineLatest}\n * or {@link zip} instead.\n *\n * In order for resulting array to have the same length as the number of input observables, whenever any of\n * that observables completes without emitting any value, `forkJoin` will complete at that moment as well\n * and it will not emit anything either, even if it already has some last values from other observables.\n * Conversely, if there is an observable that never completes, `forkJoin` will never complete as well,\n * unless at any point some other observable completes without emitting value, which brings us back to\n * the previous case. Overall, in order for `forkJoin` to emit a value, all observables passed as arguments\n * have to emit something at least once and complete.\n *\n * If any input observable errors at some point, `forkJoin` will error as well and all other observables\n * will be immediately unsubscribed.\n *\n * Optionally `forkJoin` accepts project function, that will be called with values which normally\n * would land in emitted array. Whatever is returned by project function, will appear in output\n * observable instead. This means that default project can be thought of as a function that takes\n * all its arguments and puts them into an array. Note that project function will be called only\n * when output observable is supposed to emit a result.\n *\n * ## Examples\n *\n * ### Use forkJoin with a dictionary of observable inputs\n * ```ts\n * import { forkJoin, of, timer } from 'rxjs';\n *\n * const observable = forkJoin({\n * foo: of(1, 2, 3, 4),\n * bar: Promise.resolve(8),\n * baz: timer(4000),\n * });\n * observable.subscribe({\n * next: value => console.log(value),\n * complete: () => console.log('This is how it ends!'),\n * });\n *\n * // Logs:\n * // { foo: 4, bar: 8, baz: 0 } after 4 seconds\n * // \"This is how it ends!\" immediately after\n * ```\n *\n * ### Use forkJoin with an array of observable inputs\n * ```ts\n * import { forkJoin, of } from 'rxjs';\n *\n * const observable = forkJoin([\n * of(1, 2, 3, 4),\n * Promise.resolve(8),\n * timer(4000),\n * ]);\n * observable.subscribe({\n * next: value => console.log(value),\n * complete: () => console.log('This is how it ends!'),\n * });\n *\n * // Logs:\n * // [4, 8, 0] after 4 seconds\n * // \"This is how it ends!\" immediately after\n * ```\n *\n * @see {@link combineLatest}\n * @see {@link zip}\n *\n * @param {...ObservableInput} sources Any number of Observables provided either as an array or as an arguments\n * passed directly to the operator.\n * @param {function} [project] Function that takes values emitted by input Observables and returns value\n * that will appear in resulting Observable instead of default array.\n * @return {Observable} Observable emitting either an array of last values emitted by passed Observables\n * or value from project function.\n */\nexport function forkJoin(\n ...sources: any[]\n): Observable {\n if (sources.length === 1) {\n const first = sources[0];\n if (isArray(first)) {\n return forkJoinInternal(first, null);\n }\n // TODO(benlesh): isObservable check will not be necessary when deprecated path is removed.\n if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) {\n const keys = Object.keys(first);\n return forkJoinInternal(keys.map(key => first[key]), keys);\n }\n }\n\n // DEPRECATED PATHS BELOW HERE\n if (typeof sources[sources.length - 1] === 'function') {\n const resultSelector = sources.pop() as Function;\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(\n map((args: any[]) => resultSelector(...args))\n );\n }\n\n return forkJoinInternal(sources, null);\n}\n\nfunction forkJoinInternal(sources: ObservableInput[], keys: string[] | null): Observable {\n return new Observable(subscriber => {\n const len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n const values = new Array(len);\n let completed = 0;\n let emitted = 0;\n for (let i = 0; i < len; i++) {\n const source = from(sources[i]);\n let hasValue = false;\n subscriber.add(source.subscribe({\n next: value => {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: err => subscriber.error(err),\n complete: () => {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce((result, key, i) => (result[key] = values[i], result), {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n }\n });\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { Subscriber } from '../Subscriber';\nimport { map } from '../operators/map';\n\nconst toString: Function = (() => Object.prototype.toString)();\n\nexport interface NodeStyleEventEmitter {\n addListener: (eventName: string | symbol, handler: NodeEventHandler) => this;\n removeListener: (eventName: string | symbol, handler: NodeEventHandler) => this;\n}\n\nexport type NodeEventHandler = (...args: any[]) => void;\n\n// For APIs that implement `addListener` and `removeListener` methods that may\n// not use the same arguments or return EventEmitter values\n// such as React Native\nexport interface NodeCompatibleEventEmitter {\n addListener: (eventName: string, handler: NodeEventHandler) => void | {};\n removeListener: (eventName: string, handler: NodeEventHandler) => void | {};\n}\n\nexport interface JQueryStyleEventEmitter {\n on: (eventName: string, handler: Function) => void;\n off: (eventName: string, handler: Function) => void;\n}\n\nexport interface HasEventTargetAddRemove {\n addEventListener(type: string, listener: ((evt: E) => void) | null, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: string, listener?: ((evt: E) => void) | null, options?: EventListenerOptions | boolean): void;\n}\n\nexport type EventTargetLike = HasEventTargetAddRemove | NodeStyleEventEmitter | NodeCompatibleEventEmitter | JQueryStyleEventEmitter;\n\nexport type FromEventTarget = EventTargetLike | ArrayLike>;\n\nexport interface EventListenerOptions {\n capture?: boolean;\n passive?: boolean;\n once?: boolean;\n}\n\nexport interface AddEventListenerOptions extends EventListenerOptions {\n once?: boolean;\n passive?: boolean;\n}\n\n/* tslint:disable:max-line-length */\nexport function fromEvent(target: FromEventTarget, eventName: string): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEvent(target: FromEventTarget, eventName: string, resultSelector: (...args: any[]) => T): Observable;\nexport function fromEvent(target: FromEventTarget, eventName: string, options: EventListenerOptions): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEvent(target: FromEventTarget, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => T): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Creates an Observable that emits events of a specific type coming from the\n * given event target.\n *\n * Creates an Observable from DOM events, or Node.js\n * EventEmitter events or others.\n *\n * ![](fromEvent.png)\n *\n * `fromEvent` accepts as a first argument event target, which is an object with methods\n * for registering event handler functions. As a second argument it takes string that indicates\n * type of event we want to listen for. `fromEvent` supports selected types of event targets,\n * which are described in detail below. If your event target does not match any of the ones listed,\n * you should use {@link fromEventPattern}, which can be used on arbitrary APIs.\n * When it comes to APIs supported by `fromEvent`, their methods for adding and removing event\n * handler functions have different names, but they all accept a string describing event type\n * and function itself, which will be called whenever said event happens.\n *\n * Every time resulting Observable is subscribed, event handler function will be registered\n * to event target on given event type. When that event fires, value\n * passed as a first argument to registered function will be emitted by output Observable.\n * When Observable is unsubscribed, function will be unregistered from event target.\n *\n * Note that if event target calls registered function with more than one argument, second\n * and following arguments will not appear in resulting stream. In order to get access to them,\n * you can pass to `fromEvent` optional project function, which will be called with all arguments\n * passed to event handler. Output Observable will then emit value returned by project function,\n * instead of the usual value.\n *\n * Remember that event targets listed below are checked via duck typing. It means that\n * no matter what kind of object you have and no matter what environment you work in,\n * you can safely use `fromEvent` on that object if it exposes described methods (provided\n * of course they behave as was described above). So for example if Node.js library exposes\n * event target which has the same method names as DOM EventTarget, `fromEvent` is still\n * a good choice.\n *\n * If the API you use is more callback then event handler oriented (subscribed\n * callback function fires only once and thus there is no need to manually\n * unregister it), you should use {@link bindCallback} or {@link bindNodeCallback}\n * instead.\n *\n * `fromEvent` supports following types of event targets:\n *\n * **DOM EventTarget**\n *\n * This is an object with `addEventListener` and `removeEventListener` methods.\n *\n * In the browser, `addEventListener` accepts - apart from event type string and event\n * handler function arguments - optional third parameter, which is either an object or boolean,\n * both used for additional configuration how and when passed function will be called. When\n * `fromEvent` is used with event target of that type, you can provide this values\n * as third parameter as well.\n *\n * **Node.js EventEmitter**\n *\n * An object with `addListener` and `removeListener` methods.\n *\n * **JQuery-style event target**\n *\n * An object with `on` and `off` methods\n *\n * **DOM NodeList**\n *\n * List of DOM Nodes, returned for example by `document.querySelectorAll` or `Node.childNodes`.\n *\n * Although this collection is not event target in itself, `fromEvent` will iterate over all Nodes\n * it contains and install event handler function in every of them. When returned Observable\n * is unsubscribed, function will be removed from all Nodes.\n *\n * **DOM HtmlCollection**\n *\n * Just as in case of NodeList it is a collection of DOM nodes. Here as well event handler function is\n * installed and removed in each of elements.\n *\n *\n * ## Examples\n * ### Emits clicks happening on the DOM document\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * clicks.subscribe(x => console.log(x));\n *\n * // Results in:\n * // MouseEvent object logged to console every time a click\n * // occurs on the document.\n * ```\n *\n * ### Use addEventListener with capture option\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const clicksInDocument = fromEvent(document, 'click', true); // note optional configuration parameter\n * // which will be passed to addEventListener\n * const clicksInDiv = fromEvent(someDivInDocument, 'click');\n *\n * clicksInDocument.subscribe(() => console.log('document'));\n * clicksInDiv.subscribe(() => console.log('div'));\n *\n * // By default events bubble UP in DOM tree, so normally\n * // when we would click on div in document\n * // \"div\" would be logged first and then \"document\".\n * // Since we specified optional `capture` option, document\n * // will catch event when it goes DOWN DOM tree, so console\n * // will log \"document\" and then \"div\".\n * ```\n *\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n * @see {@link fromEventPattern}\n *\n * @param {FromEventTarget} target The DOM EventTarget, Node.js\n * EventEmitter, JQuery-like event target, NodeList or HTMLCollection to attach the event handler to.\n * @param {string} eventName The event name of interest, being emitted by the\n * `target`.\n * @param {EventListenerOptions} [options] Options to pass through to addEventListener\n * @return {Observable}\n * @name fromEvent\n */\nexport function fromEvent(\n target: FromEventTarget,\n eventName: string,\n options?: EventListenerOptions | ((...args: any[]) => T),\n resultSelector?: ((...args: any[]) => T)\n): Observable {\n\n if (isFunction(options)) {\n // DEPRECATED PATH\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n // DEPRECATED PATH\n return fromEvent(target, eventName, options).pipe(\n map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n );\n }\n\n return new Observable(subscriber => {\n function handler(e: T) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n } else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options as EventListenerOptions);\n });\n}\n\nfunction setupSubscription(sourceObj: FromEventTarget, eventName: string,\n handler: (...args: any[]) => void, subscriber: Subscriber,\n options?: EventListenerOptions) {\n let unsubscribe: () => void;\n if (isEventTarget(sourceObj)) {\n const source = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = () => source.removeEventListener(eventName, handler, options);\n } else if (isJQueryStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = () => source.off(eventName, handler);\n } else if (isNodeStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.addListener(eventName, handler as NodeEventHandler);\n unsubscribe = () => source.removeListener(eventName, handler as NodeEventHandler);\n } else if (sourceObj && (sourceObj as any).length) {\n for (let i = 0, len = (sourceObj as any).length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n } else {\n throw new TypeError('Invalid event target');\n }\n\n subscriber.add(unsubscribe);\n}\n\nfunction isNodeStyleEventEmitter(sourceObj: any): sourceObj is NodeStyleEventEmitter {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\n\nfunction isJQueryStyleEventEmitter(sourceObj: any): sourceObj is JQueryStyleEventEmitter {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\n\nfunction isEventTarget(sourceObj: any): sourceObj is HasEventTargetAddRemove {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { NodeEventHandler } from './fromEvent';\nimport { map } from '../operators/map';\n\n/* tslint:disable:max-line-length */\nexport function fromEventPattern(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEventPattern(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Creates an Observable from an arbitrary API for registering event handlers.\n *\n * When that method for adding event handler was something {@link fromEvent}\n * was not prepared for.\n *\n * ![](fromEventPattern.png)\n *\n * `fromEventPattern` allows you to convert into an Observable any API that supports registering handler functions\n * for events. It is similar to {@link fromEvent}, but far\n * more flexible. In fact, all use cases of {@link fromEvent} could be easily handled by\n * `fromEventPattern` (although in slightly more verbose way).\n *\n * This operator accepts as a first argument an `addHandler` function, which will be injected with\n * handler parameter. That handler is actually an event handler function that you now can pass\n * to API expecting it. `addHandler` will be called whenever Observable\n * returned by the operator is subscribed, so registering handler in API will not\n * necessarily happen when `fromEventPattern` is called.\n *\n * After registration, every time an event that we listen to happens,\n * Observable returned by `fromEventPattern` will emit value that event handler\n * function was called with. Note that if event handler was called with more\n * then one argument, second and following arguments will not appear in the Observable.\n *\n * If API you are using allows to unregister event handlers as well, you can pass to `fromEventPattern`\n * another function - `removeHandler` - as a second parameter. It will be injected\n * with the same handler function as before, which now you can use to unregister\n * it from the API. `removeHandler` will be called when consumer of resulting Observable\n * unsubscribes from it.\n *\n * In some APIs unregistering is actually handled differently. Method registering an event handler\n * returns some kind of token, which is later used to identify which function should\n * be unregistered or it itself has method that unregisters event handler.\n * If that is the case with your API, make sure token returned\n * by registering method is returned by `addHandler`. Then it will be passed\n * as a second argument to `removeHandler`, where you will be able to use it.\n *\n * If you need access to all event handler parameters (not only the first one),\n * or you need to transform them in any way, you can call `fromEventPattern` with optional\n * third parameter - project function which will accept all arguments passed to\n * event handler when it is called. Whatever is returned from project function will appear on\n * resulting stream instead of usual event handlers first argument. This means\n * that default project can be thought of as function that takes its first parameter\n * and ignores the rest.\n *\n * ## Example\n * ### Emits clicks happening on the DOM document\n *\n * ```ts\n * import { fromEventPattern } from 'rxjs';\n *\n * function addClickHandler(handler) {\n * document.addEventListener('click', handler);\n * }\n *\n * function removeClickHandler(handler) {\n * document.removeEventListener('click', handler);\n * }\n *\n * const clicks = fromEventPattern(\n * addClickHandler,\n * removeClickHandler\n * );\n * clicks.subscribe(x => console.log(x));\n *\n * // Whenever you click anywhere in the browser, DOM MouseEvent\n * // object will be logged.\n * ```\n *\n * ## Example\n * ### Use with API that returns cancellation token\n *\n * ```ts\n * import { fromEventPattern } from 'rxjs';\n *\n * const token = someAPI.registerEventHandler(function() {});\n * someAPI.unregisterEventHandler(token); // this APIs cancellation method accepts\n * // not handler itself, but special token.\n *\n * const someAPIObservable = fromEventPattern(\n * function(handler) { return someAPI.registerEventHandler(handler); }, // Note that we return the token here...\n * function(handler, token) { someAPI.unregisterEventHandler(token); } // ...to then use it here.\n * );\n * ```\n *\n * ## Example\n * ### Use with project function\n *\n * ```ts\n * import { fromEventPattern } from 'rxjs';\n *\n * someAPI.registerEventHandler((eventType, eventMessage) => {\n * console.log(eventType, eventMessage); // Logs \"EVENT_TYPE\" \"EVENT_MESSAGE\" to console.\n * });\n *\n * const someAPIObservable = fromEventPattern(\n * handler => someAPI.registerEventHandler(handler),\n * handler => someAPI.unregisterEventHandler(handler)\n * (eventType, eventMessage) => eventType + \" --- \" + eventMessage // without that function only \"EVENT_TYPE\"\n * ); // would be emitted by the Observable\n *\n * someAPIObservable.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"EVENT_TYPE --- EVENT_MESSAGE\"\n * ```\n *\n * @see {@link fromEvent}\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n *\n * @param {function(handler: Function): any} addHandler A function that takes\n * a `handler` function as argument and attaches it somehow to the actual\n * source of events.\n * @param {function(handler: Function, token?: any): void} [removeHandler] A function that\n * takes a `handler` function as an argument and removes it from the event source. If `addHandler`\n * returns some kind of token, `removeHandler` function will have it as a second parameter.\n * @param {function(...args: any): T} [project] A function to\n * transform results. It takes the arguments from the event handler and\n * should return a single value.\n * @return {Observable} Observable which, when an event happens, emits first parameter\n * passed to registered event handler. Alternatively it emits whatever project function returns\n * at that moment.\n * @static true\n * @name fromEventPattern\n * @owner Observable\n */\n\nexport function fromEventPattern(addHandler: (handler: NodeEventHandler) => any,\n removeHandler?: (handler: NodeEventHandler, signal?: any) => void,\n resultSelector?: (...args: any[]) => T): Observable {\n\n if (resultSelector) {\n // DEPRECATED PATH\n return fromEventPattern(addHandler, removeHandler).pipe(\n map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n );\n }\n\n return new Observable(subscriber => {\n const handler = (...e: T[]) => subscriber.next(e.length === 1 ? e[0] : e);\n\n let retValue: any;\n try {\n retValue = addHandler(handler);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n\n return () => removeHandler(handler, retValue) ;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { identity } from '../util/identity';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { isScheduler } from '../util/isScheduler';\n\nexport type ConditionFunc = (state: S) => boolean;\nexport type IterateFunc = (state: S) => S;\nexport type ResultFunc = (state: S) => T;\n\ninterface SchedulerState {\n needIterate?: boolean;\n state: S;\n subscriber: Subscriber;\n condition?: ConditionFunc;\n iterate: IterateFunc;\n resultSelector: ResultFunc;\n}\n\nexport interface GenerateBaseOptions {\n /**\n * Initial state.\n */\n initialState: S;\n /**\n * Condition function that accepts state and returns boolean.\n * When it returns false, the generator stops.\n * If not specified, a generator never stops.\n */\n condition?: ConditionFunc;\n /**\n * Iterate function that accepts state and returns new state.\n */\n iterate: IterateFunc;\n /**\n * SchedulerLike to use for generation process.\n * By default, a generator starts immediately.\n */\n scheduler?: SchedulerLike;\n}\n\nexport interface GenerateOptions extends GenerateBaseOptions {\n /**\n * Result selection function that accepts state and returns a value to emit.\n */\n resultSelector: ResultFunc;\n}\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n *\n * ![](generate.png)\n *\n * @example Produces sequence of 0, 1, 2, ... 9, then completes.\n * const res = generate(0, x => x < 10, x => x + 1, x => x);\n *\n * @example Using asap scheduler, produces sequence of 2, 3, 5, then completes.\n * const res = generate(1, x => x < 5, x => x * 2, x => x + 1, asap);\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {S} initialState Initial state.\n * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).\n * @param {function (state: S): S} iterate Iteration step function.\n * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence. (deprecated)\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately.\n * @returns {Observable} The generated sequence.\n */\n export function generate(initialState: S,\n condition: ConditionFunc,\n iterate: IterateFunc,\n resultSelector: ResultFunc,\n scheduler?: SchedulerLike): Observable;\n\n/**\n * Generates an Observable by running a state-driven loop\n * that emits an element on each iteration.\n *\n * Use it instead of nexting values in a for loop.\n *\n * \n *\n * `generate` allows you to create stream of values generated with a loop very similar to\n * traditional for loop. First argument of `generate` is a beginning value. Second argument\n * is a function that accepts this value and tests if some condition still holds. If it does,\n * loop continues, if not, it stops. Third value is a function which takes previously defined\n * value and modifies it in some way on each iteration. Note how these three parameters\n * are direct equivalents of three expressions in regular for loop: first expression\n * initializes some state (for example numeric index), second tests if loop can make next\n * iteration (for example if index is lower than 10) and third states how defined value\n * will be modified on every step (index will be incremented by one).\n *\n * Return value of a `generate` operator is an Observable that on each loop iteration\n * emits a value. First, condition function is ran. If it returned true, Observable\n * emits currently stored value (initial value at the first iteration) and then updates\n * that value with iterate function. If at some point condition returned false, Observable\n * completes at that moment.\n *\n * Optionally you can pass fourth parameter to `generate` - a result selector function which allows you\n * to immediately map value that would normally be emitted by an Observable.\n *\n * If you find three anonymous functions in `generate` call hard to read, you can provide\n * single object to the operator instead. That object has properties: `initialState`,\n * `condition`, `iterate` and `resultSelector`, which should have respective values that you\n * would normally pass to `generate`. `resultSelector` is still optional, but that form\n * of calling `generate` allows you to omit `condition` as well. If you omit it, that means\n * condition always holds, so output Observable will never complete.\n *\n * Both forms of `generate` can optionally accept a scheduler. In case of multi-parameter call,\n * scheduler simply comes as a last argument (no matter if there is resultSelector\n * function or not). In case of single-parameter call, you can provide it as a\n * `scheduler` property on object passed to the operator. In both cases scheduler decides when\n * next iteration of the loop will happen and therefore when next value will be emitted\n * by the Observable. For example to ensure that each value is pushed to the observer\n * on separate task in event loop, you could use `async` scheduler. Note that\n * by default (when no scheduler is passed) values are simply emitted synchronously.\n *\n *\n * @example Use with condition and iterate functions.\n * const generated = generate(0, x => x < 3, x => x + 1);\n *\n * generated.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1\n * // 2\n * // \"Yo!\"\n *\n *\n * @example Use with condition, iterate and resultSelector functions.\n * const generated = generate(0, x => x < 3, x => x + 1, x => x * 1000);\n *\n * generated.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // \"Yo!\"\n *\n *\n * @example Use with options object.\n * const generated = generate({\n * initialState: 0,\n * condition(value) { return value < 3; },\n * iterate(value) { return value + 1; },\n * resultSelector(value) { return value * 1000; }\n * });\n *\n * generated.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // \"Yo!\"\n *\n * @example Use options object without condition function.\n * const generated = generate({\n * initialState: 0,\n * iterate(value) { return value + 1; },\n * resultSelector(value) { return value * 1000; }\n * });\n *\n * generated.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('Yo!') // This will never run.\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // 3000\n * // ...and never stops.\n *\n *\n * @see {@link from}\n * @see {@link index/Observable.create}\n *\n * @param {S} initialState Initial state.\n * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).\n * @param {function (state: S): S} iterate Iteration step function.\n * @param {function (state: S): T} [resultSelector] Selector function for results produced in the sequence.\n * @param {Scheduler} [scheduler] A {@link Scheduler} on which to run the generator loop. If not provided, defaults to emitting immediately.\n * @return {Observable} The generated sequence.\n */\nexport function generate(initialState: S,\n condition: ConditionFunc,\n iterate: IterateFunc,\n scheduler?: SchedulerLike): Observable;\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n * The overload accepts options object that might contain initial state, iterate,\n * condition and scheduler.\n *\n * ![](generate.png)\n *\n * @example Produces sequence of 0, 1, 2, ... 9, then completes.\n * const res = generate({\n * initialState: 0,\n * condition: x => x < 10,\n * iterate: x => x + 1,\n * });\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {GenerateBaseOptions} options Object that must contain initialState, iterate and might contain condition and scheduler.\n * @returns {Observable} The generated sequence.\n */\nexport function generate(options: GenerateBaseOptions): Observable;\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n * The overload accepts options object that might contain initial state, iterate,\n * condition, result selector and scheduler.\n *\n * ![](generate.png)\n *\n * @example Produces sequence of 0, 1, 2, ... 9, then completes.\n * const res = generate({\n * initialState: 0,\n * condition: x => x < 10,\n * iterate: x => x + 1,\n * resultSelector: x => x,\n * });\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {GenerateOptions} options Object that must contain initialState, iterate, resultSelector and might contain condition and scheduler.\n * @returns {Observable} The generated sequence.\n */\nexport function generate(options: GenerateOptions): Observable;\n\nexport function generate(initialStateOrOptions: S | GenerateOptions,\n condition?: ConditionFunc,\n iterate?: IterateFunc,\n resultSelectorOrObservable?: (ResultFunc) | SchedulerLike,\n scheduler?: SchedulerLike): Observable {\n\n let resultSelector: ResultFunc;\n let initialState: S;\n\n if (arguments.length == 1) {\n const options = initialStateOrOptions as GenerateOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || identity as ResultFunc;\n scheduler = options.scheduler;\n } else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n initialState = initialStateOrOptions as S;\n resultSelector = identity as ResultFunc;\n scheduler = resultSelectorOrObservable as SchedulerLike;\n } else {\n initialState = initialStateOrOptions as S;\n resultSelector = resultSelectorOrObservable as ResultFunc;\n }\n\n return new Observable(subscriber => {\n let state = initialState;\n if (scheduler) {\n return scheduler.schedule>(dispatch, 0, {\n subscriber,\n iterate,\n condition,\n resultSelector,\n state\n });\n }\n\n do {\n if (condition) {\n let conditionResult: boolean;\n try {\n conditionResult = condition(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n let value: T;\n try {\n value = resultSelector(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n\n return undefined;\n });\n}\n\nfunction dispatch(this: SchedulerAction>, state: SchedulerState) {\n const { subscriber, condition } = state;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } else {\n state.needIterate = true;\n }\n if (condition) {\n let conditionResult: boolean;\n try {\n conditionResult = condition(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n let value: T;\n try {\n value = state.resultSelector(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n","import { Observable } from '../Observable';\nimport { defer } from './defer';\nimport { EMPTY } from './empty';\nimport { SubscribableOrPromise } from '../types';\n\n/**\n * Decides at subscription time which Observable will actually be subscribed.\n *\n * `If` statement for Observables.\n *\n * `iif` accepts a condition function and two Observables. When\n * an Observable returned by the operator is subscribed, condition function will be called.\n * Based on what boolean it returns at that moment, consumer will subscribe either to\n * the first Observable (if condition was true) or to the second (if condition was false). Condition\n * function may also not return anything - in that case condition will be evaluated as false and\n * second Observable will be subscribed.\n *\n * Note that Observables for both cases (true and false) are optional. If condition points to an Observable that\n * was left undefined, resulting stream will simply complete immediately. That allows you to, rather\n * than controlling which Observable will be subscribed, decide at runtime if consumer should have access\n * to given Observable or not.\n *\n * If you have more complex logic that requires decision between more than two Observables, {@link defer}\n * will probably be a better choice. Actually `iif` can be easily implemented with {@link defer}\n * and exists only for convenience and readability reasons.\n *\n *\n * ## Examples\n * ### Change at runtime which Observable will be subscribed\n * ```ts\n * import { iif, of } from 'rxjs';\n *\n * let subscribeToFirst;\n * const firstOrSecond = iif(\n * () => subscribeToFirst,\n * of('first'),\n * of('second'),\n * );\n *\n * subscribeToFirst = true;\n * firstOrSecond.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"first\"\n *\n * subscribeToFirst = false;\n * firstOrSecond.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"second\"\n *\n * ```\n *\n * ### Control an access to an Observable\n * ```ts\n * let accessGranted;\n * const observableIfYouHaveAccess = iif(\n * () => accessGranted,\n * of('It seems you have an access...'), // Note that only one Observable is passed to the operator.\n * );\n *\n * accessGranted = true;\n * observableIfYouHaveAccess.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('The end'),\n * );\n *\n * // Logs:\n * // \"It seems you have an access...\"\n * // \"The end\"\n *\n * accessGranted = false;\n * observableIfYouHaveAccess.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('The end'),\n * );\n *\n * // Logs:\n * // \"The end\"\n * ```\n *\n * @see {@link defer}\n *\n * @param {function(): boolean} condition Condition which Observable should be chosen.\n * @param {Observable} [trueObservable] An Observable that will be subscribed if condition is true.\n * @param {Observable} [falseObservable] An Observable that will be subscribed if condition is false.\n * @return {Observable} Either first or second Observable, depending on condition.\n * @static true\n * @name iif\n * @owner Observable\n*/\nexport function iif(\n condition: () => boolean,\n trueResult: SubscribableOrPromise = EMPTY,\n falseResult: SubscribableOrPromise = EMPTY\n): Observable {\n return defer(() => condition() ? trueResult : falseResult);\n}\n","import { isArray } from './isArray';\n\nexport function isNumeric(val: any): val is number | string {\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n // adding 1 corrects loss of precision from parseFloat (#15100)\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { isNumeric } from '../util/isNumeric';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that emits sequential numbers every specified\n * interval of time, on a specified {@link SchedulerLike}.\n *\n * Emits incremental numbers periodically in time.\n * \n *\n * ![](interval.png)\n *\n * `interval` returns an Observable that emits an infinite sequence of\n * ascending integers, with a constant interval of time of your choosing\n * between those emissions. The first emission is not sent immediately, but\n * only after the first period has passed. By default, this operator uses the\n * `async` {@link SchedulerLike} to provide a notion of time, but you may pass any\n * {@link SchedulerLike} to it.\n *\n * ## Example\n * Emits ascending numbers, one every second (1000ms) up to the number 3\n * ```ts\n * import { interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const numbers = interval(1000);\n *\n * const takeFourNumbers = numbers.pipe(take(4));\n *\n * takeFourNumbers.subscribe(x => console.log('Next: ', x));\n *\n * // Logs:\n * // Next: 0\n * // Next: 1\n * // Next: 2\n * // Next: 3\n * ```\n *\n * @see {@link timer}\n * @see {@link delay}\n *\n * @param {number} [period=0] The interval size in milliseconds (by default)\n * or the time unit determined by the scheduler's clock.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a sequential number each time\n * interval.\n * @static true\n * @name interval\n * @owner Observable\n */\nexport function interval(period = 0,\n scheduler: SchedulerLike = async): Observable {\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n\n return new Observable(subscriber => {\n subscriber.add(\n scheduler.schedule(dispatch, period, { subscriber, counter: 0, period })\n );\n return subscriber;\n });\n}\n\nfunction dispatch(this: SchedulerAction, state: IntervalState) {\n const { subscriber, counter, period } = state;\n subscriber.next(counter);\n this.schedule({ subscriber, counter: counter + 1, period }, period);\n}\n\ninterface IntervalState {\n subscriber: Subscriber;\n counter: number;\n period: number;\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike} from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\n\n/* tslint:disable:max-line-length */\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n\nexport function merge(v1: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, concurrent?: number): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, concurrent?: number): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, concurrent?: number): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent?: number): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent?: number): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent?: number): Observable;\nexport function merge(...observables: (ObservableInput | number)[]): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(...observables: (ObservableInput | SchedulerLike | number)[]): Observable;\nexport function merge(...observables: (ObservableInput | number)[]): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(...observables: (ObservableInput | SchedulerLike | number)[]): Observable;\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which concurrently emits all values from every\n * given input Observable.\n *\n * Flattens multiple Observables together by blending\n * their values into one Observable.\n *\n * ![](merge.png)\n *\n * `merge` subscribes to each given input Observable (as arguments), and simply\n * forwards (without doing any transformation) all the values from all the input\n * Observables to the output Observable. The output Observable only completes\n * once all input Observables have completed. Any error delivered by an input\n * Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n * ### Merge together two Observables: 1s interval and clicks\n * ```ts\n * import { merge, fromEvent, interval } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const timer = interval(1000);\n * const clicksOrTimer = merge(clicks, timer);\n * clicksOrTimer.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // timer will emit ascending values, one every second(1000ms) to console\n * // clicks logs MouseEvents to console everytime the \"document\" is clicked\n * // Since the two streams are merged you see these happening\n * // as they occur.\n * ```\n *\n * ### Merge together 3 Observables, but only 2 run concurrently\n * ```ts\n * import { merge, interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer1 = interval(1000).pipe(take(10));\n * const timer2 = interval(2000).pipe(take(6));\n * const timer3 = interval(500).pipe(take(10));\n * const concurrent = 2; // the argument\n * const merged = merge(timer1, timer2, timer3, concurrent);\n * merged.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - First timer1 and timer2 will run concurrently\n * // - timer1 will emit a value every 1000ms for 10 iterations\n * // - timer2 will emit a value every 2000ms for 6 iterations\n * // - after timer1 hits its max iteration, timer2 will\n * // continue, and timer3 will start to run concurrently with timer2\n * // - when timer2 hits its max iteration it terminates, and\n * // timer3 will continue to emit a value every 500ms until it is complete\n * ```\n *\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n *\n * @param {...ObservableInput} observables Input Observables to merge together.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for managing\n * concurrency of input Observables.\n * @return {Observable} an Observable that emits items that are the result of\n * every input Observable.\n * @static true\n * @name merge\n * @owner Observable\n */\nexport function merge(...observables: Array | SchedulerLike | number>): Observable {\n let concurrent = Number.POSITIVE_INFINITY;\n let scheduler: SchedulerLike = null;\n let last: any = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n } else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return >observables[0];\n }\n\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\n\n/**\n * An Observable that emits no items to the Observer and never completes.\n *\n * ![](never.png)\n *\n * A simple Observable that emits neither values nor errors nor the completion\n * notification. It can be used for testing purposes or for composing with other\n * Observables. Please note that by never emitting a complete notification, this\n * Observable keeps the subscription from being disposed automatically.\n * Subscriptions need to be manually disposed.\n *\n * ## Example\n * ### Emit the number 7, then never emit anything else (not even complete)\n * ```ts\n * import { NEVER } from 'rxjs';\n * import { startWith } from 'rxjs/operators';\n *\n * function info() {\n * console.log('Will not be called');\n * }\n * const result = NEVER.pipe(startWith(7));\n * result.subscribe(x => console.log(x), info, info);\n *\n * ```\n *\n * @see {@link Observable}\n * @see {@link index/EMPTY}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const NEVER = new Observable(noop);\n\n/**\n * @deprecated Deprecated in favor of using {@link NEVER} constant.\n */\nexport function never () {\n return NEVER;\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput } from '../types';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\n\n/* tslint:disable:max-line-length */\nexport function onErrorResumeNext(v: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable;\n\nexport function onErrorResumeNext(...observables: Array | ((...values: Array) => R)>): Observable;\nexport function onErrorResumeNext(array: ObservableInput[]): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one\n * that was passed.\n *\n * Execute series of Observables no matter what, even if it means swallowing errors.\n *\n * ![](onErrorResumeNext.png)\n *\n * `onErrorResumeNext` Will subscribe to each observable source it is provided, in order.\n * If the source it's subscribed to emits an error or completes, it will move to the next source\n * without error.\n *\n * If `onErrorResumeNext` is provided no arguments, or a single, empty array, it will return {@link index/EMPTY}.\n *\n * `onErrorResumeNext` is basically {@link concat}, only it will continue, even if one of its\n * sources emits an error.\n *\n * Note that there is no way to handle any errors thrown by sources via the result of\n * `onErrorResumeNext`. If you want to handle errors thrown in any given source, you can\n * always use the {@link catchError} operator on them before passing them into `onErrorResumeNext`.\n *\n * ## Example\n * Subscribe to the next Observable after map fails\n * ```ts\n * import { onErrorResumeNext, of } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * onErrorResumeNext(\n * of(1, 2, 3, 0).pipe(\n * map(x => {\n * if (x === 0) throw Error();\n * return 10 / x;\n * })\n * ),\n * of(1, 2, 3),\n * )\n * .subscribe(\n * val => console.log(val),\n * err => console.log(err), // Will never be called.\n * () => console.log('done'),\n * );\n *\n * // Logs:\n * // 10\n * // 5\n * // 3.3333333333333335\n * // 1\n * // 2\n * // 3\n * // \"done\"\n * ```\n *\n * @see {@link concat}\n * @see {@link catchError}\n *\n * @param {...ObservableInput} sources Observables (or anything that *is* observable) passed either directly or as an array.\n * @return {Observable} An Observable that concatenates all sources, one after the other,\n * ignoring all errors, such that any error causes it to move on to the next source.\n */\nexport function onErrorResumeNext(...sources: Array |\n Array> |\n ((...values: Array) => R)>): Observable {\n\n if (sources.length === 0) {\n return EMPTY;\n }\n\n const [ first, ...remainder ] = sources;\n\n if (sources.length === 1 && isArray(first)) {\n return onErrorResumeNext(...first);\n }\n\n return new Observable(subscriber => {\n const subNext = () => subscriber.add(\n onErrorResumeNext(...remainder).subscribe(subscriber)\n );\n\n return from(first).subscribe({\n next(value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n","import { Observable } from '../Observable';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\n\n/**\n * Convert an object into an Observable of `[key, value]` pairs.\n *\n * Turn entries of an object into a stream.\n *\n * \n *\n * `pairs` takes an arbitrary object and returns an Observable that emits arrays. Each\n * emitted array has exactly two elements - the first is a key from the object\n * and the second is a value corresponding to that key. Keys are extracted from\n * an object via `Object.keys` function, which means that they will be only\n * enumerable keys that are present on an object directly - not ones inherited\n * via prototype chain.\n *\n * By default these arrays are emitted synchronously. To change that you can\n * pass a {@link SchedulerLike} as a second argument to `pairs`.\n *\n * @example Converts a javascript object to an Observable\n * ```ts\n * import { pairs } from 'rxjs';\n *\n * const obj = {\n * foo: 42,\n * bar: 56,\n * baz: 78\n * };\n *\n * pairs(obj)\n * .subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('the end!')\n * );\n *\n * // Logs:\n * // [\"foo\", 42],\n * // [\"bar\", 56],\n * // [\"baz\", 78],\n * // \"the end!\"\n * ```\n *\n * @param {Object} obj The object to inspect and turn into an\n * Observable sequence.\n * @param {Scheduler} [scheduler] An optional IScheduler to schedule\n * when resulting Observable will emit values.\n * @returns {(Observable>)} An observable sequence of\n * [key, value] pairs from the object.\n */\nexport function pairs(obj: Object, scheduler?: SchedulerLike): Observable<[string, T]> {\n if (!scheduler) {\n return new Observable<[string, T]>(subscriber => {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length && !subscriber.closed; i++) {\n const key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n } else {\n return new Observable<[string, T]>(subscriber => {\n const keys = Object.keys(obj);\n const subscription = new Subscription();\n subscription.add(\n scheduler.schedule<{ keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }>\n (dispatch, 0, { keys, index: 0, subscriber, subscription, obj }));\n return subscription;\n });\n }\n}\n\n/** @internal */\nexport function dispatch(this: SchedulerAction,\n state: { keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }) {\n const { keys, index, subscriber, subscription, obj } = state;\n if (!subscriber.closed) {\n if (index < keys.length) {\n const key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys, index: index + 1, subscriber, subscription, obj }));\n } else {\n subscriber.complete();\n }\n }\n}\n","export function not(pred: Function, thisArg: any): Function {\n function notPred(): any {\n return !(( notPred).pred.apply(( notPred).thisArg, arguments));\n }\n ( notPred).pred = pred;\n ( notPred).thisArg = thisArg;\n return notPred;\n}","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function filter(predicate: (value: T, index: number) => value is S,\n thisArg?: any): OperatorFunction;\nexport function filter(predicate: (value: T, index: number) => boolean,\n thisArg?: any): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.\n *\n * ![](filter.png)\n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * ## Example\n * Emit only click events whose target was a DIV element\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { filter } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const clicksOnDivs = clicks.pipe(filter(ev => ev.target.tagName === 'DIV'));\n * clicksOnDivs.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of values from the source that were\n * allowed by the `predicate` function.\n * @method filter\n * @owner Observable\n */\nexport function filter(predicate: (value: T, index: number) => boolean,\n thisArg?: any): MonoTypeOperatorFunction {\n return function filterOperatorFunction(source: Observable): Observable {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\n\nclass FilterOperator implements Operator {\n constructor(private predicate: (value: T, index: number) => boolean,\n private thisArg?: any) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass FilterSubscriber extends Subscriber {\n\n count: number = 0;\n\n constructor(destination: Subscriber,\n private predicate: (value: T, index: number) => boolean,\n private thisArg: any) {\n super(destination);\n }\n\n // the try catch block below is left specifically for\n // optimization and perf reasons. a tryCatcher is not necessary here.\n protected _next(value: T) {\n let result: any;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","import { not } from '../util/not';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { filter } from '../operators/filter';\nimport { ObservableInput } from '../types';\nimport { Observable } from '../Observable';\n\n/**\n * Splits the source Observable into two, one with values that satisfy a\n * predicate, and another with values that don't satisfy the predicate.\n *\n * It's like {@link filter}, but returns two Observables:\n * one like the output of {@link filter}, and the other with values that did not\n * pass the condition.\n *\n * ![](partition.png)\n *\n * `partition` outputs an array with two Observables that partition the values\n * from the source Observable through the given `predicate` function. The first\n * Observable in that array emits source values for which the predicate argument\n * returns true. The second Observable emits source values for which the\n * predicate returns false. The first behaves like {@link filter} and the second\n * behaves like {@link filter} with the predicate negated.\n *\n * ## Example\n * Partition a set of numbers into odds and evens observables\n * ```ts\n * import { of, partition } from 'rxjs';\n *\n * const observableValues = of(1, 2, 3, 4, 5, 6);\n * const [evens$, odds$] = partition(observableValues, (value, index) => value % 2 === 0);\n *\n * odds$.subscribe(x => console.log('odds', x));\n * evens$.subscribe(x => console.log('evens', x));\n *\n * // Logs:\n * // odds 1\n * // odds 3\n * // odds 5\n * // evens 2\n * // evens 4\n * // evens 6\n * ```\n *\n * @see {@link filter}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted on the first Observable in the returned array, if\n * `false` the value is emitted on the second Observable in the array. The\n * `index` parameter is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {[Observable, Observable]} An array with two Observables: one\n * with values that passed the predicate, and another with values that did not\n * pass the predicate.\n */\nexport function partition(\n source: ObservableInput,\n predicate: (value: T, index: number) => boolean,\n thisArg?: any\n): [Observable, Observable] {\n return [\n filter(predicate, thisArg)(new Observable(subscribeTo(source))),\n filter(not(predicate, thisArg) as any)(new Observable(subscribeTo(source)))\n ] as [Observable, Observable];\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { TeardownLogic, ObservableInput } from '../types';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\n// tslint:disable:max-line-length\nexport function race(arg: [ObservableInput]): Observable;\nexport function race(arg: [ObservableInput, ObservableInput]): Observable;\nexport function race(arg: [ObservableInput, ObservableInput, ObservableInput]): Observable;\nexport function race(arg: [ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable;\nexport function race(arg: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable;\nexport function race(arg: ObservableInput[]): Observable;\nexport function race(arg: ObservableInput[]): Observable<{}>;\n\nexport function race(a: ObservableInput): Observable;\nexport function race(a: ObservableInput, b: ObservableInput): Observable;\nexport function race(a: ObservableInput, b: ObservableInput, c: ObservableInput): Observable;\nexport function race(a: ObservableInput, b: ObservableInput, c: ObservableInput, d: ObservableInput): Observable;\nexport function race(a: ObservableInput, b: ObservableInput, c: ObservableInput, d: ObservableInput, e: ObservableInput): Observable;\n// tslint:enable:max-line-length\n\nexport function race(observables: ObservableInput[]): Observable;\nexport function race(observables: ObservableInput[]): Observable<{}>;\nexport function race(...observables: ObservableInput[]): Observable;\nexport function race(...observables: ObservableInput[]): Observable<{}>;\n\n/**\n * Returns an Observable that mirrors the first source Observable to emit an item.\n *\n * ## Example\n * ### Subscribes to the observable that was the first to start emitting.\n *\n * ```ts\n * import { race, interval } from 'rxjs';\n * import { mapTo } from 'rxjs/operators';\n *\n * const obs1 = interval(1000).pipe(mapTo('fast one'));\n * const obs2 = interval(3000).pipe(mapTo('medium one'));\n * const obs3 = interval(5000).pipe(mapTo('slow one'));\n *\n * race(obs3, obs1, obs2)\n * .subscribe(\n * winner => console.log(winner)\n * );\n *\n * // result:\n * // a series of 'fast one'\n * ```\n *\n * @param {...Observables} ...observables sources used to race for which Observable emits first.\n * @return {Observable} an Observable that mirrors the output of the first Observable to emit an item.\n * @static true\n * @name race\n * @owner Observable\n */\nexport function race(...observables: ObservableInput[]): Observable {\n // if the only argument is an array, it was most likely called with\n // `race([obs1, obs2, ...])`\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0] as Observable[];\n } else {\n return observables[0] as Observable;\n }\n }\n\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\n\nexport class RaceOperator implements Operator {\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RaceSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class RaceSubscriber extends OuterSubscriber {\n private hasFirst: boolean = false;\n private observables: Observable[] = [];\n private subscriptions: Subscription[] = [];\n\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n protected _next(observable: any): void {\n this.observables.push(observable);\n }\n\n protected _complete() {\n const observables = this.observables;\n const len = observables.length;\n\n if (len === 0) {\n this.destination.complete!();\n } else {\n for (let i = 0; i < len && !this.hasFirst; i++) {\n const observable = observables[i];\n const subscription = subscribeToResult(this, observable, undefined, i)!;\n\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null!;\n }\n }\n\n notifyNext(_outerValue: T, innerValue: T,\n outerIndex: number): void {\n if (!this.hasFirst) {\n this.hasFirst = true;\n\n for (let i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n let subscription = this.subscriptions[i];\n\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n\n this.subscriptions = null!;\n }\n\n this.destination.next!(innerValue);\n }\n}\n","import { SchedulerAction, SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\n\n/**\n * Creates an Observable that emits a sequence of numbers within a specified\n * range.\n *\n * Emits a sequence of numbers in a range.\n *\n * ![](range.png)\n *\n * `range` operator emits a range of sequential integers, in order, where you\n * select the `start` of the range and its `length`. By default, uses no\n * {@link SchedulerLike} and just delivers the notifications synchronously, but may use\n * an optional {@link SchedulerLike} to regulate those deliveries.\n *\n * ## Example\n * Emits the numbers 1 to 10\n * ```ts\n * import { range } from 'rxjs';\n *\n * const numbers = range(1, 10);\n * numbers.subscribe(x => console.log(x));\n * ```\n * @see {@link timer}\n * @see {@link index/interval}\n *\n * @param {number} [start=0] The value of the first integer in the sequence.\n * @param {number} count The number of sequential integers to generate.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling\n * the emissions of the notifications.\n * @return {Observable} An Observable of numbers that emits a finite range of\n * sequential integers.\n * @static true\n * @name range\n * @owner Observable\n */\nexport function range(start: number = 0,\n count?: number,\n scheduler?: SchedulerLike): Observable {\n return new Observable(subscriber => {\n if (count === undefined) {\n count = start;\n start = 0;\n }\n\n let index = 0;\n let current = start;\n\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index, count, start, subscriber\n });\n } else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n\n return undefined;\n });\n}\n\n/** @internal */\nexport function dispatch(this: SchedulerAction, state: any) {\n const { start, index, count, subscriber } = state;\n\n if (index >= count) {\n subscriber.complete();\n return;\n }\n\n subscriber.next(start);\n\n if (subscriber.closed) {\n return;\n }\n\n state.index = index + 1;\n state.start = start + 1;\n\n this.schedule(state);\n}\n","import { Observable } from '../Observable';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that starts emitting after an `dueTime` and\n * emits ever increasing numbers after each `period` of time thereafter.\n *\n * Its like {@link index/interval}, but you can specify when\n * should the emissions start.\n *\n * ![](timer.png)\n *\n * `timer` returns an Observable that emits an infinite sequence of ascending\n * integers, with a constant interval of time, `period` of your choosing\n * between those emissions. The first emission happens after the specified\n * `dueTime`. The initial delay may be a `Date`. By default, this\n * operator uses the {@link asyncScheduler} {@link SchedulerLike} to provide a notion of time, but you\n * may pass any {@link SchedulerLike} to it. If `period` is not specified, the output\n * Observable emits only one value, `0`. Otherwise, it emits an infinite\n * sequence.\n *\n * ## Examples\n * ### Emits ascending numbers, one every second (1000ms), starting after 3 seconds\n * ```ts\n * import { timer } from 'rxjs';\n *\n * const numbers = timer(3000, 1000);\n * numbers.subscribe(x => console.log(x));\n * ```\n *\n * ### Emits one number after five seconds\n * ```ts\n * import { timer } from 'rxjs';\n *\n * const numbers = timer(5000);\n * numbers.subscribe(x => console.log(x));\n * ```\n * @see {@link index/interval}\n * @see {@link delay}\n *\n * @param {number|Date} [dueTime] The initial delay time specified as a Date object or as an integer denoting\n * milliseconds to wait before emitting the first value of 0`.\n * @param {number|SchedulerLike} [periodOrScheduler] The period of time between emissions of the\n * subsequent numbers.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a `0` after the\n * `dueTime` and ever increasing numbers after each `period` of time\n * thereafter.\n * @static true\n * @name timer\n * @owner Observable\n */\nexport function timer(dueTime: number | Date = 0,\n periodOrScheduler?: number | SchedulerLike,\n scheduler?: SchedulerLike): Observable {\n let period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n } else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler as any;\n }\n\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n\n return new Observable(subscriber => {\n const due = isNumeric(dueTime)\n ? (dueTime as number)\n : (+dueTime - scheduler.now());\n\n return scheduler.schedule(dispatch, due, {\n index: 0, period, subscriber\n });\n });\n}\n\ninterface TimerState {\n index: number;\n period: number;\n subscriber: Subscriber;\n}\n\nfunction dispatch(this: SchedulerAction, state: TimerState) {\n const { index, period, subscriber } = state;\n subscriber.next(index);\n\n if (subscriber.closed) {\n return;\n } else if (period === -1) {\n return subscriber.complete();\n }\n\n state.index = index + 1;\n this.schedule(state, period);\n}\n","import { Observable } from '../Observable';\nimport { Unsubscribable, ObservableInput } from '../types';\nimport { from } from './from'; // from from from! LAWL\nimport { EMPTY } from './empty';\n\n/**\n * Creates an Observable that uses a resource which will be disposed at the same time as the Observable.\n *\n * Use it when you catch yourself cleaning up after an Observable.\n *\n * `using` is a factory operator, which accepts two functions. First function returns a disposable resource.\n * It can be an arbitrary object that implements `unsubscribe` method. Second function will be injected with\n * that object and should return an Observable. That Observable can use resource object during its execution.\n * Both functions passed to `using` will be called every time someone subscribes - neither an Observable nor\n * resource object will be shared in any way between subscriptions.\n *\n * When Observable returned by `using` is subscribed, Observable returned from the second function will be subscribed\n * as well. All its notifications (nexted values, completion and error events) will be emitted unchanged by the output\n * Observable. If however someone unsubscribes from the Observable or source Observable completes or errors by itself,\n * the `unsubscribe` method on resource object will be called. This can be used to do any necessary clean up, which\n * otherwise would have to be handled by hand. Note that complete or error notifications are not emitted when someone\n * cancels subscription to an Observable via `unsubscribe`, so `using` can be used as a hook, allowing you to make\n * sure that all resources which need to exist during an Observable execution will be disposed at appropriate time.\n *\n * @see {@link defer}\n *\n * @param {function(): ISubscription} resourceFactory A function which creates any resource object\n * that implements `unsubscribe` method.\n * @param {function(resource: ISubscription): Observable} observableFactory A function which\n * creates an Observable, that can use injected resource object.\n * @return {Observable} An Observable that behaves the same as Observable returned by `observableFactory`, but\n * which - when completed, errored or unsubscribed - will also call `unsubscribe` on created resource object.\n */\nexport function using(resourceFactory: () => Unsubscribable | void,\n observableFactory: (resource: Unsubscribable | void) => ObservableInput | void): Observable {\n return new Observable(subscriber => {\n let resource: Unsubscribable | void;\n\n try {\n resource = resourceFactory();\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n let result: ObservableInput | void;\n try {\n result = observableFactory(resource);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n const source = result ? from(result) : EMPTY;\n const subscription = source.subscribe(subscriber);\n return () => {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n","import { Observable } from '../Observable';\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Operator } from '../Operator';\nimport { ObservableInput, PartialObserver, ObservedValueOf } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\n\n/* tslint:disable:max-line-length */\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, R>(v1: O1, resultSelector: (v1: ObservedValueOf) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, O2 extends ObservableInput, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R): Observable;\n\nexport function zip, O2 extends ObservableInput>(v1: O1, v2: O2): Observable<[ObservedValueOf, ObservedValueOf]>;\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n\nexport function zip>(array: O[]): Observable[]>;\nexport function zip(array: ObservableInput[]): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, R>(array: O[], resultSelector: (...values: ObservedValueOf[]) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip(array: ObservableInput[], resultSelector: (...values: any[]) => R): Observable;\n\nexport function zip>(...observables: O[]): Observable[]>;\nexport function zip, R>(...observables: Array[]) => R)>): Observable;\nexport function zip(...observables: Array | ((...values: Array) => R)>): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Combines multiple Observables to create an Observable whose values are calculated from the values, in order, of each\n * of its input Observables.\n *\n * If the last parameter is a function, this function is used to compute the created value from the input values.\n * Otherwise, an array of the input values is returned.\n *\n * ## Example\n * Combine age and name from different sources\n * ```ts\n * import { zip, of } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * let age$ = of(27, 25, 29);\n * let name$ = of('Foo', 'Bar', 'Beer');\n * let isDev$ = of(true, true, false);\n *\n * zip(age$, name$, isDev$).pipe(\n * map(([age, name, isDev]) => ({ age, name, isDev })),\n * )\n * .subscribe(x => console.log(x));\n *\n * // outputs\n * // { age: 27, name: 'Foo', isDev: true }\n * // { age: 25, name: 'Bar', isDev: true }\n * // { age: 29, name: 'Beer', isDev: false }\n * ```\n * @param observables\n * @return {Observable}\n * @static true\n * @name zip\n * @owner Observable\n */\nexport function zip, R>(\n ...observables: Array[]) => R)>\n): Observable[]|R> {\n const resultSelector = <((...ys: Array) => R)> observables[observables.length - 1];\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\n\nexport class ZipOperator implements Operator {\n\n resultSelector?: (...values: Array) => R;\n\n constructor(resultSelector?: (...values: Array) => R) {\n this.resultSelector = resultSelector;\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ZipSubscriber extends Subscriber {\n private iterators: LookAheadIterator[] = [];\n private active = 0;\n\n constructor(destination: Subscriber,\n private resultSelector?: (...values: Array) => R,\n values: any = Object.create(null)) {\n super(destination);\n this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined;\n }\n\n protected _next(value: any) {\n const iterators = this.iterators;\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n } else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n } else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n }\n\n protected _complete() {\n const iterators = this.iterators;\n const len = iterators.length;\n\n this.unsubscribe();\n\n if (len === 0) {\n this.destination.complete!();\n return;\n }\n\n this.active = len;\n for (let i = 0; i < len; i++) {\n let iterator: ZipBufferIterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n const destination = this.destination as Subscription;\n destination.add(iterator.subscribe());\n } else {\n this.active--; // not an observable\n }\n }\n }\n\n notifyInactive() {\n this.active--;\n if (this.active === 0) {\n this.destination.complete!();\n }\n }\n\n checkIterators() {\n const iterators = this.iterators;\n const len = iterators.length;\n const destination = this.destination;\n\n // abort if not all of them have values\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n\n let shouldComplete = false;\n const args: any[] = [];\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n let result = iterator.next();\n\n // check to see if it's completed now that you've gotten\n // the next value.\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n\n if (result.done) {\n destination.complete!();\n return;\n }\n\n args.push(result.value);\n }\n\n if (this.resultSelector) {\n this._tryresultSelector(args);\n } else {\n destination.next!(args);\n }\n\n if (shouldComplete) {\n destination.complete!();\n }\n }\n\n protected _tryresultSelector(args: any[]) {\n let result: any;\n try {\n result = this.resultSelector!.apply(this, args);\n } catch (err) {\n this.destination.error!(err);\n return;\n }\n this.destination.next!(result);\n }\n}\n\ninterface LookAheadIterator extends Iterator {\n hasValue(): boolean;\n hasCompleted(): boolean;\n}\n\nclass StaticIterator implements LookAheadIterator {\n private nextResult: IteratorResult;\n\n constructor(private iterator: Iterator) {\n this.nextResult = iterator.next();\n }\n\n hasValue() {\n return true;\n }\n\n next(): IteratorResult {\n const result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n }\n\n hasCompleted(): boolean {\n const nextResult = this.nextResult;\n return Boolean(nextResult && nextResult.done);\n }\n}\n\nclass StaticArrayIterator implements LookAheadIterator {\n private index = 0;\n private length = 0;\n\n constructor(private array: T[]) {\n this.length = array.length;\n }\n\n [Symbol_iterator]() {\n return this;\n }\n\n next(value?: any): IteratorResult {\n const i = this.index++;\n const array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n }\n\n hasValue() {\n return this.array.length > this.index;\n }\n\n hasCompleted() {\n return this.array.length === this.index;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ZipBufferIterator extends SimpleOuterSubscriber implements LookAheadIterator {\n stillUnsubscribed = true;\n buffer: T[] = [];\n isComplete = false;\n\n constructor(destination: PartialObserver,\n private parent: ZipSubscriber,\n private observable: Observable) {\n super(destination);\n }\n\n [Symbol_iterator]() {\n return this;\n }\n\n // NOTE: there is actually a name collision here with Subscriber.next and Iterator.next\n // this is legit because `next()` will never be called by a subscription in this case.\n next(): IteratorResult {\n const buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n } else {\n return { value: buffer.shift()!, done: false };\n }\n }\n\n hasValue() {\n return this.buffer.length > 0;\n }\n\n hasCompleted() {\n return this.buffer.length === 0 && this.isComplete;\n }\n\n notifyComplete() {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n } else {\n this.destination.complete!();\n }\n }\n\n notifyNext(innerValue: any): void {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n }\n\n subscribe() {\n return innerSubscribe(this.observable, new SimpleInnerSubscriber(this));\n }\n}\n","/* Observable */\nexport { Observable } from './internal/Observable';\nexport { ConnectableObservable } from './internal/observable/ConnectableObservable';\nexport { GroupedObservable } from './internal/operators/groupBy';\nexport { Operator } from './internal/Operator';\nexport { observable } from './internal/symbol/observable';\n\n/* Subjects */\nexport { Subject } from './internal/Subject';\nexport { BehaviorSubject } from './internal/BehaviorSubject';\nexport { ReplaySubject } from './internal/ReplaySubject';\nexport { AsyncSubject } from './internal/AsyncSubject';\n\n/* Schedulers */\nexport { asap, asapScheduler } from './internal/scheduler/asap';\nexport { async, asyncScheduler } from './internal/scheduler/async';\nexport { queue, queueScheduler } from './internal/scheduler/queue';\nexport { animationFrame, animationFrameScheduler } from './internal/scheduler/animationFrame';\nexport { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler';\nexport { Scheduler } from './internal/Scheduler';\n\n/* Subscription */\nexport { Subscription } from './internal/Subscription';\nexport { Subscriber } from './internal/Subscriber';\n\n/* Notification */\nexport { Notification, NotificationKind } from './internal/Notification';\n\n/* Utils */\nexport { pipe } from './internal/util/pipe';\nexport { noop } from './internal/util/noop';\nexport { identity } from './internal/util/identity';\nexport { isObservable } from './internal/util/isObservable';\n\n/* Error types */\nexport { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError';\nexport { EmptyError } from './internal/util/EmptyError';\nexport { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError';\nexport { UnsubscriptionError } from './internal/util/UnsubscriptionError';\nexport { TimeoutError } from './internal/util/TimeoutError';\n\n/* Static observable creation exports */\nexport { bindCallback } from './internal/observable/bindCallback';\nexport { bindNodeCallback } from './internal/observable/bindNodeCallback';\nexport { combineLatest } from './internal/observable/combineLatest';\nexport { concat } from './internal/observable/concat';\nexport { defer } from './internal/observable/defer';\nexport { empty } from './internal/observable/empty';\nexport { forkJoin } from './internal/observable/forkJoin';\nexport { from } from './internal/observable/from';\nexport { fromEvent } from './internal/observable/fromEvent';\nexport { fromEventPattern } from './internal/observable/fromEventPattern';\nexport { generate } from './internal/observable/generate';\nexport { iif } from './internal/observable/iif';\nexport { interval } from './internal/observable/interval';\nexport { merge } from './internal/observable/merge';\nexport { never } from './internal/observable/never';\nexport { of } from './internal/observable/of';\nexport { onErrorResumeNext } from './internal/observable/onErrorResumeNext';\nexport { pairs } from './internal/observable/pairs';\nexport { partition } from './internal/observable/partition';\nexport { race } from './internal/observable/race';\nexport { range } from './internal/observable/range';\nexport { throwError } from './internal/observable/throwError';\nexport { timer } from './internal/observable/timer';\nexport { using } from './internal/observable/using';\nexport { zip } from './internal/observable/zip';\nexport { scheduled } from './internal/scheduled/scheduled';\n\n/* Constants */\nexport { EMPTY } from './internal/observable/empty';\nexport { NEVER } from './internal/observable/never';\n\n/* Types */\nexport * from './internal/types';\n\n/* Config */\nexport { config } from './internal/config';\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\n/**\n * Ignores source values for a duration determined by another Observable, then\n * emits the most recent value from the source Observable, then repeats this\n * process.\n *\n * It's like {@link auditTime}, but the silencing\n * duration is determined by a second Observable.\n *\n * ![](audit.png)\n *\n * `audit` is similar to `throttle`, but emits the last value from the silenced\n * time window, instead of the first value. `audit` emits the most recent value\n * from the source Observable on the output Observable as soon as its internal\n * timer becomes disabled, and ignores source values while the timer is enabled.\n * Initially, the timer is disabled. As soon as the first source value arrives,\n * the timer is enabled by calling the `durationSelector` function with the\n * source value, which returns the \"duration\" Observable. When the duration\n * Observable emits a value or completes, the timer is disabled, then the most\n * recent source value is emitted on the output Observable, and this process\n * repeats for the next source value.\n *\n * ## Example\n *\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { audit } from 'rxjs/operators'\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(audit(ev => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n * @see {@link auditTime}\n * @see {@link debounce}\n * @see {@link delayWhen}\n * @see {@link sample}\n * @see {@link throttle}\n *\n * @param {function(value: T): SubscribableOrPromise} durationSelector A function\n * that receives a value from the source Observable, for computing the silencing\n * duration, returned as an Observable or a Promise.\n * @return {Observable} An Observable that performs rate-limiting of\n * emissions from the source Observable.\n * @method audit\n * @owner Observable\n */\nexport function audit(durationSelector: (value: T) => SubscribableOrPromise): MonoTypeOperatorFunction {\n return function auditOperatorFunction(source: Observable) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\n\nclass AuditOperator implements Operator {\n constructor(private durationSelector: (value: T) => SubscribableOrPromise) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass AuditSubscriber extends SimpleOuterSubscriber {\n\n private value?: T;\n private hasValue: boolean = false;\n private throttled?: Subscription;\n\n constructor(destination: Subscriber,\n private durationSelector: (value: T) => SubscribableOrPromise) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n let duration;\n try {\n const { durationSelector } = this;\n duration = durationSelector(value);\n } catch (err) {\n return this.destination.error!(err);\n }\n const innerSubscription = innerSubscribe(duration, new SimpleInnerSubscriber(this));\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n } else {\n this.add(this.throttled = innerSubscription);\n }\n }\n }\n\n clearThrottle() {\n const { value, hasValue, throttled } = this;\n if (throttled) {\n this.remove(throttled);\n this.throttled = undefined;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = undefined;\n this.hasValue = false;\n this.destination.next!(value);\n }\n }\n\n notifyNext(): void {\n this.clearThrottle();\n }\n\n notifyComplete(): void {\n this.clearThrottle();\n }\n}\n","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n\n/**\n * Ignores source values for `duration` milliseconds, then emits the most recent\n * value from the source Observable, then repeats this process.\n *\n * When it sees a source value, it ignores that plus\n * the next ones for `duration` milliseconds, and then it emits the most recent\n * value from the source.\n *\n * ![](auditTime.png)\n *\n * `auditTime` is similar to `throttleTime`, but emits the last value from the\n * silenced time window, instead of the first value. `auditTime` emits the most\n * recent value from the source Observable on the output Observable as soon as\n * its internal timer becomes disabled, and ignores source values while the\n * timer is enabled. Initially, the timer is disabled. As soon as the first\n * source value arrives, the timer is enabled. After `duration` milliseconds (or\n * the time unit determined internally by the optional `scheduler`) has passed,\n * the timer is disabled, then the most recent source value is emitted on the\n * output Observable, and this process repeats for the next source value.\n * Optionally takes a {@link SchedulerLike} for managing timers.\n *\n * ## Example\n *\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { auditTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(auditTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttleTime}\n *\n * @param {number} duration Time to wait before emitting the most recent source\n * value, measured in milliseconds or the time unit determined internally\n * by the optional `scheduler`.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the rate-limiting behavior.\n * @return {Observable} An Observable that performs rate-limiting of\n * emissions from the source Observable.\n * @method auditTime\n * @owner Observable\n */\nexport function auditTime(duration: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return audit(() => timer(duration, scheduler));\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\n/**\n * Buffers the source Observable values until `closingNotifier` emits.\n *\n * Collects values from the past as an array, and emits\n * that array only when another Observable emits.\n *\n * ![](buffer.png)\n *\n * Buffers the incoming Observable values until the given `closingNotifier`\n * Observable emits a value, at which point it emits the buffer on the output\n * Observable and starts a new buffer internally, awaiting the next time\n * `closingNotifier` emits.\n *\n * ## Example\n *\n * On every click, emit array of most recent interval events\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { buffer } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const intervalEvents = interval(1000);\n * const buffered = intervalEvents.pipe(buffer(clicks));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link window}\n *\n * @param {Observable} closingNotifier An Observable that signals the\n * buffer to be emitted on the output Observable.\n * @return {Observable} An Observable of buffers, which are arrays of\n * values.\n * @method buffer\n * @owner Observable\n */\nexport function buffer(closingNotifier: Observable): OperatorFunction {\n return function bufferOperatorFunction(source: Observable) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\n\nclass BufferOperator implements Operator {\n\n constructor(private closingNotifier: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferSubscriber extends SimpleOuterSubscriber {\n private buffer: T[] = [];\n\n constructor(destination: Subscriber, closingNotifier: Observable) {\n super(destination);\n this.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this)));\n }\n\n protected _next(value: T) {\n this.buffer.push(value);\n }\n\n notifyNext(): void {\n const buffer = this.buffer;\n this.buffer = [];\n this.destination.next!(buffer);\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Buffers the source Observable values until the size hits the maximum\n * `bufferSize` given.\n *\n * Collects values from the past as an array, and emits\n * that array only when its size reaches `bufferSize`.\n *\n * ![](bufferCount.png)\n *\n * Buffers a number of values from the source Observable by `bufferSize` then\n * emits the buffer and clears it, and starts a new buffer each\n * `startBufferEvery` values. If `startBufferEvery` is not provided or is\n * `null`, then new buffers are started immediately at the start of the source\n * and when each buffer closes and is emitted.\n *\n * ## Examples\n *\n * Emit the last two click events as an array\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { bufferCount } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferCount(2));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * On every click, emit the last two click events as an array\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { bufferCount } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferCount(2, 1));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link pairwise}\n * @see {@link windowCount}\n *\n * @param {number} bufferSize The maximum size of the buffer emitted.\n * @param {number} [startBufferEvery] Interval at which to start a new buffer.\n * For example if `startBufferEvery` is `2`, then a new buffer will be started\n * on every other value from the source. A new buffer is started at the\n * beginning of the source by default.\n * @return {Observable} An Observable of arrays of buffered values.\n * @method bufferCount\n * @owner Observable\n */\nexport function bufferCount(bufferSize: number, startBufferEvery: number = null): OperatorFunction {\n return function bufferCountOperatorFunction(source: Observable) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\n\nclass BufferCountOperator implements Operator {\n private subscriberClass: any;\n\n constructor(private bufferSize: number, private startBufferEvery: number) {\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n } else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferCountSubscriber extends Subscriber {\n private buffer: T[] = [];\n\n constructor(destination: Subscriber, private bufferSize: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const buffer = this.buffer;\n\n buffer.push(value);\n\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n }\n\n protected _complete(): void {\n const buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n super._complete();\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferSkipCountSubscriber extends Subscriber {\n private buffers: Array = [];\n private count: number = 0;\n\n constructor(destination: Subscriber, private bufferSize: number, private startBufferEvery: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const { bufferSize, startBufferEvery, buffers, count } = this;\n\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n\n for (let i = buffers.length; i--; ) {\n const buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n }\n\n protected _complete(): void {\n const { buffers, destination } = this;\n\n while (buffers.length > 0) {\n let buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n super._complete();\n }\n\n}\n","import { Operator } from '../Operator';\nimport { async } from '../scheduler/async';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { isScheduler } from '../util/isScheduler';\nimport { OperatorFunction, SchedulerAction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function bufferTime(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction;\nexport function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, scheduler?: SchedulerLike): OperatorFunction;\nexport function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, maxBufferSize: number, scheduler?: SchedulerLike): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Buffers the source Observable values for a specific time period.\n *\n * Collects values from the past as an array, and emits\n * those arrays periodically in time.\n *\n * ![](bufferTime.png)\n *\n * Buffers values from the source for a specific time duration `bufferTimeSpan`.\n * Unless the optional argument `bufferCreationInterval` is given, it emits and\n * resets the buffer every `bufferTimeSpan` milliseconds. If\n * `bufferCreationInterval` is given, this operator opens the buffer every\n * `bufferCreationInterval` milliseconds and closes (emits and resets) the\n * buffer every `bufferTimeSpan` milliseconds. When the optional argument\n * `maxBufferSize` is specified, the buffer will be closed either after\n * `bufferTimeSpan` milliseconds or when it contains `maxBufferSize` elements.\n *\n * ## Examples\n *\n * Every second, emit an array of the recent click events\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { bufferTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferTime(1000));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * Every 5 seconds, emit the click events from the next 2 seconds\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { bufferTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferTime(2000, 5000));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link windowTime}\n *\n * @param {number} bufferTimeSpan The amount of time to fill each buffer array.\n * @param {number} [bufferCreationInterval] The interval at which to start new\n * buffers.\n * @param {number} [maxBufferSize] The maximum buffer size.\n * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the\n * intervals that determine buffer boundaries.\n * @return {Observable} An observable of arrays of buffered values.\n * @method bufferTime\n * @owner Observable\n */\nexport function bufferTime(bufferTimeSpan: number): OperatorFunction {\n let length: number = arguments.length;\n\n let scheduler: SchedulerLike = async;\n if (isScheduler(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n\n let bufferCreationInterval: number = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n\n let maxBufferSize: number = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n\n return function bufferTimeOperatorFunction(source: Observable) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\n\nclass BufferTimeOperator implements Operator {\n constructor(private bufferTimeSpan: number,\n private bufferCreationInterval: number,\n private maxBufferSize: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferTimeSubscriber(\n subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler\n ));\n }\n}\n\nclass Context {\n buffer: T[] = [];\n closeAction: Subscription;\n}\n\ninterface DispatchCreateArg {\n bufferTimeSpan: number;\n bufferCreationInterval: number;\n subscriber: BufferTimeSubscriber;\n scheduler: SchedulerLike;\n}\n\ninterface DispatchCloseArg {\n subscriber: BufferTimeSubscriber;\n context: Context;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferTimeSubscriber extends Subscriber {\n private contexts: Array> = [];\n private timespanOnly: boolean;\n\n constructor(destination: Subscriber,\n private bufferTimeSpan: number,\n private bufferCreationInterval: number,\n private maxBufferSize: number,\n private scheduler: SchedulerLike) {\n super(destination);\n const context = this.openContext();\n this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (this.timespanOnly) {\n const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };\n this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n } else {\n const closeState = { subscriber: this, context };\n const creationState: DispatchCreateArg = { bufferTimeSpan, bufferCreationInterval, subscriber: this, scheduler };\n this.add(context.closeAction = scheduler.schedule>(dispatchBufferClose, bufferTimeSpan, closeState));\n this.add(scheduler.schedule>(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n }\n\n protected _next(value: T) {\n const contexts = this.contexts;\n const len = contexts.length;\n let filledBufferContext: Context;\n for (let i = 0; i < len; i++) {\n const context = contexts[i];\n const buffer = context.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context;\n }\n }\n\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n }\n\n protected _error(err: any) {\n this.contexts.length = 0;\n super._error(err);\n }\n\n protected _complete() {\n const { contexts, destination } = this;\n while (contexts.length > 0) {\n const context = contexts.shift();\n destination.next(context.buffer);\n }\n super._complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.contexts = null;\n }\n\n protected onBufferFull(context: Context) {\n this.closeContext(context);\n const closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n const bufferTimeSpan = this.bufferTimeSpan;\n const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n }\n\n openContext(): Context {\n const context: Context = new Context();\n this.contexts.push(context);\n return context;\n }\n\n closeContext(context: Context) {\n this.destination.next(context.buffer);\n const contexts = this.contexts;\n\n const spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n }\n}\n\nfunction dispatchBufferTimeSpanOnly(this: SchedulerAction, state: any) {\n const subscriber: BufferTimeSubscriber = state.subscriber;\n\n const prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\n\nfunction dispatchBufferCreation(this: SchedulerAction>, state: DispatchCreateArg) {\n const { bufferCreationInterval, bufferTimeSpan, subscriber, scheduler } = state;\n const context = subscriber.openContext();\n const action = >>this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule>(dispatchBufferClose, bufferTimeSpan, { subscriber, context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\n\nfunction dispatchBufferClose(arg: DispatchCloseArg) {\n const { subscriber, context } = arg;\n subscriber.closeContext(context);\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { OperatorFunction, SubscribableOrPromise } from '../types';\n\n/**\n * Buffers the source Observable values starting from an emission from\n * `openings` and ending when the output of `closingSelector` emits.\n *\n * Collects values from the past as an array. Starts\n * collecting only when `opening` emits, and calls the `closingSelector`\n * function to get an Observable that tells when to close the buffer.\n *\n * ![](bufferToggle.png)\n *\n * Buffers values from the source by opening the buffer via signals from an\n * Observable provided to `openings`, and closing and sending the buffers when\n * a Subscribable or Promise returned by the `closingSelector` function emits.\n *\n * ## Example\n *\n * Every other second, emit the click events from the next 500ms\n *\n * ```ts\n * import { fromEvent, interval, EMPTY } from 'rxjs';\n * import { bufferToggle } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const openings = interval(1000);\n * const buffered = clicks.pipe(bufferToggle(openings, i =>\n * i % 2 ? interval(500) : EMPTY\n * ));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferWhen}\n * @see {@link windowToggle}\n *\n * @param {SubscribableOrPromise} openings A Subscribable or Promise of notifications to start new\n * buffers.\n * @param {function(value: O): SubscribableOrPromise} closingSelector A function that takes\n * the value emitted by the `openings` observable and returns a Subscribable or Promise,\n * which, when it emits, signals that the associated buffer should be emitted\n * and cleared.\n * @return {Observable} An observable of arrays of buffered values.\n * @method bufferToggle\n * @owner Observable\n */\nexport function bufferToggle(\n openings: SubscribableOrPromise,\n closingSelector: (value: O) => SubscribableOrPromise\n): OperatorFunction {\n return function bufferToggleOperatorFunction(source: Observable) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\n\nclass BufferToggleOperator implements Operator {\n\n constructor(private openings: SubscribableOrPromise,\n private closingSelector: (value: O) => SubscribableOrPromise) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n }\n}\n\ninterface BufferContext {\n buffer: T[];\n subscription: Subscription;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferToggleSubscriber extends OuterSubscriber {\n private contexts: Array> = [];\n\n constructor(destination: Subscriber,\n openings: SubscribableOrPromise,\n private closingSelector: (value: O) => SubscribableOrPromise | void) {\n super(destination);\n this.add(subscribeToResult(this, openings));\n }\n\n protected _next(value: T): void {\n const contexts = this.contexts;\n const len = contexts.length;\n for (let i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n }\n\n protected _error(err: any): void {\n const contexts = this.contexts;\n while (contexts.length > 0) {\n const context = contexts.shift()!;\n context.subscription.unsubscribe();\n context.buffer = null!;\n context.subscription = null!;\n }\n this.contexts = null!;\n super._error(err);\n }\n\n protected _complete(): void {\n const contexts = this.contexts;\n while (contexts.length > 0) {\n const context = contexts.shift()!;\n this.destination.next!(context.buffer);\n context.subscription.unsubscribe();\n context.buffer = null!;\n context.subscription = null!;\n }\n this.contexts = null!;\n super._complete();\n }\n\n notifyNext(outerValue: any, innerValue: O): void {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.closeBuffer(( innerSub).context);\n }\n\n private openBuffer(value: O): void {\n try {\n const closingSelector = this.closingSelector;\n const closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n } catch (err) {\n this._error(err);\n }\n }\n\n private closeBuffer(context: BufferContext): void {\n const contexts = this.contexts;\n\n if (contexts && context) {\n const { buffer, subscription } = context;\n this.destination.next!(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n }\n\n private trySubscribe(closingNotifier: any): void {\n const contexts = this.contexts;\n\n const buffer: Array = [];\n const subscription = new Subscription();\n const context = { buffer, subscription };\n contexts.push(context);\n\n const innerSubscription = subscribeToResult(this, closingNotifier, context as any);\n\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n } else {\n (innerSubscription as any).context = context;\n\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { OperatorFunction } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\n/**\n * Buffers the source Observable values, using a factory function of closing\n * Observables to determine when to close, emit, and reset the buffer.\n *\n * Collects values from the past as an array. When it\n * starts collecting values, it calls a function that returns an Observable that\n * tells when to close the buffer and restart collecting.\n *\n * ![](bufferWhen.png)\n *\n * Opens a buffer immediately, then closes the buffer when the observable\n * returned by calling `closingSelector` function emits a value. When it closes\n * the buffer, it immediately opens a new buffer and repeats the process.\n *\n * ## Example\n *\n * Emit an array of the last clicks every [1-5] random seconds\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { bufferWhen } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferWhen(() =>\n * interval(1000 + Math.random() * 4000)\n * ));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link windowWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals buffer closure.\n * @return {Observable} An observable of arrays of buffered values.\n * @method bufferWhen\n * @owner Observable\n */\nexport function bufferWhen(closingSelector: () => Observable): OperatorFunction {\n return function (source: Observable) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\n\nclass BufferWhenOperator implements Operator {\n\n constructor(private closingSelector: () => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferWhenSubscriber extends SimpleOuterSubscriber {\n private buffer?: T[];\n private subscribing: boolean = false;\n private closingSubscription?: Subscription;\n\n constructor(destination: Subscriber, private closingSelector: () => Observable) {\n super(destination);\n this.openBuffer();\n }\n\n protected _next(value: T) {\n this.buffer!.push(value);\n }\n\n protected _complete() {\n const buffer = this.buffer;\n if (buffer) {\n this.destination.next!(buffer);\n }\n super._complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.buffer = undefined;\n this.subscribing = false;\n }\n\n notifyNext(): void {\n this.openBuffer();\n }\n\n notifyComplete(): void {\n if (this.subscribing) {\n this.complete();\n } else {\n this.openBuffer();\n }\n }\n\n openBuffer() {\n let { closingSubscription } = this;\n\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n\n const buffer = this.buffer;\n if (this.buffer) {\n this.destination.next!(buffer);\n }\n\n this.buffer = [];\n\n let closingNotifier;\n try {\n const { closingSelector } = this;\n closingNotifier = closingSelector();\n } catch (err) {\n return this.error(err);\n }\n closingSubscription = new Subscription();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this)));\n this.subscribing = false;\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\n\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\n\n/* tslint:disable:max-line-length */\nexport function catchError>(selector: (err: any, caught: Observable) => O): OperatorFunction>;\n/* tslint:enable:max-line-length */\n\n/**\n * Catches errors on the observable to be handled by returning a new observable or throwing an error.\n *\n * ![](catch.png)\n *\n * ## Examples\n * Continues with a different Observable when there's an error\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { map, catchError } from 'rxjs/operators';\n *\n * of(1, 2, 3, 4, 5).pipe(\n * map(n => {\n * \t if (n === 4) {\n * \t throw 'four!';\n * }\n *\t return n;\n * }),\n * catchError(err => of('I', 'II', 'III', 'IV', 'V')),\n * )\n * .subscribe(x => console.log(x));\n * // 1, 2, 3, I, II, III, IV, V\n * ```\n *\n * Retries the caught source Observable again in case of error, similar to retry() operator\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { map, catchError, take } from 'rxjs/operators';\n *\n * of(1, 2, 3, 4, 5).pipe(\n * map(n => {\n * \t if (n === 4) {\n * \t throw 'four!';\n * }\n * \t return n;\n * }),\n * catchError((err, caught) => caught),\n * take(30),\n * )\n * .subscribe(x => console.log(x));\n * // 1, 2, 3, 1, 2, 3, ...\n * ```\n *\n * Throws a new error when the source Observable throws an error\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { map, catchError } from 'rxjs/operators';\n *\n * of(1, 2, 3, 4, 5).pipe(\n * map(n => {\n * if (n === 4) {\n * throw 'four!';\n * }\n * return n;\n * }),\n * catchError(err => {\n * throw 'error in source. Details: ' + err;\n * }),\n * )\n * .subscribe(\n * x => console.log(x),\n * err => console.log(err)\n * );\n * // 1, 2, 3, error in source. Details: four!\n * ```\n *\n * @param {function} selector a function that takes as arguments `err`, which is the error, and `caught`, which\n * is the source observable, in case you'd like to \"retry\" that observable by returning it again. Whatever observable\n * is returned by the `selector` will be used to continue the observable chain.\n * @return {Observable} An observable that originates from either the source or the observable returned by the\n * catch `selector` function.\n * @name catchError\n */\nexport function catchError>(\n selector: (err: any, caught: Observable) => O\n): OperatorFunction> {\n return function catchErrorOperatorFunction(source: Observable): Observable> {\n const operator = new CatchOperator(selector);\n const caught = source.lift(operator);\n return (operator.caught = caught as Observable);\n };\n}\n\nclass CatchOperator implements Operator {\n caught: Observable;\n\n constructor(private selector: (err: any, caught: Observable) => ObservableInput) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass CatchSubscriber extends SimpleOuterSubscriber {\n constructor(destination: Subscriber,\n private selector: (err: any, caught: Observable) => ObservableInput,\n private caught: Observable) {\n super(destination);\n }\n\n // NOTE: overriding `error` instead of `_error` because we don't want\n // to have this flag this subscriber as `isStopped`. We can mimic the\n // behavior of the RetrySubscriber (from the `retry` operator), where\n // we unsubscribe from our source chain, reset our Subscriber flags,\n // then subscribe to the selector result.\n error(err: any) {\n if (!this.isStopped) {\n let result: any;\n try {\n result = this.selector(err, this.caught);\n } catch (err2) {\n super.error(err2);\n return;\n }\n this._unsubscribeAndRecycle();\n const innerSubscriber = new SimpleInnerSubscriber(this);\n this.add(innerSubscriber);\n const innerSubscription = innerSubscribe(result, innerSubscriber);\n // The returned subscription will usually be the subscriber that was\n // passed. However, interop subscribers will be wrapped and for\n // unsubscriptions to chain correctly, the wrapper needs to be added, too.\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n }\n}\n","import { CombineLatestOperator } from '../observable/combineLatest';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, ObservableInput } from '../types';\n\nexport function combineAll(): OperatorFunction, T[]>;\nexport function combineAll(): OperatorFunction;\nexport function combineAll(project: (...values: T[]) => R): OperatorFunction, R>;\nexport function combineAll(project: (...values: Array) => R): OperatorFunction;\n/**\n * Flattens an Observable-of-Observables by applying {@link combineLatest} when the Observable-of-Observables completes.\n *\n * ![](combineAll.png)\n *\n * `combineAll` takes an Observable of Observables, and collects all Observables from it. Once the outer Observable completes,\n * it subscribes to all collected Observables and combines their values using the {@link combineLatest} strategy, such that:\n *\n * * Every time an inner Observable emits, the output Observable emits\n * * When the returned observable emits, it emits all of the latest values by:\n * * If a `project` function is provided, it is called with each recent value from each inner Observable in whatever order they\n * arrived, and the result of the `project` function is what is emitted by the output Observable.\n * * If there is no `project` function, an array of all the most recent values is emitted by the output Observable.\n *\n * ---\n *\n * ## Examples\n *\n * ### Map two click events to a finite interval Observable, then apply `combineAll`\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { map, combineAll, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map(ev =>\n * interval(Math.random() * 2000).pipe(take(3))\n * ),\n * take(2)\n * );\n * const result = higherOrder.pipe(\n * combineAll()\n * );\n *\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineLatest}\n * @see {@link mergeAll}\n *\n * @param {function(...values: Array)} An optional function to map the most recent values from each inner Observable into a new result.\n * Takes each of the most recent values from each collected inner Observable as arguments, in order.\n * @return {Observable}\n * @name combineAll\n */\nexport function combineAll(project?: (...values: Array) => R): OperatorFunction {\n return (source: Observable) => source.lift(new CombineLatestOperator(project));\n}\n","\nimport { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction } from '../types';\n\nconst none = {};\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(project: (v1: T) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, project: (v1: T, v2: T2) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction ;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction ;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(...observables: Array | ((...values: Array) => R)>): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(array: ObservableInput[]): OperatorFunction>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(array: ObservableInput[], project: (v1: T, ...values: Array) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static {@link combineLatest}.\n */\nexport function combineLatest(...observables: Array |\n Array> |\n ((...values: Array) => R)>): OperatorFunction {\n let project: (...values: Array) => R = null;\n if (typeof observables[observables.length - 1] === 'function') {\n project = <(...values: Array) => R>observables.pop();\n }\n\n // if the first and only other argument besides the resultSelector is an array\n // assume it's been called with `combineLatest([obs1, obs2, obs3], project)`\n if (observables.length === 1 && isArray(observables[0])) {\n observables = (observables[0]).slice();\n }\n\n return (source: Observable) => source.lift.call(from([source, ...observables]), new CombineLatestOperator(project));\n}\n","import { concat as concatStatic } from '../observable/concat';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(...observables: Array | SchedulerLike>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(...observables: Array | SchedulerLike>): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static {@link concat}.\n */\nexport function concat(...observables: Array | SchedulerLike>): OperatorFunction {\n return (source: Observable) => source.lift.call(concatStatic(source, ...observables));\n}\n","import { mergeMap } from './mergeMap';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function concatMap>(project: (value: T, index: number) => O): OperatorFunction>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function concatMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function concatMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, in a serialized fashion waiting for each one to complete before\n * merging the next.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link concatAll}.\n *\n * ![](concatMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each new inner Observable is\n * concatenated with the previous inner Observable.\n *\n * __Warning:__ if source values arrive endlessly and faster than their\n * corresponding inner Observables can complete, it will result in memory issues\n * as inner Observables amass in an unbounded buffer waiting for their turn to\n * be subscribed to.\n *\n * Note: `concatMap` is equivalent to `mergeMap` with concurrency parameter set\n * to `1`.\n *\n * ## Example\n * For each click event, tick every second from 0 to 3, with no concurrency\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { concatMap, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * concatMap(ev => interval(1000).pipe(take(4)))\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n * ```\n *\n * @see {@link concat}\n * @see {@link concatAll}\n * @see {@link concatMapTo}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional deprecated `resultSelector`) to each item emitted\n * by the source Observable and taking values from each projected inner\n * Observable sequentially.\n * @method concatMap\n * @owner Observable\n */\nexport function concatMap>(\n project: (value: T, index: number) => O,\n resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R\n): OperatorFunction|R> {\n return mergeMap(project, resultSelector, 1);\n}\n","import { concatMap } from './concatMap';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function concatMapTo>(observable: O): OperatorFunction>;\n/** @deprecated */\nexport function concatMapTo>(observable: O, resultSelector: undefined): OperatorFunction>;\n/** @deprecated */\nexport function concatMapTo>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to the same Observable which is merged multiple\n * times in a serialized fashion on the output Observable.\n *\n * It's like {@link concatMap}, but maps each value\n * always to the same inner Observable.\n *\n * ![](concatMapTo.png)\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then flattens those resulting Observables into one\n * single Observable, which is the output Observable. Each new `innerObservable`\n * instance emitted on the output Observable is concatenated with the previous\n * `innerObservable` instance.\n *\n * __Warning:__ if source values arrive endlessly and faster than their\n * corresponding inner Observables can complete, it will result in memory issues\n * as inner Observables amass in an unbounded buffer waiting for their turn to\n * be subscribed to.\n *\n * Note: `concatMapTo` is equivalent to `mergeMapTo` with concurrency parameter\n * set to `1`.\n *\n * ## Example\n * For each click event, tick every second from 0 to 3, with no concurrency\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { concatMapTo, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * concatMapTo(interval(1000).pipe(take(4))),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n * ```\n *\n * @see {@link concat}\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link mergeMapTo}\n * @see {@link switchMapTo}\n *\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n * @return {Observable} An observable of values merged together by joining the\n * passed observable with itself, one after the other, for each value emitted\n * from the source.\n * @method concatMapTo\n * @owner Observable\n */\nexport function concatMapTo>(\n innerObservable: O,\n resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R\n): OperatorFunction|R> {\n return concatMap(() => innerObservable, resultSelector);\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Observer, OperatorFunction } from '../types';\nimport { Subscriber } from '../Subscriber';\n/**\n * Counts the number of emissions on the source and emits that number when the\n * source completes.\n *\n * Tells how many values were emitted, when the source\n * completes.\n *\n * ![](count.png)\n *\n * `count` transforms an Observable that emits values into an Observable that\n * emits a single value that represents the number of values emitted by the\n * source Observable. If the source Observable terminates with an error, `count`\n * will pass this error notification along without emitting a value first. If\n * the source Observable does not terminate at all, `count` will neither emit\n * a value nor terminate. This operator takes an optional `predicate` function\n * as argument, in which case the output emission will represent the number of\n * source values that matched `true` with the `predicate`.\n *\n * ## Examples\n *\n * Counts how many seconds have passed before the first click happened\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { count, takeUntil } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const secondsBeforeClick = seconds.pipe(takeUntil(clicks));\n * const result = secondsBeforeClick.pipe(count());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Counts how many odd numbers are there between 1 and 7\n * ```ts\n * import { range } from 'rxjs';\n * import { count } from 'rxjs/operators';\n *\n * const numbers = range(1, 7);\n * const result = numbers.pipe(count(i => i % 2 === 1));\n * result.subscribe(x => console.log(x));\n * // Results in:\n * // 4\n * ```\n *\n * @see {@link max}\n * @see {@link min}\n * @see {@link reduce}\n *\n * @param {function(value: T, i: number, source: Observable): boolean} [predicate] A\n * boolean function to select what values are to be counted. It is provided with\n * arguments of:\n * - `value`: the value from the source Observable.\n * - `index`: the (zero-based) \"index\" of the value from the source Observable.\n * - `source`: the source Observable instance itself.\n * @return {Observable} An Observable of one number that represents the count as\n * described above.\n * @method count\n * @owner Observable\n */\n\nexport function count(predicate?: (value: T, index: number, source: Observable) => boolean): OperatorFunction {\n return (source: Observable) => source.lift(new CountOperator(predicate, source));\n}\n\nclass CountOperator implements Operator {\n constructor(private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass CountSubscriber extends Subscriber {\n private count: number = 0;\n private index: number = 0;\n\n constructor(destination: Observer,\n private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (this.predicate) {\n this._tryPredicate(value);\n } else {\n this.count++;\n }\n }\n\n private _tryPredicate(value: T) {\n let result: any;\n\n try {\n result = this.predicate(value, this.index++, this.source);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n if (result) {\n this.count++;\n }\n }\n\n protected _complete(): void {\n this.destination.next(this.count);\n this.destination.complete();\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\n/**\n * Emits a value from the source Observable only after a particular time span\n * determined by another Observable has passed without another source emission.\n *\n * It's like {@link debounceTime}, but the time span of\n * emission silence is determined by a second Observable.\n *\n * ![](debounce.png)\n *\n * `debounce` delays values emitted by the source Observable, but drops previous\n * pending delayed emissions if a new value arrives on the source Observable.\n * This operator keeps track of the most recent value from the source\n * Observable, and spawns a duration Observable by calling the\n * `durationSelector` function. The value is emitted only when the duration\n * Observable emits a value or completes, and if no other value was emitted on\n * the source Observable since the duration Observable was spawned. If a new\n * value appears before the duration Observable emits, the previous value will\n * be dropped and will not be emitted on the output Observable.\n *\n * Like {@link debounceTime}, this is a rate-limiting operator, and also a\n * delay-like operator since output emissions do not necessarily occur at the\n * same time as they did on the source Observable.\n *\n * ## Example\n * Emit the most recent click after a burst of clicks\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { debounce } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(debounce(() => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounceTime}\n * @see {@link delayWhen}\n * @see {@link throttle}\n *\n * @param {function(value: T): SubscribableOrPromise} durationSelector A function\n * that receives a value from the source Observable, for computing the timeout\n * duration for each source value, returned as an Observable or a Promise.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified duration Observable returned by\n * `durationSelector`, and may drop some values if they occur too frequently.\n * @method debounce\n * @owner Observable\n */\nexport function debounce(durationSelector: (value: T) => SubscribableOrPromise): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DebounceOperator(durationSelector));\n}\n\nclass DebounceOperator implements Operator {\n constructor(private durationSelector: (value: T) => SubscribableOrPromise) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DebounceSubscriber extends SimpleOuterSubscriber {\n private value?: T;\n private hasValue = false;\n private durationSubscription?: Subscription;\n\n constructor(destination: Subscriber,\n private durationSelector: (value: T) => SubscribableOrPromise) {\n super(destination);\n }\n\n protected _next(value: T): void {\n try {\n const result = this.durationSelector.call(this, value);\n\n if (result) {\n this._tryNext(value, result);\n }\n } catch (err) {\n this.destination.error!(err);\n }\n }\n\n protected _complete(): void {\n this.emitValue();\n this.destination.complete!();\n }\n\n private _tryNext(value: T, duration: SubscribableOrPromise): void {\n let subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n\n subscription = innerSubscribe(duration, new SimpleInnerSubscriber(this));\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n }\n\n notifyNext(): void {\n this.emitValue();\n }\n\n notifyComplete(): void {\n this.emitValue();\n }\n\n emitValue(): void {\n if (this.hasValue) {\n const value = this.value;\n const subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = undefined;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n // This must be done *before* passing the value\n // along to the destination because it's possible for\n // the value to synchronously re-enter this operator\n // recursively if the duration selector Observable\n // emits synchronously\n this.value = undefined;\n this.hasValue = false;\n super._next(value!);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { async } from '../scheduler/async';\nimport { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Emits a value from the source Observable only after a particular time span\n * has passed without another source emission.\n *\n * It's like {@link delay}, but passes only the most\n * recent value from each burst of emissions.\n *\n * ![](debounceTime.png)\n *\n * `debounceTime` delays values emitted by the source Observable, but drops\n * previous pending delayed emissions if a new value arrives on the source\n * Observable. This operator keeps track of the most recent value from the\n * source Observable, and emits that only when `dueTime` enough time has passed\n * without any other value appearing on the source Observable. If a new value\n * appears before `dueTime` silence occurs, the previous value will be dropped\n * and will not be emitted on the output Observable.\n *\n * This is a rate-limiting operator, because it is impossible for more than one\n * value to be emitted in any time window of duration `dueTime`, but it is also\n * a delay-like operator since output emissions do not occur at the same time as\n * they did on the source Observable. Optionally takes a {@link SchedulerLike} for\n * managing timers.\n *\n * ## Example\n * Emit the most recent click after a burst of clicks\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { debounceTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(debounceTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link auditTime}\n * @see {@link debounce}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttleTime}\n *\n * @param {number} dueTime The timeout duration in milliseconds (or the time\n * unit determined internally by the optional `scheduler`) for the window of\n * time required to wait for emission silence before emitting the most recent\n * source value.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the timeout for each value.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified `dueTime`, and may drop some values if they occur\n * too frequently.\n * @method debounceTime\n * @owner Observable\n */\nexport function debounceTime(dueTime: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DebounceTimeOperator(dueTime, scheduler));\n}\n\nclass DebounceTimeOperator implements Operator {\n constructor(private dueTime: number, private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DebounceTimeSubscriber extends Subscriber {\n private debouncedSubscription: Subscription = null;\n private lastValue: T = null;\n private hasValue: boolean = false;\n\n constructor(destination: Subscriber,\n private dueTime: number,\n private scheduler: SchedulerLike) {\n super(destination);\n }\n\n protected _next(value: T) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n }\n\n protected _complete() {\n this.debouncedNext();\n this.destination.complete();\n }\n\n debouncedNext(): void {\n this.clearDebounce();\n\n if (this.hasValue) {\n const { lastValue } = this;\n // This must be done *before* passing the value\n // along to the destination because it's possible for\n // the value to synchronously re-enter this operator\n // recursively when scheduled with things like\n // VirtualScheduler/TestScheduler.\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n }\n\n private clearDebounce(): void {\n const debouncedSubscription = this.debouncedSubscription;\n\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n }\n}\n\nfunction dispatchNext(subscriber: DebounceTimeSubscriber) {\n subscriber.debouncedNext();\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction, MonoTypeOperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function defaultIfEmpty(defaultValue?: T): MonoTypeOperatorFunction;\nexport function defaultIfEmpty(defaultValue?: R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Emits a given value if the source Observable completes without emitting any\n * `next` value, otherwise mirrors the source Observable.\n *\n * If the source Observable turns out to be empty, then\n * this operator will emit a default value.\n *\n * ![](defaultIfEmpty.png)\n *\n * `defaultIfEmpty` emits the values emitted by the source Observable or a\n * specified default value if the source Observable is empty (completes without\n * having emitted any `next` value).\n *\n * ## Example\n * If no clicks happen in 5 seconds, then emit \"no clicks\"\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { defaultIfEmpty, takeUntil } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const clicksBeforeFive = clicks.pipe(takeUntil(interval(5000)));\n * const result = clicksBeforeFive.pipe(defaultIfEmpty('no clicks'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link empty}\n * @see {@link last}\n *\n * @param {any} [defaultValue=null] The default value used if the source\n * Observable is empty.\n * @return {Observable} An Observable that emits either the specified\n * `defaultValue` if the source Observable emits no items, or the values emitted\n * by the source Observable.\n * @method defaultIfEmpty\n * @owner Observable\n */\nexport function defaultIfEmpty(defaultValue: R = null): OperatorFunction {\n return (source: Observable) => source.lift(new DefaultIfEmptyOperator(defaultValue)) as Observable;\n}\n\nclass DefaultIfEmptyOperator implements Operator {\n\n constructor(private defaultValue: R) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DefaultIfEmptySubscriber extends Subscriber {\n private isEmpty: boolean = true;\n\n constructor(destination: Subscriber, private defaultValue: R) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this.isEmpty = false;\n this.destination.next(value);\n }\n\n protected _complete(): void {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n }\n}\n","export function isDate(value: any): value is Date {\n return value instanceof Date && !isNaN(+value);\n}\n","import { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Notification } from '../Notification';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Delays the emission of items from the source Observable by a given timeout or\n * until a given Date.\n *\n * Time shifts each item by some specified amount of\n * milliseconds.\n *\n * ![](delay.png)\n *\n * If the delay argument is a Number, this operator time shifts the source\n * Observable by that amount of time expressed in milliseconds. The relative\n * time intervals between the values are preserved.\n *\n * If the delay argument is a Date, this operator time shifts the start of the\n * Observable execution until the given date occurs.\n *\n * ## Examples\n * Delay each click by one second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { delay } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const delayedClicks = clicks.pipe(delay(1000)); // each click emitted after 1 second\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * Delay all clicks until a future date happens\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { delay } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const date = new Date('March 15, 2050 12:00:00'); // in the future\n * const delayedClicks = clicks.pipe(delay(date)); // click emitted only after that date\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link debounceTime}\n * @see {@link delayWhen}\n *\n * @param {number|Date} delay The delay duration in milliseconds (a `number`) or\n * a `Date` until which the emission of the source items is delayed.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the time-shift for each item.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified timeout or Date.\n * @method delay\n * @owner Observable\n */\nexport function delay(delay: number|Date,\n scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n const absoluteDelay = isDate(delay);\n const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return (source: Observable) => source.lift(new DelayOperator(delayFor, scheduler));\n}\n\nclass DelayOperator implements Operator {\n constructor(private delay: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n }\n}\n\ninterface DelayState {\n source: DelaySubscriber;\n destination: PartialObserver;\n scheduler: SchedulerLike;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DelaySubscriber extends Subscriber {\n private queue: Array> = [];\n private active: boolean = false;\n private errored: boolean = false;\n\n private static dispatch(this: SchedulerAction>, state: DelayState): void {\n const source = state.source;\n const queue = source.queue;\n const scheduler = state.scheduler;\n const destination = state.destination;\n\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n\n if (queue.length > 0) {\n const delay = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay);\n } else {\n this.unsubscribe();\n source.active = false;\n }\n }\n\n constructor(destination: Subscriber,\n private delay: number,\n private scheduler: SchedulerLike) {\n super(destination);\n }\n\n private _schedule(scheduler: SchedulerLike): void {\n this.active = true;\n const destination = this.destination as Subscription;\n destination.add(scheduler.schedule>(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n }\n\n private scheduleNotification(notification: Notification): void {\n if (this.errored === true) {\n return;\n }\n\n const scheduler = this.scheduler;\n const message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n\n if (this.active === false) {\n this._schedule(scheduler);\n }\n }\n\n protected _next(value: T) {\n this.scheduleNotification(Notification.createNext(value));\n }\n\n protected _error(err: any) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n }\n\n protected _complete() {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n }\n}\n\nclass DelayMessage {\n constructor(public readonly time: number,\n public readonly notification: Notification) {\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated In future versions, empty notifiers will no longer re-emit the source value on the output observable. */\nexport function delayWhen(delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay?: Observable): MonoTypeOperatorFunction;\nexport function delayWhen(delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay?: Observable): MonoTypeOperatorFunction;\n/* tslint:disable:max-line-length */\n\n/**\n * Delays the emission of items from the source Observable by a given time span\n * determined by the emissions of another Observable.\n *\n * It's like {@link delay}, but the time span of the\n * delay duration is determined by a second Observable.\n *\n * ![](delayWhen.png)\n *\n * `delayWhen` time shifts each emitted value from the source Observable by a\n * time span determined by another Observable. When the source emits a value,\n * the `delayDurationSelector` function is called with the source value as\n * argument, and should return an Observable, called the \"duration\" Observable.\n * The source value is emitted on the output Observable only when the duration\n * Observable emits a value or completes.\n * The completion of the notifier triggering the emission of the source value\n * is deprecated behavior and will be removed in future versions.\n *\n * Optionally, `delayWhen` takes a second argument, `subscriptionDelay`, which\n * is an Observable. When `subscriptionDelay` emits its first value or\n * completes, the source Observable is subscribed to and starts behaving like\n * described in the previous paragraph. If `subscriptionDelay` is not provided,\n * `delayWhen` will subscribe to the source Observable as soon as the output\n * Observable is subscribed.\n *\n * ## Example\n * Delay each click by a random amount of time, between 0 and 5 seconds\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { delayWhen } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const delayedClicks = clicks.pipe(\n * delayWhen(event => interval(Math.random() * 5000)),\n * );\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link delay}\n * @see {@link throttle}\n * @see {@link throttleTime}\n * @see {@link debounce}\n * @see {@link debounceTime}\n * @see {@link sample}\n * @see {@link sampleTime}\n * @see {@link audit}\n * @see {@link auditTime}\n *\n * @param {function(value: T, index: number): Observable} delayDurationSelector A function that\n * returns an Observable for each value emitted by the source Observable, which\n * is then used to delay the emission of that item on the output Observable\n * until the Observable returned from this function emits a value.\n * @param {Observable} subscriptionDelay An Observable that triggers the\n * subscription to the source Observable once it emits any value.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by an amount of time specified by the Observable returned by\n * `delayDurationSelector`.\n * @method delayWhen\n * @owner Observable\n */\nexport function delayWhen(delayDurationSelector: (value: T, index: number) => Observable,\n subscriptionDelay?: Observable): MonoTypeOperatorFunction {\n if (subscriptionDelay) {\n return (source: Observable) =>\n new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n }\n return (source: Observable) => source.lift(new DelayWhenOperator(delayDurationSelector));\n}\n\nclass DelayWhenOperator implements Operator {\n constructor(private delayDurationSelector: (value: T, index: number) => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DelayWhenSubscriber extends OuterSubscriber {\n private completed: boolean = false;\n private delayNotifierSubscriptions: Array = [];\n private index: number = 0;\n\n constructor(destination: Subscriber,\n private delayDurationSelector: (value: T, index: number) => Observable) {\n super(destination);\n }\n\n notifyNext(outerValue: T, _innerValue: any,\n _outerIndex: number, _innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next!(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this._error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n const value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next!(value);\n }\n this.tryComplete();\n }\n\n protected _next(value: T): void {\n const index = this.index++;\n try {\n const delayNotifier = this.delayDurationSelector(value, index);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n } catch (err) {\n this.destination.error!(err);\n }\n }\n\n protected _complete(): void {\n this.completed = true;\n this.tryComplete();\n this.unsubscribe();\n }\n\n private removeSubscription(subscription: InnerSubscriber): T {\n subscription.unsubscribe();\n\n const subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n\n return subscription.outerValue;\n }\n\n private tryDelay(delayNotifier: Observable, value: T): void {\n const notifierSubscription = subscribeToResult(this, delayNotifier, value);\n\n if (notifierSubscription && !notifierSubscription.closed) {\n const destination = this.destination as Subscription;\n destination.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n }\n\n private tryComplete(): void {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete!();\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SubscriptionDelayObservable extends Observable {\n constructor(public source: Observable, private subscriptionDelay: Observable) {\n super();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SubscriptionDelaySubscriber extends Subscriber {\n private sourceSubscribed: boolean = false;\n\n constructor(private parent: Subscriber, private source: Observable) {\n super();\n }\n\n protected _next(unused: any) {\n this.subscribeToSource();\n }\n\n protected _error(err: any) {\n this.unsubscribe();\n this.parent.error(err);\n }\n\n protected _complete() {\n this.unsubscribe();\n this.subscribeToSource();\n }\n\n private subscribeToSource(): void {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nimport { OperatorFunction } from '../types';\n\n/**\n * Converts an Observable of {@link Notification} objects into the emissions\n * that they represent.\n *\n * Unwraps {@link Notification} objects as actual `next`,\n * `error` and `complete` emissions. The opposite of {@link materialize}.\n *\n * ![](dematerialize.png)\n *\n * `dematerialize` is assumed to operate an Observable that only emits\n * {@link Notification} objects as `next` emissions, and does not emit any\n * `error`. Such Observable is the output of a `materialize` operation. Those\n * notifications are then unwrapped using the metadata they contain, and emitted\n * as `next`, `error`, and `complete` on the output Observable.\n *\n * Use this operator in conjunction with {@link materialize}.\n *\n * ## Example\n * Convert an Observable of Notifications to an actual Observable\n * ```ts\n * import { of, Notification } from 'rxjs';\n * import { dematerialize } from 'rxjs/operators';\n *\n * const notifA = new Notification('N', 'A');\n * const notifB = new Notification('N', 'B');\n * const notifE = new Notification('E', undefined,\n * new TypeError('x.toUpperCase is not a function')\n * );\n * const materialized = of(notifA, notifB, notifE);\n * const upperCase = materialized.pipe(dematerialize());\n * upperCase.subscribe(x => console.log(x), e => console.error(e));\n *\n * // Results in:\n * // A\n * // B\n * // TypeError: x.toUpperCase is not a function\n * ```\n *\n * @see {@link Notification}\n * @see {@link materialize}\n *\n * @return {Observable} An Observable that emits items and notifications\n * embedded in Notification objects emitted by the source Observable.\n * @method dematerialize\n * @owner Observable\n */\nexport function dematerialize(): OperatorFunction, T> {\n return function dematerializeOperatorFunction(source: Observable>) {\n return source.lift(new DeMaterializeOperator());\n };\n}\n\nclass DeMaterializeOperator, R> implements Operator {\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DeMaterializeSubscriber> extends Subscriber {\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n protected _next(value: T) {\n value.observe(this.destination);\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from previous items.\n *\n * If a keySelector function is provided, then it will project each value from the source observable into a new value that it will\n * check for equality with previously projected values. If a keySelector function is not provided, it will use each value from the\n * source observable directly with an equality check against previous values.\n *\n * In JavaScript runtimes that support `Set`, this operator will use a `Set` to improve performance of the distinct value checking.\n *\n * In other runtimes, this operator will use a minimal implementation of `Set` that relies on an `Array` and `indexOf` under the\n * hood, so performance will degrade as more values are checked for distinction. Even in newer browsers, a long-running `distinct`\n * use might result in memory leaks. To help alleviate this in some scenarios, an optional `flushes` parameter is also provided so\n * that the internal `Set` can be \"flushed\", basically clearing it of values.\n *\n * ## Examples\n * A simple example with numbers\n * ```ts\n * import { of } from 'rxjs';\n * import { distinct } from 'rxjs/operators';\n *\n * of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1).pipe(\n * distinct(),\n * )\n * .subscribe(x => console.log(x)); // 1, 2, 3, 4\n * ```\n *\n * An example using a keySelector function\n * ```typescript\n * import { of } from 'rxjs';\n * import { distinct } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo'},\n * ).pipe(\n * distinct((p: Person) => p.name),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * ```\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n *\n * @param {function} [keySelector] Optional function to select which value you want to check as distinct.\n * @param {Observable} [flushes] Optional Observable for flushing the internal HashSet of the operator.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values.\n * @method distinct\n * @owner Observable\n */\nexport function distinct(keySelector?: (value: T) => K,\n flushes?: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DistinctOperator(keySelector, flushes));\n}\n\nclass DistinctOperator implements Operator {\n constructor(private keySelector?: (value: T) => K, private flushes?: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class DistinctSubscriber extends SimpleOuterSubscriber {\n private values = new Set();\n\n constructor(destination: Subscriber, private keySelector?: (value: T) => K, flushes?: Observable) {\n super(destination);\n\n if (flushes) {\n this.add(innerSubscribe(flushes, new SimpleInnerSubscriber(this)));\n }\n }\n\n notifyNext(): void {\n this.values.clear();\n }\n\n notifyError(error: any): void {\n this._error(error);\n }\n\n protected _next(value: T): void {\n if (this.keySelector) {\n this._useKeySelector(value);\n } else {\n this._finalizeNext(value, value);\n }\n }\n\n private _useKeySelector(value: T): void {\n let key: K;\n const { destination } = this;\n try {\n key = this.keySelector!(value);\n } catch (err) {\n destination.error!(err);\n return;\n }\n this._finalizeNext(key, value);\n }\n\n private _finalizeNext(key: K|T, value: T) {\n const { values } = this;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next!(value);\n }\n }\n\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function distinctUntilChanged(compare?: (x: T, y: T) => boolean): MonoTypeOperatorFunction;\nexport function distinctUntilChanged(compare: (x: K, y: K) => boolean, keySelector: (x: T) => K): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item.\n *\n * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.\n *\n * If a comparator function is not provided, an equality check is used by default.\n *\n * ## Example\n * A simple example with numbers\n * ```ts\n * import { of } from 'rxjs';\n * import { distinctUntilChanged } from 'rxjs/operators';\n *\n * of(1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 4).pipe(\n * distinctUntilChanged(),\n * )\n * .subscribe(x => console.log(x)); // 1, 2, 1, 2, 3, 4\n * ```\n *\n * An example using a compare function\n * ```typescript\n * import { of } from 'rxjs';\n * import { distinctUntilChanged } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo'},\n * { age: 6, name: 'Foo'},\n * ).pipe(\n * distinctUntilChanged((p: Person, q: Person) => p.name === q.name),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * // { age: 5, name: 'Foo' }\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilKeyChanged}\n *\n * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values.\n * @method distinctUntilChanged\n * @owner Observable\n */\nexport function distinctUntilChanged(compare?: (x: K, y: K) => boolean, keySelector?: (x: T) => K): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DistinctUntilChangedOperator(compare, keySelector));\n}\n\nclass DistinctUntilChangedOperator implements Operator {\n constructor(private compare: (x: K, y: K) => boolean,\n private keySelector: (x: T) => K) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DistinctUntilChangedSubscriber extends Subscriber {\n private key: K;\n private hasKey: boolean = false;\n\n constructor(destination: Subscriber,\n compare: (x: K, y: K) => boolean,\n private keySelector: (x: T) => K) {\n super(destination);\n if (typeof compare === 'function') {\n this.compare = compare;\n }\n }\n\n private compare(x: any, y: any): boolean {\n return x === y;\n }\n\n protected _next(value: T): void {\n let key: any;\n try {\n const { keySelector } = this;\n key = keySelector ? keySelector(value) : value;\n } catch (err) {\n return this.destination.error(err);\n }\n let result = false;\n if (this.hasKey) {\n try {\n const { compare } = this;\n result = compare(this.key, key);\n } catch (err) {\n return this.destination.error(err);\n }\n } else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n }\n}\n","import { distinctUntilChanged } from './distinctUntilChanged';\nimport { MonoTypeOperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function distinctUntilKeyChanged(key: keyof T): MonoTypeOperatorFunction;\nexport function distinctUntilKeyChanged(key: K, compare: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item,\n * using a property accessed by using the key provided to check if the two items are distinct.\n *\n * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.\n *\n * If a comparator function is not provided, an equality check is used by default.\n *\n * ## Examples\n * An example comparing the name of persons\n * ```typescript\n * import { of } from 'rxjs';\n * import { distinctUntilKeyChanged } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo'},\n * { age: 6, name: 'Foo'},\n * ).pipe(\n * distinctUntilKeyChanged('name'),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * // { age: 5, name: 'Foo' }\n * ```\n *\n * An example comparing the first letters of the name\n * ```typescript\n * import { of } from 'rxjs';\n * import { distinctUntilKeyChanged } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo1'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo2'},\n * { age: 6, name: 'Foo3'},\n * ).pipe(\n * distinctUntilKeyChanged('name', (x: string, y: string) => x.substring(0, 3) === y.substring(0, 3)),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo1' }\n * // { age: 7, name: 'Bar' }\n * // { age: 5, name: 'Foo2' }\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n *\n * @param {string} key String key for object property lookup on each item.\n * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values based on the key specified.\n * @method distinctUntilKeyChanged\n * @owner Observable\n */\nexport function distinctUntilKeyChanged(key: K, compare?: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction {\n return distinctUntilChanged((x: T, y: T) => compare ? compare(x[key], y[key]) : x[key] === y[key]);\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { TeardownLogic, MonoTypeOperatorFunction } from '../types';\n\n/**\n * If the source observable completes without emitting a value, it will emit\n * an error. The error will be created at that time by the optional\n * `errorFactory` argument, otherwise, the error will be {@link EmptyError}.\n *\n * ![](throwIfEmpty.png)\n *\n * ## Example\n * ```ts\n * import { fromEvent, timer } from 'rxjs';\n * import { throwIfEmpty, takeUntil } from 'rxjs/operators';\n *\n * const click$ = fromEvent(document, 'click');\n *\n * click$.pipe(\n * takeUntil(timer(1000)),\n * throwIfEmpty(\n * () => new Error('the document was not clicked within 1 second')\n * ),\n * )\n * .subscribe({\n * next() { console.log('The button was clicked'); },\n * error(err) { console.error(err); }\n * });\n * ```\n *\n * @param errorFactory A factory function called to produce the\n * error to be thrown when the source observable completes without emitting a\n * value.\n */\nexport function throwIfEmpty (errorFactory: (() => any) = defaultErrorFactory): MonoTypeOperatorFunction {\n return (source: Observable) => {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\n\nclass ThrowIfEmptyOperator implements Operator {\n constructor(private errorFactory: () => any) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n }\n}\n\nclass ThrowIfEmptySubscriber extends Subscriber {\n private hasValue: boolean = false;\n\n constructor(destination: Subscriber, private errorFactory: () => any) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this.hasValue = true;\n this.destination.next(value);\n }\n\n protected _complete() {\n if (!this.hasValue) {\n let err: any;\n try {\n err = this.errorFactory();\n } catch (e) {\n err = e;\n }\n this.destination.error(err);\n } else {\n return this.destination.complete();\n }\n }\n}\n\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits only the first `count` values emitted by the source Observable.\n *\n * Takes the first `count` values from the source, then\n * completes.\n *\n * ![](take.png)\n *\n * `take` returns an Observable that emits only the first `count` values emitted\n * by the source Observable. If the source emits fewer than `count` values then\n * all of its values are emitted. After that, it completes, regardless if the\n * source completes.\n *\n * ## Example\n * Take the first 5 seconds of an infinite 1-second interval Observable\n * ```ts\n * import { interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const intervalCount = interval(1000);\n * const takeFive = intervalCount.pipe(take(5));\n * takeFive.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 0\n * // 1\n * // 2\n * // 3\n * // 4\n * ```\n *\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `take(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of `next` values to emit.\n * @return {Observable} An Observable that emits only the first `count`\n * values emitted by the source Observable, or all of the values from the source\n * if the source emits fewer than `count` values.\n * @method take\n * @owner Observable\n */\nexport function take(count: number): MonoTypeOperatorFunction {\n return (source: Observable) => {\n if (count === 0) {\n return empty();\n } else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\n\nclass TakeOperator implements Operator {\n constructor(private total: number) {\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeSubscriber extends Subscriber {\n private count: number = 0;\n\n constructor(destination: Subscriber, private total: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const total = this.total;\n const count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\n\n/**\n * Emits the single value at the specified `index` in a sequence of emissions\n * from the source Observable.\n *\n * Emits only the i-th value, then completes.\n *\n * ![](elementAt.png)\n *\n * `elementAt` returns an Observable that emits the item at the specified\n * `index` in the source Observable, or a default value if that `index` is out\n * of range and the `default` argument is provided. If the `default` argument is\n * not given and the `index` is out of range, the output Observable will emit an\n * `ArgumentOutOfRangeError` error.\n *\n * ## Example\n * Emit only the third click event\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { elementAt } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(elementAt(2));\n * result.subscribe(x => console.log(x));\n *\n * // Results in:\n * // click 1 = nothing\n * // click 2 = nothing\n * // click 3 = MouseEvent object logged to console\n * ```\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link skip}\n * @see {@link single}\n * @see {@link take}\n *\n * @throws {ArgumentOutOfRangeError} When using `elementAt(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0` or the\n * Observable has completed before emitting the i-th `next` notification.\n *\n * @param {number} index Is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {T} [defaultValue] The default value returned for missing indices.\n * @return {Observable} An Observable that emits a single item, if it is found.\n * Otherwise, will emit the default value if given. If not, then emits an error.\n * @method elementAt\n * @owner Observable\n */\nexport function elementAt(index: number, defaultValue?: T): MonoTypeOperatorFunction {\n if (index < 0) { throw new ArgumentOutOfRangeError(); }\n const hasDefaultValue = arguments.length >= 2;\n return (source: Observable) => source.pipe(\n filter((v, i) => i === index),\n take(1),\n hasDefaultValue\n ? defaultIfEmpty(defaultValue)\n : throwIfEmpty(() => new ArgumentOutOfRangeError()),\n );\n}\n","import { Observable } from '../Observable';\nimport { concat } from '../observable/concat';\nimport { of } from '../observable/of';\nimport { MonoTypeOperatorFunction, SchedulerLike, OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(scheduler: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, v2: B, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, v2: B, v3: C, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, v2: B, v3: C, v4: D, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F, scheduler: SchedulerLike): OperatorFunction;\n\nexport function endWith(v1: A): OperatorFunction;\nexport function endWith(v1: A, v2: B): OperatorFunction;\nexport function endWith(v1: A, v2: B, v3: C): OperatorFunction;\nexport function endWith(v1: A, v2: B, v3: C, v4: D): OperatorFunction;\nexport function endWith(v1: A, v2: B, v3: C, v4: D, v5: E): OperatorFunction;\nexport function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F): OperatorFunction;\nexport function endWith(...array: Z[]): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(...array: Array): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits the items you specify as arguments after it finishes emitting\n * items emitted by the source Observable.\n *\n * ![](endWith.png)\n *\n * ## Example\n * ### After the source observable completes, appends an emission and then completes too.\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { endWith } from 'rxjs/operators';\n *\n * of('hi', 'how are you?', 'sorry, I have to go now').pipe(\n * endWith('goodbye!'),\n * )\n * .subscribe(word => console.log(word));\n * // result:\n * // 'hi'\n * // 'how are you?'\n * // 'sorry, I have to go now'\n * // 'goodbye!'\n * ```\n *\n * @param {...T} values - Items you want the modified Observable to emit last.\n * @param {SchedulerLike} [scheduler] - A {@link SchedulerLike} to use for scheduling\n * the emissions of the `next` notifications.\n * @return {Observable} An Observable that emits the items emitted by the source Observable\n * and then emits the items in the specified Iterable.\n * @method endWith\n * @owner Observable\n */\nexport function endWith(...array: Array): MonoTypeOperatorFunction {\n return (source: Observable) => concat(source, of(...array)) as Observable;\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Observer, OperatorFunction } from '../types';\n\n/**\n * Returns an Observable that emits whether or not every item of the source satisfies the condition specified.\n *\n * ## Example\n * A simple example emitting true if all elements are less than 5, false otherwise\n * ```ts\n * import { of } from 'rxjs';\n * import { every } from 'rxjs/operators';\n *\n * of(1, 2, 3, 4, 5, 6).pipe(\n * every(x => x < 5),\n * )\n * .subscribe(x => console.log(x)); // -> false\n * ```\n *\n * @param {function} predicate A function for determining if an item meets a specified condition.\n * @param {any} [thisArg] Optional object to use for `this` in the callback.\n * @return {Observable} An Observable of booleans that determines if all items of the source Observable meet the condition specified.\n * @method every\n * @owner Observable\n */\nexport function every(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): OperatorFunction {\n return (source: Observable) => source.lift(new EveryOperator(predicate, thisArg, source));\n}\n\nclass EveryOperator implements Operator {\n constructor(private predicate: (value: T, index: number, source: Observable) => boolean,\n private thisArg?: any,\n private source?: Observable) {\n }\n\n call(observer: Subscriber, source: any): any {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass EverySubscriber extends Subscriber {\n private index: number = 0;\n\n constructor(destination: Observer,\n private predicate: (value: T, index: number, source: Observable) => boolean,\n private thisArg: any,\n private source?: Observable) {\n super(destination);\n this.thisArg = thisArg || this;\n }\n\n private notifyComplete(everyValueMatch: boolean): void {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n }\n\n protected _next(value: T): void {\n let result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n if (!result) {\n this.notifyComplete(false);\n }\n }\n\n protected _complete(): void {\n this.notifyComplete(true);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { ObservableInput, OperatorFunction, TeardownLogic } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\nexport function exhaust(): OperatorFunction, T>;\nexport function exhaust(): OperatorFunction;\n\n/**\n * Converts a higher-order Observable into a first-order Observable by dropping\n * inner Observables while the previous inner Observable has not yet completed.\n *\n * Flattens an Observable-of-Observables by dropping the\n * next inner Observables while the current inner is still executing.\n *\n * ![](exhaust.png)\n *\n * `exhaust` subscribes to an Observable that emits Observables, also known as a\n * higher-order Observable. Each time it observes one of these emitted inner\n * Observables, the output Observable begins emitting the items emitted by that\n * inner Observable. So far, it behaves like {@link mergeAll}. However,\n * `exhaust` ignores every new inner Observable if the previous Observable has\n * not yet completed. Once that one completes, it will accept and flatten the\n * next inner Observable and repeat this process.\n *\n * ## Example\n * Run a finite timer for each click, only if there is no currently active timer\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { exhaust, map, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map((ev) => interval(1000).pipe(take(5))),\n * );\n * const result = higherOrder.pipe(exhaust());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link mergeAll}\n * @see {@link exhaustMap}\n * @see {@link zipAll}\n *\n * @return {Observable} An Observable that takes a source of Observables and propagates the first observable\n * exclusively until it completes before subscribing to the next.\n * @method exhaust\n * @owner Observable\n */\nexport function exhaust(): OperatorFunction {\n return (source: Observable) => source.lift(new SwitchFirstOperator());\n}\n\nclass SwitchFirstOperator implements Operator {\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SwitchFirstSubscriber extends SimpleOuterSubscriber {\n private hasCompleted: boolean = false;\n private hasSubscription: boolean = false;\n\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(innerSubscribe(value, new SimpleInnerSubscriber(this)));\n }\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete!();\n }\n }\n\n notifyComplete(): void {\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete!();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\n\n/* tslint:disable:max-line-length */\nexport function exhaustMap>(project: (value: T, index: number) => O): OperatorFunction>;\n/** @deprecated resultSelector is no longer supported. Use inner map instead. */\nexport function exhaustMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>;\n/** @deprecated resultSelector is no longer supported. Use inner map instead. */\nexport function exhaustMap(project: (value: T, index: number) => ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable only if the previous projected Observable has completed.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link exhaust}.\n *\n * ![](exhaustMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. When it projects a source value to\n * an Observable, the output Observable begins emitting the items emitted by\n * that projected Observable. However, `exhaustMap` ignores every new projected\n * Observable if the previous projected Observable has not yet completed. Once\n * that one completes, it will accept and flatten the next projected Observable\n * and repeat this process.\n *\n * ## Example\n * Run a finite timer for each click, only if there is no currently active timer\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { exhaustMap, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * exhaustMap(ev => interval(1000).pipe(take(5)))\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaust}\n * @see {@link mergeMap}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @return {Observable} An Observable containing projected Observables\n * of each item of the source, ignoring projected Observables that start before\n * their preceding Observable has completed.\n * @method exhaustMap\n * @owner Observable\n */\nexport function exhaustMap>(\n project: (value: T, index: number) => O,\n resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R,\n): OperatorFunction|R> {\n if (resultSelector) {\n // DEPRECATED PATH\n return (source: Observable) => source.pipe(\n exhaustMap((a, i) => from(project(a, i)).pipe(\n map((b: any, ii: any) => resultSelector(a, b, i, ii)),\n )),\n );\n }\n return (source: Observable) =>\n source.lift(new ExhaustMapOperator(project));\n}\n\nclass ExhaustMapOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ExhaustMapSubscriber extends SimpleOuterSubscriber {\n private hasSubscription = false;\n private hasCompleted = false;\n private index = 0;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n }\n\n private tryNext(value: T): void {\n let result: ObservableInput;\n const index = this.index++;\n try {\n result = this.project(value, index);\n } catch (err) {\n this.destination.error!(err);\n return;\n }\n this.hasSubscription = true;\n this._innerSub(result);\n }\n\n private _innerSub(result: ObservableInput): void {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination as Subscription;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(result, innerSubscriber);\n // The returned subscription will usually be the subscriber that was\n // passed. However, interop subscribers will be wrapped and for\n // unsubscriptions to chain correctly, the wrapper needs to be added, too.\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete!();\n }\n this.unsubscribe();\n }\n\n notifyNext(innerValue: R): void {\n this.destination.next!(innerValue);\n }\n\n notifyError(err: any): void {\n this.destination.error!(err);\n }\n\n notifyComplete(): void {\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete!();\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, OperatorFunction, ObservableInput, SchedulerLike } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\n/* tslint:disable:max-line-length */\nexport function expand(project: (value: T, index: number) => ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\nexport function expand(project: (value: T, index: number) => ObservableInput, concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Recursively projects each source value to an Observable which is merged in\n * the output Observable.\n *\n * It's similar to {@link mergeMap}, but applies the\n * projection function to every source value as well as every output value.\n * It's recursive.\n *\n * ![](expand.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger. *Expand* will re-emit on the output\n * Observable every source value. Then, each output value is given to the\n * `project` function which returns an inner Observable to be merged on the\n * output Observable. Those output values resulting from the projection are also\n * given to the `project` function to produce new output values. This is how\n * *expand* behaves recursively.\n *\n * ## Example\n * Start emitting the powers of two on every click, at most 10 of them\n * ```ts\n * import { fromEvent, of } from 'rxjs';\n * import { expand, mapTo, delay, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const powersOfTwo = clicks.pipe(\n * mapTo(1),\n * expand(x => of(2 * x).pipe(delay(1000))),\n * take(10),\n * );\n * powersOfTwo.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mergeMap}\n * @see {@link mergeScan}\n *\n * @param {function(value: T, index: number) => Observable} project A function\n * that, when applied to an item emitted by the source or the output Observable,\n * returns an Observable.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to\n * each projected inner Observable.\n * @return {Observable} An Observable that emits the source values and also\n * result of applying the projection function to each value emitted on the\n * output Observable and and merging the results of the Observables obtained\n * from this transformation.\n * @method expand\n * @owner Observable\n */\nexport function expand(project: (value: T, index: number) => ObservableInput,\n concurrent: number = Number.POSITIVE_INFINITY,\n scheduler?: SchedulerLike): OperatorFunction {\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n\n return (source: Observable) => source.lift(new ExpandOperator(project, concurrent, scheduler));\n}\n\nexport class ExpandOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput,\n private concurrent: number,\n private scheduler?: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n }\n}\n\ninterface DispatchArg {\n subscriber: ExpandSubscriber;\n result: ObservableInput;\n value: any;\n index: number;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ExpandSubscriber extends SimpleOuterSubscriber {\n private index: number = 0;\n private active: number = 0;\n private hasCompleted: boolean = false;\n private buffer?: any[];\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput,\n private concurrent: number,\n private scheduler?: SchedulerLike) {\n super(destination);\n if (concurrent < Number.POSITIVE_INFINITY) {\n this.buffer = [];\n }\n }\n\n private static dispatch(arg: DispatchArg): void {\n const {subscriber, result, value, index} = arg;\n subscriber.subscribeToProjection(result, value, index);\n }\n\n protected _next(value: any): void {\n const destination = this.destination;\n\n if (destination.closed) {\n this._complete();\n return;\n }\n\n const index = this.index++;\n if (this.active < this.concurrent) {\n destination.next!(value);\n try {\n const { project } = this;\n const result = project(value, index);\n if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n } else {\n const state: DispatchArg = { subscriber: this, result, value, index };\n const destination = this.destination as Subscription;\n destination.add(this.scheduler.schedule>(ExpandSubscriber.dispatch as any, 0, state));\n }\n } catch (e) {\n destination.error!(e);\n }\n } else {\n this.buffer!.push(value);\n }\n }\n\n private subscribeToProjection(result: any, value: T, index: number): void {\n this.active++;\n const destination = this.destination as Subscription;\n destination.add(innerSubscribe(result, new SimpleInnerSubscriber(this)));\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete!();\n }\n this.unsubscribe();\n }\n\n notifyNext(innerValue: R): void {\n this._next(innerValue);\n }\n\n notifyComplete(): void {\n const buffer = this.buffer;\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete!();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that mirrors the source Observable, but will call a specified function when\n * the source terminates on complete or error.\n * @param {function} callback Function to be called when source terminates.\n * @return {Observable} An Observable that mirrors the source, but will call the specified function on termination.\n * @method finally\n * @owner Observable\n */\nexport function finalize(callback: () => void): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new FinallyOperator(callback));\n}\n\nclass FinallyOperator implements Operator {\n constructor(private callback: () => void) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass FinallySubscriber extends Subscriber {\n constructor(destination: Subscriber, callback: () => void) {\n super(destination);\n this.add(new Subscription(callback));\n }\n}\n","import {Observable} from '../Observable';\nimport {Operator} from '../Operator';\nimport {Subscriber} from '../Subscriber';\nimport {OperatorFunction} from '../types';\n\nexport function find(predicate: (value: T, index: number, source: Observable) => value is S,\n thisArg?: any): OperatorFunction;\nexport function find(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): OperatorFunction;\n/**\n * Emits only the first value emitted by the source Observable that meets some\n * condition.\n *\n * Finds the first value that passes some test and emits\n * that.\n *\n * ![](find.png)\n *\n * `find` searches for the first item in the source Observable that matches the\n * specified condition embodied by the `predicate`, and returns the first\n * occurrence in the source. Unlike {@link first}, the `predicate` is required\n * in `find`, and does not emit an error if a valid value is not found.\n *\n * ## Example\n * Find and emit the first click that happens on a DIV element\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { find } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(find(ev => ev.target.tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link first}\n * @see {@link findIndex}\n * @see {@link take}\n *\n * @param {function(value: T, index: number, source: Observable): boolean} predicate\n * A function called with each item to test for condition matching.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of the first item that matches the\n * condition.\n * @method find\n * @owner Observable\n */\nexport function find(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): OperatorFunction {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return (source: Observable) => source.lift(new FindValueOperator(predicate, source, false, thisArg)) as Observable;\n}\n\nexport class FindValueOperator implements Operator {\n constructor(private predicate: (value: T, index: number, source: Observable) => boolean,\n private source: Observable,\n private yieldIndex: boolean,\n private thisArg?: any) {\n }\n\n call(observer: Subscriber, source: any): any {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class FindValueSubscriber extends Subscriber {\n private index: number = 0;\n\n constructor(destination: Subscriber,\n private predicate: (value: T, index: number, source: Observable) => boolean,\n private source: Observable,\n private yieldIndex: boolean,\n private thisArg?: any) {\n super(destination);\n }\n\n private notifyComplete(value: any): void {\n const destination = this.destination;\n\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n }\n\n protected _next(value: T): void {\n const {predicate, thisArg} = this;\n const index = this.index++;\n try {\n const result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n } catch (err) {\n this.destination.error(err);\n }\n }\n\n protected _complete(): void {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n }\n}\n","import { Observable } from '../Observable';\nimport { FindValueOperator } from '../operators/find';\nimport { OperatorFunction } from '../types';\n/**\n * Emits only the index of the first value emitted by the source Observable that\n * meets some condition.\n *\n * It's like {@link find}, but emits the index of the\n * found value, not the value itself.\n *\n * ![](findIndex.png)\n *\n * `findIndex` searches for the first item in the source Observable that matches\n * the specified condition embodied by the `predicate`, and returns the\n * (zero-based) index of the first occurrence in the source. Unlike\n * {@link first}, the `predicate` is required in `findIndex`, and does not emit\n * an error if a valid value is not found.\n *\n * ## Example\n * Emit the index of first click that happens on a DIV element\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { findIndex } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(findIndex(ev => ev.target.tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link find}\n * @see {@link first}\n * @see {@link take}\n *\n * @param {function(value: T, index: number, source: Observable): boolean} predicate\n * A function called with each item to test for condition matching.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of the index of the first item that\n * matches the condition.\n * @method find\n * @owner Observable\n */\nexport function findIndex(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): OperatorFunction {\n return (source: Observable) => source.lift(new FindValueOperator(predicate, source, true, thisArg)) as Observable;\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nimport { OperatorFunction } from '../../internal/types';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\n\n/* tslint:disable:max-line-length */\nexport function first(\n predicate?: null,\n defaultValue?: D\n): OperatorFunction;\nexport function first(\n predicate: (value: T, index: number, source: Observable) => value is S,\n defaultValue?: S\n): OperatorFunction;\nexport function first(\n predicate: (value: T, index: number, source: Observable) => boolean,\n defaultValue?: D\n): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Emits only the first value (or the first value that meets some condition)\n * emitted by the source Observable.\n *\n * Emits only the first value. Or emits only the first\n * value that passes some test.\n *\n * ![](first.png)\n *\n * If called with no arguments, `first` emits the first value of the source\n * Observable, then completes. If called with a `predicate` function, `first`\n * emits the first value of the source that matches the specified condition. It\n * may also take a deprecated `resultSelector` function to produce the output\n * value from the input value, and a `defaultValue` to emit in case the source\n * completes before it is able to emit a valid value. Throws an error if\n * `defaultValue` was not provided and a matching element is not found.\n *\n * ## Examples\n * Emit only the first click that happens on the DOM\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { first } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(first());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Emits the first click that happens on a DIV\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { first } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(first(ev => ev.target.tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link find}\n * @see {@link take}\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n *\n * @param {function(value: T, index: number, source: Observable): boolean} [predicate]\n * An optional function called with each item to test for condition matching.\n * @param {R} [defaultValue] The default value emitted in case no valid value\n * was found on the source.\n * @return {Observable} An Observable of the first item that matches the\n * condition.\n * @method first\n * @owner Observable\n */\nexport function first(\n predicate?: ((value: T, index: number, source: Observable) => boolean) | null,\n defaultValue?: D\n): OperatorFunction {\n const hasDefaultValue = arguments.length >= 2;\n return (source: Observable) => source.pipe(\n predicate ? filter((v, i) => predicate(v, i, source)) : identity,\n take(1),\n hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()),\n );\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\n\n/**\n * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`.\n *\n * ![](ignoreElements.png)\n *\n * ## Examples\n * ### Ignores emitted values, reacts to observable's completion.\n * ```ts\n * import { of } from 'rxjs';\n * import { ignoreElements } from 'rxjs/operators';\n *\n * of('you', 'talking', 'to', 'me').pipe(\n * ignoreElements(),\n * )\n * .subscribe(\n * word => console.log(word),\n * err => console.log('error:', err),\n * () => console.log('the end'),\n * );\n * // result:\n * // 'the end'\n * ```\n * @return {Observable} An empty Observable that only calls `complete`\n * or `error`, based on which one is called by the source Observable.\n * @method ignoreElements\n * @owner Observable\n */\nexport function ignoreElements(): OperatorFunction {\n return function ignoreElementsOperatorFunction(source: Observable) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\n\nclass IgnoreElementsOperator implements Operator {\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass IgnoreElementsSubscriber extends Subscriber {\n protected _next(unused: T): void {\n // Do nothing\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n\n/**\n * Emits false if the input observable emits any values, or emits true if the\n * input observable completes without emitting any values.\n *\n * Tells whether any values are emitted by an observable\n *\n * ![](isEmpty.png)\n *\n * `isEmpty` transforms an Observable that emits values into an Observable that\n * emits a single boolean value representing whether or not any values were\n * emitted by the source Observable. As soon as the source Observable emits a\n * value, `isEmpty` will emit a `false` and complete. If the source Observable\n * completes having not emitted anything, `isEmpty` will emit a `true` and\n * complete.\n *\n * A similar effect could be achieved with {@link count}, but `isEmpty` can emit\n * a `false` value sooner.\n *\n * ## Examples\n *\n * Emit `false` for a non-empty Observable\n * ```javascript\n * import { Subject } from 'rxjs';\n * import { isEmpty } from 'rxjs/operators';\n *\n * const source = new Subject();\n * const result = source.pipe(isEmpty());\n * source.subscribe(x => console.log(x));\n * result.subscribe(x => console.log(x));\n * source.next('a');\n * source.next('b');\n * source.next('c');\n * source.complete();\n *\n * // Results in:\n * // a\n * // false\n * // b\n * // c\n * ```\n *\n * Emit `true` for an empty Observable\n * ```javascript\n * import { EMPTY } from 'rxjs';\n * import { isEmpty } from 'rxjs/operators';\n *\n * const result = EMPTY.pipe(isEmpty());\n * result.subscribe(x => console.log(x));\n * // Results in:\n * // true\n * ```\n *\n * @see {@link count}\n * @see {@link EMPTY}\n *\n * @return {OperatorFunction} An Observable of a boolean value indicating whether observable was empty or not\n * @method isEmpty\n * @owner Observable\n */\n\nexport function isEmpty(): OperatorFunction {\n return (source: Observable) => source.lift(new IsEmptyOperator());\n}\n\nclass IsEmptyOperator implements Operator {\n call (observer: Subscriber, source: any): any {\n return source.subscribe(new IsEmptySubscriber(observer));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass IsEmptySubscriber extends Subscriber {\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n private notifyComplete(isEmpty: boolean): void {\n const destination = this.destination;\n\n destination.next(isEmpty);\n destination.complete();\n }\n\n protected _next(value: boolean) {\n this.notifyComplete(false);\n }\n\n protected _complete() {\n this.notifyComplete(true);\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits only the last `count` values emitted by the source Observable.\n *\n * Remembers the latest `count` values, then emits those\n * only when the source completes.\n *\n * ![](takeLast.png)\n *\n * `takeLast` returns an Observable that emits at most the last `count` values\n * emitted by the source Observable. If the source emits fewer than `count`\n * values then all of its values are emitted. This operator must wait until the\n * `complete` notification emission from the source in order to emit the `next`\n * values on the output Observable, because otherwise it is impossible to know\n * whether or not more values will be emitted on the source. For this reason,\n * all values are emitted synchronously, followed by the complete notification.\n *\n * ## Example\n * Take the last 3 values of an Observable with many values\n * ```ts\n * import { range } from 'rxjs';\n * import { takeLast } from 'rxjs/operators';\n *\n * const many = range(1, 100);\n * const lastThree = many.pipe(takeLast(3));\n * lastThree.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `takeLast(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of values to emit from the end of\n * the sequence of values emitted by the source Observable.\n * @return {Observable} An Observable that emits at most the last count\n * values emitted by the source Observable.\n * @method takeLast\n * @owner Observable\n */\nexport function takeLast(count: number): MonoTypeOperatorFunction {\n return function takeLastOperatorFunction(source: Observable): Observable {\n if (count === 0) {\n return empty();\n } else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\n\nclass TakeLastOperator implements Operator {\n constructor(private total: number) {\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeLastSubscriber extends Subscriber {\n private ring: Array = new Array();\n private count: number = 0;\n\n constructor(destination: Subscriber, private total: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const ring = this.ring;\n const total = this.total;\n const count = this.count++;\n\n if (ring.length < total) {\n ring.push(value);\n } else {\n const index = count % total;\n ring[index] = value;\n }\n }\n\n protected _complete(): void {\n const destination = this.destination;\n let count = this.count;\n\n if (count > 0) {\n const total = this.count >= this.total ? this.total : this.count;\n const ring = this.ring;\n\n for (let i = 0; i < total; i++) {\n const idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n\n destination.complete();\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nimport { OperatorFunction } from '../../internal/types';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\n\n/* tslint:disable:max-line-length */\nexport function last(\n predicate?: null,\n defaultValue?: D\n): OperatorFunction;\nexport function last(\n predicate: (value: T, index: number, source: Observable) => value is S,\n defaultValue?: S\n): OperatorFunction;\nexport function last(\n predicate: (value: T, index: number, source: Observable) => boolean,\n defaultValue?: D\n): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits only the last item emitted by the source Observable.\n * It optionally takes a predicate function as a parameter, in which case, rather than emitting\n * the last item from the source Observable, the resulting Observable will emit the last item\n * from the source Observable that satisfies the predicate.\n *\n * ![](last.png)\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n * @param {function} [predicate] - The condition any source emitted item has to satisfy.\n * @param {any} [defaultValue] - An optional default value to provide if last\n * predicate isn't met or no values were emitted.\n * @return {Observable} An Observable that emits only the last item satisfying the given condition\n * from the source, or an NoSuchElementException if no such items are emitted.\n * @throws - Throws if no items that match the predicate are emitted by the source Observable.\n */\nexport function last(\n predicate?: ((value: T, index: number, source: Observable) => boolean) | null,\n defaultValue?: D\n): OperatorFunction {\n const hasDefaultValue = arguments.length >= 2;\n return (source: Observable) => source.pipe(\n predicate ? filter((v, i) => predicate(v, i, source)) : identity,\n takeLast(1),\n hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()),\n );\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n\n/**\n * Emits the given constant value on the output Observable every time the source\n * Observable emits a value.\n *\n * Like {@link map}, but it maps every source value to\n * the same output value every time.\n *\n * ![](mapTo.png)\n *\n * Takes a constant `value` as argument, and emits that whenever the source\n * Observable emits a value. In other words, ignores the actual source value,\n * and simply uses the emission moment to know when to emit the given `value`.\n *\n * ## Example\n * Map every click to the string 'Hi'\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { mapTo } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const greetings = clicks.pipe(mapTo('Hi'));\n * greetings.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n *\n * @param {any} value The value to map each source value to.\n * @return {Observable} An Observable that emits the given `value` every time\n * the source Observable emits something.\n * @method mapTo\n * @owner Observable\n */\nexport function mapTo(value: R): OperatorFunction {\n return (source: Observable) => source.lift(new MapToOperator(value));\n}\n\nclass MapToOperator implements Operator {\n\n value: R;\n\n constructor(value: R) {\n this.value = value;\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass MapToSubscriber extends Subscriber {\n\n value: R;\n\n constructor(destination: Subscriber, value: R) {\n super(destination);\n this.value = value;\n }\n\n protected _next(x: T) {\n this.destination.next(this.value);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nimport { OperatorFunction } from '../types';\n\n/**\n * Represents all of the notifications from the source Observable as `next`\n * emissions marked with their original types within {@link Notification}\n * objects.\n *\n * Wraps `next`, `error` and `complete` emissions in\n * {@link Notification} objects, emitted as `next` on the output Observable.\n * \n *\n * ![](materialize.png)\n *\n * `materialize` returns an Observable that emits a `next` notification for each\n * `next`, `error`, or `complete` emission of the source Observable. When the\n * source Observable emits `complete`, the output Observable will emit `next` as\n * a Notification of type \"complete\", and then it will emit `complete` as well.\n * When the source Observable emits `error`, the output will emit `next` as a\n * Notification of type \"error\", and then `complete`.\n *\n * This operator is useful for producing metadata of the source Observable, to\n * be consumed as `next` emissions. Use it in conjunction with\n * {@link dematerialize}.\n *\n * ## Example\n * Convert a faulty Observable to an Observable of Notifications\n * ```ts\n * import { of } from 'rxjs';\n * import { materialize, map } from 'rxjs/operators';\n *\n * const letters = of('a', 'b', 13, 'd');\n * const upperCase = letters.pipe(map(x => x.toUpperCase()));\n * const materialized = upperCase.pipe(materialize());\n * materialized.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - Notification {kind: \"N\", value: \"A\", error: undefined, hasValue: true}\n * // - Notification {kind: \"N\", value: \"B\", error: undefined, hasValue: true}\n * // - Notification {kind: \"E\", value: undefined, error: TypeError:\n * // x.toUpperCase is not a function at MapSubscriber.letters.map.x\n * // [as project] (http://1…, hasValue: false}\n * ```\n *\n * @see {@link Notification}\n * @see {@link dematerialize}\n *\n * @return {Observable>} An Observable that emits\n * {@link Notification} objects that wrap the original emissions from the source\n * Observable with metadata.\n * @method materialize\n * @owner Observable\n */\nexport function materialize(): OperatorFunction> {\n return function materializeOperatorFunction(source: Observable) {\n return source.lift(new MaterializeOperator());\n };\n}\n\nclass MaterializeOperator implements Operator> {\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass MaterializeSubscriber extends Subscriber {\n constructor(destination: Subscriber>) {\n super(destination);\n }\n\n protected _next(value: T) {\n this.destination.next(Notification.createNext(value));\n }\n\n protected _error(err: any) {\n const destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n }\n\n protected _complete() {\n const destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction, MonoTypeOperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function scan(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction;\nexport function scan(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction;\nexport function scan(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Applies an accumulator function over the source Observable, and returns each\n * intermediate result, with an optional seed value.\n *\n * It's like {@link reduce}, but emits the current\n * accumulation whenever the source emits a value.\n *\n * ![](scan.png)\n *\n * Combines together all values emitted on the source, using an accumulator\n * function that knows how to join a new source value into the accumulation from\n * the past. Is similar to {@link reduce}, but emits the intermediate\n * accumulations.\n *\n * Returns an Observable that applies a specified `accumulator` function to each\n * item emitted by the source Observable. If a `seed` value is specified, then\n * that value will be used as the initial value for the accumulator. If no seed\n * value is specified, the first item of the source is used as the seed.\n *\n * ## Example\n * Count the number of click events\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { scan, mapTo } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const ones = clicks.pipe(mapTo(1));\n * const seed = 0;\n * const count = ones.pipe(scan((acc, one) => acc + one, seed));\n * count.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link expand}\n * @see {@link mergeScan}\n * @see {@link reduce}\n *\n * @param {function(acc: R, value: T, index: number): R} accumulator\n * The accumulator function called on each source value.\n * @param {T|R} [seed] The initial accumulation value.\n * @return {Observable} An observable of the accumulated values.\n * @method scan\n * @owner Observable\n */\nexport function scan(accumulator: (acc: R, value: T, index: number) => R, seed?: T | R): OperatorFunction {\n let hasSeed = false;\n // providing a seed of `undefined` *should* be valid and trigger\n // hasSeed! so don't use `seed !== undefined` checks!\n // For this reason, we have to check it here at the original call site\n // otherwise inside Operator/Subscriber we won't know if `undefined`\n // means they didn't provide anything or if they literally provided `undefined`\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n\n return function scanOperatorFunction(source: Observable): Observable {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\n\nclass ScanOperator implements Operator {\n constructor(private accumulator: (acc: R, value: T, index: number) => R, private seed?: T | R, private hasSeed: boolean = false) {}\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ScanSubscriber extends Subscriber {\n private index: number = 0;\n\n get seed(): T | R {\n return this._seed;\n }\n\n set seed(value: T | R) {\n this.hasSeed = true;\n this._seed = value;\n }\n\n constructor(destination: Subscriber, private accumulator: (acc: R, value: T, index: number) => R, private _seed: T | R,\n private hasSeed: boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n } else {\n return this._tryNext(value);\n }\n }\n\n private _tryNext(value: T): void {\n const index = this.index++;\n let result: any;\n try {\n result = this.accumulator(this.seed, value, index);\n } catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n }\n}\n","import { Observable } from '../Observable';\nimport { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { OperatorFunction, MonoTypeOperatorFunction } from '../types';\nimport { pipe } from '../util/pipe';\n\n/* tslint:disable:max-line-length */\nexport function reduce(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction;\nexport function reduce(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction;\nexport function reduce(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Applies an accumulator function over the source Observable, and returns the\n * accumulated result when the source completes, given an optional seed value.\n *\n * Combines together all values emitted on the source,\n * using an accumulator function that knows how to join a new source value into\n * the accumulation from the past.\n *\n * ![](reduce.png)\n *\n * Like\n * [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce),\n * `reduce` applies an `accumulator` function against an accumulation and each\n * value of the source Observable (from the past) to reduce it to a single\n * value, emitted on the output Observable. Note that `reduce` will only emit\n * one value, only when the source Observable completes. It is equivalent to\n * applying operator {@link scan} followed by operator {@link last}.\n *\n * Returns an Observable that applies a specified `accumulator` function to each\n * item emitted by the source Observable. If a `seed` value is specified, then\n * that value will be used as the initial value for the accumulator. If no seed\n * value is specified, the first item of the source is used as the seed.\n *\n * ## Example\n * Count the number of click events that happened in 5 seconds\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { reduce, takeUntil, mapTo } from 'rxjs/operators';\n *\n * const clicksInFiveSeconds = fromEvent(document, 'click').pipe(\n * takeUntil(interval(5000)),\n * );\n * const ones = clicksInFiveSeconds.pipe(mapTo(1));\n * const seed = 0;\n * const count = ones.pipe(reduce((acc, one) => acc + one, seed));\n * count.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link count}\n * @see {@link expand}\n * @see {@link mergeScan}\n * @see {@link scan}\n *\n * @param {function(acc: R, value: T, index: number): R} accumulator The accumulator function\n * called on each source value.\n * @param {R} [seed] The initial accumulation value.\n * @return {Observable} An Observable that emits a single value that is the\n * result of accumulating the values emitted by the source Observable.\n * @method reduce\n * @owner Observable\n */\nexport function reduce(accumulator: (acc: T | R, value: T, index?: number) => T | R, seed?: T | R): OperatorFunction {\n // providing a seed of `undefined` *should* be valid and trigger\n // hasSeed! so don't use `seed !== undefined` checks!\n // For this reason, we have to check it here at the original call site\n // otherwise inside Operator/Subscriber we won't know if `undefined`\n // means they didn't provide anything or if they literally provided `undefined`\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source: Observable): Observable {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source: Observable): Observable {\n return pipe(\n scan((acc, value, index) => accumulator(acc, value, index + 1)),\n takeLast(1),\n )(source);\n };\n}\n","import { reduce } from './reduce';\nimport { MonoTypeOperatorFunction } from '../types';\n\n/**\n * The Max operator operates on an Observable that emits numbers (or items that can be compared with a provided function),\n * and when source Observable completes it emits a single item: the item with the largest value.\n *\n * ![](max.png)\n *\n * ## Examples\n * Get the maximal value of a series of numbers\n * ```ts\n * import { of } from 'rxjs';\n * import { max } from 'rxjs/operators';\n *\n * of(5, 4, 7, 2, 8).pipe(\n * max(),\n * )\n * .subscribe(x => console.log(x)); // -> 8\n * ```\n *\n * Use a comparer function to get the maximal item\n * ```typescript\n * import { of } from 'rxjs';\n * import { max } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n * of(\n * {age: 7, name: 'Foo'},\n * {age: 5, name: 'Bar'},\n * {age: 9, name: 'Beer'},\n * ).pipe(\n * max((a: Person, b: Person) => a.age < b.age ? -1 : 1),\n * )\n * .subscribe((x: Person) => console.log(x.name)); // -> 'Beer'\n * ```\n *\n * @see {@link min}\n *\n * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the\n * value of two items.\n * @return {Observable} An Observable that emits item with the largest value.\n * @method max\n * @owner Observable\n */\nexport function max(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction {\n const max: (x: T, y: T) => T = (typeof comparer === 'function')\n ? (x, y) => comparer(x, y) > 0 ? x : y\n : (x, y) => x > y ? x : y;\n\n return reduce(max);\n}\n","import { merge as mergeStatic } from '../observable/merge';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(...observables: Array | SchedulerLike | number>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(...observables: Array | SchedulerLike | number>): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static {@link merge}.\n */\nexport function merge(...observables: Array | SchedulerLike | number>): OperatorFunction {\n return (source: Observable) => source.lift.call(mergeStatic(source, ...observables));\n}\n","import { Observable } from '../Observable';\nimport { OperatorFunction, ObservedValueOf } from '../../internal/types';\nimport { mergeMap } from './mergeMap';\nimport { ObservableInput } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function mergeMapTo>(innerObservable: O, concurrent?: number): OperatorFunction>;\n/** @deprecated */\nexport function mergeMapTo>(innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to the same Observable which is merged multiple\n * times in the output Observable.\n *\n * It's like {@link mergeMap}, but maps each value always\n * to the same inner Observable.\n *\n * ![](mergeMapTo.png)\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then merges those resulting Observables into one\n * single Observable, which is the output Observable.\n *\n * ## Example\n * For each click event, start an interval Observable ticking every 1 second\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { mergeMapTo } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(mergeMapTo(interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMapTo}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeScan}\n * @see {@link switchMapTo}\n *\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits items from the given\n * `innerObservable`\n * @method mergeMapTo\n * @owner Observable\n */\nexport function mergeMapTo>(\n innerObservable: O,\n resultSelector?: ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R) | number,\n concurrent: number = Number.POSITIVE_INFINITY\n): OperatorFunction|R> {\n if (typeof resultSelector === 'function') {\n return mergeMap(() => innerObservable, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return mergeMap(() => innerObservable, concurrent);\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { ObservableInput, OperatorFunction } from '../types';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\n\n/**\n * Applies an accumulator function over the source Observable where the\n * accumulator function itself returns an Observable, then each intermediate\n * Observable returned is merged into the output Observable.\n *\n * It's like {@link scan}, but the Observables returned\n * by the accumulator are merged into the outer Observable.\n *\n * ## Example\n * Count the number of click events\n * ```ts\n * import { fromEvent, of } from 'rxjs';\n * import { mapTo, mergeScan } from 'rxjs/operators';\n *\n * const click$ = fromEvent(document, 'click');\n * const one$ = click$.pipe(mapTo(1));\n * const seed = 0;\n * const count$ = one$.pipe(\n * mergeScan((acc, one) => of(acc + one), seed),\n * );\n * count$.subscribe(x => console.log(x));\n *\n * // Results:\n * // 1\n * // 2\n * // 3\n * // 4\n * // ...and so on for each click\n * ```\n *\n * @param {function(acc: R, value: T): Observable} accumulator\n * The accumulator function called on each source value.\n * @param seed The initial accumulation value.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of\n * input Observables being subscribed to concurrently.\n * @return {Observable} An observable of the accumulated values.\n * @method mergeScan\n * @owner Observable\n */\nexport function mergeScan(accumulator: (acc: R, value: T, index: number) => ObservableInput,\n seed: R,\n concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction {\n return (source: Observable) => source.lift(new MergeScanOperator(accumulator, seed, concurrent));\n}\n\nexport class MergeScanOperator implements Operator {\n constructor(private accumulator: (acc: R, value: T, index: number) => ObservableInput,\n private seed: R,\n private concurrent: number) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new MergeScanSubscriber(\n subscriber, this.accumulator, this.seed, this.concurrent\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class MergeScanSubscriber extends SimpleOuterSubscriber {\n private hasValue: boolean = false;\n private hasCompleted: boolean = false;\n private buffer: Observable[] = [];\n private active: number = 0;\n protected index: number = 0;\n\n constructor(destination: Subscriber,\n private accumulator: (acc: R, value: T, index: number) => ObservableInput,\n private acc: R,\n private concurrent: number) {\n super(destination);\n }\n\n protected _next(value: any): void {\n if (this.active < this.concurrent) {\n const index = this.index++;\n const destination = this.destination;\n let ish;\n try {\n const { accumulator } = this;\n ish = accumulator(this.acc, value, index);\n } catch (e) {\n return destination.error!(e);\n }\n this.active++;\n this._innerSub(ish);\n } else {\n this.buffer.push(value);\n }\n }\n\n private _innerSub(ish: any): void {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination as Subscription;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(ish, innerSubscriber);\n // The returned subscription will usually be the subscriber that was\n // passed. However, interop subscribers will be wrapped and for\n // unsubscriptions to chain correctly, the wrapper needs to be added, too.\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next!(this.acc);\n }\n this.destination.complete!();\n }\n this.unsubscribe();\n }\n\n notifyNext(innerValue: R): void {\n const { destination } = this;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next!(innerValue);\n }\n\n notifyComplete(): void {\n const buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n } else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next!(this.acc);\n }\n this.destination.complete!();\n }\n }\n}\n","import { reduce } from './reduce';\nimport { MonoTypeOperatorFunction } from '../types';\n\n/**\n * The Min operator operates on an Observable that emits numbers (or items that can be compared with a provided function),\n * and when source Observable completes it emits a single item: the item with the smallest value.\n *\n * ![](min.png)\n *\n * ## Examples\n * Get the minimal value of a series of numbers\n * ```ts\n * import { of } from 'rxjs';\n * import { min } from 'rxjs/operators';\n *\n * of(5, 4, 7, 2, 8).pipe(\n * min(),\n * )\n * .subscribe(x => console.log(x)); // -> 2\n * ```\n *\n * Use a comparer function to get the minimal item\n * ```typescript\n * import { of } from 'rxjs';\n * import { min } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n * of(\n * {age: 7, name: 'Foo'},\n * {age: 5, name: 'Bar'},\n * {age: 9, name: 'Beer'},\n * ).pipe(\n * min( (a: Person, b: Person) => a.age < b.age ? -1 : 1),\n * )\n * .subscribe((x: Person) => console.log(x.name)); // -> 'Bar'\n * ```\n * @see {@link max}\n *\n * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the\n * value of two items.\n * @return {Observable} An Observable that emits item with the smallest value.\n * @method min\n * @owner Observable\n */\nexport function min(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction {\n const min: (x: T, y: T) => T = (typeof comparer === 'function')\n ? (x, y) => comparer(x, y) < 0 ? x : y\n : (x, y) => x < y ? x : y;\n return reduce(min);\n}\n","import { Subject } from '../Subject';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { ConnectableObservable, connectableObservableDescriptor } from '../observable/ConnectableObservable';\nimport { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservedValueOf, ObservableInput } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function multicast(subject: Subject): UnaryFunction, ConnectableObservable>;\nexport function multicast>(subject: Subject, selector: (shared: Observable) => O): UnaryFunction, ConnectableObservable>>;\nexport function multicast(subjectFactory: (this: Observable) => Subject): UnaryFunction, ConnectableObservable>;\nexport function multicast>(SubjectFactory: (this: Observable) => Subject, selector: (shared: Observable) => O): OperatorFunction>;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits the results of invoking a specified selector on items\n * emitted by a ConnectableObservable that shares a single subscription to the underlying stream.\n *\n * ![](multicast.png)\n *\n * @param {Function|Subject} subjectOrSubjectFactory - Factory function to create an intermediate subject through\n * which the source sequence's elements will be multicast to the selector function\n * or Subject to push source elements into.\n * @param {Function} [selector] - Optional selector function that can use the multicasted source stream\n * as many times as needed, without causing multiple subscriptions to the source stream.\n * Subscribers to the given source will receive all notifications of the source from the\n * time of the subscription forward.\n * @return {Observable} An Observable that emits the results of invoking the selector\n * on the items emitted by a `ConnectableObservable` that shares a single subscription to\n * the underlying stream.\n * @method multicast\n * @owner Observable\n */\nexport function multicast(subjectOrSubjectFactory: Subject | (() => Subject),\n selector?: (source: Observable) => Observable): OperatorFunction {\n return function multicastOperatorFunction(source: Observable): Observable {\n let subjectFactory: () => Subject;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = <() => Subject>subjectOrSubjectFactory;\n } else {\n subjectFactory = function subjectFactory() {\n return >subjectOrSubjectFactory;\n };\n }\n\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n\n const connectable: any = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n\n return > connectable;\n };\n}\n\nexport class MulticastOperator implements Operator {\n constructor(private subjectFactory: () => Subject,\n private selector: (source: Observable) => Observable) {\n }\n call(subscriber: Subscriber, source: any): any {\n const { selector } = this;\n const subject = this.subjectFactory();\n const subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n }\n}\n","import { Observable } from '../Observable';\nimport { from } from '../observable/from';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { isArray } from '../util/isArray';\nimport { ObservableInput, OperatorFunction } from '../types';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\n\n/* tslint:disable:max-line-length */\nexport function onErrorResumeNext(): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput, v2: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(...observables: Array>): OperatorFunction;\nexport function onErrorResumeNext(array: ObservableInput[]): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one\n * that was passed.\n *\n * Execute series of Observables no matter what, even if it means swallowing errors.\n *\n * ![](onErrorResumeNext.png)\n *\n * `onErrorResumeNext` is an operator that accepts a series of Observables, provided either directly as\n * arguments or as an array. If no single Observable is provided, returned Observable will simply behave the same\n * as the source.\n *\n * `onErrorResumeNext` returns an Observable that starts by subscribing and re-emitting values from the source Observable.\n * When its stream of values ends - no matter if Observable completed or emitted an error - `onErrorResumeNext`\n * will subscribe to the first Observable that was passed as an argument to the method. It will start re-emitting\n * its values as well and - again - when that stream ends, `onErrorResumeNext` will proceed to subscribing yet another\n * Observable in provided series, no matter if previous Observable completed or ended with an error. This will\n * be happening until there is no more Observables left in the series, at which point returned Observable will\n * complete - even if the last subscribed stream ended with an error.\n *\n * `onErrorResumeNext` can be therefore thought of as version of {@link concat} operator, which is more permissive\n * when it comes to the errors emitted by its input Observables. While `concat` subscribes to the next Observable\n * in series only if previous one successfully completed, `onErrorResumeNext` subscribes even if it ended with\n * an error.\n *\n * Note that you do not get any access to errors emitted by the Observables. In particular do not\n * expect these errors to appear in error callback passed to {@link Observable#subscribe}. If you want to take\n * specific actions based on what error was emitted by an Observable, you should try out {@link catchError} instead.\n *\n *\n * ## Example\n * Subscribe to the next Observable after map fails\n * ```ts\n * import { of } from 'rxjs';\n * import { onErrorResumeNext, map } from 'rxjs/operators';\n *\n * of(1, 2, 3, 0).pipe(\n * map(x => {\n * if (x === 0) { throw Error(); }\n * return 10 / x;\n * }),\n * onErrorResumeNext(of(1, 2, 3)),\n * )\n * .subscribe(\n * val => console.log(val),\n * err => console.log(err), // Will never be called.\n * () => console.log('that\\'s it!')\n * );\n *\n * // Logs:\n * // 10\n * // 5\n * // 3.3333333333333335\n * // 1\n * // 2\n * // 3\n * // \"that's it!\"\n * ```\n *\n * @see {@link concat}\n * @see {@link catchError}\n *\n * @param {...ObservableInput} observables Observables passed either directly or as an array.\n * @return {Observable} An Observable that emits values from source Observable, but - if it errors - subscribes\n * to the next passed Observable and so on, until it completes or runs out of Observables.\n * @method onErrorResumeNext\n * @owner Observable\n */\n\nexport function onErrorResumeNext(...nextSources: Array |\n Array>>): OperatorFunction {\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = >>nextSources[0];\n }\n\n return (source: Observable) => source.lift(new OnErrorResumeNextOperator(nextSources));\n}\n\n/* tslint:disable:max-line-length */\nexport function onErrorResumeNextStatic(v: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable;\n\nexport function onErrorResumeNextStatic(...observables: Array | ((...values: Array) => R)>): Observable;\nexport function onErrorResumeNextStatic(array: ObservableInput[]): Observable;\n/* tslint:enable:max-line-length */\n\nexport function onErrorResumeNextStatic(...nextSources: Array |\n Array> |\n ((...values: Array) => R)>): Observable {\n let source: ObservableInput|undefined = undefined;\n\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0] as ObservableInput[];\n }\n // TODO: resolve issue with passing no arguments.\n source = nextSources.shift()!;\n\n return from(source).lift(new OnErrorResumeNextOperator(nextSources));\n}\n\nclass OnErrorResumeNextOperator implements Operator {\n constructor(private nextSources: Array>) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n }\n}\n\nclass OnErrorResumeNextSubscriber extends SimpleOuterSubscriber {\n constructor(protected destination: Subscriber,\n private nextSources: Array>) {\n super(destination);\n }\n\n notifyError(): void {\n this.subscribeToNextSource();\n }\n\n notifyComplete(): void {\n this.subscribeToNextSource();\n }\n\n protected _error(err: any): void {\n this.subscribeToNextSource();\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.subscribeToNextSource();\n this.unsubscribe();\n }\n\n private subscribeToNextSource(): void {\n const next = this.nextSources.shift();\n if (!!next) {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination as Subscription;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(next, innerSubscriber);\n // The returned subscription will usually be the subscriber that was\n // passed. However, interop subscribers will be wrapped and for\n // unsubscriptions to chain correctly, the wrapper needs to be added, too.\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n } else {\n this.destination.complete();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\n\n/**\n * Groups pairs of consecutive emissions together and emits them as an array of\n * two values.\n *\n * Puts the current value and previous value together as\n * an array, and emits that.\n *\n * ![](pairwise.png)\n *\n * The Nth emission from the source Observable will cause the output Observable\n * to emit an array [(N-1)th, Nth] of the previous and the current value, as a\n * pair. For this reason, `pairwise` emits on the second and subsequent\n * emissions from the source Observable, but not on the first emission, because\n * there is no previous value in that case.\n *\n * ## Example\n * On every click (starting from the second), emit the relative distance to the previous click\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { pairwise, map } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const pairs = clicks.pipe(pairwise());\n * const distance = pairs.pipe(\n * map(pair => {\n * const x0 = pair[0].clientX;\n * const y0 = pair[0].clientY;\n * const x1 = pair[1].clientX;\n * const y1 = pair[1].clientY;\n * return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2));\n * }),\n * );\n * distance.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n *\n * @return {Observable>} An Observable of pairs (as arrays) of\n * consecutive values from the source Observable.\n * @method pairwise\n * @owner Observable\n */\nexport function pairwise(): OperatorFunction {\n return (source: Observable) => source.lift(new PairwiseOperator());\n}\n\nclass PairwiseOperator implements Operator {\n call(subscriber: Subscriber<[T, T]>, source: any): any {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass PairwiseSubscriber extends Subscriber {\n private prev: T;\n private hasPrev: boolean = false;\n\n constructor(destination: Subscriber<[T, T]>) {\n super(destination);\n }\n\n _next(value: T): void {\n let pair: [T, T] | undefined;\n\n if (this.hasPrev) {\n pair = [this.prev, value];\n } else {\n this.hasPrev = true;\n }\n\n this.prev = value;\n\n if (pair) {\n this.destination.next(pair);\n }\n }\n}\n","import { not } from '../util/not';\nimport { filter } from './filter';\nimport { Observable } from '../Observable';\nimport { UnaryFunction } from '../types';\n\n/**\n * Splits the source Observable into two, one with values that satisfy a\n * predicate, and another with values that don't satisfy the predicate.\n *\n * It's like {@link filter}, but returns two Observables:\n * one like the output of {@link filter}, and the other with values that did not\n * pass the condition.\n *\n * ![](partition.png)\n *\n * `partition` outputs an array with two Observables that partition the values\n * from the source Observable through the given `predicate` function. The first\n * Observable in that array emits source values for which the predicate argument\n * returns true. The second Observable emits source values for which the\n * predicate returns false. The first behaves like {@link filter} and the second\n * behaves like {@link filter} with the predicate negated.\n *\n * ## Example\n * Partition click events into those on DIV elements and those elsewhere\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { partition } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const parts = clicks.pipe(partition(ev => ev.target.tagName === 'DIV'));\n * const clicksOnDivs = parts[0];\n * const clicksElsewhere = parts[1];\n * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x));\n * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x));\n * ```\n *\n * @see {@link filter}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted on the first Observable in the returned array, if\n * `false` the value is emitted on the second Observable in the array. The\n * `index` parameter is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {[Observable, Observable]} An array with two Observables: one\n * with values that passed the predicate, and another with values that did not\n * pass the predicate.\n * @method partition\n * @owner Observable\n * @deprecated use `partition` static creation function instead\n */\nexport function partition(predicate: (value: T, index: number) => boolean,\n thisArg?: any): UnaryFunction, [Observable, Observable]> {\n return (source: Observable) => [\n filter(predicate, thisArg)(source),\n filter(not(predicate, thisArg) as any)(source)\n ] as [Observable, Observable];\n}\n","import { Observable } from '../Observable';\nimport { map } from './map';\nimport { OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function pluck(k1: K1): OperatorFunction;\nexport function pluck(k1: K1, k2: K2): OperatorFunction;\nexport function pluck(k1: K1, k2: K2, k3: K3): OperatorFunction;\nexport function pluck(k1: K1, k2: K2, k3: K3, k4: K4): OperatorFunction;\nexport function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5): OperatorFunction;\nexport function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6): OperatorFunction;\nexport function pluck(...properties: string[]): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Maps each source value (an object) to its specified nested property.\n *\n * Like {@link map}, but meant only for picking one of\n * the nested properties of every emitted object.\n *\n * ![](pluck.png)\n *\n * Given a list of strings describing a path to an object property, retrieves\n * the value of a specified nested property from all values in the source\n * Observable. If a property can't be resolved, it will return `undefined` for\n * that value.\n *\n * ## Example\n * Map every click to the tagName of the clicked target element\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { pluck } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const tagNames = clicks.pipe(pluck('target', 'tagName'));\n * tagNames.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n *\n * @param {...string} properties The nested properties to pluck from each source\n * value (an object).\n * @return {Observable} A new Observable of property values from the source values.\n * @method pluck\n * @owner Observable\n */\nexport function pluck(...properties: string[]): OperatorFunction {\n const length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return (source: Observable) => map(plucker(properties, length))(source as any);\n}\n\nfunction plucker(props: string[], length: number): (x: string) => any {\n const mapper = (x: string) => {\n let currentProp = x;\n for (let i = 0; i < length; i++) {\n const p = currentProp != null ? currentProp[props[i]] : undefined;\n if (p !== void 0) {\n currentProp = p;\n } else {\n return undefined;\n }\n }\n return currentProp;\n };\n\n return mapper;\n}\n","import { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservableInput, ObservedValueOf } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function publish(): UnaryFunction, ConnectableObservable>;\nexport function publish>(selector: (shared: Observable) => O): OperatorFunction>;\nexport function publish(selector: MonoTypeOperatorFunction): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns a ConnectableObservable, which is a variety of Observable that waits until its connect method is called\n * before it begins emitting items to those Observers that have subscribed to it.\n *\n * Makes a cold Observable hot\n *\n * ![](publish.png)\n *\n * ## Examples\n * Make source$ hot by applying publish operator, then merge each inner observable into a single one\n * and subscribe.\n * ```ts\n * import { of, zip, interval, merge } from \"rxjs\";\n * import { map, publish, tap } from \"rxjs/operators\";\n *\n * const source$ = zip(interval(2000), of(1, 2, 3, 4, 5, 6, 7, 8, 9)).pipe(\n * map(values => values[1])\n * );\n *\n * source$\n * .pipe(\n * publish(multicasted$ =>\n * merge(\n * multicasted$.pipe(tap(x => console.log('Stream 1:', x))),\n * multicasted$.pipe(tap(x => console.log('Stream 2:', x))),\n * multicasted$.pipe(tap(x => console.log('Stream 3:', x))),\n * )\n * )\n * )\n * .subscribe();\n *\n * // Results every two seconds\n * // Stream 1: 1\n * // Stream 2: 1\n * // Stream 3: 1\n * // ...\n * // Stream 1: 9\n * // Stream 2: 9\n * // Stream 3: 9\n * ```\n *\n * @param {Function} [selector] - Optional selector function which can use the multicasted source sequence as many times\n * as needed, without causing multiple subscriptions to the source sequence.\n * Subscribers to the given source will receive all notifications of the source from the time of the subscription on.\n * @return A ConnectableObservable that upon connection causes the source Observable to emit items to its Observers.\n * @method publish\n * @owner Observable\n *\n *\n */\nexport function publish(selector?: OperatorFunction): MonoTypeOperatorFunction | OperatorFunction {\n return selector ?\n multicast(() => new Subject(), selector) :\n multicast(new Subject());\n}\n","import { Observable } from '../Observable';\nimport { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction } from '../types';\n\n/**\n * @param value\n * @return {ConnectableObservable}\n * @method publishBehavior\n * @owner Observable\n */\nexport function publishBehavior(value: T): UnaryFunction, ConnectableObservable> {\n return (source: Observable) => multicast(new BehaviorSubject(value))(source) as ConnectableObservable;\n}\n","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction } from '../types';\n\n/**\n * Returns a connectable observable sequence that shares a single subscription to the\n * underlying sequence containing only the last notification.\n *\n * ![](publishLast.png)\n *\n * Similar to {@link publish}, but it waits until the source observable completes and stores\n * the last emitted value.\n * Similarly to {@link publishReplay} and {@link publishBehavior}, this keeps storing the last\n * value even if it has no more subscribers. If subsequent subscriptions happen, they will\n * immediately get that last stored value and complete.\n *\n * ## Example\n *\n * ```ts\n * import { interval } from 'rxjs';\n * import { publishLast, tap, take } from 'rxjs/operators';\n *\n * const connectable =\n * interval(1000)\n * .pipe(\n * tap(x => console.log(\"side effect\", x)),\n * take(3),\n * publishLast());\n *\n * connectable.subscribe(\n * x => console.log( \"Sub. A\", x),\n * err => console.log(\"Sub. A Error\", err),\n * () => console.log( \"Sub. A Complete\"));\n *\n * connectable.subscribe(\n * x => console.log( \"Sub. B\", x),\n * err => console.log(\"Sub. B Error\", err),\n * () => console.log( \"Sub. B Complete\"));\n *\n * connectable.connect();\n *\n * // Results:\n * // \"side effect 0\"\n * // \"side effect 1\"\n * // \"side effect 2\"\n * // \"Sub. A 2\"\n * // \"Sub. B 2\"\n * // \"Sub. A Complete\"\n * // \"Sub. B Complete\"\n * ```\n *\n * @see {@link ConnectableObservable}\n * @see {@link publish}\n * @see {@link publishReplay}\n * @see {@link publishBehavior}\n *\n * @return {ConnectableObservable} An observable sequence that contains the elements of a\n * sequence produced by multicasting the source sequence.\n * @method publishLast\n * @owner Observable\n */\n\nexport function publishLast(): UnaryFunction, ConnectableObservable> {\n return (source: Observable) => multicast(new AsyncSubject())(source);\n}\n","import { Observable } from '../Observable';\nimport { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction, MonoTypeOperatorFunction, OperatorFunction, SchedulerLike, ObservableInput, ObservedValueOf } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function publishReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function publishReplay>(bufferSize?: number, windowTime?: number, selector?: (shared: Observable) => O, scheduler?: SchedulerLike): OperatorFunction>;\n/* tslint:enable:max-line-length */\n\nexport function publishReplay(bufferSize?: number,\n windowTime?: number,\n selectorOrScheduler?: SchedulerLike | OperatorFunction,\n scheduler?: SchedulerLike): UnaryFunction, ConnectableObservable> {\n\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n\n const selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n const subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n\n return (source: Observable) => multicast(() => subject, selector)(source) as ConnectableObservable;\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { MonoTypeOperatorFunction, OperatorFunction } from '../types';\nimport { race as raceStatic } from '../observable/race';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static race. */\nexport function race(observables: Array>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static race. */\nexport function race(observables: Array>): OperatorFunction;\n/** @deprecated Deprecated in favor of static race. */\nexport function race(...observables: Array | Array>>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static race. */\nexport function race(...observables: Array | Array>>): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that mirrors the first source Observable to emit a next,\n * error or complete notification from the combination of this Observable and supplied Observables.\n * @param {...Observables} ...observables Sources used to race for which Observable emits first.\n * @return {Observable} An Observable that mirrors the output of the first Observable to emit an item.\n * @method race\n * @owner Observable\n * @deprecated Deprecated in favor of static {@link race}.\n */\nexport function race(...observables: (Observable | Observable[])[]): MonoTypeOperatorFunction {\n return function raceOperatorFunction(source: Observable) {\n // if the only argument is an array, it was most likely called with\n // `pair([obs1, obs2, ...])`\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0] as Observable[];\n }\n\n return source.lift.call(raceStatic(source, ...(observables as Observable[])));\n };\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { empty } from '../observable/empty';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that will resubscribe to the source stream when the source stream completes, at most count times.\n *\n * Repeats all values emitted on the source. It's like {@link retry}, but for non error cases.\n *\n * ![](repeat.png)\n *\n * Similar to {@link retry}, this operator repeats the stream of items emitted by the source for non error cases.\n * Repeat can be useful for creating observables that are meant to have some repeated pattern or rhythm.\n *\n * Note: `repeat(0)` returns an empty observable and `repeat()` will repeat forever\n *\n * ## Example\n * Repeat a message stream\n * ```ts\n * import { of } from 'rxjs';\n * import { repeat, delay } from 'rxjs/operators';\n *\n * const source = of('Repeat message');\n * const example = source.pipe(repeat(3));\n * example.subscribe(x => console.log(x));\n *\n * // Results\n * // Repeat message\n * // Repeat message\n * // Repeat message\n * ```\n *\n * Repeat 3 values, 2 times\n * ```ts\n * import { interval } from 'rxjs';\n * import { repeat, take } from 'rxjs/operators';\n *\n * const source = interval(1000);\n * const example = source.pipe(take(3), repeat(2));\n * example.subscribe(x => console.log(x));\n *\n * // Results every second\n * // 0\n * // 1\n * // 2\n * // 0\n * // 1\n * // 2\n * ```\n *\n * @see {@link repeatWhen}\n * @see {@link retry}\n *\n * @param {number} [count] The number of times the source Observable items are repeated, a count of 0 will yield\n * an empty Observable.\n * @return {Observable} An Observable that will resubscribe to the source stream when the source stream completes\n * , at most count times.\n * @method repeat\n * @owner Observable\n */\nexport function repeat(count: number = -1): MonoTypeOperatorFunction {\n return (source: Observable) => {\n if (count === 0) {\n return empty();\n } else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n } else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\n\nclass RepeatOperator implements Operator {\n constructor(private count: number,\n private source: Observable) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RepeatSubscriber extends Subscriber {\n constructor(destination: Subscriber,\n private count: number,\n private source: Observable) {\n super(destination);\n }\n complete() {\n if (!this.isStopped) {\n const { source, count } = this;\n if (count === 0) {\n return super.complete();\n } else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\n/**\n * Returns an Observable that mirrors the source Observable with the exception of a `complete`. If the source\n * Observable calls `complete`, this method will emit to the Observable returned from `notifier`. If that Observable\n * calls `complete` or `error`, then this method will call `complete` or `error` on the child subscription. Otherwise\n * this method will resubscribe to the source Observable.\n *\n * ![](repeatWhen.png)\n *\n * ## Example\n * Repeat a message stream on click\n * ```ts\n * import { of, fromEvent } from 'rxjs';\n * import { repeatWhen } from 'rxjs/operators';\n *\n * const source = of('Repeat message');\n * const documentClick$ = fromEvent(document, 'click');\n *\n * source.pipe(repeatWhen(() => documentClick$)\n * ).subscribe(data => console.log(data))\n * ```\n * @see {@link repeat}\n * @see {@link retry}\n * @see {@link retryWhen}\n *\n * @param {function(notifications: Observable): Observable} notifier - Receives an Observable of notifications with\n * which a user can `complete` or `error`, aborting the repetition.\n * @return {Observable} The source Observable modified with repeat logic.\n * @method repeatWhen\n * @owner Observable\n */\nexport function repeatWhen(notifier: (notifications: Observable) => Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new RepeatWhenOperator(notifier));\n}\n\nclass RepeatWhenOperator implements Operator {\n constructor(protected notifier: (notifications: Observable) => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RepeatWhenSubscriber extends SimpleOuterSubscriber {\n\n private notifications?: Subject;\n private retries?: Observable;\n private retriesSubscription?: Subscription;\n private sourceIsBeingSubscribedTo: boolean = true;\n\n constructor(destination: Subscriber,\n private notifier: (notifications: Observable) => Observable,\n private source: Observable) {\n super(destination);\n }\n\n notifyNext(): void {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n }\n\n notifyComplete(): void {\n if (this.sourceIsBeingSubscribedTo === false) {\n return super.complete();\n }\n }\n\n complete() {\n this.sourceIsBeingSubscribedTo = false;\n\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return super.complete();\n }\n\n this._unsubscribeAndRecycle();\n this.notifications!.next(undefined);\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { notifications, retriesSubscription } = this;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = undefined;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = undefined;\n }\n this.retries = undefined;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribeAndRecycle(): Subscriber {\n const { _unsubscribe } = this;\n\n this._unsubscribe = null!;\n super._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n\n return this;\n }\n\n private subscribeToRetries() {\n this.notifications = new Subject();\n let retries;\n try {\n const { notifier } = this;\n retries = notifier(this.notifications);\n } catch (e) {\n return super.complete();\n }\n this.retries = retries;\n this.retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this));\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable\n * calls `error`, this method will resubscribe to the source Observable for a maximum of `count` resubscriptions (given\n * as a number parameter) rather than propagating the `error` call.\n *\n * ![](retry.png)\n *\n * Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted\n * during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second\n * time and emits: [1, 2, 3, 4, 5] then the complete stream of emissions and notifications\n * would be: [1, 2, 1, 2, 3, 4, 5, `complete`].\n *\n * ## Example\n * ```ts\n * import { interval, of, throwError } from 'rxjs';\n * import { mergeMap, retry } from 'rxjs/operators';\n *\n * const source = interval(1000);\n * const example = source.pipe(\n * mergeMap(val => {\n * if(val > 5){\n * return throwError('Error!');\n * }\n * return of(val);\n * }),\n * //retry 2 times on error\n * retry(2)\n * );\n *\n * const subscribe = example.subscribe({\n * next: val => console.log(val),\n * error: val => console.log(`${val}: Retried 2 times then quit!`)\n * });\n *\n * // Output:\n * // 0..1..2..3..4..5..\n * // 0..1..2..3..4..5..\n * // 0..1..2..3..4..5..\n * // \"Error!: Retried 2 times then quit!\"\n * ```\n *\n * @param {number} count - Number of retry attempts before failing.\n * @return {Observable} The source Observable modified with the retry logic.\n * @method retry\n * @owner Observable\n */\nexport function retry(count: number = -1): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new RetryOperator(count, source));\n}\n\nclass RetryOperator implements Operator {\n constructor(private count: number,\n private source: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RetrySubscriber extends Subscriber {\n constructor(destination: Subscriber,\n private count: number,\n private source: Observable) {\n super(destination);\n }\n error(err: any) {\n if (!this.isStopped) {\n const { source, count } = this;\n if (count === 0) {\n return super.error(err);\n } else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\n/**\n * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable\n * calls `error`, this method will emit the Throwable that caused the error to the Observable returned from `notifier`.\n * If that Observable calls `complete` or `error` then this method will call `complete` or `error` on the child\n * subscription. Otherwise this method will resubscribe to the source Observable.\n *\n * ![](retryWhen.png)\n *\n * @param {function(errors: Observable): Observable} notifier - Receives an Observable of notifications with which a\n * user can `complete` or `error`, aborting the retry.\n * @return {Observable} The source Observable modified with retry logic.\n * @method retryWhen\n * @owner Observable\n */\nexport function retryWhen(notifier: (errors: Observable) => Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new RetryWhenOperator(notifier, source));\n}\n\nclass RetryWhenOperator implements Operator {\n constructor(protected notifier: (errors: Observable) => Observable,\n protected source: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RetryWhenSubscriber extends SimpleOuterSubscriber {\n\n private errors?: Subject;\n private retries?: Observable;\n private retriesSubscription?: Subscription;\n\n constructor(destination: Subscriber,\n private notifier: (errors: Observable) => Observable,\n private source: Observable) {\n super(destination);\n }\n\n error(err: any) {\n if (!this.isStopped) {\n\n let errors = this.errors;\n let retries: any = this.retries;\n let retriesSubscription = this.retriesSubscription;\n\n if (!retries) {\n errors = new Subject();\n try {\n const { notifier } = this;\n retries = notifier(errors);\n } catch (e) {\n return super.error(e);\n }\n retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this));\n } else {\n this.errors = undefined;\n this.retriesSubscription = undefined;\n }\n\n this._unsubscribeAndRecycle();\n\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n\n errors!.next(err);\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { errors, retriesSubscription } = this;\n if (errors) {\n errors.unsubscribe();\n this.errors = undefined;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = undefined;\n }\n this.retries = undefined;\n }\n\n notifyNext(): void {\n const { _unsubscribe } = this;\n\n this._unsubscribe = null!;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n\n this.source.subscribe(this);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\n/**\n * Emits the most recently emitted value from the source Observable whenever\n * another Observable, the `notifier`, emits.\n *\n * It's like {@link sampleTime}, but samples whenever\n * the `notifier` Observable emits something.\n *\n * ![](sample.png)\n *\n * Whenever the `notifier` Observable emits a value or completes, `sample`\n * looks at the source Observable and emits whichever value it has most recently\n * emitted since the previous sampling, unless the source has not emitted\n * anything since the previous sampling. The `notifier` is subscribed to as soon\n * as the output Observable is subscribed.\n *\n * ## Example\n * On every click, sample the most recent \"seconds\" timer\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { sample } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const result = seconds.pipe(sample(clicks));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounce}\n * @see {@link sampleTime}\n * @see {@link throttle}\n *\n * @param {Observable} notifier The Observable to use for sampling the\n * source Observable.\n * @return {Observable} An Observable that emits the results of sampling the\n * values emitted by the source Observable whenever the notifier Observable\n * emits value or completes.\n * @method sample\n * @owner Observable\n */\nexport function sample(notifier: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SampleOperator(notifier));\n}\n\nclass SampleOperator implements Operator {\n constructor(private notifier: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n const sampleSubscriber = new SampleSubscriber(subscriber);\n const subscription = source.subscribe(sampleSubscriber);\n subscription.add(innerSubscribe(this.notifier, new SimpleInnerSubscriber(sampleSubscriber)));\n return subscription;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SampleSubscriber extends SimpleOuterSubscriber {\n private value?: T;\n private hasValue: boolean = false;\n\n protected _next(value: T) {\n this.value = value;\n this.hasValue = true;\n }\n\n notifyNext(): void {\n this.emitValue();\n }\n\n notifyComplete(): void {\n this.emitValue();\n }\n\n emitValue() {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next!(this.value!);\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Emits the most recently emitted value from the source Observable within\n * periodic time intervals.\n *\n * Samples the source Observable at periodic time\n * intervals, emitting what it samples.\n *\n * ![](sampleTime.png)\n *\n * `sampleTime` periodically looks at the source Observable and emits whichever\n * value it has most recently emitted since the previous sampling, unless the\n * source has not emitted anything since the previous sampling. The sampling\n * happens periodically in time every `period` milliseconds (or the time unit\n * defined by the optional `scheduler` argument). The sampling starts as soon as\n * the output Observable is subscribed.\n *\n * ## Example\n * Every second, emit the most recent click at most once\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { sampleTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(sampleTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sample}\n * @see {@link throttleTime}\n *\n * @param {number} period The sampling period expressed in milliseconds or the\n * time unit determined internally by the optional `scheduler`.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the sampling.\n * @return {Observable} An Observable that emits the results of sampling the\n * values emitted by the source Observable at the specified time interval.\n * @method sampleTime\n * @owner Observable\n */\nexport function sampleTime(period: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SampleTimeOperator(period, scheduler));\n}\n\nclass SampleTimeOperator implements Operator {\n constructor(private period: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SampleTimeSubscriber extends Subscriber {\n lastValue: T;\n hasValue: boolean = false;\n\n constructor(destination: Subscriber,\n private period: number,\n private scheduler: SchedulerLike) {\n super(destination);\n this.add(scheduler.schedule(dispatchNotification, period, { subscriber: this, period }));\n }\n\n protected _next(value: T) {\n this.lastValue = value;\n this.hasValue = true;\n }\n\n notifyNext() {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n }\n}\n\nfunction dispatchNotification(this: SchedulerAction, state: any) {\n let { subscriber, period } = state;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\n\nimport { Observer, OperatorFunction } from '../types';\n\n/**\n * Compares all values of two observables in sequence using an optional comparator function\n * and returns an observable of a single boolean value representing whether or not the two sequences\n * are equal.\n *\n * Checks to see of all values emitted by both observables are equal, in order.\n *\n * ![](sequenceEqual.png)\n *\n * `sequenceEqual` subscribes to two observables and buffers incoming values from each observable. Whenever either\n * observable emits a value, the value is buffered and the buffers are shifted and compared from the bottom\n * up; If any value pair doesn't match, the returned observable will emit `false` and complete. If one of the\n * observables completes, the operator will wait for the other observable to complete; If the other\n * observable emits before completing, the returned observable will emit `false` and complete. If one observable never\n * completes or emits after the other complets, the returned observable will never complete.\n *\n * ## Example\n * figure out if the Konami code matches\n * ```ts\n * import { from, fromEvent } from 'rxjs';\n * import { sequenceEqual, bufferCount, mergeMap, map } from 'rxjs/operators';\n *\n * const codes = from([\n * 'ArrowUp',\n * 'ArrowUp',\n * 'ArrowDown',\n * 'ArrowDown',\n * 'ArrowLeft',\n * 'ArrowRight',\n * 'ArrowLeft',\n * 'ArrowRight',\n * 'KeyB',\n * 'KeyA',\n * 'Enter', // no start key, clearly.\n * ]);\n *\n * const keys = fromEvent(document, 'keyup').pipe(map(e => e.code));\n * const matches = keys.pipe(\n * bufferCount(11, 1),\n * mergeMap(\n * last11 => from(last11).pipe(sequenceEqual(codes)),\n * ),\n * );\n * matches.subscribe(matched => console.log('Successful cheat at Contra? ', matched));\n * ```\n *\n * @see {@link combineLatest}\n * @see {@link zip}\n * @see {@link withLatestFrom}\n *\n * @param {Observable} compareTo The observable sequence to compare the source sequence to.\n * @param {function} [comparator] An optional function to compare each value pair\n * @return {Observable} An Observable of a single boolean value representing whether or not\n * the values emitted by both observables were equal in sequence.\n * @method sequenceEqual\n * @owner Observable\n */\nexport function sequenceEqual(compareTo: Observable,\n comparator?: (a: T, b: T) => boolean): OperatorFunction {\n return (source: Observable) => source.lift(new SequenceEqualOperator(compareTo, comparator));\n}\n\nexport class SequenceEqualOperator implements Operator {\n constructor(private compareTo: Observable,\n private comparator: (a: T, b: T) => boolean) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SequenceEqualSubscriber extends Subscriber {\n private _a: T[] = [];\n private _b: T[] = [];\n private _oneComplete = false;\n\n constructor(destination: Observer,\n private compareTo: Observable,\n private comparator: (a: T, b: T) => boolean) {\n super(destination);\n (this.destination as Subscription).add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this)));\n }\n\n protected _next(value: T): void {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n } else {\n this._a.push(value);\n this.checkValues();\n }\n }\n\n public _complete(): void {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n } else {\n this._oneComplete = true;\n }\n this.unsubscribe();\n }\n\n checkValues() {\n const { _a, _b, comparator } = this;\n while (_a.length > 0 && _b.length > 0) {\n let a = _a.shift();\n let b = _b.shift();\n let areEqual = false;\n try {\n areEqual = comparator ? comparator(a, b) : a === b;\n } catch (e) {\n this.destination.error(e);\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n }\n\n emit(value: boolean) {\n const { destination } = this;\n destination.next(value);\n destination.complete();\n }\n\n nextB(value: T) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n } else {\n this._b.push(value);\n this.checkValues();\n }\n }\n\n completeB() {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n } else {\n this._oneComplete = true;\n }\n }\n}\n\nclass SequenceEqualCompareToSubscriber extends Subscriber {\n constructor(destination: Observer, private parent: SequenceEqualSubscriber) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this.parent.nextB(value);\n }\n\n protected _error(err: any): void {\n this.parent.error(err);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.parent.completeB();\n this.unsubscribe();\n }\n}\n","import { Observable } from '../Observable';\nimport { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\n\nimport { MonoTypeOperatorFunction } from '../types';\n\nfunction shareSubjectFactory() {\n return new Subject();\n}\n\n/**\n * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one\n * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will\n * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`.\n * This is an alias for `multicast(() => new Subject()), refCount()`.\n *\n * ![](share.png)\n *\n * @return {Observable} An Observable that upon connection causes the source Observable to emit items to its Observers.\n * @method share\n * @owner Observable\n */\nexport function share(): MonoTypeOperatorFunction {\n return (source: Observable) => refCount()(multicast(shareSubjectFactory)(source)) as Observable;\n}\n","import { Observable } from '../Observable';\nimport { ReplaySubject } from '../ReplaySubject';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\n\nexport interface ShareReplayConfig {\n bufferSize?: number;\n windowTime?: number;\n refCount: boolean;\n scheduler?: SchedulerLike;\n}\n\n/**\n * Share source and replay specified number of emissions on subscription.\n *\n * This operator is a specialization of `replay` that connects to a source observable\n * and multicasts through a `ReplaySubject` constructed with the specified arguments.\n * A successfully completed source will stay cached in the `shareReplayed observable` forever,\n * but an errored source can be retried.\n *\n * ## Why use shareReplay?\n * You generally want to use `shareReplay` when you have side-effects or taxing computations\n * that you do not wish to be executed amongst multiple subscribers.\n * It may also be valuable in situations where you know you will have late subscribers to\n * a stream that need access to previously emitted values.\n * This ability to replay values on subscription is what differentiates {@link share} and `shareReplay`.\n *\n * ![](shareReplay.png)\n *\n * ## Example\n * ```ts\n * import { interval } from 'rxjs';\n * import { shareReplay, take } from 'rxjs/operators';\n *\n * const obs$ = interval(1000);\n * const shared$ = obs$.pipe(\n * take(4),\n * shareReplay(3)\n * );\n * shared$.subscribe(x => console.log('source A: ', x));\n * shared$.subscribe(y => console.log('source B: ', y));\n *\n * ```\n *\n * @see {@link publish}\n * @see {@link share}\n * @see {@link publishReplay}\n *\n * @param {Number} [bufferSize=Number.POSITIVE_INFINITY] Maximum element count of the replay buffer.\n * @param {Number} [windowTime=Number.POSITIVE_INFINITY] Maximum time length of the replay buffer in milliseconds.\n * @param {Scheduler} [scheduler] Scheduler where connected observers within the selector function\n * will be invoked on.\n * @return {Observable} An observable sequence that contains the elements of a sequence produced\n * by multicasting the source sequence within a selector function.\n * @method shareReplay\n * @owner Observable\n */\nexport function shareReplay(config: ShareReplayConfig): MonoTypeOperatorFunction;\nexport function shareReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function shareReplay(\n configOrBufferSize?: ShareReplayConfig | number,\n windowTime?: number,\n scheduler?: SchedulerLike\n): MonoTypeOperatorFunction {\n let config: ShareReplayConfig;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize as ShareReplayConfig;\n } else {\n config = {\n bufferSize: configOrBufferSize as number | undefined,\n windowTime,\n refCount: false,\n scheduler\n };\n }\n return (source: Observable) => source.lift(shareReplayOperator(config));\n}\n\nfunction shareReplayOperator({\n bufferSize = Number.POSITIVE_INFINITY,\n windowTime = Number.POSITIVE_INFINITY,\n refCount: useRefCount,\n scheduler\n}: ShareReplayConfig) {\n let subject: ReplaySubject | undefined;\n let refCount = 0;\n let subscription: Subscription | undefined;\n let hasError = false;\n let isComplete = false;\n\n return function shareReplayOperation(this: Subscriber, source: Observable) {\n refCount++;\n let innerSub: Subscription;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n innerSub = subject.subscribe(this);\n subscription = source.subscribe({\n next(value) { subject.next(value); },\n error(err) {\n hasError = true;\n subject.error(err);\n },\n complete() {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n },\n });\n } else {\n innerSub = subject.subscribe(this);\n }\n\n this.add(() => {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\n\nimport { Observer, MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that emits the single item emitted by the source Observable that matches a specified\n * predicate, if that Observable emits one such item. If the source Observable emits more than one such item or no\n * items, notify of an IllegalArgumentException or NoSuchElementException respectively. If the source Observable\n * emits items but none match the specified predicate then `undefined` is emitted.\n *\n * Like {@link first}, but emit with error notification if there is more than one value.\n * ![](single.png)\n *\n * ## Example\n * emits 'error'\n * ```ts\n * import { range } from 'rxjs';\n * import { single } from 'rxjs/operators';\n *\n * const numbers = range(1,5).pipe(single());\n * numbers.subscribe(x => console.log('never get called'), e => console.log('error'));\n * // result\n * // 'error'\n * ```\n *\n * emits 'undefined'\n * ```ts\n * import { range } from 'rxjs';\n * import { single } from 'rxjs/operators';\n *\n * const numbers = range(1,5).pipe(single(x => x === 10));\n * numbers.subscribe(x => console.log(x));\n * // result\n * // 'undefined'\n * ```\n *\n * @see {@link first}\n * @see {@link find}\n * @see {@link findIndex}\n * @see {@link elementAt}\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n * @param {Function} predicate - A predicate function to evaluate items emitted by the source Observable.\n * @return {Observable} An Observable that emits the single item emitted by the source Observable that matches\n * the predicate or `undefined` when no items match.\n *\n * @method single\n * @owner Observable\n */\nexport function single(predicate?: (value: T, index: number, source: Observable) => boolean): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SingleOperator(predicate, source));\n}\n\nclass SingleOperator implements Operator {\n constructor(private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SingleSubscriber extends Subscriber {\n private seenValue: boolean = false;\n private singleValue: T;\n private index: number = 0;\n\n constructor(destination: Observer,\n private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n super(destination);\n }\n\n private applySingleValue(value: T): void {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n } else {\n this.seenValue = true;\n this.singleValue = value;\n }\n }\n\n protected _next(value: T): void {\n const index = this.index++;\n\n if (this.predicate) {\n this.tryNext(value, index);\n } else {\n this.applySingleValue(value);\n }\n }\n\n private tryNext(value: T, index: number): void {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n } catch (err) {\n this.destination.error(err);\n }\n }\n\n protected _complete(): void {\n const destination = this.destination;\n\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n } else {\n destination.error(new EmptyError);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that skips the first `count` items emitted by the source Observable.\n *\n * ![](skip.png)\n *\n * @param {Number} count - The number of times, items emitted by source Observable should be skipped.\n * @return {Observable} An Observable that skips values emitted by the source Observable.\n *\n * @method skip\n * @owner Observable\n */\nexport function skip(count: number): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipOperator(count));\n}\n\nclass SkipOperator implements Operator {\n constructor(private total: number) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipSubscriber extends Subscriber {\n count: number = 0;\n\n constructor(destination: Subscriber, private total: number) {\n super(destination);\n }\n\n protected _next(x: T) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Skip the last `count` values emitted by the source Observable.\n *\n * ![](skipLast.png)\n *\n * `skipLast` returns an Observable that accumulates a queue with a length\n * enough to store the first `count` values. As more values are received,\n * values are taken from the front of the queue and produced on the result\n * sequence. This causes values to be delayed.\n *\n * ## Example\n * Skip the last 2 values of an Observable with many values\n * ```ts\n * import { range } from 'rxjs';\n * import { skipLast } from 'rxjs/operators';\n *\n * const many = range(1, 5);\n * const skipLastTwo = many.pipe(skipLast(2));\n * skipLastTwo.subscribe(x => console.log(x));\n *\n * // Results in:\n * // 1 2 3\n * ```\n *\n * @see {@link skip}\n * @see {@link skipUntil}\n * @see {@link skipWhile}\n * @see {@link take}\n *\n * @throws {ArgumentOutOfRangeError} When using `skipLast(i)`, it throws\n * ArgumentOutOrRangeError if `i < 0`.\n *\n * @param {number} count Number of elements to skip from the end of the source Observable.\n * @returns {Observable} An Observable that skips the last count values\n * emitted by the source Observable.\n * @method skipLast\n * @owner Observable\n */\nexport function skipLast(count: number): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipLastOperator(count));\n}\n\nclass SkipLastOperator implements Operator {\n constructor(private _skipCount: number) {\n if (this._skipCount < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n if (this._skipCount === 0) {\n // If we don't want to skip any values then just subscribe\n // to Subscriber without any further logic.\n return source.subscribe(new Subscriber(subscriber));\n } else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipLastSubscriber extends Subscriber {\n private _ring: T[];\n private _count: number = 0;\n\n constructor(destination: Subscriber, private _skipCount: number) {\n super(destination);\n this._ring = new Array(_skipCount);\n }\n\n protected _next(value: T): void {\n const skipCount = this._skipCount;\n const count = this._count++;\n\n if (count < skipCount) {\n this._ring[count] = value;\n } else {\n const currentIndex = count % skipCount;\n const ring = this._ring;\n const oldValue = ring[currentIndex];\n\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic, ObservableInput } from '../types';\nimport { Subscription } from '../Subscription';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\n\n/**\n * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item.\n *\n * The `skipUntil` operator causes the observable stream to skip the emission of values ​​until the passed in observable emits the first value.\n * This can be particularly useful in combination with user interactions, responses of http requests or waiting for specific times to pass by.\n *\n * ![](skipUntil.png)\n *\n * Internally the `skipUntil` operator subscribes to the passed in observable (in the following called *notifier*) in order to recognize the emission\n * of its first value. When this happens, the operator unsubscribes from the *notifier* and starts emitting the values of the *source*\n * observable. It will never let the *source* observable emit any values if the *notifier* completes or throws an error without emitting\n * a value before.\n *\n * ## Example\n *\n * In the following example, all emitted values ​​of the interval observable are skipped until the user clicks anywhere within the page.\n *\n * ```ts\n * import { interval, fromEvent } from 'rxjs';\n * import { skipUntil } from 'rxjs/operators';\n *\n * const intervalObservable = interval(1000);\n * const click = fromEvent(document, 'click');\n *\n * const emitAfterClick = intervalObservable.pipe(\n * skipUntil(click)\n * );\n * // clicked at 4.6s. output: 5...6...7...8........ or\n * // clicked at 7.3s. output: 8...9...10..11.......\n * const subscribe = emitAfterClick.subscribe(value => console.log(value));\n * ```\n *\n * @param {Observable} notifier - The second Observable that has to emit an item before the source Observable's elements begin to\n * be mirrored by the resulting Observable.\n * @return {Observable} An Observable that skips items from the source Observable until the second Observable emits\n * an item, then emits the remaining items.\n * @method skipUntil\n * @owner Observable\n */\nexport function skipUntil(notifier: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipUntilOperator(notifier));\n}\n\nclass SkipUntilOperator implements Operator {\n constructor(private notifier: Observable) {\n }\n\n call(destination: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipUntilSubscriber extends SimpleOuterSubscriber {\n\n private hasValue: boolean = false;\n private innerSubscription?: Subscription;\n\n constructor(destination: Subscriber, notifier: ObservableInput) {\n super(destination);\n const innerSubscriber = new SimpleInnerSubscriber(this);\n this.add(innerSubscriber);\n this.innerSubscription = innerSubscriber;\n const innerSubscription = innerSubscribe(notifier, innerSubscriber);\n // The returned subscription will usually be the subscriber that was\n // passed. However, interop subscribers will be wrapped and for\n // unsubscriptions to chain correctly, the wrapper needs to be added, too.\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n this.innerSubscription = innerSubscription;\n }\n }\n\n protected _next(value: T) {\n if (this.hasValue) {\n super._next(value);\n }\n }\n\n notifyNext(): void {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n }\n\n notifyComplete() {\n /* do nothing */\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds\n * true, but emits all further source items as soon as the condition becomes false.\n *\n * ![](skipWhile.png)\n *\n * @param {Function} predicate - A function to test each item emitted from the source Observable.\n * @return {Observable} An Observable that begins emitting items emitted by the source Observable when the\n * specified predicate becomes false.\n * @method skipWhile\n * @owner Observable\n */\nexport function skipWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipWhileOperator(predicate));\n}\n\nclass SkipWhileOperator implements Operator {\n constructor(private predicate: (value: T, index: number) => boolean) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipWhileSubscriber extends Subscriber {\n private skipping: boolean = true;\n private index: number = 0;\n\n constructor(destination: Subscriber,\n private predicate: (value: T, index: number) => boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n\n if (!this.skipping) {\n destination.next(value);\n }\n }\n\n private tryCallPredicate(value: T): void {\n try {\n const result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n } catch (err) {\n this.destination.error(err);\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nimport { MonoTypeOperatorFunction, OperatorFunction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(scheduler: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, v2: E, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, v2: E, v3: F, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, v2: E, v3: F, v4: G, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I, scheduler: SchedulerLike): OperatorFunction;\n\nexport function startWith(v1: D): OperatorFunction;\nexport function startWith(v1: D, v2: E): OperatorFunction;\nexport function startWith(v1: D, v2: E, v3: F): OperatorFunction;\nexport function startWith(v1: D, v2: E, v3: F, v4: G): OperatorFunction;\nexport function startWith(v1: D, v2: E, v3: F, v4: G, v5: H): OperatorFunction;\nexport function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I): OperatorFunction;\nexport function startWith(...array: D[]): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(...array: Array): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits the items you specify as arguments before it begins to emit\n * items emitted by the source Observable.\n *\n * First emits its arguments in order, and then any\n * emissions from the source.\n *\n * ![](startWith.png)\n *\n * ## Examples\n *\n * Start the chain of emissions with `\"first\"`, `\"second\"`\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { startWith } from 'rxjs/operators';\n *\n * of(\"from source\")\n * .pipe(startWith(\"first\", \"second\"))\n * .subscribe(x => console.log(x));\n *\n * // results:\n * // \"first\"\n * // \"second\"\n * // \"from source\"\n * ```\n *\n * @param {...T} values - Items you want the modified Observable to emit first.\n * @param {SchedulerLike} [scheduler] - A {@link SchedulerLike} to use for scheduling\n * the emissions of the `next` notifications.\n * @return {Observable} An Observable that emits the items in the specified Iterable and then emits the items\n * emitted by the source Observable.\n * @method startWith\n * @owner Observable\n */\nexport function startWith(...array: Array): OperatorFunction {\n const scheduler = array[array.length - 1] as SchedulerLike;\n if (isScheduler(scheduler)) {\n // deprecated path\n array.pop();\n return (source: Observable) => concat(array as T[], source, scheduler);\n } else {\n return (source: Observable) => concat(array as T[], source);\n }\n}\n","import { SchedulerLike, SchedulerAction } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\n\nexport interface DispatchArg {\n source: Observable;\n subscriber: Subscriber;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nexport class SubscribeOnObservable extends Observable {\n /** @nocollapse */\n static create(source: Observable, delay: number = 0, scheduler: SchedulerLike = asap): Observable {\n return new SubscribeOnObservable(source, delay, scheduler);\n }\n\n /** @nocollapse */\n static dispatch(this: SchedulerAction, arg: DispatchArg): Subscription {\n const { source, subscriber } = arg;\n return this.add(source.subscribe(subscriber));\n }\n\n constructor(public source: Observable,\n private delayTime: number = 0,\n private scheduler: SchedulerLike = asap) {\n super();\n if (!isNumeric(delayTime) || delayTime < 0) {\n this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n this.scheduler = asap;\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n const delay = this.delayTime;\n const source = this.source;\n const scheduler = this.scheduler;\n\n return scheduler.schedule>(SubscribeOnObservable.dispatch, delay, {\n source, subscriber\n });\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nimport { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}.\n *\n * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to.\n *\n * Schedulers control the speed and order of emissions to observers from an Observable stream.\n *\n * ![](subscribeOn.png)\n *\n * ## Example\n * Given the following code:\n * ```javascript\n * import { of, merge } from 'rxjs';\n *\n * const a = of(1, 2, 3, 4);\n * const b = of(5, 6, 7, 8, 9);\n * merge(a, b).subscribe(console.log);\n * ```\n *\n * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to.\n * This will result in the output of `1 2 3 4 5 6 7 8 9`.\n *\n * But if we instead us the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emited by Observable `a`:\n * ```javascript\n * import { of, merge, asyncScheduler } from 'rxjs';\n * import { subscribeOn } from 'rxjs/operators';\n *\n * const a = of(1, 2, 3, 4).pipe(subscribeOn(asyncScheduler));\n * const b = of(5, 6, 7, 8, 9);\n * merge(a, b).subscribe(console.log);\n * ```\n *\n * The output will instead be `5 6 7 8 9 1 2 3 4`.\n * The reason for this is that Observable `b` emits its values directly and synchronously like before\n * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable.\n *\n * @param {SchedulerLike} scheduler - The {@link SchedulerLike} to perform subscription actions on.\n * @return {Observable} The source Observable modified so that its subscriptions happen on the specified {@link SchedulerLike}.\n .\n * @method subscribeOn\n * @owner Observable\n */\nexport function subscribeOn(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction {\n return function subscribeOnOperatorFunction(source: Observable): Observable {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\n\nclass SubscribeOnOperator implements Operator {\n constructor(private scheduler: SchedulerLike,\n private delay: number) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return new SubscribeOnObservable(\n source, this.delay, this.scheduler\n ).subscribe(subscriber);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\n\n/* tslint:disable:max-line-length */\nexport function switchMap>(project: (value: T, index: number) => O): OperatorFunction>;\n/** @deprecated resultSelector is no longer supported, use inner map instead */\nexport function switchMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>;\n/** @deprecated resultSelector is no longer supported, use inner map instead */\nexport function switchMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, emitting values only from the most recently projected Observable.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables.\n *\n * ![](switchMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each time it observes one of these\n * inner Observables, the output Observable begins emitting the items emitted by\n * that inner Observable. When a new inner Observable is emitted, `switchMap`\n * stops emitting items from the earlier-emitted inner Observable and begins\n * emitting items from the new one. It continues to behave like this for\n * subsequent inner Observables.\n *\n * ## Example\n * Generate new Observable according to source Observable values\n * ```typescript\n * import { of } from 'rxjs';\n * import { switchMap } from 'rxjs/operators';\n *\n * const switched = of(1, 2, 3).pipe(switchMap((x: number) => of(x, x ** 2, x ** 3)));\n * switched.subscribe(x => console.log(x));\n * // outputs\n * // 1\n * // 1\n * // 1\n * // 2\n * // 4\n * // 8\n * // ... and so on\n * ```\n *\n * Rerun an interval Observable on every click event\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { switchMap } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(switchMap((ev) => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switchAll}\n * @see {@link switchMapTo}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional deprecated `resultSelector`) to each item\n * emitted by the source Observable and taking only the values from the most recently\n * projected inner Observable.\n * @method switchMap\n * @owner Observable\n */\nexport function switchMap>(\n project: (value: T, index: number) => O,\n resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R,\n): OperatorFunction|R> {\n if (typeof resultSelector === 'function') {\n return (source: Observable) => source.pipe(\n switchMap((a, i) => from(project(a, i)).pipe(\n map((b, ii) => resultSelector(a, b, i, ii))\n ))\n );\n }\n return (source: Observable) => source.lift(new SwitchMapOperator(project));\n}\n\nclass SwitchMapOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SwitchMapSubscriber extends SimpleOuterSubscriber {\n private index = 0;\n private innerSubscription?: Subscription;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput) {\n super(destination);\n }\n\n protected _next(value: T) {\n let result: ObservableInput;\n const index = this.index++;\n try {\n result = this.project(value, index);\n } catch (error) {\n this.destination.error!(error);\n return;\n }\n this._innerSub(result);\n }\n\n private _innerSub(result: ObservableInput) {\n const innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination as Subscription;\n destination.add(innerSubscriber);\n this.innerSubscription = innerSubscribe(result, innerSubscriber);\n // The returned subscription will usually be the subscriber that was\n // passed. However, interop subscribers will be wrapped and for\n // unsubscriptions to chain correctly, the wrapper needs to be added, too.\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n }\n\n protected _complete(): void {\n const {innerSubscription} = this;\n if (!innerSubscription || innerSubscription.closed) {\n super._complete();\n }\n this.unsubscribe();\n }\n\n protected _unsubscribe() {\n this.innerSubscription = undefined;\n }\n\n notifyComplete(): void {\n this.innerSubscription = undefined;\n if (this.isStopped) {\n super._complete();\n }\n }\n\n notifyNext(innerValue: R): void {\n this.destination.next!(innerValue);\n }\n}\n","import {OperatorFunction, ObservableInput} from '../types';\nimport { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\n\nexport function switchAll(): OperatorFunction, T>;\nexport function switchAll(): OperatorFunction;\n\n/**\n * Converts a higher-order Observable into a first-order Observable\n * producing values only from the most recent observable sequence\n *\n * Flattens an Observable-of-Observables.\n *\n * ![](switchAll.png)\n *\n * `switchAll` subscribes to a source that is an observable of observables, also known as a\n * \"higher-order observable\" (or `Observable>`). It subscribes to the most recently\n * provided \"inner observable\" emitted by the source, unsubscribing from any previously subscribed\n * to inner observable, such that only the most recent inner observable may be subscribed to at\n * any point in time. The resulting observable returned by `switchAll` will only complete if the\n * source observable completes, *and* any currently subscribed to inner observable also has completed,\n * if there are any.\n *\n * ## Examples\n * Spawn a new interval observable for each click event, but for every new\n * click, cancel the previous interval and subscribe to the new one.\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { switchAll, map, tap } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click').pipe(tap(() => console.log('click')));\n * const source = clicks.pipe(map((ev) => interval(1000)));\n *\n * source.pipe(\n * switchAll()\n * ).subscribe(x => console.log(x));\n *\n * // Output\n * // click\n * // 1\n * // 2\n * // 3\n * // 4\n * // ...\n * // click\n * // 1\n * // 2\n * // 3\n * // ...\n * // click\n * // ...\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link exhaust}\n * @see {@link switchMap}\n * @see {@link switchMapTo}\n * @see {@link mergeAll}\n */\n\nexport function switchAll(): OperatorFunction, T> {\n return switchMap(identity);\n}\n","import { ObservableInput, OperatorFunction } from '../types';\nimport { switchMap } from './switchMap';\n\n/* tslint:disable:max-line-length */\nexport function switchMapTo(observable: ObservableInput): OperatorFunction;\n/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */\nexport function switchMapTo(observable: ObservableInput, resultSelector: undefined): OperatorFunction;\n/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */\nexport function switchMapTo(observable: ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to the same Observable which is flattened multiple\n * times with {@link switchMap} in the output Observable.\n *\n * It's like {@link switchMap}, but maps each value\n * always to the same inner Observable.\n *\n * ![](switchMapTo.png)\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then flattens those resulting Observables into one\n * single Observable, which is the output Observable. The output Observables\n * emits values only from the most recently emitted instance of\n * `innerObservable`.\n *\n * ## Example\n * Rerun an interval Observable on every click event\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { switchMapTo } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(switchMapTo(interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMapTo}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link mergeMapTo}\n *\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n * @return {Observable} An Observable that emits items from the given\n * `innerObservable` (and optionally transformed through the deprecated `resultSelector`)\n * every time a value is emitted on the source Observable, and taking only the values\n * from the most recently projected inner Observable.\n * @method switchMapTo\n * @owner Observable\n */\nexport function switchMapTo(\n innerObservable: ObservableInput,\n resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R\n): OperatorFunction {\n return resultSelector ? switchMap(() => innerObservable, resultSelector) : switchMap(() => innerObservable);\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe';\n\n/**\n * Emits the values emitted by the source Observable until a `notifier`\n * Observable emits a value.\n *\n * Lets values pass until a second Observable,\n * `notifier`, emits a value. Then, it completes.\n *\n * ![](takeUntil.png)\n *\n * `takeUntil` subscribes and begins mirroring the source Observable. It also\n * monitors a second Observable, `notifier` that you provide. If the `notifier`\n * emits a value, the output Observable stops mirroring the source Observable\n * and completes. If the `notifier` doesn't emit any value and completes\n * then `takeUntil` will pass all values.\n *\n * ## Example\n * Tick every second until the first click happens\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { takeUntil } from 'rxjs/operators';\n *\n * const source = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const result = source.pipe(takeUntil(clicks));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeLast}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @param {Observable} notifier The Observable whose first emitted value will\n * cause the output Observable of `takeUntil` to stop emitting values from the\n * source Observable.\n * @return {Observable} An Observable that emits the values from the source\n * Observable until such time as `notifier` emits its first value.\n * @method takeUntil\n * @owner Observable\n */\nexport function takeUntil(notifier: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new TakeUntilOperator(notifier));\n}\n\nclass TakeUntilOperator implements Operator {\n constructor(private notifier: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n const notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber));\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeUntilSubscriber extends SimpleOuterSubscriber {\n seenValue = false;\n\n constructor(destination: Subscriber, ) {\n super(destination);\n }\n\n notifyNext(): void {\n this.seenValue = true;\n this.complete();\n }\n\n notifyComplete(): void {\n // noop\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction, MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\nexport function takeWhile(predicate: (value: T, index: number) => value is S): OperatorFunction;\nexport function takeWhile(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction;\nexport function takeWhile(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction;\n\n/**\n * Emits values emitted by the source Observable so long as each value satisfies\n * the given `predicate`, and then completes as soon as this `predicate` is not\n * satisfied.\n *\n * Takes values from the source only while they pass the\n * condition given. When the first value does not satisfy, it completes.\n *\n * ![](takeWhile.png)\n *\n * `takeWhile` subscribes and begins mirroring the source Observable. Each value\n * emitted on the source is given to the `predicate` function which returns a\n * boolean, representing a condition to be satisfied by the source values. The\n * output Observable emits the source values until such time as the `predicate`\n * returns false, at which point `takeWhile` stops mirroring the source\n * Observable and completes the output Observable.\n *\n * ## Example\n * Emit click events only while the clientX property is greater than 200\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { takeWhile } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(takeWhile(ev => ev.clientX > 200));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates a value emitted by the source Observable and returns a boolean.\n * Also takes the (zero-based) index as the second argument.\n * @param {boolean} inclusive When set to `true` the value that caused\n * `predicate` to return `false` will also be emitted.\n * @return {Observable} An Observable that emits the values from the source\n * Observable so long as each value satisfies the condition defined by the\n * `predicate`, then completes.\n * @method takeWhile\n * @owner Observable\n */\nexport function takeWhile(\n predicate: (value: T, index: number) => boolean,\n inclusive = false): MonoTypeOperatorFunction {\n return (source: Observable) =>\n source.lift(new TakeWhileOperator(predicate, inclusive));\n}\n\nclass TakeWhileOperator implements Operator {\n constructor(\n private predicate: (value: T, index: number) => boolean,\n private inclusive: boolean) {}\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(\n new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeWhileSubscriber extends Subscriber {\n private index: number = 0;\n\n constructor(\n destination: Subscriber,\n private predicate: (value: T, index: number) => boolean,\n private inclusive: boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const destination = this.destination;\n let result: boolean;\n try {\n result = this.predicate(value, this.index++);\n } catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n }\n\n private nextOrComplete(value: T, predicateResult: boolean): void {\n const destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n } else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, PartialObserver, TeardownLogic } from '../types';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Use an observer instead of a complete callback */\nexport function tap(next: null | undefined, error: null | undefined, complete: () => void): MonoTypeOperatorFunction;\n/** @deprecated Use an observer instead of an error callback */\nexport function tap(next: null | undefined, error: (error: any) => void, complete?: () => void): MonoTypeOperatorFunction;\n/** @deprecated Use an observer instead of a complete callback */\nexport function tap(next: (value: T) => void, error: null | undefined, complete: () => void): MonoTypeOperatorFunction;\nexport function tap(next?: (x: T) => void, error?: (e: any) => void, complete?: () => void): MonoTypeOperatorFunction;\nexport function tap(observer: PartialObserver): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Perform a side effect for every emission on the source Observable, but return\n * an Observable that is identical to the source.\n *\n * Intercepts each emission on the source and runs a\n * function, but returns an output which is identical to the source as long as errors don't occur.\n *\n * ![](do.png)\n *\n * Returns a mirrored Observable of the source Observable, but modified so that\n * the provided Observer is called to perform a side effect for every value,\n * error, and completion emitted by the source. Any errors that are thrown in\n * the aforementioned Observer or handlers are safely sent down the error path\n * of the output Observable.\n *\n * This operator is useful for debugging your Observables for the correct values\n * or performing other side effects.\n *\n * Note: this is different to a `subscribe` on the Observable. If the Observable\n * returned by `tap` is not subscribed, the side effects specified by the\n * Observer will never happen. `tap` therefore simply spies on existing\n * execution, it does not trigger an execution to happen like `subscribe` does.\n *\n * ## Example\n * Map every click to the clientX position of that click, while also logging the click event\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { tap, map } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const positions = clicks.pipe(\n * tap(ev => console.log(ev)),\n * map(ev => ev.clientX),\n * );\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n * @see {@link Observable#subscribe}\n *\n * @param {Observer|function} [nextOrObserver] A normal Observer object or a\n * callback for `next`.\n * @param {function} [error] Callback for errors in the source.\n * @param {function} [complete] Callback for the completion of the source.\n * @return {Observable} An Observable identical to the source, but runs the\n * specified Observer or callback(s) for each item.\n * @name tap\n */\nexport function tap(nextOrObserver?: PartialObserver | ((x: T) => void),\n error?: (e: any) => void,\n complete?: () => void): MonoTypeOperatorFunction {\n return function tapOperatorFunction(source: Observable): Observable {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\n\nclass DoOperator implements Operator {\n constructor(private nextOrObserver?: PartialObserver | ((x: T) => void),\n private error?: (e: any) => void,\n private complete?: () => void) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\n\nclass TapSubscriber extends Subscriber {\n private _context: any;\n\n private _tapNext: ((value: T) => void) = noop;\n\n private _tapError: ((err: any) => void) = noop;\n\n private _tapComplete: (() => void) = noop;\n\n constructor(destination: Subscriber,\n observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super(destination);\n this._tapError = error || noop;\n this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n this._context = this;\n this._tapNext = observerOrNext;\n } else if (observerOrNext) {\n this._context = observerOrNext;\n this._tapNext = observerOrNext.next || noop;\n this._tapError = observerOrNext.error || noop;\n this._tapComplete = observerOrNext.complete || noop;\n }\n }\n\n _next(value: T) {\n try {\n this._tapNext.call(this._context, value);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n }\n\n _error(err: any) {\n try {\n this._tapError.call(this._context, err);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n }\n\n _complete() {\n try {\n this._tapComplete.call(this._context, );\n } catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\n\nimport { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\nexport interface ThrottleConfig {\n leading?: boolean;\n trailing?: boolean;\n}\n\nexport const defaultThrottleConfig: ThrottleConfig = {\n leading: true,\n trailing: false\n};\n\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for a duration determined by another Observable, then repeats this\n * process.\n *\n * It's like {@link throttleTime}, but the silencing\n * duration is determined by a second Observable.\n *\n * ![](throttle.png)\n *\n * `throttle` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled by calling the `durationSelector` function with the source value,\n * which returns the \"duration\" Observable. When the duration Observable emits a\n * value or completes, the timer is disabled, and this process repeats for the\n * next source value.\n *\n * ## Example\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { throttle } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttle(ev => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounce}\n * @see {@link delayWhen}\n * @see {@link sample}\n * @see {@link throttleTime}\n *\n * @param {function(value: T): SubscribableOrPromise} durationSelector A function\n * that receives a value from the source Observable, for computing the silencing\n * duration for each source value, returned as an Observable or a Promise.\n * @param {Object} config a configuration object to define `leading` and `trailing` behavior. Defaults\n * to `{ leading: true, trailing: false }`.\n * @return {Observable} An Observable that performs the throttle operation to\n * limit the rate of emissions from the source.\n * @method throttle\n * @owner Observable\n */\nexport function throttle(durationSelector: (value: T) => SubscribableOrPromise,\n config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing));\n}\n\nclass ThrottleOperator implements Operator {\n constructor(private durationSelector: (value: T) => SubscribableOrPromise,\n private leading: boolean,\n private trailing: boolean) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(\n new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)\n );\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc\n * @ignore\n * @extends {Ignored}\n */\nclass ThrottleSubscriber extends SimpleOuterSubscriber {\n private _throttled?: Subscription;\n private _sendValue?: T;\n private _hasValue = false;\n\n constructor(protected destination: Subscriber,\n private durationSelector: (value: T) => SubscribableOrPromise,\n private _leading: boolean,\n private _trailing: boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this._hasValue = true;\n this._sendValue = value;\n\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n } else {\n this.throttle(value);\n }\n }\n }\n\n private send() {\n const { _hasValue, _sendValue } = this;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue!);\n }\n this._hasValue = false;\n this._sendValue = undefined;\n }\n\n private throttle(value: T): void {\n const duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = innerSubscribe(duration, new SimpleInnerSubscriber(this)));\n }\n }\n\n private tryDurationSelector(value: T): SubscribableOrPromise | null {\n try {\n return this.durationSelector(value);\n } catch (err) {\n this.destination.error(err);\n return null;\n }\n }\n\n private throttlingDone() {\n const { _throttled, _trailing } = this;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = undefined;\n\n if (_trailing) {\n this.send();\n }\n }\n\n notifyNext(): void {\n this.throttlingDone();\n }\n\n notifyComplete(): void {\n this.throttlingDone();\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { async } from '../scheduler/async';\nimport { Observable } from '../Observable';\nimport { ThrottleConfig, defaultThrottleConfig } from './throttle';\nimport { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for `duration` milliseconds, then repeats this process.\n *\n * Lets a value pass, then ignores source values for the\n * next `duration` milliseconds.\n *\n * ![](throttleTime.png)\n *\n * `throttleTime` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled. After `duration` milliseconds (or the time unit determined\n * internally by the optional `scheduler`) has passed, the timer is disabled,\n * and this process repeats for the next source value. Optionally takes a\n * {@link SchedulerLike} for managing timers.\n *\n * ## Examples\n *\n * #### Limit click rate\n *\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { throttleTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttleTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * #### Double Click\n *\n * The following example only emits clicks which happen within a subsequent\n * delay of 400ms of the previous click. This for example can emulate a double\n * click. It makes use of the `trailing` parameter of the throttle configuration.\n *\n * ```ts\n * import { fromEvent, asyncScheduler } from 'rxjs';\n * import { throttleTime, withLatestFrom } from 'rxjs/operators';\n *\n * // defaultThottleConfig = { leading: true, trailing: false }\n * const throttleConfig = {\n * leading: false,\n * trailing: true\n * }\n *\n * const click = fromEvent(document, 'click');\n * const doubleClick = click.pipe(\n * throttleTime(400, asyncScheduler, throttleConfig)\n * );\n *\n * doubleClick.subscribe((throttleValue: Event) => {\n * console.log(`Double-clicked! Timestamp: ${throttleValue.timeStamp}`);\n * });\n * ```\n *\n * If you enable the `leading` parameter in this example, the output would be the primary click and\n * the double click, but restricts additional clicks within 400ms.\n *\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttle}\n *\n * @param {number} duration Time to wait before emitting another value after\n * emitting the last value, measured in milliseconds or the time unit determined\n * internally by the optional `scheduler`.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the throttling.\n * @param {Object} config a configuration object to define `leading` and\n * `trailing` behavior. Defaults to `{ leading: true, trailing: false }`.\n * @return {Observable} An Observable that performs the throttle operation to\n * limit the rate of emissions from the source.\n * @method throttleTime\n * @owner Observable\n */\nexport function throttleTime(duration: number,\n scheduler: SchedulerLike = async,\n config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing));\n}\n\nclass ThrottleTimeOperator implements Operator {\n constructor(private duration: number,\n private scheduler: SchedulerLike,\n private leading: boolean,\n private trailing: boolean) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(\n new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)\n );\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ThrottleTimeSubscriber extends Subscriber {\n private throttled: Subscription;\n private _hasTrailingValue: boolean = false;\n private _trailingValue: T = null;\n\n constructor(destination: Subscriber,\n private duration: number,\n private scheduler: SchedulerLike,\n private leading: boolean,\n private trailing: boolean) {\n super(destination);\n }\n\n protected _next(value: T) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n } else {\n this.add(this.throttled = this.scheduler.schedule>(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n } else if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n }\n\n protected _complete() {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n } else {\n this.destination.complete();\n }\n }\n\n clearThrottle() {\n const throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n }\n}\n\ninterface DispatchArg {\n subscriber: ThrottleTimeSubscriber;\n}\n\nfunction dispatchNext(arg: DispatchArg) {\n const { subscriber } = arg;\n subscriber.clearThrottle();\n}\n","\nimport { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { SchedulerLike, OperatorFunction } from '../types';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\n\n/**\n *\n * Emits an object containing the current value, and the time that has\n * passed between emitting the current value and the previous value, which is\n * calculated by using the provided `scheduler`'s `now()` method to retrieve\n * the current time at each emission, then calculating the difference. The `scheduler`\n * defaults to {@link asyncScheduler}, so by default, the `interval` will be in\n * milliseconds.\n *\n * Convert an Observable that emits items into one that\n * emits indications of the amount of time elapsed between those emissions.\n *\n * ![](timeinterval.png)\n *\n * ## Examples\n * Emit inteval between current value with the last value\n *\n * ```ts\n * const seconds = interval(1000);\n *\n * seconds.pipe(timeInterval())\n * .subscribe(\n * value => console.log(value),\n * err => console.log(err),\n * );\n *\n * seconds.pipe(timeout(900))\n * .subscribe(\n * value => console.log(value),\n * err => console.log(err),\n * );\n *\n * // NOTE: The values will never be this precise,\n * // intervals created with `interval` or `setInterval`\n * // are non-deterministic.\n *\n * // {value: 0, interval: 1000}\n * // {value: 1, interval: 1000}\n * // {value: 2, interval: 1000}\n * ```\n *\n * @param {SchedulerLike} [scheduler] Scheduler used to get the current time.\n * @return {Observable<{ interval: number, value: T }>} Observable that emit infomation about value and interval\n * @method timeInterval\n */\nexport function timeInterval(scheduler: SchedulerLike = async): OperatorFunction> {\n return (source: Observable) => defer(() => {\n return source.pipe(\n // TODO(benlesh): correct these typings.\n scan(\n ({ current }, value) => ({ value, current: scheduler.now(), last: current }),\n { current: scheduler.now(), value: undefined, last: undefined }\n ) as any,\n map>(({ current, last, value }) => new TimeInterval(value, current - last)),\n );\n });\n}\n\n// TODO(benlesh): make this an interface, export the interface, but not the implemented class,\n// there's no reason users should be manually creating this type.\n\n/**\n * @deprecated exposed API, use as interface only.\n */\nexport class TimeInterval {\n constructor(public value: T, public interval: number) {}\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { Observable } from '../Observable';\nimport { isDate } from '../util/isDate';\nimport { ObservableInput, OperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\n/* tslint:disable:max-line-length */\nexport function timeoutWith(due: number | Date, withObservable: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n *\n * Errors if Observable does not emit a value in given time span, in case of which\n * subscribes to the second Observable.\n *\n * It's a version of `timeout` operator that let's you specify fallback Observable.\n *\n * ![](timeoutWith.png)\n *\n * `timeoutWith` is a variation of `timeout` operator. It behaves exactly the same,\n * still accepting as a first argument either a number or a Date, which control - respectively -\n * when values of source Observable should be emitted or when it should complete.\n *\n * The only difference is that it accepts a second, required parameter. This parameter\n * should be an Observable which will be subscribed when source Observable fails any timeout check.\n * So whenever regular `timeout` would emit an error, `timeoutWith` will instead start re-emitting\n * values from second Observable. Note that this fallback Observable is not checked for timeouts\n * itself, so it can emit values and complete at arbitrary points in time. From the moment of a second\n * subscription, Observable returned from `timeoutWith` simply mirrors fallback stream. When that\n * stream completes, it completes as well.\n *\n * Scheduler, which in case of `timeout` is provided as as second argument, can be still provided\n * here - as a third, optional parameter. It still is used to schedule timeout checks and -\n * as a consequence - when second Observable will be subscribed, since subscription happens\n * immediately after failing check.\n *\n * ## Example\n * Add fallback observable\n * ```ts\n * import { interval } from 'rxjs';\n * import { timeoutWith } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n * const minutes = interval(60 * 1000);\n *\n * seconds.pipe(timeoutWith(900, minutes))\n * .subscribe(\n * value => console.log(value), // After 900ms, will start emitting `minutes`,\n * // since first value of `seconds` will not arrive fast enough.\n * err => console.log(err), // Would be called after 900ms in case of `timeout`,\n * // but here will never be called.\n * );\n * ```\n *\n * @param {number|Date} due Number specifying period within which Observable must emit values\n * or Date specifying before when Observable should complete\n * @param {Observable} withObservable Observable which will be subscribed if source fails timeout check.\n * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur.\n * @return {Observable} Observable that mirrors behaviour of source or, when timeout check fails, of an Observable\n * passed as a second parameter.\n * @method timeoutWith\n * @owner Observable\n */\nexport function timeoutWith(due: number | Date,\n withObservable: ObservableInput,\n scheduler: SchedulerLike = async): OperatorFunction {\n return (source: Observable) => {\n let absoluteTimeout = isDate(due);\n let waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\n\nclass TimeoutWithOperator implements Operator {\n constructor(private waitFor: number,\n private absoluteTimeout: boolean,\n private withObservable: ObservableInput,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TimeoutWithSubscriber(\n subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TimeoutWithSubscriber extends SimpleOuterSubscriber {\n\n private action?: SchedulerAction>;\n\n constructor(destination: Subscriber,\n private absoluteTimeout: boolean,\n private waitFor: number,\n private withObservable: ObservableInput,\n private scheduler: SchedulerLike) {\n super(destination);\n this.scheduleTimeout();\n }\n\n private static dispatchTimeout(subscriber: TimeoutWithSubscriber): void {\n const { withObservable } = subscriber;\n subscriber._unsubscribeAndRecycle();\n subscriber.add(innerSubscribe(withObservable, new SimpleInnerSubscriber(subscriber)));\n }\n\n private scheduleTimeout(): void {\n const { action } = this;\n if (action) {\n // Recycle the action if we've already scheduled one. All the production\n // Scheduler Actions mutate their state/delay time and return themeselves.\n // VirtualActions are immutable, so they create and return a clone. In this\n // case, we need to set the action reference to the most recent VirtualAction,\n // to ensure that's the one we clone from next time.\n this.action = (>> action.schedule(this, this.waitFor));\n } else {\n this.add(this.action = (>> this.scheduler.schedule>(\n TimeoutWithSubscriber.dispatchTimeout as any, this.waitFor, this\n )));\n }\n }\n\n protected _next(value: T): void {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n super._next(value);\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.action = undefined;\n this.scheduler = null!;\n this.withObservable = null!;\n }\n}\n","import { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\n\n/**\n *\n * Errors if Observable does not emit a value in given time span.\n *\n * Timeouts on Observable that doesn't emit values fast enough.\n *\n * ![](timeout.png)\n *\n * `timeout` operator accepts as an argument either a number or a Date.\n *\n * If number was provided, it returns an Observable that behaves like a source\n * Observable, unless there is a period of time where there is no value emitted.\n * So if you provide `100` as argument and first value comes after 50ms from\n * the moment of subscription, this value will be simply re-emitted by the resulting\n * Observable. If however after that 100ms passes without a second value being emitted,\n * stream will end with an error and source Observable will be unsubscribed.\n * These checks are performed throughout whole lifecycle of Observable - from the moment\n * it was subscribed to, until it completes or errors itself. Thus every value must be\n * emitted within specified period since previous value.\n *\n * If provided argument was Date, returned Observable behaves differently. It throws\n * if Observable did not complete before provided Date. This means that periods between\n * emission of particular values do not matter in this case. If Observable did not complete\n * before provided Date, source Observable will be unsubscribed. Other than that, resulting\n * stream behaves just as source Observable.\n *\n * `timeout` accepts also a Scheduler as a second parameter. It is used to schedule moment (or moments)\n * when returned Observable will check if source stream emitted value or completed.\n *\n * ## Examples\n * Check if ticks are emitted within certain timespan\n * ```ts\n * import { interval } from 'rxjs';\n * import { timeout } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n *\n * seconds.pipe(timeout(1100)) // Let's use bigger timespan to be safe,\n * // since `interval` might fire a bit later then scheduled.\n * .subscribe(\n * value => console.log(value), // Will emit numbers just as regular `interval` would.\n * err => console.log(err), // Will never be called.\n * );\n *\n * seconds.pipe(timeout(900))\n * .subscribe(\n * value => console.log(value), // Will never be called.\n * err => console.log(err), // Will emit error before even first value is emitted,\n * // since it did not arrive within 900ms period.\n * );\n * ```\n *\n * Use Date to check if Observable completed\n * ```ts\n * import { interval } from 'rxjs';\n * import { timeout } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n *\n * seconds.pipe(\n * timeout(new Date(\"December 17, 2020 03:24:00\")),\n * )\n * .subscribe(\n * value => console.log(value), // Will emit values as regular `interval` would\n * // until December 17, 2020 at 03:24:00.\n * err => console.log(err) // On December 17, 2020 at 03:24:00 it will emit an error,\n * // since Observable did not complete by then.\n * );\n * ```\n * @see {@link timeoutWith}\n *\n * @param {number|Date} due Number specifying period within which Observable must emit values\n * or Date specifying before when Observable should complete\n * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur.\n * @return {Observable} Observable that mirrors behaviour of source, unless timeout checks fail.\n * @method timeout\n * @owner Observable\n */\nexport function timeout(due: number | Date,\n scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}\n","\nimport { async } from '../scheduler/async';\nimport { OperatorFunction, SchedulerLike, Timestamp as TimestampInterface } from '../types';\nimport { map } from './map';\n\n/**\n * Attaches a timestamp to each item emitted by an observable indicating when it was emitted\n *\n * The `timestamp` operator maps the *source* observable stream to an object of type\n * `{value: T, timestamp: R}`. The properties are generically typed. The `value` property contains the value\n * and type of the *source* observable. The `timestamp` is generated by the schedulers `now` function. By\n * default it uses the *async* scheduler which simply returns `Date.now()` (milliseconds since 1970/01/01\n * 00:00:00:000) and therefore is of type `number`.\n *\n * ![](timestamp.png)\n *\n * ## Example\n *\n * In this example there is a timestamp attached to the documents click event.\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { timestamp } from 'rxjs/operators';\n *\n * const clickWithTimestamp = fromEvent(document, 'click').pipe(\n * timestamp()\n * );\n *\n * // Emits data of type {value: MouseEvent, timestamp: number}\n * clickWithTimestamp.subscribe(data => {\n * console.log(data);\n * });\n * ```\n *\n * @param scheduler\n * @return {Observable>|WebSocketSubject|Observable}\n * @method timestamp\n * @owner Observable\n */\nexport function timestamp(scheduler: SchedulerLike = async): OperatorFunction> {\n return map((value: T) => new Timestamp(value, scheduler.now()));\n // return (source: Observable) => source.lift(new TimestampOperator(scheduler));\n}\n\nexport class Timestamp implements TimestampInterface {\n constructor(public value: T, public timestamp: number) {\n }\n}\n","import { reduce } from './reduce';\nimport { OperatorFunction } from '../types';\n\nfunction toArrayReducer(arr: T[], item: T, index: number) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\n\n/**\n * Collects all source emissions and emits them as an array when the source completes.\n *\n * Get all values inside an array when the source completes\n *\n * ![](toArray.png)\n *\n * `toArray` will wait until the source Observable completes before emitting\n * the array containing all emissions. When the source Observable errors no\n * array will be emitted.\n *\n * ## Example\n * ```ts\n * import { interval } from 'rxjs';\n * import { toArray, take } from 'rxjs/operators';\n *\n * const source = interval(1000);\n * const example = source.pipe(\n * take(10),\n * toArray()\n * );\n *\n * const subscribe = example.subscribe(val => console.log(val));\n *\n * // output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n *\n * ```\n* @return An array from an observable sequence.\n* @method toArray\n* @owner Observable\n*/\nexport function toArray(): OperatorFunction {\n return reduce(toArrayReducer, [] as T[]);\n}\n","import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\nimport { Subject } from '../Subject';\nimport { Subscriber } from '../Subscriber';\nimport { Operator } from '../Operator';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\n\n/**\n * Branch out the source Observable values as a nested Observable whenever\n * `windowBoundaries` emits.\n *\n * It's like {@link buffer}, but emits a nested Observable\n * instead of an array.\n *\n * ![](window.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping\n * windows. It emits the current window and opens a new one whenever the\n * Observable `windowBoundaries` emits an item. Because each window is an\n * Observable, the output is a higher-order Observable.\n *\n * ## Example\n * In every window of 1 second each, emit at most 2 click events\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { window, mergeAll, map, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const sec = interval(1000);\n * const result = clicks.pipe(\n * window(sec),\n * map(win => win.pipe(take(2))), // each window has at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link buffer}\n *\n * @param {Observable} windowBoundaries An Observable that completes the\n * previous window and starts a new window.\n * @return {Observable>} An Observable of windows, which are\n * Observables emitting values of the source Observable.\n * @method window\n * @owner Observable\n */\nexport function window(windowBoundaries: Observable): OperatorFunction> {\n return function windowOperatorFunction(source: Observable) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\n\nclass WindowOperator implements Operator> {\n\n constructor(private windowBoundaries: Observable) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n const windowSubscriber = new WindowSubscriber(subscriber);\n const sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(innerSubscribe(this.windowBoundaries, new SimpleInnerSubscriber(windowSubscriber)));\n }\n return sourceSubscription;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowSubscriber extends SimpleOuterSubscriber {\n\n private window: Subject = new Subject();\n\n constructor(destination: Subscriber>) {\n super(destination);\n destination.next(this.window);\n }\n\n notifyNext(): void {\n this.openWindow();\n }\n\n notifyError(error: any): void {\n this._error(error);\n }\n\n notifyComplete(): void {\n this._complete();\n }\n\n protected _next(value: T): void {\n this.window.next(value);\n }\n\n protected _error(err: any): void {\n this.window.error(err);\n this.destination.error!(err);\n }\n\n protected _complete(): void {\n this.window.complete();\n this.destination.complete!();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.window = null!;\n }\n\n private openWindow(): void {\n const prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n const destination = this.destination;\n const newWindow = this.window = new Subject();\n destination.next!(newWindow);\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { OperatorFunction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable with each\n * nested Observable emitting at most `windowSize` values.\n *\n * It's like {@link bufferCount}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowCount.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits windows every `startWindowEvery`\n * items, each containing no more than `windowSize` items. When the source\n * Observable completes or encounters an error, the output Observable emits\n * the current window and propagates the notification from the source\n * Observable. If `startWindowEvery` is not provided, then new windows are\n * started immediately at the start of the source and when each window completes\n * with size `windowSize`.\n *\n * ## Examples\n * Ignore every 3rd click event, starting from the first one\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowCount, map, mergeAll, skip } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowCount(3),\n * map(win => win.pipe(skip(1))), // skip first of every 3 clicks\n * mergeAll() // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Ignore every 3rd click event, starting from the third one\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowCount, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowCount(2, 3),\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link bufferCount}\n *\n * @param {number} windowSize The maximum number of values emitted by each\n * window.\n * @param {number} [startWindowEvery] Interval at which to start a new window.\n * For example if `startWindowEvery` is `2`, then a new window will be started\n * on every other value from the source. A new window is started at the\n * beginning of the source by default.\n * @return {Observable>} An Observable of windows, which in turn\n * are Observable of values.\n * @method windowCount\n * @owner Observable\n */\nexport function windowCount(windowSize: number,\n startWindowEvery: number = 0): OperatorFunction> {\n return function windowCountOperatorFunction(source: Observable) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\n\nclass WindowCountOperator implements Operator> {\n\n constructor(private windowSize: number,\n private startWindowEvery: number) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowCountSubscriber extends Subscriber {\n private windows: Subject[] = [ new Subject() ];\n private count: number = 0;\n\n constructor(protected destination: Subscriber>,\n private windowSize: number,\n private startWindowEvery: number) {\n super(destination);\n destination.next(this.windows[0]);\n }\n\n protected _next(value: T) {\n const startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n const destination = this.destination;\n const windowSize = this.windowSize;\n const windows = this.windows;\n const len = windows.length;\n\n for (let i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n const c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n const window = new Subject();\n windows.push(window);\n destination.next(window);\n }\n }\n\n protected _error(err: any) {\n const windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n }\n\n protected _complete() {\n const windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n }\n\n protected _unsubscribe() {\n this.count = 0;\n this.windows = null;\n }\n}\n","import { Subject } from '../Subject';\nimport { Operator } from '../Operator';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nimport { OperatorFunction, SchedulerLike, SchedulerAction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable periodically\n * in time.\n *\n * It's like {@link bufferTime}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowTime.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable starts a new window periodically, as\n * determined by the `windowCreationInterval` argument. It emits each window\n * after a fixed timespan, specified by the `windowTimeSpan` argument. When the\n * source Observable completes or encounters an error, the output Observable\n * emits the current window and propagates the notification from the source\n * Observable. If `windowCreationInterval` is not provided, the output\n * Observable starts a new window when the previous window of duration\n * `windowTimeSpan` completes. If `maxWindowCount` is provided, each window\n * will emit at most fixed number of values. Window will complete immediately\n * after emitting last value and next one still will open as specified by\n * `windowTimeSpan` and `windowCreationInterval` arguments.\n *\n * ## Examples\n * In every window of 1 second each, emit at most 2 click events\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowTime, map, mergeAll, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowTime(1000),\n * map(win => win.pipe(take(2))), // each window has at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Every 5 seconds start a window 1 second long, and emit at most 2 click events per window\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowTime, map, mergeAll, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowTime(1000, 5000),\n * map(win => win.pipe(take(2))), // each window has at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Same as example above but with maxWindowCount instead of take\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowTime, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowTime(1000, 5000, 2), // each window has still at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link bufferTime}\n *\n * @param {number} windowTimeSpan The amount of time to fill each window.\n * @param {number} [windowCreationInterval] The interval at which to start new\n * windows.\n * @param {number} [maxWindowSize=Number.POSITIVE_INFINITY] Max number of\n * values each window can emit before completion.\n * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the\n * intervals that determine window boundaries.\n * @return {Observable>} An observable of windows, which in turn\n * are Observables.\n * @method windowTime\n * @owner Observable\n */\nexport function windowTime(windowTimeSpan: number,\n scheduler?: SchedulerLike): OperatorFunction>;\nexport function windowTime(windowTimeSpan: number,\n windowCreationInterval: number,\n scheduler?: SchedulerLike): OperatorFunction>;\nexport function windowTime(windowTimeSpan: number,\n windowCreationInterval: number,\n maxWindowSize: number,\n scheduler?: SchedulerLike): OperatorFunction>;\n\nexport function windowTime(windowTimeSpan: number): OperatorFunction> {\n let scheduler: SchedulerLike = async;\n let windowCreationInterval: number = null;\n let maxWindowSize: number = Number.POSITIVE_INFINITY;\n\n if (isScheduler(arguments[3])) {\n scheduler = arguments[3];\n }\n\n if (isScheduler(arguments[2])) {\n scheduler = arguments[2];\n } else if (isNumeric(arguments[2])) {\n maxWindowSize = Number(arguments[2]);\n }\n\n if (isScheduler(arguments[1])) {\n scheduler = arguments[1];\n } else if (isNumeric(arguments[1])) {\n windowCreationInterval = Number(arguments[1]);\n }\n\n return function windowTimeOperatorFunction(source: Observable) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\n\nclass WindowTimeOperator implements Operator> {\n\n constructor(private windowTimeSpan: number,\n private windowCreationInterval: number | null,\n private maxWindowSize: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowTimeSubscriber(\n subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler\n ));\n }\n}\n\ninterface CreationState {\n windowTimeSpan: number;\n windowCreationInterval: number;\n subscriber: WindowTimeSubscriber;\n scheduler: SchedulerLike;\n}\n\ninterface TimeSpanOnlyState {\n window: CountedSubject;\n windowTimeSpan: number;\n subscriber: WindowTimeSubscriber;\n }\n\ninterface CloseWindowContext {\n action: SchedulerAction>;\n subscription: Subscription;\n}\n\ninterface CloseState {\n subscriber: WindowTimeSubscriber;\n window: CountedSubject;\n context: CloseWindowContext;\n}\n\nclass CountedSubject extends Subject {\n private _numberOfNextedValues: number = 0;\n\n next(value?: T): void {\n this._numberOfNextedValues++;\n super.next(value);\n }\n\n get numberOfNextedValues(): number {\n return this._numberOfNextedValues;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowTimeSubscriber extends Subscriber {\n private windows: CountedSubject[] = [];\n\n constructor(protected destination: Subscriber>,\n private windowTimeSpan: number,\n private windowCreationInterval: number | null,\n private maxWindowSize: number,\n private scheduler: SchedulerLike) {\n super(destination);\n\n const window = this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n const closeState: CloseState = { subscriber: this, window, context: null };\n const creationState: CreationState = { windowTimeSpan, windowCreationInterval, subscriber: this, scheduler };\n this.add(scheduler.schedule>(dispatchWindowClose, windowTimeSpan, closeState));\n this.add(scheduler.schedule>(dispatchWindowCreation, windowCreationInterval, creationState));\n } else {\n const timeSpanOnlyState: TimeSpanOnlyState = { subscriber: this, window, windowTimeSpan };\n this.add(scheduler.schedule>(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n }\n\n protected _next(value: T): void {\n const windows = this.windows;\n const len = windows.length;\n for (let i = 0; i < len; i++) {\n const window = windows[i];\n if (!window.closed) {\n window.next(value);\n if (window.numberOfNextedValues >= this.maxWindowSize) {\n this.closeWindow(window);\n }\n }\n }\n }\n\n protected _error(err: any): void {\n const windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n }\n\n protected _complete(): void {\n const windows = this.windows;\n while (windows.length > 0) {\n const window = windows.shift();\n if (!window.closed) {\n window.complete();\n }\n }\n this.destination.complete();\n }\n\n public openWindow(): CountedSubject {\n const window = new CountedSubject();\n this.windows.push(window);\n const destination = this.destination;\n destination.next(window);\n return window;\n }\n\n public closeWindow(window: CountedSubject): void {\n window.complete();\n const windows = this.windows;\n windows.splice(windows.indexOf(window), 1);\n }\n}\n\nfunction dispatchWindowTimeSpanOnly(this: SchedulerAction>, state: TimeSpanOnlyState): void {\n const { subscriber, windowTimeSpan, window } = state;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\n\nfunction dispatchWindowCreation(this: SchedulerAction>, state: CreationState): void {\n const { windowTimeSpan, subscriber, scheduler, windowCreationInterval } = state;\n const window = subscriber.openWindow();\n const action = this;\n let context: CloseWindowContext = { action, subscription: null };\n const timeSpanState: CloseState = { subscriber, window, context };\n context.subscription = scheduler.schedule>(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\n\nfunction dispatchWindowClose(state: CloseState): void {\n const { subscriber, window, context } = state;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OperatorFunction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable starting from\n * an emission from `openings` and ending when the output of `closingSelector`\n * emits.\n *\n * It's like {@link bufferToggle}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowToggle.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits windows that contain those items\n * emitted by the source Observable between the time when the `openings`\n * Observable emits an item and when the Observable returned by\n * `closingSelector` emits an item.\n *\n * ## Example\n * Every other second, emit the click events from the next 500ms\n * ```ts\n * import { fromEvent, interval, EMPTY } from 'rxjs';\n * import { windowToggle, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const openings = interval(1000);\n * const result = clicks.pipe(\n * windowToggle(openings, i => i % 2 ? interval(500) : EMPTY),\n * mergeAll()\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowWhen}\n * @see {@link bufferToggle}\n *\n * @param {Observable} openings An observable of notifications to start new\n * windows.\n * @param {function(value: O): Observable} closingSelector A function that takes\n * the value emitted by the `openings` observable and returns an Observable,\n * which, when it emits (either `next` or `complete`), signals that the\n * associated window should complete.\n * @return {Observable>} An observable of windows, which in turn\n * are Observables.\n * @method windowToggle\n * @owner Observable\n */\nexport function windowToggle(openings: Observable,\n closingSelector: (openValue: O) => Observable): OperatorFunction> {\n return (source: Observable) => source.lift(new WindowToggleOperator(openings, closingSelector));\n}\n\nclass WindowToggleOperator implements Operator> {\n\n constructor(private openings: Observable,\n private closingSelector: (openValue: O) => Observable) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowToggleSubscriber(\n subscriber, this.openings, this.closingSelector\n ));\n }\n}\n\ninterface WindowContext {\n window: Subject;\n subscription: Subscription;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowToggleSubscriber extends OuterSubscriber {\n private contexts: WindowContext[] = [];\n private openSubscription: Subscription;\n\n constructor(destination: Subscriber>,\n private openings: Observable,\n private closingSelector: (openValue: O) => Observable) {\n super(destination);\n this.add(this.openSubscription = subscribeToResult(this, openings, openings as any));\n }\n\n protected _next(value: T) {\n const { contexts } = this;\n if (contexts) {\n const len = contexts.length;\n for (let i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n }\n\n protected _error(err: any) {\n\n const { contexts } = this;\n this.contexts = null;\n\n if (contexts) {\n const len = contexts.length;\n let index = -1;\n\n while (++index < len) {\n const context = contexts[index];\n context.window.error(err);\n context.subscription.unsubscribe();\n }\n }\n\n super._error(err);\n }\n\n protected _complete() {\n const { contexts } = this;\n this.contexts = null;\n if (contexts) {\n const len = contexts.length;\n let index = -1;\n while (++index < len) {\n const context = contexts[index];\n context.window.complete();\n context.subscription.unsubscribe();\n }\n }\n super._complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { contexts } = this;\n this.contexts = null;\n if (contexts) {\n const len = contexts.length;\n let index = -1;\n while (++index < len) {\n const context = contexts[index];\n context.window.unsubscribe();\n context.subscription.unsubscribe();\n }\n }\n }\n\n notifyNext(outerValue: any, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n\n if (outerValue === this.openings) {\n let closingNotifier;\n try {\n const { closingSelector } = this;\n closingNotifier = closingSelector(innerValue);\n } catch (e) {\n return this.error(e);\n }\n\n const window = new Subject();\n const subscription = new Subscription();\n const context = { window, subscription };\n this.contexts.push(context);\n const innerSubscription = subscribeToResult(this, closingNotifier, context as any);\n\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n } else {\n (innerSubscription).context = context;\n subscription.add(innerSubscription);\n }\n\n this.destination.next(window);\n } else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n }\n\n notifyError(err: any): void {\n this.error(err);\n }\n\n notifyComplete(inner: Subscription): void {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(( inner).context));\n }\n }\n\n private closeWindow(index: number): void {\n if (index === -1) {\n return;\n }\n\n const { contexts } = this;\n const context = contexts[index];\n const { window, subscription } = context;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OperatorFunction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable using a\n * factory function of closing Observables to determine when to start a new\n * window.\n *\n * It's like {@link bufferWhen}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowWhen.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping windows.\n * It emits the current window and opens a new one whenever the Observable\n * produced by the specified `closingSelector` function emits an item. The first\n * window is opened immediately when subscribing to the output Observable.\n *\n * ## Example\n * Emit only the first two clicks events in every window of [1-5] random seconds\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { windowWhen, map, mergeAll, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowWhen(() => interval(1000 + Math.random() * 4000)),\n * map(win => win.pipe(take(2))), // each window has at most 2 emissions\n * mergeAll() // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link bufferWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals (on either `next` or\n * `complete`) when to close the previous window and start a new one.\n * @return {Observable>} An observable of windows, which in turn\n * are Observables.\n * @method windowWhen\n * @owner Observable\n */\nexport function windowWhen(closingSelector: () => Observable): OperatorFunction> {\n return function windowWhenOperatorFunction(source: Observable) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\n\nclass WindowOperator implements Operator> {\n constructor(private closingSelector: () => Observable) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowSubscriber extends OuterSubscriber {\n private window?: Subject;\n private closingNotification?: Subscription;\n\n constructor(protected destination: Subscriber>,\n private closingSelector: () => Observable) {\n super(destination);\n this.openWindow();\n }\n\n notifyNext(_outerValue: T, _innerValue: any,\n _outerIndex: number, _innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.openWindow(innerSub);\n }\n\n notifyError(error: any): void {\n this._error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.openWindow(innerSub);\n }\n\n protected _next(value: T): void {\n this.window!.next(value);\n }\n\n protected _error(err: any): void {\n this.window!.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n }\n\n protected _complete(): void {\n this.window!.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n }\n\n private unsubscribeClosingNotification(): void {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n }\n\n private openWindow(innerSub: InnerSubscriber | null = null): void {\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n\n const prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n\n const window = this.window = new Subject();\n this.destination.next(window);\n\n let closingNotifier;\n try {\n const { closingSelector } = this;\n closingNotifier = closingSelector();\n } catch (e) {\n this.destination.error(e);\n this.window.error(e);\n return;\n }\n this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function withLatestFrom(project: (v1: T) => R): OperatorFunction;\nexport function withLatestFrom, R>(source2: O2, project: (v1: T, v2: ObservedValueOf) => R): OperatorFunction;\nexport function withLatestFrom, O3 extends ObservableInput, R>(v2: O2, v3: O3, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf) => R): OperatorFunction;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R): OperatorFunction;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, v5: O5, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R): OperatorFunction;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R): OperatorFunction;\nexport function withLatestFrom>(source2: O2): OperatorFunction]>;\nexport function withLatestFrom, O3 extends ObservableInput>(v2: O2, v3: O3): OperatorFunction, ObservedValueOf]>;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput>(v2: O2, v3: O3, v4: O4): OperatorFunction, ObservedValueOf, ObservedValueOf]>;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v2: O2, v3: O3, v4: O4, v5: O5): OperatorFunction, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): OperatorFunction, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function withLatestFrom(...observables: Array | ((...values: Array) => R)>): OperatorFunction;\nexport function withLatestFrom(array: ObservableInput[]): OperatorFunction;\nexport function withLatestFrom(array: ObservableInput[], project: (...values: Array) => R): OperatorFunction;\n\n/* tslint:enable:max-line-length */\n\n/**\n * Combines the source Observable with other Observables to create an Observable\n * whose values are calculated from the latest values of each, only when the\n * source emits.\n *\n * Whenever the source Observable emits a value, it\n * computes a formula using that value plus the latest values from other input\n * Observables, then emits the output of that formula.\n *\n * ![](withLatestFrom.png)\n *\n * `withLatestFrom` combines each value from the source Observable (the\n * instance) with the latest values from the other input Observables only when\n * the source emits a value, optionally using a `project` function to determine\n * the value to be emitted on the output Observable. All input Observables must\n * emit at least one value before the output Observable will emit a value.\n *\n * ## Example\n * On every click event, emit an array with the latest timer event plus the click event\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { withLatestFrom } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const timer = interval(1000);\n * const result = clicks.pipe(withLatestFrom(timer));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineLatest}\n *\n * @param {ObservableInput} other An input Observable to combine with the source\n * Observable. More than one input Observables may be given as argument.\n * @param {Function} [project] Projection function for combining values\n * together. Receives all values in order of the Observables passed, where the\n * first parameter is a value from the source Observable. (e.g.\n * `a.pipe(withLatestFrom(b, c), map(([a1, b1, c1]) => a1 + b1 + c1))`). If this is not\n * passed, arrays will be emitted on the output Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n * @method withLatestFrom\n * @owner Observable\n */\nexport function withLatestFrom(...args: Array | ((...values: Array) => R)>): OperatorFunction {\n return (source: Observable) => {\n let project: any;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n const observables = []>args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\n\nclass WithLatestFromOperator implements Operator {\n constructor(private observables: Observable[],\n private project?: (...values: any[]) => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WithLatestFromSubscriber extends OuterSubscriber {\n private values: any[];\n private toRespond: number[] = [];\n\n constructor(destination: Subscriber,\n private observables: Observable[],\n private project?: (...values: any[]) => Observable) {\n super(destination);\n const len = observables.length;\n this.values = new Array(len);\n\n for (let i = 0; i < len; i++) {\n this.toRespond.push(i);\n }\n\n for (let i = 0; i < len; i++) {\n let observable = observables[i];\n this.add(subscribeToResult(this, observable, undefined, i));\n }\n }\n\n notifyNext(_outerValue: T, innerValue: R,\n outerIndex: number): void {\n this.values[outerIndex] = innerValue;\n const toRespond = this.toRespond;\n if (toRespond.length > 0) {\n const found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n }\n\n notifyComplete() {\n // noop\n }\n\n protected _next(value: T) {\n if (this.toRespond.length === 0) {\n const args = [value, ...this.values];\n if (this.project) {\n this._tryProject(args);\n } else {\n this.destination.next!(args);\n }\n }\n }\n\n private _tryProject(args: any[]) {\n let result: any;\n try {\n result = this.project!.apply(this, args);\n } catch (err) {\n this.destination.error!(err);\n return;\n }\n this.destination.next!(result);\n }\n}\n","import { zip as zipStatic } from '../observable/zip';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(project: (v1: T) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, project: (v1: T, v2: T2) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction ;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction ;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(...observables: Array | ((...values: Array) => R)>): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(array: Array>): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(array: Array>, project: (v1: T, ...values: Array) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static {@link zip}.\n */\nexport function zip(...observables: Array | ((...values: Array) => R)>): OperatorFunction {\n return function zipOperatorFunction(source: Observable) {\n return source.lift.call(zipStatic(source, ...observables));\n };\n}","import { ZipOperator } from '../observable/zip';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, ObservableInput } from '../types';\n\nexport function zipAll(): OperatorFunction, T[]>;\nexport function zipAll(): OperatorFunction;\nexport function zipAll(project: (...values: T[]) => R): OperatorFunction, R>;\nexport function zipAll(project: (...values: Array) => R): OperatorFunction;\n\nexport function zipAll(project?: (...values: Array) => R): OperatorFunction {\n return (source: Observable) => source.lift(new ZipOperator(project));\n}\n","\n/* Operator exports */\nexport { audit } from '../internal/operators/audit';\nexport { auditTime } from '../internal/operators/auditTime';\nexport { buffer } from '../internal/operators/buffer';\nexport { bufferCount } from '../internal/operators/bufferCount';\nexport { bufferTime } from '../internal/operators/bufferTime';\nexport { bufferToggle } from '../internal/operators/bufferToggle';\nexport { bufferWhen } from '../internal/operators/bufferWhen';\nexport { catchError } from '../internal/operators/catchError';\nexport { combineAll } from '../internal/operators/combineAll';\nexport { combineLatest } from '../internal/operators/combineLatest';\nexport { concat } from '../internal/operators/concat';\nexport { concatAll } from '../internal/operators/concatAll';\nexport { concatMap } from '../internal/operators/concatMap';\nexport { concatMapTo } from '../internal/operators/concatMapTo';\nexport { count } from '../internal/operators/count';\nexport { debounce } from '../internal/operators/debounce';\nexport { debounceTime } from '../internal/operators/debounceTime';\nexport { defaultIfEmpty } from '../internal/operators/defaultIfEmpty';\nexport { delay } from '../internal/operators/delay';\nexport { delayWhen } from '../internal/operators/delayWhen';\nexport { dematerialize } from '../internal/operators/dematerialize';\nexport { distinct } from '../internal/operators/distinct';\nexport { distinctUntilChanged } from '../internal/operators/distinctUntilChanged';\nexport { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged';\nexport { elementAt } from '../internal/operators/elementAt';\nexport { endWith } from '../internal/operators/endWith';\nexport { every } from '../internal/operators/every';\nexport { exhaust } from '../internal/operators/exhaust';\nexport { exhaustMap } from '../internal/operators/exhaustMap';\nexport { expand } from '../internal/operators/expand';\nexport { filter } from '../internal/operators/filter';\nexport { finalize } from '../internal/operators/finalize';\nexport { find } from '../internal/operators/find';\nexport { findIndex } from '../internal/operators/findIndex';\nexport { first } from '../internal/operators/first';\nexport { groupBy } from '../internal/operators/groupBy';\nexport { ignoreElements } from '../internal/operators/ignoreElements';\nexport { isEmpty } from '../internal/operators/isEmpty';\nexport { last } from '../internal/operators/last';\nexport { map } from '../internal/operators/map';\nexport { mapTo } from '../internal/operators/mapTo';\nexport { materialize } from '../internal/operators/materialize';\nexport { max } from '../internal/operators/max';\nexport { merge } from '../internal/operators/merge';\nexport { mergeAll } from '../internal/operators/mergeAll';\nexport { mergeMap, flatMap } from '../internal/operators/mergeMap';\nexport { mergeMapTo } from '../internal/operators/mergeMapTo';\nexport { mergeScan } from '../internal/operators/mergeScan';\nexport { min } from '../internal/operators/min';\nexport { multicast } from '../internal/operators/multicast';\nexport { observeOn } from '../internal/operators/observeOn';\nexport { onErrorResumeNext } from '../internal/operators/onErrorResumeNext';\nexport { pairwise } from '../internal/operators/pairwise';\nexport { partition } from '../internal/operators/partition';\nexport { pluck } from '../internal/operators/pluck';\nexport { publish } from '../internal/operators/publish';\nexport { publishBehavior } from '../internal/operators/publishBehavior';\nexport { publishLast } from '../internal/operators/publishLast';\nexport { publishReplay } from '../internal/operators/publishReplay';\nexport { race } from '../internal/operators/race';\nexport { reduce } from '../internal/operators/reduce';\nexport { repeat } from '../internal/operators/repeat';\nexport { repeatWhen } from '../internal/operators/repeatWhen';\nexport { retry } from '../internal/operators/retry';\nexport { retryWhen } from '../internal/operators/retryWhen';\nexport { refCount } from '../internal/operators/refCount';\nexport { sample } from '../internal/operators/sample';\nexport { sampleTime } from '../internal/operators/sampleTime';\nexport { scan } from '../internal/operators/scan';\nexport { sequenceEqual } from '../internal/operators/sequenceEqual';\nexport { share } from '../internal/operators/share';\nexport { shareReplay } from '../internal/operators/shareReplay';\nexport { single } from '../internal/operators/single';\nexport { skip } from '../internal/operators/skip';\nexport { skipLast } from '../internal/operators/skipLast';\nexport { skipUntil } from '../internal/operators/skipUntil';\nexport { skipWhile } from '../internal/operators/skipWhile';\nexport { startWith } from '../internal/operators/startWith';\nexport { subscribeOn } from '../internal/operators/subscribeOn';\nexport { switchAll } from '../internal/operators/switchAll';\nexport { switchMap } from '../internal/operators/switchMap';\nexport { switchMapTo } from '../internal/operators/switchMapTo';\nexport { take } from '../internal/operators/take';\nexport { takeLast } from '../internal/operators/takeLast';\nexport { takeUntil } from '../internal/operators/takeUntil';\nexport { takeWhile } from '../internal/operators/takeWhile';\nexport { tap } from '../internal/operators/tap';\nexport { throttle } from '../internal/operators/throttle';\nexport { throttleTime } from '../internal/operators/throttleTime';\nexport { throwIfEmpty } from '../internal/operators/throwIfEmpty';\nexport { timeInterval } from '../internal/operators/timeInterval';\nexport { timeout } from '../internal/operators/timeout';\nexport { timeoutWith } from '../internal/operators/timeoutWith';\nexport { timestamp } from '../internal/operators/timestamp';\nexport { toArray } from '../internal/operators/toArray';\nexport { window } from '../internal/operators/window';\nexport { windowCount } from '../internal/operators/windowCount';\nexport { windowTime } from '../internal/operators/windowTime';\nexport { windowToggle } from '../internal/operators/windowToggle';\nexport { windowWhen } from '../internal/operators/windowWhen';\nexport { withLatestFrom } from '../internal/operators/withLatestFrom';\nexport { zip } from '../internal/operators/zip';\nexport { zipAll } from '../internal/operators/zipAll';\n","import { Observable, BehaviorSubject, Subscription, combineLatest, fromEvent, of } from \"rxjs\";\r\nimport {distinctUntilChanged, debounceTime, bufferCount, filter, map, switchMap, tap} from \"rxjs/operators\";\r\n\r\nexport type SceneActivationParams = {\r\n resize$: Observable;\r\n screenHeight$: BehaviorSubject;\r\n fallback$: BehaviorSubject;\r\n progress$: Observable;\r\n id: string;\r\n}\r\n\r\nexport type SceneParams = {\r\n screenLengths: number,\r\n}\r\n\r\nexport type SceneMountParams = {\r\n vizPlate: HTMLDivElement;\r\n // textPlate: HTMLDivElement;\r\n}\r\n\r\nexport interface Scene {\r\n screenLengths: number;\r\n graphicContainer: HTMLDivElement;\r\n // textContainer: HTMLDivElement;\r\n activate(params: SceneActivationParams): Subscription[]\r\n deactivate(subs: Subscription[]): void;\r\n mount(params: SceneMountParams): void;\r\n}\r\n\r\nexport type GraphicParams = {\r\n scenes: {[id: string]: Scene};\r\n sceneOrder: string[];\r\n mountPoint: string;\r\n text: any[];\r\n debug?: boolean;\r\n screenBuffer?: number;\r\n}\r\n\r\nexport class Graphic {\r\n private scenes: { [id: string]: Scene } = {};\r\n private sceneOrder: string[] = [];\r\n private resize$: BehaviorSubject;\r\n private screenHeight$: BehaviorSubject;\r\n private fallback$: BehaviorSubject;\r\n private scrollPos$: Observable;\r\n private scrollRel$: Observable;\r\n private totalScreenLengths: number;\r\n private visualPlate: HTMLDivElement;\r\n private textPlate: HTMLDivElement;\r\n private screenBuffer: number;\r\n private text: any[];\r\n private isMounted: boolean = false;\r\n private activeSteps = [];\r\n private b1: HTMLDivElement;\r\n private b2: HTMLDivElement;\r\n\r\n private cancelOnUnmount: Subscription[] = [];\r\n\r\n constructor({scenes, sceneOrder, debug, mountPoint, screenBuffer, text}: GraphicParams) {\r\n this.scenes = scenes;\r\n this.text = text;\r\n this.sceneOrder = sceneOrder;\r\n this.resize$ = new BehaviorSubject(window)\r\n this.screenHeight$ = new BehaviorSubject(window.innerHeight - 50);\r\n this.fallback$ = new BehaviorSubject(false);\r\n this.screenBuffer = screenBuffer || .5\r\n // Add an extra screen lengths to get a half screen buffer before and after the graphic\r\n this.totalScreenLengths = Object.entries(scenes).map(([k, v]) => v.screenLengths + this.screenBuffer).reduce((p, n) => p + n, 0);\r\n this.scrollPos$ = fromEvent(document, \"scroll\").pipe(switchMap(x => of(window.scrollY)));\r\n\r\n this.textPlate = document.createElement(\"div\");\r\n this.visualPlate = document.createElement(\"div\");\r\n this.b1 = document.createElement(\"div\");\r\n this.b2 = document.createElement(\"div\");\r\n\r\n // Set up scroll notification\r\n const anchor = document.getElementById(mountPoint);\r\n if (!anchor) throw new Error(`Cannot find mount point ${mountPoint}`);\r\n this.scrollRel$ = this.scrollPos$.pipe(map((_) => anchor.getBoundingClientRect()));\r\n\r\n\r\n\r\n\r\n if (debug) {\r\n // Set up konami code to trigger fallback change\r\n this.cancelOnUnmount.push(\r\n fromEvent(document, 'keydown').pipe(\r\n map(e => e.keyCode),\r\n bufferCount(10, 1),\r\n filter(Graphic.isKonamiCode),\r\n ).subscribe(v => this.setFallback(!this.fallback$.getValue()))\r\n );\r\n\r\n // this.cancelOnUnmount.push(\r\n // this.scrollPos$.subscribe(console.log)\r\n // );\r\n\r\n // this.cancelOnUnmount.push(\r\n // this.scrollRel$.subscribe(console.log)\r\n // )\r\n\r\n // Debug logging\r\n // this.cancelOnUnmount.push(this.resize$.subscribe(console.log));\r\n // this.cancelOnUnmount.push(this.screenHeight$.subscribe(console.log));\r\n // this.cancelOnUnmount.push(this.fallback$.subscribe(console.log));\r\n }\r\n\r\n\r\n }\r\n\r\n /**\r\n * Explicitly sets graphic into fallback mode. Individual scenes may sub to fallback$ and handle it however they\r\n * see fit.\r\n */\r\n public setFallback(v: boolean): void {\r\n this.fallback$.next(v)\r\n }\r\n\r\n /**\r\n * Mount graphic to element with id=\r\n */\r\n public mount(id: string): void {\r\n // console.log(this);\r\n let initialHeight = window.innerHeight;\r\n if (!this.isMounted) {\r\n const m = document.getElementById(id);\r\n m.appendChild(this.visualPlate);\r\n // m.appendChild(this.b1);\r\n m.appendChild(this.textPlate);\r\n // m.appendChild(this.b2);\r\n this.textPlate.style.zIndex = \"10\";\r\n this.visualPlate.style.zIndex = \"1\";\r\n this.textPlate.style.position = \"relative\";\r\n this.visualPlate.style.position = \"fixed\";\r\n this.textPlate.style.top = \"0\";\r\n this.visualPlate.style.top = \"0\";\r\n this.textPlate.style.left = \"0\";\r\n this.visualPlate.style.left = \"0\";\r\n this.textPlate.style.width = \"100%\";\r\n this.visualPlate.style.width = \"100%\";\r\n this.visualPlate.classList.add(\"viz-plate\");\r\n this.textPlate.classList.add(\"text-plate\");\r\n }\r\n\r\n // Update div heights on screen resize\r\n this.cancelOnUnmount.push(\r\n this.resize$.subscribe(x => {\r\n if (x.innerHeight > initialHeight && x.innerHeight - initialHeight <= 60) {\r\n this.visualPlate.style.marginTop = `${x.innerHeight - initialHeight}px`;\r\n } else if (x.innerHeight == initialHeight) {\r\n this.visualPlate.style.marginTop = \"0px\";\r\n }\r\n const res = this.screenHeight$.next(Math.abs(x.innerHeight - initialHeight) <= 60 ? initialHeight : x.innerHeight);\r\n // initialHeight = x.innerHeight;\r\n return res\r\n })\r\n );\r\n this.cancelOnUnmount.push(\r\n fromEvent(window, \"resize\").pipe(\r\n debounceTime(100),\r\n map(e => e.target)\r\n ).subscribe(this.resize$)\r\n )\r\n this.cancelOnUnmount.push(this.screenHeight$.subscribe(x => {\r\n this.textPlate.style.height = `${x * this.totalScreenLengths}px`;\r\n this.visualPlate.style.height = `${x}px`;\r\n this.b1.style.height = `${x * this.screenBuffer}`\r\n this.b2.style.height = `${x * this.screenBuffer}`\r\n }));\r\n\r\n // Attach text\r\n for (let step of this.text) {\r\n if (!this.isMounted) {\r\n if (!step.type) {\r\n const p = document.createElement(step.elType || \"p\");\r\n p.classList.add(\"stepper-text\")\r\n p.innerHTML = step.text;\r\n const d = document.createElement(\"div\")\r\n d.classList.add(\"step\")\r\n d.append(p)\r\n this.textPlate.append(d);\r\n this.activeSteps.push({\r\n el: d,\r\n screenLengthPos: step.screenLengthPos\r\n })\r\n } else {\r\n switch (step.type) {\r\n case \"start\": {\r\n const h1 = document.createElement(\"h1\")\r\n h1.innerText = \"POISONED\";\r\n const subhed = document.createElement(\"p\")\r\n subhed.classList.add(\"subber\")\r\n subhed.innerText = \"A special report from the Tampa Bay Times\";\r\n const scrollLabel = document.createElement(\"div\")\r\n scrollLabel.id = \"scroll-label\";\r\n scrollLabel.classList.add(\"started\")\r\n scrollLabel.innerHTML = \"scroll to begin \"\r\n\r\n const cont = document.createElement(\"div\")\r\n cont.classList.add(\"step\")\r\n cont.classList.add(\"headline\")\r\n cont.append(h1)\r\n cont.append(subhed)\r\n cont.append(scrollLabel)\r\n this.textPlate.append(cont)\r\n this.activeSteps.push({\r\n el: cont,\r\n screenLengthPos: 0.25\r\n })\r\n break;\r\n }\r\n case \"end\": {\r\n const h1 = document.createElement(\"h2\")\r\n h1.innerText = \"#Poisoned\";\r\n const subhed = document.createElement(\"p\")\r\n subhed.classList.add(\"subber\")\r\n subhed.innerHTML = \"Read the story\";\r\n const cont = document.createElement(\"div\")\r\n cont.classList.add(\"step\")\r\n // cont.classList.add(\"headline\")\r\n cont.append(h1)\r\n cont.append(subhed)\r\n this.textPlate.append(cont)\r\n this.activeSteps.push({\r\n el: cont,\r\n screenLengthPos: 33.5\r\n })\r\n break;\r\n }\r\n }\r\n }\r\n // const d = document.createElement(\"div\")\r\n // d.classList.add(\"headline\")\r\n // d.classList.add(\"step\")\r\n // const txtCont = document.createElement(\"div\")\r\n // txtCont.classList.add(\"textshadow\")\r\n // txtCont.classList.add(\"bottom\")\r\n // txtCont.classList.add(\"center\")\r\n // txtCont.classList.add(\"headline-overlay\")\r\n // const h = document.createElement(\"h1\")\r\n // h.id = \"title\"\r\n // h.innerText = step.text;\r\n // const bylineCont = document.createElement(\"div\");\r\n // bylineCont.id = \"byline-box\"\r\n // const byp = document.createElement(\"p\")\r\n // byp.classList.add(\"byline-block\")\r\n // byp.innerText = \"Corey Johnson, Rebecca Woolington, Eli Murray\"\r\n // bylineCont.append(byp)\r\n // txtCont.append(h)\r\n // txtCont.append(bylineCont)\r\n // d.append(txtCont)\r\n // this.textPlate.append(d);\r\n // this.activeSteps.push({\r\n // el: d,\r\n // screenLengthPos: step.screenLengthPos\r\n // })\r\n // }\r\n }\r\n }\r\n\r\n this.cancelOnUnmount.push(this.screenHeight$.subscribe(s => this.adjustStepHeight(s)))\r\n\r\n // Attach scene containers\r\n this.sceneOrder.map((id, index) => {\r\n const scene = this.scenes[id];\r\n const {graphicContainer, textContainer} = this.getContainersForScene(id);\r\n\r\n if (!this.isMounted) {\r\n graphicContainer.classList.add(`${id}-viz`);\r\n graphicContainer.classList.add(\"viz\");\r\n graphicContainer.style.zIndex = `${100 - index}`;\r\n this.visualPlate.append(graphicContainer);\r\n }\r\n\r\n scene.mount({vizPlate: graphicContainer})\r\n // if (!this.)\r\n })\r\n\r\n // After everything has mounted, call activate on all scenes\r\n this.sceneOrder.map((id, index) => {\r\n const scene = this.scenes[id];\r\n let offsetScreens = 0;\r\n if (index > 0) {\r\n const prevScenes = this.sceneOrder.slice(0, index);\r\n for (let s of prevScenes) {\r\n offsetScreens += this.scenes[s].screenLengths\r\n }\r\n }\r\n // offsetScreens += this.screenBuffer\r\n\r\n const progress$ = combineLatest([this.scrollRel$, this.screenHeight$]).pipe(\r\n map(([pos, height]) => {\r\n const viewMid = ((pos.top) - height / 2) + (offsetScreens * height);\r\n const totalHeight = scene.screenLengths * height;\r\n // console.log(totalHeight)\r\n if (viewMid >= 0) return 0;\r\n return (-viewMid / totalHeight) > 1 ? 1 : -viewMid / totalHeight\r\n }),\r\n distinctUntilChanged()\r\n )\r\n\r\n scene.activate({\r\n resize$: this.resize$,\r\n screenHeight$: this.screenHeight$,\r\n fallback$: this.fallback$,\r\n progress$,\r\n id\r\n })\r\n\r\n this.cancelOnUnmount.push(\r\n progress$.subscribe(p => {\r\n if (index === 0) {\r\n if (p === 1) {\r\n scene.graphicContainer.classList.add(\"hidden-scene\")\r\n } else {\r\n scene.graphicContainer.classList.remove(\"hidden-scene\")\r\n }\r\n } else {\r\n if (p === 0) {\r\n scene.graphicContainer.classList.add(\"hidden-scene\");\r\n } else {\r\n scene.graphicContainer.classList.remove(\"hidden-scene\");\r\n }\r\n }\r\n })\r\n )\r\n })\r\n\r\n\r\n //\r\n // const progress$ = combineLatest([this.scrollRel$, this.screenHeight$]).pipe(map(([pos, height]) => {\r\n // const viewMid = (pos.top - height / 2) + (offsetScreens * height);\r\n // const totalHeight = scene.screenLengths * height;\r\n // if (viewMid >= 0) return 0;\r\n // return (-viewMid / totalHeight) > 1 ? 1 : -viewMid / totalHeight;\r\n // }), distinctUntilChanged());\r\n //\r\n // scene.activate({\r\n // resize$: this.resize$,\r\n // screenHeight$: this.screenHeight$,\r\n // fallback$: this.fallback$,\r\n // progress$,\r\n // id\r\n // });\r\n //\r\n // this.cancelOnUnmount.push(\r\n // progress$.subscribe(p => {\r\n // if (index === 0) {\r\n // if (p === 1) {\r\n // scene.graphicContainer.classList.add(\"hidden-scene\")\r\n // } else {\r\n // scene.graphicContainer.classList.remove(\"hidden-scene\")\r\n // }\r\n // } else {\r\n // if (p === 0 || p === 1) {\r\n // scene.graphicContainer.classList.add(\"hidden-scene\")\r\n // // scene.textContainer.classList.add(\"hidden-scene\")\r\n // } else {\r\n // scene.graphicContainer.classList.remove(\"hidden-scene\")\r\n // // scene.textContainer.classList.remove(\"hidden-scene\")\r\n // }\r\n // }\r\n // })\r\n // )\r\n // });\r\n this.isMounted = true;\r\n }\r\n\r\n private adjustStepHeight(x: number) {\r\n for (let step of this.activeSteps) {\r\n step.el.style.top = `${x * step.screenLengthPos}px`\r\n }\r\n }\r\n\r\n /**\r\n * Clean up dangling subscriptions\r\n */\r\n public unmount(): void {\r\n for (let sub of this.cancelOnUnmount) {\r\n sub.unsubscribe();\r\n }\r\n }\r\n\r\n private findSceneOffset(index: number, sh: number) {\r\n const prev = this.sceneOrder.slice(0, index);\r\n let lengths = 0\r\n for (let p of prev) {\r\n lengths += this.scenes[p].screenLengths + this.screenBuffer\r\n }\r\n return sh * lengths + this.screenBuffer;\r\n }\r\n\r\n private getContainersForScene(id: string): { graphicContainer: HTMLDivElement, textContainer: HTMLDivElement } {\r\n const s = this.scenes[id];\r\n if (!s) {\r\n throw new Error(`No scene registered with id ${id}`);\r\n }\r\n return {\r\n graphicContainer: s.graphicContainer,\r\n textContainer: s.textContainer\r\n }\r\n }\r\n\r\n private static isKonamiCode(buffer) {\r\n return [38, 38, 40, 40, 37, 39, 37, 39, 66, 65].toString() === buffer.toString();\r\n }\r\n}\r\n","import { Scene, SceneActivationParams, SceneMountParams, SceneParams } from \"./Graphic\";\r\nimport {fromEvent, Subscription, animationFrameScheduler, interval, BehaviorSubject, Observable, of, zip} from \"rxjs\";\r\nimport {\r\n observeOn,\r\n map,\r\n withLatestFrom,\r\n throttleTime,\r\n distinctUntilChanged,\r\n switchMap,\r\n debounceTime, bufferCount,\r\n} from \"rxjs/operators\";\r\nimport { interpolateRound } from \"d3-interpolate\";\r\nimport {fromArray} from \"rxjs/internal/observable/fromArray\";\r\nimport {scaleLinear} from \"d3-scale\";\r\n\r\nexport type VideoParams = {\r\n framerate: number;\r\n vidEl: HTMLVideoElement;\r\n frameSteps: number;\r\n // steps: VidStepData[];\r\n numFrames: number;\r\n}\r\n\r\nexport type VideoSceneParams = SceneParams & VideoParams;\r\n\r\nexport class VideoScene implements Scene {\r\n public screenLengths = 0;\r\n public graphicContainer: HTMLDivElement;\r\n public textContainer: HTMLDivElement;\r\n\r\n private vidEl: HTMLVideoElement;\r\n private framerate: number;\r\n private frameSteps: number;\r\n // private steps: VidStepData[];\r\n\r\n\r\n private tick$ = interval(0, animationFrameScheduler);\r\n private lastDrawn$ = new BehaviorSubject(0);\r\n private targetFrame$ = new BehaviorSubject(0);\r\n private framesToDraw$ = new BehaviorSubject([]);\r\n private lastToDraw$ = new BehaviorSubject([]);\r\n private drain$ = new BehaviorSubject(0)\r\n private remainder$ = new BehaviorSubject([]);\r\n private timeupdate$: Observable;\r\n // private activeSteps = [];\r\n private numFrames: number;\r\n private isMounted = false;\r\n\r\n\r\n\r\n constructor(p: VideoSceneParams) {\r\n this.vidEl = p.vidEl\r\n this.framerate = p.framerate;\r\n this.screenLengths = p.screenLengths;\r\n this.frameSteps = p.frameSteps;\r\n // this.steps = p.steps;\r\n this.numFrames = p.numFrames;\r\n\r\n\r\n this.timeupdate$ = fromEvent(this.vidEl, \"timeupdate\")\r\n\r\n this.graphicContainer = document.createElement(\"div\")\r\n this.textContainer = document.createElement(\"div\")\r\n this.graphicContainer.classList.add(\"vid-container\")\r\n this.graphicContainer.classList.add((window).isMobile.any ? \"mobile-vid\" : \"desktop-vid\")\r\n for (let el of [this.graphicContainer, this.textContainer]) {\r\n el.style.width = \"100%\";\r\n }\r\n this.graphicContainer.append(this.vidEl);\r\n // this.initText();\r\n }\r\n\r\n activate(params: SceneActivationParams): Subscription[] {\r\n let subs = [];\r\n\r\n let timesToDraw$ = params.progress$.pipe(\r\n throttleTime(100),\r\n distinctUntilChanged(),\r\n withLatestFrom(this.lastDrawn$),\r\n switchMap(([scrollPct, lastDrawn]) => {\r\n const targetFrame = this.numFrames * scrollPct;\r\n const frameDiff = (targetFrame - lastDrawn) / this.frameSteps;\r\n const times = []\r\n for (let i = 1; i < this.frameSteps + 1; i++) {\r\n times.push(lastDrawn + (i * frameDiff))\r\n }\r\n return of(times);\r\n })\r\n )\r\n\r\n this.timeupdate$.pipe(\r\n debounceTime(20),\r\n withLatestFrom(timesToDraw$, this.lastToDraw$, this.remainder$)\r\n ).subscribe(([_, t, l, r]) => {\r\n // If t and l are the same, continue to drain r\r\n if (JSON.stringify(t) === JSON.stringify(l)) {\r\n const d = r.shift();\r\n this.drain$.next(d);\r\n // If remainders is drained, repopulate with last value so that \"timeupdate\" keeps ticking\r\n this.remainder$.next(r);\r\n // Else, set l = t, r = t, and drain the first of t\r\n } else {\r\n this.remainder$.next(t.slice(1));\r\n this.lastToDraw$.next(t);\r\n this.drain$.next(t[0]);\r\n }\r\n })\r\n\r\n this.drain$.subscribe(this.update.bind(this))\r\n\r\n // subs.push(params.screenHeight$.subscribe(s => this.adjustStepHeight(s)))\r\n // let targetFrame$ = params.progress$.pipe(\r\n // // throttleTime(500),\r\n // distinctUntilChanged(),\r\n // map((p) => {\r\n // // console.log(Math.floor(this.numFrames * p))\r\n // return Math.floor(this.numFrames * p)\r\n // })\r\n // )\r\n //\r\n subs.push(params.progress$.pipe(\r\n throttleTime(1000)\r\n ).subscribe(_ => this.vidEl.dispatchEvent(new Event(\"timeupdate\"))))\r\n //\r\n // let interpFrames$ = targetFrame$.pipe(\r\n // withLatestFrom(this.lastDrawn$),\r\n // map(([tf, ld]) => {\r\n // let p = performance.now()\r\n // return {\r\n // interp: interpolateRound(ld, tf),\r\n // start: p,\r\n // deadline: p + 1000\r\n // }\r\n // })\r\n // )\r\n //\r\n // subs.push(this.timeupdate$.pipe(\r\n // withLatestFrom(interpFrames$)\r\n // ).subscribe(([_, {interp, start, deadline}]) => {\r\n // setTimeout(() => {\r\n // let t = scaleLinear().domain([start, deadline]).range([0, 1])(performance.now())\r\n // if (t <= 1) {\r\n // let td = interp(t)\r\n // // console.log(td)\r\n // this.vidEl.currentTime = td / this.framerate;\r\n // this.lastDrawn$.next(td);\r\n // } else {\r\n // let td = interp(1)\r\n // // console.log(td)\r\n // this.vidEl.currentTime = td / this.framerate;\r\n // this.lastDrawn$.next(td)\r\n // }\r\n //\r\n // })\r\n // }))\r\n // setTimeout(() => this.vidEl.dispatchEvent(new Event(\"timeupdate\")), 100)\r\n\r\n // setTimeout(() => this.vidEl.dispatchEvent(new Event(\"timeupdate\")))\r\n\r\n\r\n return subs;\r\n }\r\n\r\n private update(t) {\r\n if (t && t !== this.vidEl.currentTime) {\r\n this.vidEl.currentTime = t / this.framerate;\r\n this.lastDrawn$.next(t);\r\n } else {\r\n setTimeout(() => this.vidEl.dispatchEvent(new Event(\"timeupdate\")))\r\n }\r\n }\r\n\r\n private calculateNextFrame({tf, ld}) {\r\n let forward = tf > ld\r\n let diff = forward ? tf - ld : ld - tf;\r\n // if (diff % 5 === 0) {\r\n // return ld + (forward ? 1 : -1) * 5\r\n // }\r\n // if (diff % 4 === 0) {\r\n // return ld + (forward ? 1 : -1) * 4\r\n // }\r\n // if (diff % 3 === 0) {\r\n // return ld + (forward ? 1 : -1) * 3\r\n // }\r\n // if (diff % 2 === 0) {\r\n // return ld + (forward ? 1 : -1) * 2\r\n // }\r\n return ld + (forward ? 1 : -1) * Math.floor(diff > this.frameSteps? diff / this.frameSteps : 1)\r\n }\r\n\r\n public mount(params: SceneMountParams): void {\r\n if (!this.isMounted) {\r\n params.vizPlate.append(this.vidEl)\r\n this.vidEl.pause();\r\n }\r\n this.isMounted = true;\r\n // this.vidEl.play()\r\n }\r\n\r\n public deactivate(subs: Subscription[]) {\r\n for (let sub of subs) {\r\n sub.unsubscribe();\r\n }\r\n }\r\n\r\n // private adjustStepHeight(x: number) {\r\n // for (let step of this.activeSteps) {\r\n // step.el.style.top = `${x * step.screenLengthPos + (x * .5)}px`\r\n // }\r\n // }\r\n\r\n // private initText() {\r\n // for (let step of this.steps) {\r\n // const p = document.createElement(step.elType || \"p\")\r\n // p.classList.add(\"stepper-text\")\r\n // p.innerHTML = step.text;\r\n // const d = document.createElement(\"div\")\r\n // d.classList.add(\"step\")\r\n // d.append(p)\r\n // this.textContainer.append(d)\r\n // this.activeSteps.push({\r\n // el: d,\r\n // screenLengthPos: step.screenLengthPos\r\n // })\r\n // }\r\n // }\r\n}","\r\nexport const text = [\r\n {\r\n type: \"start\",\r\n screenLengthPos: .5\r\n },\r\n {\r\n text: \"There's only one lead smelter in Florida.\",\r\n screenLengthPos: 1.5,\r\n },\r\n {\r\n text: \"It's located in east Tampa.\",\r\n screenLengthPos: 2.5,\r\n },\r\n {\r\n text: \"Inside Gopher Resource, lead is extracted from batteries.\",\r\n screenLengthPos: 3.5,\r\n },\r\n {\r\n text: \"It is then melted in furnaces.\",\r\n screenLengthPos: 4.5,\r\n },\r\n {\r\n text: \"More than 300 people work there. Many toil in extreme heat.\",\r\n screenLengthPos: 5.5,\r\n },\r\n {\r\n text: \"They wear respirators because of the dangers.\",\r\n screenLengthPos: 6.5\r\n },\r\n {\r\n text: \"The dangers start with the dust.\",\r\n screenLengthPos: 7.5\r\n },\r\n {\r\n text: \"It's full of lead.\",\r\n screenLengthPos: 8,\r\n },\r\n {\r\n text: \"Falling like an avalanche.\",\r\n screenLengthPos: 9,\r\n },\r\n {\r\n text: \"Swirling like a snow flurry.\",\r\n screenLengthPos: 13.5,\r\n },\r\n {\r\n text: \"Exploding like a dusty bomb.\",\r\n screenLengthPos: 18.5,\r\n },\r\n {\r\n text: \"Hundreds of workers have been exposed to high amounts of lead.\",\r\n screenLengthPos: 22.5,\r\n },\r\n {\r\n text: \"Workers are issued respirators that don't always protect them.\",\r\n screenLengthPos: 23.5,\r\n },\r\n\r\n {\r\n text: \"Here are 155 air samples taken from monitors attached to workers in the furnace department from 2013 to 2019.\",\r\n screenLengthPos: 24.5\r\n },\r\n {\r\n text: \"Nearly a third of all samples reported higher concentrations of lead in the air than the standard respirators in use at Gopher could guard against.\",\r\n screenLengthPos: 25.5\r\n },\r\n {\r\n text: \"Some workers stay around these toxic levels of lead for years.\",\r\n screenLengthPos: 26.5\r\n },\r\n {\r\n text: \"Consider what happened to Prospere Dumeus. He worked at the plant for over three decades.\",\r\n screenLengthPos: 27.5\r\n },\r\n {\r\n text: \"His blood was tested more than 180 times. Every one of his blood-lead results surpassed the threshold the Centers for Disease Control and Prevention considers elevated.\",\r\n screenLengthPos: 28.5\r\n },\r\n {\r\n text: \"His levels were so high for so long, doctors believe lead exposure contributed to his health problems.\",\r\n screenLengthPos: 29.5\r\n },\r\n {\r\n text: \"Dumeus suffered from heart conditions and hypertension. In 2017 he underwent his final heart surgery.\",\r\n screenLengthPos: 30.5\r\n },\r\n {\r\n text: \"He died two years later of coronary artery and kidney disease at the age of 56.\",\r\n screenLengthPos: 31.5\r\n },\r\n {\r\n text: \"Don't miss the 18-month investigation.\",\r\n screenLengthPos: 32.5\r\n },\r\n {\r\n text: \"#Poisoned\\n\\nComing Thursday\",\r\n type: \"end\",\r\n screenLengthPos: 33.5\r\n },\r\n\r\n]","export var name = \"d3\";\nexport var version = \"6.5.0\";\nexport var description = \"Data-Driven Documents\";\nexport var keywords = [\"dom\",\"visualization\",\"svg\",\"animation\",\"canvas\"];\nexport var homepage = \"https://d3js.org\";\nexport var license = \"BSD-3-Clause\";\nexport var author = {\"name\":\"Mike Bostock\",\"url\":\"https://bost.ocks.org/mike\"};\nexport var main = \"dist/d3.node.js\";\nexport var unpkg = \"dist/d3.min.js\";\nexport var jsdelivr = \"dist/d3.min.js\";\nexport var module = \"index.js\";\nexport var repository = {\"type\":\"git\",\"url\":\"https://github.com/d3/d3.git\"};\nexport var files = [\"dist/**/*.js\",\"index.js\"];\nexport var scripts = {\"pretest\":\"rimraf dist && mkdir dist && json2module package.json > dist/package.js && rollup -c\",\"test\":\"tape 'test/**/*-test.js'\",\"prepublishOnly\":\"yarn test\",\"postpublish\":\"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v${npm_package_version%%.*}.js && cp ../d3/dist/d3.min.js d3.v${npm_package_version%%.*}.min.js && git add d3.v${npm_package_version%%.*}.js d3.v${npm_package_version%%.*}.min.js && git commit -m \\\"d3 ${npm_package_version}\\\" && git push && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js\"};\nexport var devDependencies = {\"json2module\":\"0.0\",\"rimraf\":\"3\",\"rollup\":\"2\",\"rollup-plugin-ascii\":\"0.0\",\"rollup-plugin-node-resolve\":\"5\",\"rollup-plugin-terser\":\"7\",\"tape\":\"4\",\"tape-await\":\"0.1\"};\nexport var dependencies = {\"d3-array\":\"2\",\"d3-axis\":\"2\",\"d3-brush\":\"2\",\"d3-chord\":\"2\",\"d3-color\":\"2\",\"d3-contour\":\"2\",\"d3-delaunay\":\"5\",\"d3-dispatch\":\"2\",\"d3-drag\":\"2\",\"d3-dsv\":\"2\",\"d3-ease\":\"2\",\"d3-fetch\":\"2\",\"d3-force\":\"2\",\"d3-format\":\"2\",\"d3-geo\":\"2\",\"d3-hierarchy\":\"2\",\"d3-interpolate\":\"2\",\"d3-path\":\"2\",\"d3-polygon\":\"2\",\"d3-quadtree\":\"2\",\"d3-random\":\"2\",\"d3-scale\":\"3\",\"d3-scale-chromatic\":\"2\",\"d3-selection\":\"2\",\"d3-shape\":\"2\",\"d3-time\":\"2\",\"d3-time-format\":\"3\",\"d3-timer\":\"2\",\"d3-transition\":\"2\",\"d3-zoom\":\"2\"};\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) 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 ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","export default function(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(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\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(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 default function(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","export class InternMap extends Map {\n constructor(entries = [], key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n 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 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(value);\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(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\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(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 = ascending] = F;\n if (f.length === 1 || 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 = ascending(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascending(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(f);\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 === 1\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","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n step = -step;\n start = Math.ceil(start * step);\n stop = Math.floor(stop * step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import {tickIncrement} from \"./ticks.js\";\n\nexport default function nice(start, stop, count) {\n let prestep;\n while (true) {\n const step = tickIncrement(start, stop, count);\n if (step === prestep || step === 0 || !isFinite(step)) {\n return [start, stop];\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n }\n prestep = step;\n }\n}\n","import count from \"../count.js\";\n\nexport default function(values) {\n return Math.ceil(Math.log(count(values)) / Math.LN2) + 1;\n}\n","import {slice} from \"./array.js\";\nimport bisect from \"./bisect.js\";\nimport constant from \"./constant.js\";\nimport extent from \"./extent.js\";\nimport identity from \"./identity.js\";\nimport nice from \"./nice.js\";\nimport ticks, {tickIncrement} from \"./ticks.js\";\nimport sturges from \"./threshold/sturges.js\";\n\nexport default function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds, and nice the\n // default domain accordingly.\n if (!Array.isArray(tz)) {\n const max = x1, tn = +tz;\n if (domain === extent) [x0, x1] = nice(x0, x1, tn);\n tz = ticks(x0, x1, tn);\n\n // If the last threshold is coincident with the domain’s upper bound, the\n // last bin will be zero-width. If the default domain is used, and this\n // last threshold is coincident with the maximum input value, we can\n // extend the niced upper bound by one tick to ensure uniform bin widths;\n // otherwise, we simply remove the last threshold. Note that we don’t\n // coerce values or the domain to numbers, and thus must be careful to\n // compare order (>=) rather than strict equality (===)!\n if (tz[tz.length - 1] >= x1) {\n if (max >= x1 && domain === extent) {\n const step = tickIncrement(x0, x1, tn);\n if (isFinite(step)) {\n if (step > 0) {\n x1 = (Math.floor(x1 / step) + 1) * step;\n } else if (step < 0) {\n x1 = (Math.ceil(x1 * -step) + 1) / -step;\n }\n }\n } else {\n tz.pop();\n }\n }\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.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 = array.length - 1, compare = ascending) {\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 return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +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)) return;\n if ((p = +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","import count from \"../count.js\";\nimport quantile from \"../quantile.js\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(count(values), -1 / 3)));\n}\n","import count from \"../count.js\";\nimport deviation from \"../deviation.js\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count(values), -1 / 3)));\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 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 from \"./quantile.js\";\n\nexport default function(values, valueof) {\n return quantile(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","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","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(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","import ascending from \"./ascending.js\";\n\nexport default function least(values, compare = ascending) {\n let min;\n let defined = false;\n if (compare.length === 1) {\n let minValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, minValue) < 0\n : ascending(value, value) === 0) {\n min = element;\n minValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, min) < 0\n : compare(value, value) === 0) {\n min = value;\n defined = true;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\nimport minIndex from \"./minIndex.js\";\n\nexport default function leastIndex(values, compare = ascending) {\n if (compare.length === 1) return minIndex(values, compare);\n let minValue;\n let min = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (min < 0\n ? compare(value, value) === 0\n : compare(value, minValue) < 0) {\n minValue = value;\n min = index;\n }\n }\n return min;\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 ascending from \"./ascending.js\";\nimport maxIndex from \"./maxIndex.js\";\n\nexport default function greatestIndex(values, compare = ascending) {\n if (compare.length === 1) return maxIndex(values, compare);\n let maxValue;\n let max = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (max < 0\n ? compare(value, value) === 0\n : compare(value, maxValue) > 0) {\n maxValue = value;\n max = index;\n }\n }\n return max;\n}\n","import leastIndex from \"./leastIndex.js\";\n\nexport default function scan(values, compare) {\n const index = leastIndex(values, compare);\n return index < 0 ? undefined : index;\n}\n","export default shuffler(Math.random);\n\nexport function shuffler(random) {\n return function shuffle(array, i0 = 0, i1 = array.length) {\n let m = i1 - (i0 = +i0);\n while (m) {\n const i = random() * m-- | 0, t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n return array;\n };\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","import min from \"./min.js\";\n\nexport default function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n","import transpose from \"./transpose.js\";\n\nexport default function() {\n return transpose(arguments);\n}\n","export default function every(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n let index = -1;\n for (const value of values) {\n if (!test(value, ++index, values)) {\n return false;\n }\n }\n return true;\n}\n","export default function some(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n let index = -1;\n for (const value of values) {\n if (test(value, ++index, values)) {\n return true;\n }\n }\n return false;\n}\n","export default function filter(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n const array = [];\n let index = -1;\n for (const value of values) {\n if (test(value, ++index, values)) {\n array.push(value);\n }\n }\n return array;\n}\n","export default function map(values, mapper) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n if (typeof mapper !== \"function\") throw new TypeError(\"mapper is not a function\");\n return Array.from(values, (value, index) => mapper(value, index, values));\n}\n","export default function reduce(values, reducer, value) {\n if (typeof reducer !== \"function\") throw new TypeError(\"reducer is not a function\");\n const iterator = values[Symbol.iterator]();\n let done, next, index = -1;\n if (arguments.length < 3) {\n ({done, value} = iterator.next());\n if (done) return;\n ++index;\n }\n while (({done, value: next} = iterator.next()), !done) {\n value = reducer(value, next, ++index, values);\n }\n return value;\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 difference(values, ...others) {\n values = new Set(values);\n for (const other of others) {\n for (const value of other) {\n values.delete(value);\n }\n }\n return values;\n}\n","export default function disjoint(values, other) {\n const iterator = other[Symbol.iterator](), set = new Set();\n for (const v of values) {\n if (set.has(v)) return false;\n let value, done;\n while (({value, done} = iterator.next())) {\n if (done) break;\n if (Object.is(v, value)) return false;\n set.add(value);\n }\n }\n return true;\n}\n","export default function set(values) {\n return values instanceof Set ? values : new Set(values);\n}\n","import set from \"./set.js\";\n\nexport default function intersection(values, ...others) {\n values = new Set(values);\n others = others.map(set);\n out: for (const value of values) {\n for (const other of others) {\n if (!other.has(value)) {\n values.delete(value);\n continue out;\n }\n }\n }\n return values;\n}\n","export default function superset(values, other) {\n const iterator = values[Symbol.iterator](), set = new Set();\n for (const o of other) {\n if (set.has(o)) continue;\n let value, done;\n while (({value, done} = iterator.next())) {\n if (done) return false;\n set.add(value);\n if (Object.is(o, value)) break;\n }\n }\n return true;\n}\n","import superset from \"./superset.js\";\n\nexport default function subset(values, other) {\n return superset(other, values);\n}\n","export default function union(...others) {\n const set = new Set();\n for (const other of others) {\n for (const o of other) {\n set.add(o);\n }\n }\n return set;\n}\n","export {default as bisect, bisectRight, bisectLeft, bisectCenter} from \"./bisect.js\";\nexport {default as ascending} from \"./ascending.js\";\nexport {default as bisector} from \"./bisector.js\";\nexport {default as count} from \"./count.js\";\nexport {default as cross} from \"./cross.js\";\nexport {default as cumsum} from \"./cumsum.js\";\nexport {default as descending} from \"./descending.js\";\nexport {default as deviation} from \"./deviation.js\";\nexport {default as extent} from \"./extent.js\";\nexport {default as fsum, Adder} from \"./fsum.js\";\nexport {default as group, groups, index, indexes, rollup, rollups} from \"./group.js\";\nexport {default as groupSort} from \"./groupSort.js\";\nexport {default as bin, default as histogram} from \"./bin.js\"; // Deprecated; use bin.\nexport {default as thresholdFreedmanDiaconis} from \"./threshold/freedmanDiaconis.js\";\nexport {default as thresholdScott} from \"./threshold/scott.js\";\nexport {default as thresholdSturges} from \"./threshold/sturges.js\";\nexport {default as max} from \"./max.js\";\nexport {default as maxIndex} from \"./maxIndex.js\";\nexport {default as mean} from \"./mean.js\";\nexport {default as median} from \"./median.js\";\nexport {default as merge} from \"./merge.js\";\nexport {default as min} from \"./min.js\";\nexport {default as minIndex} from \"./minIndex.js\";\nexport {default as nice} from \"./nice.js\";\nexport {default as pairs} from \"./pairs.js\";\nexport {default as permute} from \"./permute.js\";\nexport {default as quantile, quantileSorted} from \"./quantile.js\";\nexport {default as quickselect} from \"./quickselect.js\";\nexport {default as range} from \"./range.js\";\nexport {default as least} from \"./least.js\";\nexport {default as leastIndex} from \"./leastIndex.js\";\nexport {default as greatest} from \"./greatest.js\";\nexport {default as greatestIndex} from \"./greatestIndex.js\";\nexport {default as scan} from \"./scan.js\"; // Deprecated; use leastIndex.\nexport {default as shuffle, shuffler} from \"./shuffle.js\";\nexport {default as sum} from \"./sum.js\";\nexport {default as ticks, tickIncrement, tickStep} from \"./ticks.js\";\nexport {default as transpose} from \"./transpose.js\";\nexport {default as variance} from \"./variance.js\";\nexport {default as zip} from \"./zip.js\";\nexport {default as every} from \"./every.js\";\nexport {default as some} from \"./some.js\";\nexport {default as filter} from \"./filter.js\";\nexport {default as map} from \"./map.js\";\nexport {default as reduce} from \"./reduce.js\";\nexport {default as reverse} from \"./reverse.js\";\nexport {default as sort} from \"./sort.js\";\nexport {default as difference} from \"./difference.js\";\nexport {default as disjoint} from \"./disjoint.js\";\nexport {default as intersection} from \"./intersection.js\";\nexport {default as subset} from \"./subset.js\";\nexport {default as superset} from \"./superset.js\";\nexport {default as union} from \"./union.js\";\nexport {InternMap, InternSet} from \"internmap\";\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return x;\n}\n","import {slice} from \"./array.js\";\nimport 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.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return +scale(d) + offset;\n };\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 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] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\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) : 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)); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M0.5,\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",0.5H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d)); });\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 = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), 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 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","export {\n axisTop,\n axisRight,\n axisBottom,\n axisLeft\n} from \"./axis.js\";\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 {default as dispatch} from \"./dispatch.js\";\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","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","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 var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\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 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 array from \"../array.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 = array(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","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 enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\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(selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\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","import creator from \"./creator.js\";\nimport select from \"./select.js\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\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","import pointer from \"./pointer.js\";\nimport sourceEvent from \"./sourceEvent.js\";\n\nexport default function(events, node) {\n if (events.target) { // i.e., instanceof Event, not TouchList or iterable\n events = sourceEvent(events);\n if (node === undefined) node = events.currentTarget;\n events = events.touches || [events];\n }\n return Array.from(events, event => pointer(event, node));\n}\n","import array from \"./array.js\";\nimport {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : array(selector)], root);\n}\n","export {default as create} from \"./create.js\";\nexport {default as creator} from \"./creator.js\";\nexport {default as local} from \"./local.js\";\nexport {default as matcher} from \"./matcher.js\";\nexport {default as namespace} from \"./namespace.js\";\nexport {default as namespaces} from \"./namespaces.js\";\nexport {default as pointer} from \"./pointer.js\";\nexport {default as pointers} from \"./pointers.js\";\nexport {default as select} from \"./select.js\";\nexport {default as selectAll} from \"./selectAll.js\";\nexport {default as selection} from \"./selection/index.js\";\nexport {default as selector} from \"./selector.js\";\nexport {default as selectorAll} from \"./selectorAll.js\";\nexport {styleValue as style} from \"./selection/style.js\";\nexport {default as window} from \"./window.js\";\n","export 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 from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\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, true);\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, {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)\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).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\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; // nobreak\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 as drag} from \"./drag.js\";\nexport {default as dragDisable, yesdrag as dragEnable} from \"./nodrag.js\";\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: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\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_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: function(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: function(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: function() {\n return this;\n },\n displayable: function() {\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 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_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\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: function(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: function(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: function() {\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 displayable: function() {\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: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\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: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\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: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\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: function(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: function(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: function() {\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 {default as color, rgb, hsl} from \"./color.js\";\nexport {default as lab, hcl, lch, gray} from \"./lab.js\";\nexport {default as cubehelix} from \"./cubehelix.js\";\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","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\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(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","import {hue} from \"./color.js\";\n\nexport default function(a, b) {\n var i = hue(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\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","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\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","export {default as interpolate} from \"./value.js\";\nexport {default as interpolateArray} from \"./array.js\";\nexport {default as interpolateBasis} from \"./basis.js\";\nexport {default as interpolateBasisClosed} from \"./basisClosed.js\";\nexport {default as interpolateDate} from \"./date.js\";\nexport {default as interpolateDiscrete} from \"./discrete.js\";\nexport {default as interpolateHue} from \"./hue.js\";\nexport {default as interpolateNumber} from \"./number.js\";\nexport {default as interpolateNumberArray} from \"./numberArray.js\";\nexport {default as interpolateObject} from \"./object.js\";\nexport {default as interpolateRound} from \"./round.js\";\nexport {default as interpolateString} from \"./string.js\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index.js\";\nexport {default as interpolateZoom} from \"./zoom.js\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb.js\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl.js\";\nexport {default as interpolateLab} from \"./lab.js\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl.js\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix.js\";\nexport {default as piecewise} from \"./piecewise.js\";\nexport {default as quantize} from \"./quantize.js\";\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(null, 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","export {\n now,\n timer,\n timerFlush\n} from \"./timer.js\";\n\nexport {\n default as timeout\n} from \"./timeout.js\";\n\nexport {\n default as interval\n} from \"./interval.js\";\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 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 quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\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","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}\n","import {tpmt} from \"./math.js\";\n\nexport function expIn(t) {\n return tpmt(1 - +t);\n}\n\nexport function expOut(t) {\n return 1 - tpmt(t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;\n}\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","import {tpmt} from \"./math.js\";\n\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(-(--t)) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * tpmt(-t) * Math.sin((s - t) / p)\n : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","export {\n linear as easeLinear\n} from \"./linear.js\";\n\nexport {\n quadInOut as easeQuad,\n quadIn as easeQuadIn,\n quadOut as easeQuadOut,\n quadInOut as easeQuadInOut\n} from \"./quad.js\";\n\nexport {\n cubicInOut as easeCubic,\n cubicIn as easeCubicIn,\n cubicOut as easeCubicOut,\n cubicInOut as easeCubicInOut\n} from \"./cubic.js\";\n\nexport {\n polyInOut as easePoly,\n polyIn as easePolyIn,\n polyOut as easePolyOut,\n polyInOut as easePolyInOut\n} from \"./poly.js\";\n\nexport {\n sinInOut as easeSin,\n sinIn as easeSinIn,\n sinOut as easeSinOut,\n sinInOut as easeSinInOut\n} from \"./sin.js\";\n\nexport {\n expInOut as easeExp,\n expIn as easeExpIn,\n expOut as easeExpOut,\n expInOut as easeExpInOut\n} from \"./exp.js\";\n\nexport {\n circleInOut as easeCircle,\n circleIn as easeCircleIn,\n circleOut as easeCircleOut,\n circleInOut as easeCircleInOut\n} from \"./circle.js\";\n\nexport {\n bounceOut as easeBounce,\n bounceIn as easeBounceIn,\n bounceOut as easeBounceOut,\n bounceInOut as easeBounceInOut\n} from \"./bounce.js\";\n\nexport {\n backInOut as easeBack,\n backIn as easeBackIn,\n backOut as easeBackOut,\n backInOut as easeBackInOut\n} from \"./back.js\";\n\nexport {\n elasticOut as easeElastic,\n elasticIn as easeElasticIn,\n elasticOut as easeElasticOut,\n elasticInOut as easeElasticInOut\n} from \"./elastic.js\";\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","import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n","export default x => () => x;\n","export default function BrushEvent(type, {\n sourceEvent,\n target,\n selection,\n mode,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n selection: {value: selection, enumerable: true, configurable: true},\n mode: {value: mode, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move();\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export {\n default as brush,\n brushX,\n brushY,\n brushSelection\n} from \"./brush.js\";\n","export var abs = Math.abs;\nexport var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\nexport var epsilon = 1e-12;\n","import {max, tau} from \"./math.js\";\n\nfunction range(i, j) {\n return Array.from({length: j - i}, (_, k) => i + k);\n}\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nexport default function() {\n return chord(false, false);\n}\n\nexport function chordTranspose() {\n return chord(false, true);\n}\n\nexport function chordDirected() {\n return chord(true, false);\n}\n\nfunction chord(directed, transpose) {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = new Array(n),\n groupIndex = range(0, n),\n chords = new Array(n * n),\n groups = new Array(n),\n k = 0, dx;\n\n matrix = Float64Array.from({length: n * n}, transpose\n ? (_, i) => matrix[i % n][i / n | 0]\n : (_, i) => matrix[i / n | 0][i % n]);\n\n // Compute the scaling factor from value to angle in [0, 2pi].\n for (let i = 0; i < n; ++i) {\n let x = 0;\n for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i];\n k += groupSums[i] = x;\n }\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n;\n\n // Compute the angles for each group and constituent chord.\n {\n let x = 0;\n if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b]));\n for (const i of groupIndex) {\n const x0 = x;\n if (directed) {\n const subgroupIndex = range(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]);\n if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b]));\n for (const j of subgroupIndex) {\n if (j < 0) {\n const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null});\n chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]};\n } else {\n const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});\n chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n }\n }\n groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};\n } else {\n const subgroupIndex = range(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]);\n if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b]));\n for (const j of subgroupIndex) {\n let chord;\n if (i < j) {\n chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});\n chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n } else {\n chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null});\n chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n if (i === j) chord.source = chord.target;\n }\n if (chord.source && chord.target && chord.source.value < chord.target.value) {\n const source = chord.source;\n chord.source = chord.target;\n chord.target = source;\n }\n }\n groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};\n }\n x += dx;\n }\n }\n\n // Remove empty chords.\n chords = Object.values(chords);\n chords.groups = groups;\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export {default as path} from \"./path.js\";\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport {abs, cos, epsilon, halfPi, sin} from \"./math.js\";\n\nfunction defaultSource(d) {\n return d.source;\n}\n\nfunction defaultTarget(d) {\n return d.target;\n}\n\nfunction defaultRadius(d) {\n return d.radius;\n}\n\nfunction defaultStartAngle(d) {\n return d.startAngle;\n}\n\nfunction defaultEndAngle(d) {\n return d.endAngle;\n}\n\nfunction defaultPadAngle() {\n return 0;\n}\n\nfunction defaultArrowheadRadius() {\n return 10;\n}\n\nfunction ribbon(headRadius) {\n var source = defaultSource,\n target = defaultTarget,\n sourceRadius = defaultRadius,\n targetRadius = defaultRadius,\n startAngle = defaultStartAngle,\n endAngle = defaultEndAngle,\n padAngle = defaultPadAngle,\n context = null;\n\n function ribbon() {\n var buffer,\n s = source.apply(this, arguments),\n t = target.apply(this, arguments),\n ap = padAngle.apply(this, arguments) / 2,\n argv = slice.call(arguments),\n sr = +sourceRadius.apply(this, (argv[0] = s, argv)),\n sa0 = startAngle.apply(this, argv) - halfPi,\n sa1 = endAngle.apply(this, argv) - halfPi,\n tr = +targetRadius.apply(this, (argv[0] = t, argv)),\n ta0 = startAngle.apply(this, argv) - halfPi,\n ta1 = endAngle.apply(this, argv) - halfPi;\n\n if (!context) context = buffer = path();\n\n if (ap > epsilon) {\n if (abs(sa1 - sa0) > ap * 2 + epsilon) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap);\n else sa0 = sa1 = (sa0 + sa1) / 2;\n if (abs(ta1 - ta0) > ap * 2 + epsilon) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap);\n else ta0 = ta1 = (ta0 + ta1) / 2;\n }\n\n context.moveTo(sr * cos(sa0), sr * sin(sa0));\n context.arc(0, 0, sr, sa0, sa1);\n if (sa0 !== ta0 || sa1 !== ta1) {\n if (headRadius) {\n var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2;\n context.quadraticCurveTo(0, 0, tr2 * cos(ta0), tr2 * sin(ta0));\n context.lineTo(tr * cos(ta2), tr * sin(ta2));\n context.lineTo(tr2 * cos(ta1), tr2 * sin(ta1));\n } else {\n context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));\n context.arc(0, 0, tr, ta0, ta1);\n }\n }\n context.quadraticCurveTo(0, 0, sr * cos(sa0), sr * sin(sa0));\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n if (headRadius) ribbon.headRadius = function(_) {\n return arguments.length ? (headRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : headRadius;\n };\n\n ribbon.radius = function(_) {\n return arguments.length ? (sourceRadius = targetRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : sourceRadius;\n };\n\n ribbon.sourceRadius = function(_) {\n return arguments.length ? (sourceRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : sourceRadius;\n };\n\n ribbon.targetRadius = function(_) {\n return arguments.length ? (targetRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : targetRadius;\n };\n\n ribbon.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : startAngle;\n };\n\n ribbon.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : endAngle;\n };\n\n ribbon.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : padAngle;\n };\n\n ribbon.source = function(_) {\n return arguments.length ? (source = _, ribbon) : source;\n };\n\n ribbon.target = function(_) {\n return arguments.length ? (target = _, ribbon) : target;\n };\n\n ribbon.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;\n };\n\n return ribbon;\n}\n\nexport default function() {\n return ribbon();\n}\n\nexport function ribbonArrow() {\n return ribbon(defaultArrowheadRadius);\n}\n","export {default as chord, chordTranspose, chordDirected} from \"./chord.js\";\nexport {default as ribbon, ribbonArrow} from \"./ribbon.js\";\n","var array = Array.prototype;\n\nexport var slice = array.slice;\n","export default function(a, b) {\n return a - b;\n}\n","export default function(ring) {\n var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area;\n}\n","export default x => () => x;\n","export default function(ring, hole) {\n var i = -1, n = hole.length, c;\n while (++i < n) if (c = ringContains(ring, hole[i])) return c;\n return 0;\n}\n\nfunction ringContains(ring, point) {\n var x = point[0], y = point[1], contains = -1;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (segmentContains(pi, pj, point)) return 0;\n if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;\n }\n return contains;\n}\n\nfunction segmentContains(a, b, c) {\n var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);\n}\n\nfunction collinear(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);\n}\n\nfunction within(p, q, r) {\n return p <= q && q <= r || r <= q && q <= p;\n}\n","export default function() {}\n","import {extent, thresholdSturges, tickStep, range} from \"d3-array\";\nimport {slice} from \"./array.js\";\nimport ascending from \"./ascending.js\";\nimport area from \"./area.js\";\nimport constant from \"./constant.js\";\nimport contains from \"./contains.js\";\nimport noop from \"./noop.js\";\n\nvar cases = [\n [],\n [[[1.0, 1.5], [0.5, 1.0]]],\n [[[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [0.5, 1.0]]],\n [[[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 0.5], [1.0, 1.5]]],\n [[[1.0, 0.5], [0.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 0.5]]],\n [[[1.0, 1.5], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.5, 1.0]]],\n [[[1.0, 1.5], [1.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 1.5]]],\n []\n];\n\nexport default function() {\n var dx = 1,\n dy = 1,\n threshold = thresholdSturges,\n smooth = smoothLinear;\n\n function contours(values) {\n var tz = threshold(values);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var domain = extent(values), start = domain[0], stop = domain[1];\n tz = tickStep(start, stop, tz);\n tz = range(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz);\n } else {\n tz = tz.slice().sort(ascending);\n }\n\n return tz.map(function(value) {\n return contour(values, value);\n });\n }\n\n // Accumulate, smooth contour rings, assign holes to exterior rings.\n // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js\n function contour(values, value) {\n var polygons = [],\n holes = [];\n\n isorings(values, value, function(ring) {\n smooth(ring, values, value);\n if (area(ring) > 0) polygons.push([ring]);\n else holes.push(ring);\n });\n\n holes.forEach(function(hole) {\n for (var i = 0, n = polygons.length, polygon; i < n; ++i) {\n if (contains((polygon = polygons[i])[0], hole) !== -1) {\n polygon.push(hole);\n return;\n }\n }\n });\n\n return {\n type: \"MultiPolygon\",\n value: value,\n coordinates: polygons\n };\n }\n\n // Marching squares with isolines stitched into rings.\n // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n function isorings(values, value, callback) {\n var fragmentByStart = new Array,\n fragmentByEnd = new Array,\n x, y, t0, t1, t2, t3;\n\n // Special case for the first row (y = -1, t2 = t3 = 0).\n x = y = -1;\n t1 = values[0] >= value;\n cases[t1 << 1].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[x + 1] >= value;\n cases[t0 | t1 << 1].forEach(stitch);\n }\n cases[t1 << 0].forEach(stitch);\n\n // General case for the intermediate rows.\n while (++y < dy - 1) {\n x = -1;\n t1 = values[y * dx + dx] >= value;\n t2 = values[y * dx] >= value;\n cases[t1 << 1 | t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t1 | t2 << 3].forEach(stitch);\n }\n\n // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n x = -1;\n t2 = values[y * dx] >= value;\n cases[t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t2 << 3].forEach(stitch);\n\n function stitch(line) {\n var start = [line[0][0] + x, line[0][1] + y],\n end = [line[1][0] + x, line[1][1] + y],\n startIndex = index(start),\n endIndex = index(end),\n f, g;\n if (f = fragmentByEnd[startIndex]) {\n if (g = fragmentByStart[endIndex]) {\n delete fragmentByEnd[f.end];\n delete fragmentByStart[g.start];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};\n }\n } else {\n delete fragmentByEnd[f.end];\n f.ring.push(end);\n fragmentByEnd[f.end = endIndex] = f;\n }\n } else if (f = fragmentByStart[endIndex]) {\n if (g = fragmentByEnd[startIndex]) {\n delete fragmentByStart[f.start];\n delete fragmentByEnd[g.end];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};\n }\n } else {\n delete fragmentByStart[f.start];\n f.ring.unshift(start);\n fragmentByStart[f.start = startIndex] = f;\n }\n } else {\n fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};\n }\n }\n }\n\n function index(point) {\n return point[0] * 2 + point[1] * (dx + 1) * 4;\n }\n\n function smoothLinear(ring, values, value) {\n ring.forEach(function(point) {\n var x = point[0],\n y = point[1],\n xt = x | 0,\n yt = y | 0,\n v0,\n v1 = values[yt * dx + xt];\n if (x > 0 && x < dx && xt === x) {\n v0 = values[yt * dx + xt - 1];\n point[0] = x + (value - v0) / (v1 - v0) - 0.5;\n }\n if (y > 0 && y < dy && yt === y) {\n v0 = values[(yt - 1) * dx + xt];\n point[1] = y + (value - v0) / (v1 - v0) - 0.5;\n }\n });\n }\n\n contours.contour = contour;\n\n contours.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.floor(_[0]), _1 = Math.floor(_[1]);\n if (!(_0 >= 0 && _1 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, contours;\n };\n\n contours.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;\n };\n\n contours.smooth = function(_) {\n return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;\n };\n\n return contours;\n}\n","// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurX(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var j = 0; j < m; ++j) {\n for (var i = 0, sr = 0; i < n + r; ++i) {\n if (i < n) {\n sr += source.data[i + j * n];\n }\n if (i >= r) {\n if (i >= w) {\n sr -= source.data[i - w + j * n];\n }\n target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);\n }\n }\n }\n}\n\n// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurY(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var i = 0; i < n; ++i) {\n for (var j = 0, sr = 0; j < m + r; ++j) {\n if (j < m) {\n sr += source.data[i + j * n];\n }\n if (j >= r) {\n if (j >= w) {\n sr -= source.data[i + (j - w) * n];\n }\n target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);\n }\n }\n }\n}\n","import {max, range, tickStep} from \"d3-array\";\nimport {slice} from \"./array.js\";\nimport {blurX, blurY} from \"./blur.js\";\nimport constant from \"./constant.js\";\nimport contours from \"./contours.js\";\n\nfunction defaultX(d) {\n return d[0];\n}\n\nfunction defaultY(d) {\n return d[1];\n}\n\nfunction defaultWeight() {\n return 1;\n}\n\nexport default function() {\n var x = defaultX,\n y = defaultY,\n weight = defaultWeight,\n dx = 960,\n dy = 500,\n r = 20, // blur radius\n k = 2, // log2(grid cell size)\n o = r * 3, // grid offset, to pad for blur\n n = (dx + o * 2) >> k, // grid width\n m = (dy + o * 2) >> k, // grid height\n threshold = constant(20);\n\n function density(data) {\n var values0 = new Float32Array(n * m),\n values1 = new Float32Array(n * m);\n\n data.forEach(function(d, i, data) {\n var xi = (+x(d, i, data) + o) >> k,\n yi = (+y(d, i, data) + o) >> k,\n wi = +weight(d, i, data);\n if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n values0[xi + yi * n] += wi;\n }\n });\n\n // TODO Optimize.\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n\n var tz = threshold(values0);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var stop = max(values0);\n tz = tickStep(0, stop, tz);\n tz = range(0, Math.floor(stop / tz) * tz, tz);\n tz.shift();\n }\n\n return contours()\n .thresholds(tz)\n .size([n, m])\n (values0)\n .map(transform);\n }\n\n function transform(geometry) {\n geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.\n geometry.coordinates.forEach(transformPolygon);\n return geometry;\n }\n\n function transformPolygon(coordinates) {\n coordinates.forEach(transformRing);\n }\n\n function transformRing(coordinates) {\n coordinates.forEach(transformPoint);\n }\n\n // TODO Optimize.\n function transformPoint(coordinates) {\n coordinates[0] = coordinates[0] * Math.pow(2, k) - o;\n coordinates[1] = coordinates[1] * Math.pow(2, k) - o;\n }\n\n function resize() {\n o = r * 3;\n n = (dx + o * 2) >> k;\n m = (dy + o * 2) >> k;\n return density;\n }\n\n density.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), density) : x;\n };\n\n density.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), density) : y;\n };\n\n density.weight = function(_) {\n return arguments.length ? (weight = typeof _ === \"function\" ? _ : constant(+_), density) : weight;\n };\n\n density.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = +_[0], _1 = +_[1];\n if (!(_0 >= 0 && _1 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, resize();\n };\n\n density.cellSize = function(_) {\n if (!arguments.length) return 1 << k;\n if (!((_ = +_) >= 1)) throw new Error(\"invalid cell size\");\n return k = Math.floor(Math.log(_) / Math.LN2), resize();\n };\n\n density.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;\n };\n\n density.bandwidth = function(_) {\n if (!arguments.length) return Math.sqrt(r * (r + 1));\n if (!((_ = +_) >= 0)) throw new Error(\"invalid bandwidth\");\n return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();\n };\n\n return density;\n}\n","export {default as contours} from \"./contours.js\";\nexport {default as contourDensity} from \"./density.js\";\n","\nconst EPSILON = Math.pow(2, -52);\nconst EDGE_STACK = new Uint32Array(512);\n\nexport default class Delaunator {\n\n static from(points, getX = defaultGetX, getY = defaultGetY) {\n const n = points.length;\n const coords = new Float64Array(n * 2);\n\n for (let i = 0; i < n; i++) {\n const p = points[i];\n coords[2 * i] = getX(p);\n coords[2 * i + 1] = getY(p);\n }\n\n return new Delaunator(coords);\n }\n\n constructor(coords) {\n const n = coords.length >> 1;\n if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');\n\n this.coords = coords;\n\n // arrays that will store the triangulation graph\n const maxTriangles = Math.max(2 * n - 5, 0);\n this._triangles = new Uint32Array(maxTriangles * 3);\n this._halfedges = new Int32Array(maxTriangles * 3);\n\n // temporary arrays for tracking the edges of the advancing convex hull\n this._hashSize = Math.ceil(Math.sqrt(n));\n this._hullPrev = new Uint32Array(n); // edge to prev edge\n this._hullNext = new Uint32Array(n); // edge to next edge\n this._hullTri = new Uint32Array(n); // edge to adjacent triangle\n this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash\n\n // temporary arrays for sorting points\n this._ids = new Uint32Array(n);\n this._dists = new Float64Array(n);\n\n this.update();\n }\n\n update() {\n const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this;\n const n = coords.length >> 1;\n\n // populate an array of point indices; calculate input data bbox\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n for (let i = 0; i < n; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n this._ids[i] = i;\n }\n const cx = (minX + maxX) / 2;\n const cy = (minY + maxY) / 2;\n\n let minDist = Infinity;\n let i0, i1, i2;\n\n // pick a seed point close to the center\n for (let i = 0; i < n; i++) {\n const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist) {\n i0 = i;\n minDist = d;\n }\n }\n const i0x = coords[2 * i0];\n const i0y = coords[2 * i0 + 1];\n\n minDist = Infinity;\n\n // find the point closest to the seed\n for (let i = 0; i < n; i++) {\n if (i === i0) continue;\n const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist && d > 0) {\n i1 = i;\n minDist = d;\n }\n }\n let i1x = coords[2 * i1];\n let i1y = coords[2 * i1 + 1];\n\n let minRadius = Infinity;\n\n // find the third point which forms the smallest circumcircle with the first two\n for (let i = 0; i < n; i++) {\n if (i === i0 || i === i1) continue;\n const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);\n if (r < minRadius) {\n i2 = i;\n minRadius = r;\n }\n }\n let i2x = coords[2 * i2];\n let i2y = coords[2 * i2 + 1];\n\n if (minRadius === Infinity) {\n // order collinear points by dx (or dy if all x are identical)\n // and return the list as a hull\n for (let i = 0; i < n; i++) {\n this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);\n }\n quicksort(this._ids, this._dists, 0, n - 1);\n const hull = new Uint32Array(n);\n let j = 0;\n for (let i = 0, d0 = -Infinity; i < n; i++) {\n const id = this._ids[i];\n if (this._dists[id] > d0) {\n hull[j++] = id;\n d0 = this._dists[id];\n }\n }\n this.hull = hull.subarray(0, j);\n this.triangles = new Uint32Array(0);\n this.halfedges = new Uint32Array(0);\n return;\n }\n\n // swap the order of the seed points for counter-clockwise orientation\n if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) {\n const i = i1;\n const x = i1x;\n const y = i1y;\n i1 = i2;\n i1x = i2x;\n i1y = i2y;\n i2 = i;\n i2x = x;\n i2y = y;\n }\n\n const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);\n this._cx = center.x;\n this._cy = center.y;\n\n for (let i = 0; i < n; i++) {\n this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);\n }\n\n // sort the points by distance from the seed triangle circumcenter\n quicksort(this._ids, this._dists, 0, n - 1);\n\n // set up the seed triangle as the starting hull\n this._hullStart = i0;\n let hullSize = 3;\n\n hullNext[i0] = hullPrev[i2] = i1;\n hullNext[i1] = hullPrev[i0] = i2;\n hullNext[i2] = hullPrev[i1] = i0;\n\n hullTri[i0] = 0;\n hullTri[i1] = 1;\n hullTri[i2] = 2;\n\n hullHash.fill(-1);\n hullHash[this._hashKey(i0x, i0y)] = i0;\n hullHash[this._hashKey(i1x, i1y)] = i1;\n hullHash[this._hashKey(i2x, i2y)] = i2;\n\n this.trianglesLen = 0;\n this._addTriangle(i0, i1, i2, -1, -1, -1);\n\n for (let k = 0, xp, yp; k < this._ids.length; k++) {\n const i = this._ids[k];\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n\n // skip near-duplicate points\n if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;\n xp = x;\n yp = y;\n\n // skip seed triangle points\n if (i === i0 || i === i1 || i === i2) continue;\n\n // find a visible edge on the convex hull using edge hash\n let start = 0;\n for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {\n start = hullHash[(key + j) % this._hashSize];\n if (start !== -1 && start !== hullNext[start]) break;\n }\n\n start = hullPrev[start];\n let e = start, q;\n while (q = hullNext[e], !orient(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])) {\n e = q;\n if (e === start) {\n e = -1;\n break;\n }\n }\n if (e === -1) continue; // likely a near-duplicate point; skip it\n\n // add the first triangle from the point\n let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);\n\n // recursively flip triangles from the point until they satisfy the Delaunay condition\n hullTri[i] = this._legalize(t + 2);\n hullTri[e] = t; // keep track of boundary triangles on the hull\n hullSize++;\n\n // walk forward through the hull, adding more triangles and flipping recursively\n let n = hullNext[e];\n while (q = hullNext[n], orient(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1])) {\n t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);\n hullTri[i] = this._legalize(t + 2);\n hullNext[n] = n; // mark as removed\n hullSize--;\n n = q;\n }\n\n // walk backward from the other side, adding more triangles and flipping\n if (e === start) {\n while (q = hullPrev[e], orient(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])) {\n t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);\n this._legalize(t + 2);\n hullTri[q] = t;\n hullNext[e] = e; // mark as removed\n hullSize--;\n e = q;\n }\n }\n\n // update the hull indices\n this._hullStart = hullPrev[i] = e;\n hullNext[e] = hullPrev[n] = i;\n hullNext[i] = n;\n\n // save the two new edges in the hash table\n hullHash[this._hashKey(x, y)] = i;\n hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;\n }\n\n this.hull = new Uint32Array(hullSize);\n for (let i = 0, e = this._hullStart; i < hullSize; i++) {\n this.hull[i] = e;\n e = hullNext[e];\n }\n\n // trim typed triangle mesh arrays\n this.triangles = this._triangles.subarray(0, this.trianglesLen);\n this.halfedges = this._halfedges.subarray(0, this.trianglesLen);\n }\n\n _hashKey(x, y) {\n return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;\n }\n\n _legalize(a) {\n const {_triangles: triangles, _halfedges: halfedges, coords} = this;\n\n let i = 0;\n let ar = 0;\n\n // recursion eliminated with a fixed-size stack\n while (true) {\n const b = halfedges[a];\n\n /* if the pair of triangles doesn't satisfy the Delaunay condition\n * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,\n * then do the same check/flip recursively for the new pair of triangles\n *\n * pl pl\n * /||\\ / \\\n * al/ || \\bl al/ \\a\n * / || \\ / \\\n * / a||b \\ flip /___ar___\\\n * p0\\ || /p1 => p0\\---bl---/p1\n * \\ || / \\ /\n * ar\\ || /br b\\ /br\n * \\||/ \\ /\n * pr pr\n */\n const a0 = a - a % 3;\n ar = a0 + (a + 2) % 3;\n\n if (b === -1) { // convex hull edge\n if (i === 0) break;\n a = EDGE_STACK[--i];\n continue;\n }\n\n const b0 = b - b % 3;\n const al = a0 + (a + 1) % 3;\n const bl = b0 + (b + 2) % 3;\n\n const p0 = triangles[ar];\n const pr = triangles[a];\n const pl = triangles[al];\n const p1 = triangles[bl];\n\n const illegal = inCircle(\n coords[2 * p0], coords[2 * p0 + 1],\n coords[2 * pr], coords[2 * pr + 1],\n coords[2 * pl], coords[2 * pl + 1],\n coords[2 * p1], coords[2 * p1 + 1]);\n\n if (illegal) {\n triangles[a] = p1;\n triangles[b] = p0;\n\n const hbl = halfedges[bl];\n\n // edge swapped on the other side of the hull (rare); fix the halfedge reference\n if (hbl === -1) {\n let e = this._hullStart;\n do {\n if (this._hullTri[e] === bl) {\n this._hullTri[e] = a;\n break;\n }\n e = this._hullPrev[e];\n } while (e !== this._hullStart);\n }\n this._link(a, hbl);\n this._link(b, halfedges[ar]);\n this._link(ar, bl);\n\n const br = b0 + (b + 1) % 3;\n\n // don't worry about hitting the cap: it can only happen on extremely degenerate input\n if (i < EDGE_STACK.length) {\n EDGE_STACK[i++] = br;\n }\n } else {\n if (i === 0) break;\n a = EDGE_STACK[--i];\n }\n }\n\n return ar;\n }\n\n _link(a, b) {\n this._halfedges[a] = b;\n if (b !== -1) this._halfedges[b] = a;\n }\n\n // add a new triangle given vertex indices and adjacent half-edge ids\n _addTriangle(i0, i1, i2, a, b, c) {\n const t = this.trianglesLen;\n\n this._triangles[t] = i0;\n this._triangles[t + 1] = i1;\n this._triangles[t + 2] = i2;\n\n this._link(t, a);\n this._link(t + 1, b);\n this._link(t + 2, c);\n\n this.trianglesLen += 3;\n\n return t;\n }\n}\n\n// monotonically increases with real angle, but doesn't need expensive trigonometry\nfunction pseudoAngle(dx, dy) {\n const p = dx / (Math.abs(dx) + Math.abs(dy));\n return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]\n}\n\nfunction dist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n\n// return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check\nfunction orientIfSure(px, py, rx, ry, qx, qy) {\n const l = (ry - py) * (qx - px);\n const r = (rx - px) * (qy - py);\n return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0;\n}\n\n// a more robust orientation test that's stable in a given triangle (to fix robustness issues)\nfunction orient(rx, ry, qx, qy, px, py) {\n const sign = orientIfSure(px, py, rx, ry, qx, qy) ||\n orientIfSure(rx, ry, qx, qy, px, py) ||\n orientIfSure(qx, qy, px, py, rx, ry);\n return sign < 0;\n}\n\nfunction inCircle(ax, ay, bx, by, cx, cy, px, py) {\n const dx = ax - px;\n const dy = ay - py;\n const ex = bx - px;\n const ey = by - py;\n const fx = cx - px;\n const fy = cy - py;\n\n const ap = dx * dx + dy * dy;\n const bp = ex * ex + ey * ey;\n const cp = fx * fx + fy * fy;\n\n return dx * (ey * cp - bp * fy) -\n dy * (ex * cp - bp * fx) +\n ap * (ex * fy - ey * fx) < 0;\n}\n\nfunction circumradius(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = (ey * bl - dy * cl) * d;\n const y = (dx * cl - ex * bl) * d;\n\n return x * x + y * y;\n}\n\nfunction circumcenter(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = ax + (ey * bl - dy * cl) * d;\n const y = ay + (dx * cl - ex * bl) * d;\n\n return {x, y};\n}\n\nfunction quicksort(ids, dists, left, right) {\n if (right - left <= 20) {\n for (let i = left + 1; i <= right; i++) {\n const temp = ids[i];\n const tempDist = dists[temp];\n let j = i - 1;\n while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];\n ids[j + 1] = temp;\n }\n } else {\n const median = (left + right) >> 1;\n let i = left + 1;\n let j = right;\n swap(ids, median, i);\n if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);\n if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);\n if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);\n\n const temp = ids[i];\n const tempDist = dists[temp];\n while (true) {\n do i++; while (dists[ids[i]] < tempDist);\n do j--; while (dists[ids[j]] > tempDist);\n if (j < i) break;\n swap(ids, i, j);\n }\n ids[left + 1] = ids[j];\n ids[j] = temp;\n\n if (right - i + 1 >= j - left) {\n quicksort(ids, dists, i, right);\n quicksort(ids, dists, left, j - 1);\n } else {\n quicksort(ids, dists, left, j - 1);\n quicksort(ids, dists, i, right);\n }\n }\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultGetX(p) {\n return p[0];\n}\nfunction defaultGetY(p) {\n return p[1];\n}\n","const epsilon = 1e-6;\n\nexport default class Path {\n constructor() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n }\n moveTo(x, y) {\n this._ += `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._ += \"Z\";\n }\n }\n lineTo(x, y) {\n this._ += `L${this._x1 = +x},${this._y1 = +y}`;\n }\n arc(x, y, r) {\n x = +x, y = +y, r = +r;\n const x0 = x + r;\n const y0 = y;\n if (r < 0) throw new Error(\"negative radius\");\n if (this._x1 === null) this._ += `M${x0},${y0}`;\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += \"L\" + x0 + \",\" + y0;\n if (!r) return;\n this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;\n }\n rect(x, y, w, h) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;\n }\n value() {\n return this._ || null;\n }\n}\n","export default class Polygon {\n constructor() {\n this._ = [];\n }\n moveTo(x, y) {\n this._.push([x, y]);\n }\n closePath() {\n this._.push(this._[0].slice());\n }\n lineTo(x, y) {\n this._.push([x, y]);\n }\n value() {\n return this._.length ? this._ : null;\n }\n}\n","import Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\n\nexport default class Voronoi {\n constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {\n if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error(\"invalid bounds\");\n this.delaunay = delaunay;\n this._circumcenters = new Float64Array(delaunay.points.length * 2);\n this.vectors = new Float64Array(delaunay.points.length * 2);\n this.xmax = xmax, this.xmin = xmin;\n this.ymax = ymax, this.ymin = ymin;\n this._init();\n }\n update() {\n this.delaunay.update();\n this._init();\n return this;\n }\n _init() {\n const {delaunay: {points, hull, triangles}, vectors} = this;\n\n // Compute circumcenters.\n const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);\n for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {\n const t1 = triangles[i] * 2;\n const t2 = triangles[i + 1] * 2;\n const t3 = triangles[i + 2] * 2;\n const x1 = points[t1];\n const y1 = points[t1 + 1];\n const x2 = points[t2];\n const y2 = points[t2 + 1];\n const x3 = points[t3];\n const y3 = points[t3 + 1];\n\n const dx = x2 - x1;\n const dy = y2 - y1;\n const ex = x3 - x1;\n const ey = y3 - y1;\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const ab = (dx * ey - dy * ex) * 2;\n\n if (!ab) {\n // degenerate case (collinear diagram)\n x = (x1 + x3) / 2 - 1e8 * ey;\n y = (y1 + y3) / 2 + 1e8 * ex;\n }\n else if (Math.abs(ab) < 1e-8) {\n // almost equal points (degenerate triangle)\n x = (x1 + x3) / 2;\n y = (y1 + y3) / 2;\n } else {\n const d = 1 / ab;\n x = x1 + (ey * bl - dy * cl) * d;\n y = y1 + (dx * cl - ex * bl) * d;\n }\n circumcenters[j] = x;\n circumcenters[j + 1] = y;\n }\n\n // Compute exterior cell rays.\n let h = hull[hull.length - 1];\n let p0, p1 = h * 4;\n let x0, x1 = points[2 * h];\n let y0, y1 = points[2 * h + 1];\n vectors.fill(0);\n for (let i = 0; i < hull.length; ++i) {\n h = hull[i];\n p0 = p1, x0 = x1, y0 = y1;\n p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];\n vectors[p0 + 2] = vectors[p1] = y0 - y1;\n vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;\n }\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;\n if (hull.length <= 1) return null;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = Math.floor(i / 3) * 2;\n const tj = Math.floor(j / 3) * 2;\n const xi = circumcenters[ti];\n const yi = circumcenters[ti + 1];\n const xj = circumcenters[tj];\n const yj = circumcenters[tj + 1];\n this._renderSegment(xi, yi, xj, yj, context);\n }\n let h0, h1 = hull[hull.length - 1];\n for (let i = 0; i < hull.length; ++i) {\n h0 = h1, h1 = hull[i];\n const t = Math.floor(inedges[h1] / 3) * 2;\n const x = circumcenters[t];\n const y = circumcenters[t + 1];\n const v = h0 * 4;\n const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);\n if (p) this._renderSegment(x, y, p[0], p[1], context);\n }\n return buffer && buffer.value();\n }\n renderBounds(context) {\n const buffer = context == null ? context = new Path : undefined;\n context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);\n return buffer && buffer.value();\n }\n renderCell(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const points = this._clip(i);\n if (points === null || !points.length) return;\n context.moveTo(points[0], points[1]);\n let n = points.length;\n while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;\n for (let i = 2; i < n; i += 2) {\n if (points[i] !== points[i-2] || points[i+1] !== points[i-1])\n context.lineTo(points[i], points[i + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n *cellPolygons() {\n const {delaunay: {points}} = this;\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const cell = this.cellPolygon(i);\n if (cell) cell.index = i, yield cell;\n }\n }\n cellPolygon(i) {\n const polygon = new Polygon;\n this.renderCell(i, polygon);\n return polygon.value();\n }\n _renderSegment(x0, y0, x1, y1, context) {\n let S;\n const c0 = this._regioncode(x0, y0);\n const c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {\n context.moveTo(S[0], S[1]);\n context.lineTo(S[2], S[3]);\n }\n }\n contains(i, x, y) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return false;\n return this.delaunay._step(i, x, y) === i;\n }\n *neighbors(i) {\n const ci = this._clip(i);\n if (ci) for (const j of this.delaunay.neighbors(i)) {\n const cj = this._clip(j);\n // find the common edge\n if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {\n for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {\n if (ci[ai] == cj[aj]\n && ci[ai + 1] == cj[aj + 1]\n && ci[(ai + 2) % li] == cj[(aj + lj - 2) % lj]\n && ci[(ai + 3) % li] == cj[(aj + lj - 1) % lj]\n ) {\n yield j;\n break loop;\n }\n }\n }\n }\n }\n _cell(i) {\n const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;\n const e0 = inedges[i];\n if (e0 === -1) return null; // coincident point\n const points = [];\n let e = e0;\n do {\n const t = Math.floor(e / 3);\n points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n } while (e !== e0 && e !== -1);\n return points;\n }\n _clip(i) {\n // degenerate case (1 valid point: return the box)\n if (i === 0 && this.delaunay.hull.length === 1) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n const points = this._cell(i);\n if (points === null) return null;\n const {vectors: V} = this;\n const v = i * 4;\n return V[v] || V[v + 1]\n ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])\n : this._clipFinite(i, points);\n }\n _clipFinite(i, points) {\n const n = points.length;\n let P = null;\n let x0, y0, x1 = points[n - 2], y1 = points[n - 1];\n let c0, c1 = this._regioncode(x1, y1);\n let e0, e1;\n for (let j = 0; j < n; j += 2) {\n x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];\n c0 = c1, c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n e0 = e1, e1 = 0;\n if (P) P.push(x1, y1);\n else P = [x1, y1];\n } else {\n let S, sx0, sy0, sx1, sy1;\n if (c0 === 0) {\n if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;\n [sx0, sy0, sx1, sy1] = S;\n } else {\n if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;\n [sx1, sy1, sx0, sy0] = S;\n e0 = e1, e1 = this._edgecode(sx0, sy0);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx0, sy0);\n else P = [sx0, sy0];\n }\n e0 = e1, e1 = this._edgecode(sx1, sy1);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx1, sy1);\n else P = [sx1, sy1];\n }\n }\n if (P) {\n e0 = e1, e1 = this._edgecode(P[0], P[1]);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n return P;\n }\n _clipSegment(x0, y0, x1, y1, c0, c1) {\n while (true) {\n if (c0 === 0 && c1 === 0) return [x0, y0, x1, y1];\n if (c0 & c1) return null;\n let x, y, c = c0 || c1;\n if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;\n else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;\n else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;\n else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;\n if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);\n else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);\n }\n }\n _clipInfinite(i, points, vx0, vy0, vxn, vyn) {\n let P = Array.from(points), p;\n if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);\n if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);\n if (P = this._clipFinite(i, P)) {\n for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {\n c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);\n if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;\n }\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];\n }\n return P;\n }\n _edge(i, e0, e1, P, j) {\n while (e0 !== e1) {\n let x, y;\n switch (e0) {\n case 0b0101: e0 = 0b0100; continue; // top-left\n case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top\n case 0b0110: e0 = 0b0010; continue; // top-right\n case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right\n case 0b1010: e0 = 0b1000; continue; // bottom-right\n case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom\n case 0b1001: e0 = 0b0001; continue; // bottom-left\n case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left\n }\n if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {\n P.splice(j, 0, x, y), j += 2;\n }\n }\n if (P.length > 4) {\n for (let i = 0; i < P.length; i+= 2) {\n const j = (i + 2) % P.length, k = (i + 4) % P.length;\n if (P[i] === P[j] && P[j] === P[k]\n || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1])\n P.splice(j, 2), i -= 2;\n }\n }\n return j;\n }\n _project(x0, y0, vx, vy) {\n let t = Infinity, c, x, y;\n if (vy < 0) { // top\n if (y0 <= this.ymin) return null;\n if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;\n } else if (vy > 0) { // bottom\n if (y0 >= this.ymax) return null;\n if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;\n }\n if (vx > 0) { // right\n if (x0 >= this.xmax) return null;\n if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;\n } else if (vx < 0) { // left\n if (x0 <= this.xmin) return null;\n if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;\n }\n return [x, y];\n }\n _edgecode(x, y) {\n return (x === this.xmin ? 0b0001\n : x === this.xmax ? 0b0010 : 0b0000)\n | (y === this.ymin ? 0b0100\n : y === this.ymax ? 0b1000 : 0b0000);\n }\n _regioncode(x, y) {\n return (x < this.xmin ? 0b0001\n : x > this.xmax ? 0b0010 : 0b0000)\n | (y < this.ymin ? 0b0100\n : y > this.ymax ? 0b1000 : 0b0000);\n }\n}\n","import Delaunator from \"delaunator\";\nimport Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\nimport Voronoi from \"./voronoi.js\";\n\nconst tau = 2 * Math.PI, pow = Math.pow;\n\nfunction pointX(p) {\n return p[0];\n}\n\nfunction pointY(p) {\n return p[1];\n}\n\n// A triangulation is collinear if all its triangles have a non-null area\nfunction collinear(d) {\n const {triangles, coords} = d;\n for (let i = 0; i < triangles.length; i += 3) {\n const a = 2 * triangles[i],\n b = 2 * triangles[i + 1],\n c = 2 * triangles[i + 2],\n cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])\n - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);\n if (cross > 1e-10) return false;\n }\n return true;\n}\n\nfunction jitter(x, y, r) {\n return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];\n}\n\nexport default class Delaunay {\n static from(points, fx = pointX, fy = pointY, that) {\n return new Delaunay(\"length\" in points\n ? flatArray(points, fx, fy, that)\n : Float64Array.from(flatIterable(points, fx, fy, that)));\n }\n constructor(points) {\n this._delaunator = new Delaunator(points);\n this.inedges = new Int32Array(points.length / 2);\n this._hullIndex = new Int32Array(points.length / 2);\n this.points = this._delaunator.coords;\n this._init();\n }\n update() {\n this._delaunator.update();\n this._init();\n return this;\n }\n _init() {\n const d = this._delaunator, points = this.points;\n\n // check for collinear\n if (d.hull && d.hull.length > 2 && collinear(d)) {\n this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)\n .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors\n const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],\n bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],\n r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const p = jitter(points[2 * i], points[2 * i + 1], r);\n points[2 * i] = p[0];\n points[2 * i + 1] = p[1];\n }\n this._delaunator = new Delaunator(points);\n } else {\n delete this.collinear;\n }\n\n const halfedges = this.halfedges = this._delaunator.halfedges;\n const hull = this.hull = this._delaunator.hull;\n const triangles = this.triangles = this._delaunator.triangles;\n const inedges = this.inedges.fill(-1);\n const hullIndex = this._hullIndex.fill(-1);\n\n // Compute an index from each point to an (arbitrary) incoming halfedge\n // Used to give the first neighbor of each point; for this reason,\n // on the hull we give priority to exterior halfedges\n for (let e = 0, n = halfedges.length; e < n; ++e) {\n const p = triangles[e % 3 === 2 ? e - 2 : e + 1];\n if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;\n }\n for (let i = 0, n = hull.length; i < n; ++i) {\n hullIndex[hull[i]] = i;\n }\n\n // degenerate case: 1 or 2 (distinct) points\n if (hull.length <= 2 && hull.length > 0) {\n this.triangles = new Int32Array(3).fill(-1);\n this.halfedges = new Int32Array(3).fill(-1);\n this.triangles[0] = hull[0];\n this.triangles[1] = hull[1];\n this.triangles[2] = hull[1];\n inedges[hull[0]] = 1;\n if (hull.length === 2) inedges[hull[1]] = 0;\n }\n }\n voronoi(bounds) {\n return new Voronoi(this, bounds);\n }\n *neighbors(i) {\n const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;\n\n // degenerate case with several collinear points\n if (collinear) {\n const l = collinear.indexOf(i);\n if (l > 0) yield collinear[l - 1];\n if (l < collinear.length - 1) yield collinear[l + 1];\n return;\n }\n\n const e0 = inedges[i];\n if (e0 === -1) return; // coincident point\n let e = e0, p0 = -1;\n do {\n yield p0 = triangles[e];\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) return; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n const p = hull[(_hullIndex[i] + 1) % hull.length];\n if (p !== p0) yield p;\n return;\n }\n } while (e !== e0);\n }\n find(x, y, i = 0) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;\n const i0 = i;\n let c;\n while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;\n return c;\n }\n _step(i, x, y) {\n const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;\n if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);\n let c = i;\n let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);\n const e0 = inedges[i];\n let e = e0;\n do {\n let t = triangles[e];\n const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);\n if (dt < dc) dc = dt, c = t;\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n e = hull[(_hullIndex[i] + 1) % hull.length];\n if (e !== t) {\n if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;\n }\n break;\n }\n } while (e !== e0);\n return c;\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, halfedges, triangles} = this;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = triangles[i] * 2;\n const tj = triangles[j] * 2;\n context.moveTo(points[ti], points[ti + 1]);\n context.lineTo(points[tj], points[tj + 1]);\n }\n this.renderHull(context);\n return buffer && buffer.value();\n }\n renderPoints(context, r = 2) {\n const buffer = context == null ? context = new Path : undefined;\n const {points} = this;\n for (let i = 0, n = points.length; i < n; i += 2) {\n const x = points[i], y = points[i + 1];\n context.moveTo(x + r, y);\n context.arc(x, y, r, 0, tau);\n }\n return buffer && buffer.value();\n }\n renderHull(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {hull, points} = this;\n const h = hull[0] * 2, n = hull.length;\n context.moveTo(points[h], points[h + 1]);\n for (let i = 1; i < n; ++i) {\n const h = 2 * hull[i];\n context.lineTo(points[h], points[h + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n hullPolygon() {\n const polygon = new Polygon;\n this.renderHull(polygon);\n return polygon.value();\n }\n renderTriangle(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, triangles} = this;\n const t0 = triangles[i *= 3] * 2;\n const t1 = triangles[i + 1] * 2;\n const t2 = triangles[i + 2] * 2;\n context.moveTo(points[t0], points[t0 + 1]);\n context.lineTo(points[t1], points[t1 + 1]);\n context.lineTo(points[t2], points[t2 + 1]);\n context.closePath();\n return buffer && buffer.value();\n }\n *trianglePolygons() {\n const {triangles} = this;\n for (let i = 0, n = triangles.length / 3; i < n; ++i) {\n yield this.trianglePolygon(i);\n }\n }\n trianglePolygon(i) {\n const polygon = new Polygon;\n this.renderTriangle(i, polygon);\n return polygon.value();\n }\n}\n\nfunction flatArray(points, fx, fy, that) {\n const n = points.length;\n const array = new Float64Array(n * 2);\n for (let i = 0; i < n; ++i) {\n const p = points[i];\n array[i * 2] = fx.call(that, p, i, points);\n array[i * 2 + 1] = fy.call(that, p, i, points);\n }\n return array;\n}\n\nfunction* flatIterable(points, fx, fy, that) {\n let i = 0;\n for (const p of points) {\n yield fx.call(that, p, i, points);\n yield fy.call(that, p, i, points);\n ++i;\n }\n}\n","export {default as Delaunay} from \"./delaunay.js\";\nexport {default as Voronoi} from \"./voronoi.js\";\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\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 formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","export default function autoType(object) {\n for (var key in object) {\n var value = object[key].trim(), number, m;\n if (!value) value = null;\n else if (value === \"true\") value = true;\n else if (value === \"false\") value = false;\n else if (value === \"NaN\") value = NaN;\n else if (!isNaN(number = +value)) value = number;\n else if (m = value.match(/^([-+]\\d{2})?\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{3})?)?(Z|[-+]\\d{2}:\\d{2})?)?$/)) {\n if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, \"/\").replace(/T/, \" \");\n value = new Date(value);\n }\n else continue;\n object[key] = value;\n }\n return object;\n}\n\n// https://github.com/d3/d3-dsv/issues/45\nconst fixtz = new Date(\"2019-01-01T00:00\").getHours() || new Date(\"2019-07-01T00:00\").getHours();","export {default as dsvFormat} from \"./dsv.js\";\nexport {csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue} from \"./csv.js\";\nexport {tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue} from \"./tsv.js\";\nexport {default as autoType} from \"./autoType.js\";\n","function responseBlob(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.blob();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseBlob);\n}\n","function responseArrayBuffer(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.arrayBuffer();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseArrayBuffer);\n}\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import {csvParse, dsvFormat, tsvParse} from \"d3-dsv\";\nimport text from \"./text.js\";\n\nfunction dsvParse(parse) {\n return function(input, init, row) {\n if (arguments.length === 2 && typeof init === \"function\") row = init, init = undefined;\n return text(input, init).then(function(response) {\n return parse(response, row);\n });\n };\n}\n\nexport default function dsv(delimiter, input, init, row) {\n if (arguments.length === 3 && typeof init === \"function\") row = init, init = undefined;\n var format = dsvFormat(delimiter);\n return text(input, init).then(function(response) {\n return format.parse(response, row);\n });\n}\n\nexport var csv = dsvParse(csvParse);\nexport var tsv = dsvParse(tsvParse);\n","export default function(input, init) {\n return new Promise(function(resolve, reject) {\n var image = new Image;\n for (var key in init) image[key] = init[key];\n image.onerror = reject;\n image.onload = function() { resolve(image); };\n image.src = input;\n });\n}\n","function responseJson(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n if (response.status === 204 || response.status === 205) return;\n return response.json();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseJson);\n}\n","import text from \"./text.js\";\n\nfunction parser(type) {\n return (input, init) => text(input, init)\n .then(text => (new DOMParser).parseFromString(text, type));\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n","export {default as blob} from \"./blob.js\";\nexport {default as buffer} from \"./buffer.js\";\nexport {default as dsv, csv, tsv} from \"./dsv.js\";\nexport {default as image} from \"./image.js\";\nexport {default as json} from \"./json.js\";\nexport {default as text} from \"./text.js\";\nexport {default as xml, html, svg} from \"./xml.js\";\n","export default function(x, y) {\n var nodes, strength = 1;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n return force;\n}\n","export default function(d) {\n const x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = 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\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export {default as quadtree} from \"./quadtree.js\";\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(random) {\n return (random() - 0.5) * 1e-6;\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n random,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"node not found: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n random,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle(random);\n y = target.y + target.vy - source.y - source.vy || jiggle(random);\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport default function() {\n let s = 1;\n return () => (s = (a * s + c) % m) / m;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer} from \"d3-timer\";\nimport lcg from \"./lcg.js\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = new Map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\"),\n random = lcg();\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.forEach(function(force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes, random);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n randomSource: function(_) {\n return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\nimport {x, y} from \"./simulation.js\";\n\nexport default function() {\n var nodes,\n node,\n random,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\n\nexport default function(radius, x, y) {\n var nodes,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = node.y - y || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\n\nexport default function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\n\nexport default function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n}\n","export {default as forceCenter} from \"./center.js\";\nexport {default as forceCollide} from \"./collide.js\";\nexport {default as forceLink} from \"./link.js\";\nexport {default as forceManyBody} from \"./manyBody.js\";\nexport {default as forceRadial} from \"./radial.js\";\nexport {default as forceSimulation} from \"./simulation.js\";\nexport {default as forceX} from \"./x.js\";\nexport {default as forceY} from \"./y.js\";\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 {default as formatDefaultLocale, format, formatPrefix} from \"./defaultLocale.js\";\nexport {default as formatLocale} from \"./locale.js\";\nexport {default as formatSpecifier, FormatSpecifier} from \"./formatSpecifier.js\";\nexport {default as precisionFixed} from \"./precisionFixed.js\";\nexport {default as precisionPrefix} from \"./precisionPrefix.js\";\nexport {default as precisionRound} from \"./precisionRound.js\";\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 {Adder} from \"d3-array\";\nimport {atan2, cos, quarterPi, radians, sin, tau} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nexport var areaRingSum = new Adder();\n\n// hello?\n\nvar areaSum = new Adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\n\nexport var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaRingSum = new Adder();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function() {\n areaSum.add(tau);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos(phi),\n sinPhi = sin(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos(adLambda),\n v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u));\n\n // Advance the previous points.\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nexport default function(object) {\n areaSum = new Adder();\n stream(object, areaStream);\n return areaSum * 2;\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","import {Adder} from \"d3-array\";\nimport {areaStream, areaRingSum} from \"./area.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport {abs, degrees, epsilon, radians} from \"./math.js\";\nimport stream from \"./stream.js\";\n\nvar lambda0, phi0, lambda1, phi1, // bounds\n lambda2, // previous lambda-coordinate\n lambda00, phi00, // first point\n p0, // previous 3D point\n deltaSum,\n ranges,\n range;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum = new Adder();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n else if (deltaSum > epsilon) phi1 = 90;\n else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0, range[1] = lambda1;\n },\n sphere: function() {\n lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees * sign,\n phii,\n antimeridian = abs(delta) > 180;\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n } else {\n if (lambda1 >= lambda0) {\n if (lambda < lambda0) lambda0 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n }\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range[0] = lambda0, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00 = lambda, phi00 = phi;\n }\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00, phi00);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);\n range[0] = lambda0, range[1] = lambda1;\n p0 = null;\n}\n\n// Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nexport default function(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n\n phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n ranges = [];\n stream(feature, boundsStream);\n\n // First, sort ranges by their minimum longitudes.\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n\n // Then, merge any ranges that overlap.\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n\n // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range = null;\n\n return lambda0 === Infinity || phi0 === Infinity\n ? [[NaN, NaN], [NaN, NaN]]\n : [[lambda0, phi0], [lambda1, phi1]];\n}\n","import {Adder} from \"d3-array\";\nimport {asin, atan2, cos, degrees, epsilon, epsilon2, hypot, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar W0, W1,\n X0, Y0, Z0,\n X1, Y1, Z1,\n X2, Y2, Z2,\n lambda00, phi00, // first point\n x0, y0, z0; // previous point\n\nvar centroidStream = {\n sphere: noop,\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.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n};\n\n// Arithmetic mean of Cartesian vectors.\nfunction centroidPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));\n}\n\nfunction centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n}\n\nfunction centroidLinePointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLinePoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\n// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\nfunction centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n}\n\nfunction centroidRingEnd() {\n centroidRingPoint(lambda00, phi00);\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingPointFirst(lambda, phi) {\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidRingPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n cx = y0 * z - z0 * y,\n cy = z0 * x - x0 * z,\n cz = x0 * y - y0 * x,\n m = hypot(cx, cy, cz),\n w = asin(m), // line weight = angle\n v = m && -w / m; // area weight multiplier\n X2.add(v * cx);\n Y2.add(v * cy);\n Z2.add(v * cz);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nexport default function(object) {\n W0 = W1 =\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 = 0;\n X2 = new Adder();\n Y2 = new Adder();\n Z2 = new Adder();\n stream(object, centroidStream);\n\n var x = +X2,\n y = +Y2,\n z = +Z2,\n m = hypot(x, y, z);\n\n // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n if (m < epsilon2) {\n x = X1, y = Y1, z = Z1;\n // If the feature has zero length, fall back to arithmetic mean of point vectors.\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = hypot(x, y, z);\n // If the feature still has an undefined ccentroid, then return.\n if (m < epsilon2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees, asin(z / m) * degrees];\n}\n","export default function(x) {\n return function() {\n return x;\n };\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 return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : 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 return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : 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 if (abs(point[0]) <= pi)\n return point[0];\n else\n return 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","import clipRectangle from \"./rectangle.js\";\n\nexport default function() {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n\n return clip = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream);\n },\n extent: function(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n}\n","import {Adder} from \"d3-array\";\nimport {abs, atan2, cos, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar lengthSum,\n lambda0,\n sinPhi0,\n cosPhi0;\n\nvar lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin(phi),\n cosPhi = cos(phi),\n delta = abs(lambda - lambda0),\n cosDelta = cos(delta),\n sinDelta = sin(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\nexport default function(object) {\n lengthSum = new Adder();\n stream(object, lengthStream);\n return +lengthSum;\n}\n","import length from \"./length.js\";\n\nvar coordinates = [null, null],\n object = {type: \"LineString\", coordinates: coordinates};\n\nexport default function(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n}\n","import {default as polygonContains} from \"./polygonContains.js\";\nimport {default as distance} from \"./distance.js\";\nimport {epsilon2, radians} from \"./math.js\";\n\nvar containsObjectType = {\n Feature: function(object, point) {\n return containsGeometry(object.geometry, point);\n },\n FeatureCollection: function(object, point) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;\n return false;\n }\n};\n\nvar containsGeometryType = {\n Sphere: function() {\n return true;\n },\n Point: function(object, point) {\n return containsPoint(object.coordinates, point);\n },\n MultiPoint: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPoint(coordinates[i], point)) return true;\n return false;\n },\n LineString: function(object, point) {\n return containsLine(object.coordinates, point);\n },\n MultiLineString: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsLine(coordinates[i], point)) return true;\n return false;\n },\n Polygon: function(object, point) {\n return containsPolygon(object.coordinates, point);\n },\n MultiPolygon: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPolygon(coordinates[i], point)) return true;\n return false;\n },\n GeometryCollection: function(object, point) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) if (containsGeometry(geometries[i], point)) return true;\n return false;\n }\n};\n\nfunction containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type)\n ? containsGeometryType[geometry.type](geometry, point)\n : false;\n}\n\nfunction containsPoint(coordinates, point) {\n return distance(coordinates, point) === 0;\n}\n\nfunction containsLine(coordinates, point) {\n var ao, bo, ab;\n for (var i = 0, n = coordinates.length; i < n; i++) {\n bo = distance(coordinates[i], point);\n if (bo === 0) return true;\n if (i > 0) {\n ab = distance(coordinates[i], coordinates[i - 1]);\n if (\n ab > 0 &&\n ao <= ab &&\n bo <= ab &&\n (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab\n )\n return true;\n }\n ao = bo;\n }\n return false;\n}\n\nfunction containsPolygon(coordinates, point) {\n return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));\n}\n\nfunction ringRadians(ring) {\n return ring = ring.map(pointRadians), ring.pop(), ring;\n}\n\nfunction pointRadians(point) {\n return [point[0] * radians, point[1] * radians];\n}\n\nexport default function(object, point) {\n return (object && containsObjectType.hasOwnProperty(object.type)\n ? containsObjectType[object.type]\n : containsGeometry)(object, point);\n}\n","import {range} from \"d3-array\";\nimport {abs, ceil, epsilon} from \"./math.js\";\n\nfunction graticuleX(y0, y1, dy) {\n var y = range(y0, y1 - epsilon, dy).concat(y1);\n return function(x) { return y.map(function(y) { return [x, y]; }); };\n}\n\nfunction graticuleY(x0, x1, dx) {\n var x = range(x0, x1 - epsilon, dx).concat(x1);\n return function(y) { return x.map(function(x) { return [x, y]; }); };\n}\n\nexport default function graticule() {\n var x1, x0, X1, X0,\n y1, y0, Y1, Y0,\n dx = 10, dy = dx, DX = 90, DY = 360,\n x, y, X, Y,\n precision = 2.5;\n\n function graticule() {\n return {type: \"MultiLineString\", coordinates: lines()};\n }\n\n function lines() {\n return range(ceil(X0 / DX) * DX, X1, DX).map(X)\n .concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))\n .concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon; }).map(x))\n .concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon; }).map(y));\n }\n\n graticule.lines = function() {\n return lines().map(function(coordinates) { return {type: \"LineString\", coordinates: coordinates}; });\n };\n\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [\n X(X0).concat(\n Y(Y1).slice(1),\n X(X1).reverse().slice(1),\n Y(Y0).reverse().slice(1))\n ]\n };\n };\n\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.extentMinor();\n return graticule.extentMajor(_).extentMinor(_);\n };\n\n graticule.extentMajor = function(_) {\n if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.extentMinor = function(_) {\n if (!arguments.length) return [[x0, y0], [x1, y1]];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.step = function(_) {\n if (!arguments.length) return graticule.stepMinor();\n return graticule.stepMajor(_).stepMinor(_);\n };\n\n graticule.stepMajor = function(_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n\n graticule.stepMinor = function(_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y0, y1, 90);\n y = graticuleY(x0, x1, precision);\n X = graticuleX(Y0, Y1, 90);\n Y = graticuleY(X0, X1, precision);\n return graticule;\n };\n\n return graticule\n .extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]])\n .extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n}\n\nexport function graticule10() {\n return graticule()();\n}\n","import {asin, atan2, cos, degrees, haversin, radians, sin, sqrt} from \"./math.js\";\n\nexport default function(a, b) {\n var x0 = a[0] * radians,\n y0 = a[1] * radians,\n x1 = b[0] * radians,\n y1 = b[1] * radians,\n cy0 = cos(y0),\n sy0 = sin(y0),\n cy1 = cos(y1),\n sy1 = sin(y1),\n kx0 = cy0 * cos(x0),\n ky0 = cy0 * sin(x0),\n kx1 = cy1 * cos(x1),\n ky1 = cy1 * sin(x1),\n d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),\n k = sin(d);\n\n var interpolate = d ? function(t) {\n var B = sin(t *= d) / k,\n A = sin(d - t) / k,\n x = A * kx0 + B * kx1,\n y = A * ky0 + B * ky1,\n z = A * sy0 + B * sy1;\n return [\n atan2(y, x) * degrees,\n atan2(z, sqrt(x * x + y * y)) * degrees\n ];\n } : function() {\n return [x0 * degrees, y0 * degrees];\n };\n\n interpolate.distance = d;\n\n return interpolate;\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","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return 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._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\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 var 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 return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString) : 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 return path.projection(projection).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 clipRectangle from \"../clip/rectangle.js\";\nimport identity from \"../identity.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport {cos, degrees, radians, sin} from \"../math.js\";\n\nexport default function() {\n var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect\n alpha = 0, ca, sa, // angle\n x0 = null, y0, x1, y1, // clip extent\n kx = 1, ky = 1,\n transform = transformer({\n point: function(x, y) {\n var p = projection([x, y])\n this.stream.point(p[0], p[1]);\n }\n }),\n postclip = identity,\n cache,\n cacheStream;\n\n function reset() {\n kx = k * sx;\n ky = k * sy;\n cache = cacheStream = null;\n return projection;\n }\n\n function projection (p) {\n var x = p[0] * kx, y = p[1] * ky;\n if (alpha) {\n var t = y * ca - x * sa;\n x = x * ca + y * sa;\n y = t;\n } \n return [x + tx, y + ty];\n }\n projection.invert = function(p) {\n var x = p[0] - tx, y = p[1] - ty;\n if (alpha) {\n var t = y * ca + x * sa;\n x = x * ca - y * sa;\n y = t;\n }\n return [x / kx, y / ky];\n };\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));\n };\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\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 projection.scale = function(_) {\n return arguments.length ? (k = +_, reset()) : k;\n };\n projection.translate = function(_) {\n return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];\n }\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees;\n };\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;\n };\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;\n };\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n return projection;\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n phi\n ];\n};\n\nexport default function() {\n return projection(naturalEarth1Raw)\n .scale(175.295);\n}\n","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 {default as geoArea} from \"./area.js\";\nexport {default as geoBounds} from \"./bounds.js\";\nexport {default as geoCentroid} from \"./centroid.js\";\nexport {default as geoCircle} from \"./circle.js\";\nexport {default as geoClipAntimeridian} from \"./clip/antimeridian.js\";\nexport {default as geoClipCircle} from \"./clip/circle.js\";\nexport {default as geoClipExtent} from \"./clip/extent.js\"; // DEPRECATED! Use d3.geoIdentity().clipExtent(…).\nexport {default as geoClipRectangle} from \"./clip/rectangle.js\";\nexport {default as geoContains} from \"./contains.js\";\nexport {default as geoDistance} from \"./distance.js\";\nexport {default as geoGraticule, graticule10 as geoGraticule10} from \"./graticule.js\";\nexport {default as geoInterpolate} from \"./interpolate.js\";\nexport {default as geoLength} from \"./length.js\";\nexport {default as geoPath} from \"./path/index.js\";\nexport {default as geoAlbers} from \"./projection/albers.js\";\nexport {default as geoAlbersUsa} from \"./projection/albersUsa.js\";\nexport {default as geoAzimuthalEqualArea, azimuthalEqualAreaRaw as geoAzimuthalEqualAreaRaw} from \"./projection/azimuthalEqualArea.js\";\nexport {default as geoAzimuthalEquidistant, azimuthalEquidistantRaw as geoAzimuthalEquidistantRaw} from \"./projection/azimuthalEquidistant.js\";\nexport {default as geoConicConformal, conicConformalRaw as geoConicConformalRaw} from \"./projection/conicConformal.js\";\nexport {default as geoConicEqualArea, conicEqualAreaRaw as geoConicEqualAreaRaw} from \"./projection/conicEqualArea.js\";\nexport {default as geoConicEquidistant, conicEquidistantRaw as geoConicEquidistantRaw} from \"./projection/conicEquidistant.js\";\nexport {default as geoEqualEarth, equalEarthRaw as geoEqualEarthRaw} from \"./projection/equalEarth.js\";\nexport {default as geoEquirectangular, equirectangularRaw as geoEquirectangularRaw} from \"./projection/equirectangular.js\";\nexport {default as geoGnomonic, gnomonicRaw as geoGnomonicRaw} from \"./projection/gnomonic.js\";\nexport {default as geoIdentity} from \"./projection/identity.js\";\nexport {default as geoProjection, projectionMutator as geoProjectionMutator} from \"./projection/index.js\";\nexport {default as geoMercator, mercatorRaw as geoMercatorRaw} from \"./projection/mercator.js\";\nexport {default as geoNaturalEarth1, naturalEarth1Raw as geoNaturalEarth1Raw} from \"./projection/naturalEarth1.js\";\nexport {default as geoOrthographic, orthographicRaw as geoOrthographicRaw} from \"./projection/orthographic.js\";\nexport {default as geoStereographic, stereographicRaw as geoStereographicRaw} from \"./projection/stereographic.js\";\nexport {default as geoTransverseMercator, transverseMercatorRaw as geoTransverseMercatorRaw} from \"./projection/transverseMercator.js\";\nexport {default as geoRotation} from \"./rotation.js\";\nexport {default as geoStream} from \"./stream.js\";\nexport {default as geoTransform} from \"./transform.js\";\n","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","import {shuffle} from \"../array.js\";\n\nexport default function(circles) {\n var i = 0, n = (circles = shuffle(Array.from(circles))).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}\n","import array from \"../array.js\";\nimport enclose from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packEnclose(circles) {\n if (!(n = (circles = array(circles)).length)) return 0;\n\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packEnclose(circles);\n return circles;\n}\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","import {packEnclose} from \"./siblings.js\";\nimport {optional} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\n\nexport default function() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n","import {required} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar preroot = {depth: -1},\n ambiguous = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var nodes = Array.from(data),\n n = nodes.length,\n d,\n i,\n root,\n parent,\n node,\n nodeId,\n nodeKey,\n nodeByKey = new Map;\n\n for (i = 0; i < n; ++i) {\n d = nodes[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = node.id = nodeId;\n nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);\n }\n if ((nodeId = parentId(d, i, data)) != null && (nodeId += \"\")) {\n node.parent = nodeId;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (nodeId = node.parent) {\n parent = nodeByKey.get(nodeId);\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n } else {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((x1 - x0) > (y1 - y0)) {\n var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}\n","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n","export {default as cluster} from \"./cluster.js\";\nexport {default as hierarchy} from \"./hierarchy/index.js\";\nexport {default as pack} from \"./pack/index.js\";\nexport {default as packSiblings} from \"./pack/siblings.js\";\nexport {default as packEnclose} from \"./pack/enclose.js\";\nexport {default as partition} from \"./partition.js\";\nexport {default as stratify} from \"./stratify.js\";\nexport {default as tree} from \"./tree.js\";\nexport {default as treemap} from \"./treemap/index.js\";\nexport {default as treemapBinary} from \"./treemap/binary.js\";\nexport {default as treemapDice} from \"./treemap/dice.js\";\nexport {default as treemapSlice} from \"./treemap/slice.js\";\nexport {default as treemapSliceDice} from \"./treemap/sliceDice.js\";\nexport {default as treemapSquarify} from \"./treemap/squarify.js\";\nexport {default as treemapResquarify} from \"./treemap/resquarify.js\";\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n a,\n b = polygon[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n\n return area / 2;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n x = 0,\n y = 0,\n a,\n b = polygon[n - 1],\n c,\n k = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n k += c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n\n return k *= 3, [x / k, y / k];\n}\n","// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of\n// the 3D cross product in a quadrant I Cartesian coordinate system (+x is\n// right, +y is up). Returns a positive value if ABC is counter-clockwise,\n// negative if clockwise, and zero if the points are collinear.\nexport default function(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n}\n","import cross from \"./cross.js\";\n\nfunction lexicographicOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n}\n\n// Computes the upper convex hull per the monotone chain algorithm.\n// Assumes points.length >= 3, is sorted by x, unique in y.\n// Returns an array of indices into points in left-to-right order.\nfunction computeUpperHullIndexes(points) {\n const n = points.length,\n indexes = [0, 1];\n let size = 2, i;\n\n for (i = 2; i < n; ++i) {\n while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;\n indexes[size++] = i;\n }\n\n return indexes.slice(0, size); // remove popped points\n}\n\nexport default function(points) {\n if ((n = points.length) < 3) return null;\n\n var i,\n n,\n sortedPoints = new Array(n),\n flippedPoints = new Array(n);\n\n for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];\n sortedPoints.sort(lexicographicOrder);\n for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];\n\n var upperIndexes = computeUpperHullIndexes(sortedPoints),\n lowerIndexes = computeUpperHullIndexes(flippedPoints);\n\n // Construct the hull polygon, removing possible duplicate endpoints.\n var skipLeft = lowerIndexes[0] === upperIndexes[0],\n skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],\n hull = [];\n\n // Add upper hull in right-to-l order.\n // Then add lower hull in left-to-right order.\n for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);\n for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);\n\n return hull;\n}\n","export default function(polygon, point) {\n var n = polygon.length,\n p = polygon[n - 1],\n x = point[0], y = point[1],\n x0 = p[0], y0 = p[1],\n x1, y1,\n inside = false;\n\n for (var i = 0; i < n; ++i) {\n p = polygon[i], x1 = p[0], y1 = p[1];\n if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;\n x0 = x1, y0 = y1;\n }\n\n return inside;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n b = polygon[n - 1],\n xa,\n ya,\n xb = b[0],\n yb = b[1],\n perimeter = 0;\n\n while (++i < n) {\n xa = xb;\n ya = yb;\n b = polygon[i];\n xb = b[0];\n yb = b[1];\n xa -= xb;\n ya -= yb;\n perimeter += Math.hypot(xa, ya);\n }\n\n return perimeter;\n}\n","export {default as polygonArea} from \"./area.js\";\nexport {default as polygonCentroid} from \"./centroid.js\";\nexport {default as polygonHull} from \"./hull.js\";\nexport {default as polygonContains} from \"./contains.js\";\nexport {default as polygonLength} from \"./length.js\";\n","export default Math.random;\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n\n return randomUniform;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomInt(source) {\n function randomInt(min, max) {\n if (arguments.length < 2) max = min, min = 0;\n min = Math.floor(min);\n max = Math.floor(max) - min;\n return function() {\n return Math.floor(source() * max + min);\n };\n }\n\n randomInt.source = sourceRandomInt;\n\n return randomInt;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n\n return randomNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport normal from \"./normal.js\";\n\nexport default (function sourceRandomLogNormal(source) {\n var N = normal.source(source);\n\n function randomLogNormal() {\n var randomNormal = N.apply(this, arguments);\n return function() {\n return Math.exp(randomNormal());\n };\n }\n\n randomLogNormal.source = sourceRandomLogNormal;\n\n return randomLogNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomIrwinHall(source) {\n function randomIrwinHall(n) {\n if ((n = +n) <= 0) return () => 0;\n return function() {\n for (var sum = 0, i = n; i > 1; --i) sum += source();\n return sum + i * source();\n };\n }\n\n randomIrwinHall.source = sourceRandomIrwinHall;\n\n return randomIrwinHall;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport irwinHall from \"./irwinHall.js\";\n\nexport default (function sourceRandomBates(source) {\n var I = irwinHall.source(source);\n\n function randomBates(n) {\n // use limiting distribution at n === 0\n if ((n = +n) === 0) return source;\n var randomIrwinHall = I(n);\n return function() {\n return randomIrwinHall() / n;\n };\n }\n\n randomBates.source = sourceRandomBates;\n\n return randomBates;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomExponential(source) {\n function randomExponential(lambda) {\n return function() {\n return -Math.log1p(-source()) / lambda;\n };\n }\n\n randomExponential.source = sourceRandomExponential;\n\n return randomExponential;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomPareto(source) {\n function randomPareto(alpha) {\n if ((alpha = +alpha) < 0) throw new RangeError(\"invalid alpha\");\n alpha = 1 / -alpha;\n return function() {\n return Math.pow(1 - source(), alpha);\n };\n }\n\n randomPareto.source = sourceRandomPareto;\n\n return randomPareto;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomBernoulli(source) {\n function randomBernoulli(p) {\n if ((p = +p) < 0 || p > 1) throw new RangeError(\"invalid p\");\n return function() {\n return Math.floor(source() + p);\n };\n }\n\n randomBernoulli.source = sourceRandomBernoulli;\n\n return randomBernoulli;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomGeometric(source) {\n function randomGeometric(p) {\n if ((p = +p) < 0 || p > 1) throw new RangeError(\"invalid p\");\n if (p === 0) return () => Infinity;\n if (p === 1) return () => 1;\n p = Math.log1p(-p);\n return function() {\n return 1 + Math.floor(Math.log1p(-source()) / p);\n };\n }\n\n randomGeometric.source = sourceRandomGeometric;\n\n return randomGeometric;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport normal from \"./normal.js\";\n\nexport default (function sourceRandomGamma(source) {\n var randomNormal = normal.source(source)();\n\n function randomGamma(k, theta) {\n if ((k = +k) < 0) throw new RangeError(\"invalid k\");\n // degenerate distribution if k === 0\n if (k === 0) return () => 0;\n theta = theta == null ? 1 : +theta;\n // exponential distribution if k === 1\n if (k === 1) return () => -Math.log1p(-source()) * theta;\n\n var d = (k < 1 ? k + 1 : k) - 1 / 3,\n c = 1 / (3 * Math.sqrt(d)),\n multiplier = k < 1 ? () => Math.pow(source(), 1 / k) : () => 1;\n return function() {\n do {\n do {\n var x = randomNormal(),\n v = 1 + c * x;\n } while (v <= 0);\n v *= v * v;\n var u = 1 - source();\n } while (u >= 1 - 0.0331 * x * x * x * x && Math.log(u) >= 0.5 * x * x + d * (1 - v + Math.log(v)));\n return d * v * multiplier() * theta;\n };\n }\n\n randomGamma.source = sourceRandomGamma;\n\n return randomGamma;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport gamma from \"./gamma.js\";\n\nexport default (function sourceRandomBeta(source) {\n var G = gamma.source(source);\n\n function randomBeta(alpha, beta) {\n var X = G(alpha),\n Y = G(beta);\n return function() {\n var x = X();\n return x === 0 ? 0 : x / (x + Y());\n };\n }\n\n randomBeta.source = sourceRandomBeta;\n\n return randomBeta;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport beta from \"./beta.js\";\nimport geometric from \"./geometric.js\";\n\nexport default (function sourceRandomBinomial(source) {\n var G = geometric.source(source),\n B = beta.source(source);\n\n function randomBinomial(n, p) {\n n = +n;\n if ((p = +p) >= 1) return () => n;\n if (p <= 0) return () => 0;\n return function() {\n var acc = 0, nn = n, pp = p;\n while (nn * pp > 16 && nn * (1 - pp) > 16) {\n var i = Math.floor((nn + 1) * pp),\n y = B(i, nn - i + 1)();\n if (y <= pp) {\n acc += i;\n nn -= i;\n pp = (pp - y) / (1 - y);\n } else {\n nn = i - 1;\n pp /= y;\n }\n }\n var sign = pp < 0.5,\n pFinal = sign ? pp : 1 - pp,\n g = G(pFinal);\n for (var s = g(), k = 0; s <= nn; ++k) s += g();\n return acc + (sign ? k : nn - k);\n };\n }\n\n randomBinomial.source = sourceRandomBinomial;\n\n return randomBinomial;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomWeibull(source) {\n function randomWeibull(k, a, b) {\n var outerFunc;\n if ((k = +k) === 0) {\n outerFunc = x => -Math.log(x);\n } else {\n k = 1 / k;\n outerFunc = x => Math.pow(x, k);\n }\n a = a == null ? 0 : +a;\n b = b == null ? 1 : +b;\n return function() {\n return a + b * outerFunc(-Math.log1p(-source()));\n };\n }\n\n randomWeibull.source = sourceRandomWeibull;\n\n return randomWeibull;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomCauchy(source) {\n function randomCauchy(a, b) {\n a = a == null ? 0 : +a;\n b = b == null ? 1 : +b;\n return function() {\n return a + b * Math.tan(Math.PI * source());\n };\n }\n\n randomCauchy.source = sourceRandomCauchy;\n\n return randomCauchy;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomLogistic(source) {\n function randomLogistic(a, b) {\n a = a == null ? 0 : +a;\n b = b == null ? 1 : +b;\n return function() {\n var u = source();\n return a + b * Math.log(u / (1 - u));\n };\n }\n\n randomLogistic.source = sourceRandomLogistic;\n\n return randomLogistic;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\nimport binomial from \"./binomial.js\";\nimport gamma from \"./gamma.js\";\n\nexport default (function sourceRandomPoisson(source) {\n var G = gamma.source(source),\n B = binomial.source(source);\n\n function randomPoisson(lambda) {\n return function() {\n var acc = 0, l = lambda;\n while (l > 16) {\n var n = Math.floor(0.875 * l),\n t = G(n)();\n if (t > l) return acc + B(n - 1, l / t)();\n acc += n;\n l -= t;\n }\n for (var s = -Math.log1p(-source()), k = 0; s <= l; ++k) s -= Math.log1p(-source());\n return acc + k;\n };\n }\n\n randomPoisson.source = sourceRandomPoisson;\n\n return randomPoisson;\n})(defaultSource);\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst mul = 0x19660D;\nconst inc = 0x3C6EF35F;\nconst eps = 1 / 0x100000000;\n\nexport default function lcg(seed = Math.random()) {\n let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0;\n return () => (state = mul * state + inc | 0, eps * (state >>> 0));\n}\n","export {default as randomUniform} from \"./uniform.js\";\nexport {default as randomInt} from \"./int.js\";\nexport {default as randomNormal} from \"./normal.js\";\nexport {default as randomLogNormal} from \"./logNormal.js\";\nexport {default as randomBates} from \"./bates.js\";\nexport {default as randomIrwinHall} from \"./irwinHall.js\";\nexport {default as randomExponential} from \"./exponential.js\";\nexport {default as randomPareto} from \"./pareto.js\";\nexport {default as randomBernoulli} from \"./bernoulli.js\";\nexport {default as randomGeometric} from \"./geometric.js\";\nexport {default as randomBinomial} from \"./binomial.js\";\nexport {default as randomGamma} from \"./gamma.js\";\nexport {default as randomBeta} from \"./beta.js\";\nexport {default as randomWeibull} from \"./weibull.js\";\nexport {default as randomCauchy} from \"./cauchy.js\";\nexport {default as randomLogistic} from \"./logistic.js\";\nexport {default as randomPoisson} from \"./poisson.js\";\nexport {default as randomLcg} from \"./lcg.js\";\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 {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\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 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 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} 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 : function(x) { return 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), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n 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 = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n 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, p = pows(i); k < base; ++k) {\n t = p * k;\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, p = pows(i); k >= 1; --k) {\n t = p * k;\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\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var 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 = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\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 continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\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 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 {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","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 <= 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","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(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 = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\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 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 = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(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 = function(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 = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\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 default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","export {\n default as timeInterval\n} from \"./interval.js\";\n\nexport {\n default as timeMillisecond,\n milliseconds as timeMilliseconds,\n default as utcMillisecond,\n milliseconds as utcMilliseconds\n} from \"./millisecond.js\";\n\nexport {\n default as timeSecond,\n seconds as timeSeconds,\n default as utcSecond,\n seconds as utcSeconds\n} from \"./second.js\";\n\nexport {\n default as timeMinute,\n minutes as timeMinutes\n} from \"./minute.js\";\n\nexport {\n default as timeHour,\n hours as timeHours\n} from \"./hour.js\";\n\nexport {\n default as timeDay,\n days as timeDays\n} from \"./day.js\";\n\nexport {\n sunday as timeWeek,\n sundays as timeWeeks,\n sunday as timeSunday,\n sundays as timeSundays,\n monday as timeMonday,\n mondays as timeMondays,\n tuesday as timeTuesday,\n tuesdays as timeTuesdays,\n wednesday as timeWednesday,\n wednesdays as timeWednesdays,\n thursday as timeThursday,\n thursdays as timeThursdays,\n friday as timeFriday,\n fridays as timeFridays,\n saturday as timeSaturday,\n saturdays as timeSaturdays\n} from \"./week.js\";\n\nexport {\n default as timeMonth,\n months as timeMonths\n} from \"./month.js\";\n\nexport {\n default as timeYear,\n years as timeYears\n} from \"./year.js\";\n\nexport {\n default as utcMinute,\n utcMinutes as utcMinutes\n} from \"./utcMinute.js\";\n\nexport {\n default as utcHour,\n utcHours as utcHours\n} from \"./utcHour.js\";\n\nexport {\n default as utcDay,\n utcDays as utcDays\n} from \"./utcDay.js\";\n\nexport {\n utcSunday as utcWeek,\n utcSundays as utcWeeks,\n utcSunday as utcSunday,\n utcSundays as utcSundays,\n utcMonday as utcMonday,\n utcMondays as utcMondays,\n utcTuesday as utcTuesday,\n utcTuesdays as utcTuesdays,\n utcWednesday as utcWednesday,\n utcWednesdays as utcWednesdays,\n utcThursday as utcThursday,\n utcThursdays as utcThursdays,\n utcFriday as utcFriday,\n utcFridays as utcFridays,\n utcSaturday as utcSaturday,\n utcSaturdays as utcSaturdays\n} from \"./utcWeek.js\";\n\nexport {\n default as utcMonth,\n utcMonths as utcMonths\n} from \"./utcMonth.js\";\n\nexport {\n default as utcYear,\n utcYears as utcYears\n} from \"./utcYear.js\";\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 {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","export {default as timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse} from \"./defaultLocale.js\";\nexport {default as timeFormatLocale} from \"./locale.js\";\nexport {default as isoFormat} from \"./isoFormat.js\";\nexport {default as isoParse} from \"./isoParse.js\";\n","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} 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\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\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(year, month, week, day, hour, minute, second, millisecond, 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 var 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 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 function tickInterval(interval, start, stop) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target),\n step;\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n return interval.every(step);\n }\n\n return interval;\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 t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\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 return (interval = tickInterval(interval, d[0], d[d.length - 1]))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {calendar} from \"./time.js\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, 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 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 {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\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 scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\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 {\n default as scaleBand,\n point as scalePoint\n} from \"./band.js\";\n\nexport {\n default as scaleIdentity\n} from \"./identity.js\";\n\nexport {\n default as scaleLinear\n} from \"./linear.js\";\n\nexport {\n default as scaleLog\n} from \"./log.js\";\n\nexport {\n default as scaleSymlog\n} from \"./symlog.js\";\n\nexport {\n default as scaleOrdinal,\n implicit as scaleImplicit\n} from \"./ordinal.js\";\n\nexport {\n default as scalePow,\n sqrt as scaleSqrt\n} from \"./pow.js\";\n\nexport {\n default as scaleRadial\n} from \"./radial.js\";\n\nexport {\n default as scaleQuantile\n} from \"./quantile.js\";\n\nexport {\n default as scaleQuantize\n} from \"./quantize.js\";\n\nexport {\n default as scaleThreshold\n} from \"./threshold.js\";\n\nexport {\n default as scaleTime\n} from \"./time.js\";\n\nexport {\n default as scaleUtc\n} from \"./utcTime.js\";\n\nexport {\n default as scaleSequential,\n sequentialLog as scaleSequentialLog,\n sequentialPow as scaleSequentialPow,\n sequentialSqrt as scaleSequentialSqrt,\n sequentialSymlog as scaleSequentialSymlog\n} from \"./sequential.js\";\n\nexport {\n default as scaleSequentialQuantile\n} from \"./sequentialQuantile.js\";\n\nexport {\n default as scaleDiverging,\n divergingLog as scaleDivergingLog,\n divergingPow as scaleDivergingPow,\n divergingSqrt as scaleDivergingSqrt,\n divergingSymlog as scaleDivergingSymlog\n} from \"./diverging.js\";\n\nexport {\n default as tickFormat\n} from \"./tickFormat.js\";\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 as schemeCategory10} from \"./categorical/category10.js\";\nexport {default as schemeAccent} from \"./categorical/Accent.js\";\nexport {default as schemeDark2} from \"./categorical/Dark2.js\";\nexport {default as schemePaired} from \"./categorical/Paired.js\";\nexport {default as schemePastel1} from \"./categorical/Pastel1.js\";\nexport {default as schemePastel2} from \"./categorical/Pastel2.js\";\nexport {default as schemeSet1} from \"./categorical/Set1.js\";\nexport {default as schemeSet2} from \"./categorical/Set2.js\";\nexport {default as schemeSet3} from \"./categorical/Set3.js\";\nexport {default as schemeTableau10} from \"./categorical/Tableau10.js\";\nexport {default as interpolateBrBG, scheme as schemeBrBG} from \"./diverging/BrBG.js\";\nexport {default as interpolatePRGn, scheme as schemePRGn} from \"./diverging/PRGn.js\";\nexport {default as interpolatePiYG, scheme as schemePiYG} from \"./diverging/PiYG.js\";\nexport {default as interpolatePuOr, scheme as schemePuOr} from \"./diverging/PuOr.js\";\nexport {default as interpolateRdBu, scheme as schemeRdBu} from \"./diverging/RdBu.js\";\nexport {default as interpolateRdGy, scheme as schemeRdGy} from \"./diverging/RdGy.js\";\nexport {default as interpolateRdYlBu, scheme as schemeRdYlBu} from \"./diverging/RdYlBu.js\";\nexport {default as interpolateRdYlGn, scheme as schemeRdYlGn} from \"./diverging/RdYlGn.js\";\nexport {default as interpolateSpectral, scheme as schemeSpectral} from \"./diverging/Spectral.js\";\nexport {default as interpolateBuGn, scheme as schemeBuGn} from \"./sequential-multi/BuGn.js\";\nexport {default as interpolateBuPu, scheme as schemeBuPu} from \"./sequential-multi/BuPu.js\";\nexport {default as interpolateGnBu, scheme as schemeGnBu} from \"./sequential-multi/GnBu.js\";\nexport {default as interpolateOrRd, scheme as schemeOrRd} from \"./sequential-multi/OrRd.js\";\nexport {default as interpolatePuBuGn, scheme as schemePuBuGn} from \"./sequential-multi/PuBuGn.js\";\nexport {default as interpolatePuBu, scheme as schemePuBu} from \"./sequential-multi/PuBu.js\";\nexport {default as interpolatePuRd, scheme as schemePuRd} from \"./sequential-multi/PuRd.js\";\nexport {default as interpolateRdPu, scheme as schemeRdPu} from \"./sequential-multi/RdPu.js\";\nexport {default as interpolateYlGnBu, scheme as schemeYlGnBu} from \"./sequential-multi/YlGnBu.js\";\nexport {default as interpolateYlGn, scheme as schemeYlGn} from \"./sequential-multi/YlGn.js\";\nexport {default as interpolateYlOrBr, scheme as schemeYlOrBr} from \"./sequential-multi/YlOrBr.js\";\nexport {default as interpolateYlOrRd, scheme as schemeYlOrRd} from \"./sequential-multi/YlOrRd.js\";\nexport {default as interpolateBlues, scheme as schemeBlues} from \"./sequential-single/Blues.js\";\nexport {default as interpolateGreens, scheme as schemeGreens} from \"./sequential-single/Greens.js\";\nexport {default as interpolateGreys, scheme as schemeGreys} from \"./sequential-single/Greys.js\";\nexport {default as interpolatePurples, scheme as schemePurples} from \"./sequential-single/Purples.js\";\nexport {default as interpolateReds, scheme as schemeReds} from \"./sequential-single/Reds.js\";\nexport {default as interpolateOranges, scheme as schemeOranges} from \"./sequential-single/Oranges.js\";\nexport {default as interpolateCividis} from \"./sequential-multi/cividis.js\";\nexport {default as interpolateCubehelixDefault} from \"./sequential-multi/cubehelix.js\";\nexport {default as interpolateRainbow, warm as interpolateWarm, cool as interpolateCool} from \"./sequential-multi/rainbow.js\";\nexport {default as interpolateSinebow} from \"./sequential-multi/sinebow.js\";\nexport {default as interpolateTurbo} from \"./sequential-multi/turbo.js\";\nexport {default as interpolateViridis, magma as interpolateMagma, inferno as interpolateInferno, plasma as interpolatePlasma} from \"./sequential-multi/viridis.js\";\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var 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\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\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 {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.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\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 {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.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","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n 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 {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.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","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.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","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n 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 {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function(type, size) {\n var context = null;\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 var 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); // proceed\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); // proceed\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; // proceed\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; // proceed\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; // proceed\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; // proceed\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; // proceed\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; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","export {default as arc} from \"./arc.js\";\nexport {default as area} from \"./area.js\";\nexport {default as line} from \"./line.js\";\nexport {default as pie} from \"./pie.js\";\nexport {default as areaRadial, default as radialArea} from \"./areaRadial.js\"; // Note: radialArea is deprecated!\nexport {default as lineRadial, default as radialLine} from \"./lineRadial.js\"; // Note: radialLine is deprecated!\nexport {default as pointRadial} from \"./pointRadial.js\";\nexport {linkHorizontal, linkVertical, linkRadial} from \"./link/index.js\";\n\nexport {default as symbol, symbols} from \"./symbol.js\";\nexport {default as symbolCircle} from \"./symbol/circle.js\";\nexport {default as symbolCross} from \"./symbol/cross.js\";\nexport {default as symbolDiamond} from \"./symbol/diamond.js\";\nexport {default as symbolSquare} from \"./symbol/square.js\";\nexport {default as symbolStar} from \"./symbol/star.js\";\nexport {default as symbolTriangle} from \"./symbol/triangle.js\";\nexport {default as symbolWye} from \"./symbol/wye.js\";\n\nexport {default as curveBasisClosed} from \"./curve/basisClosed.js\";\nexport {default as curveBasisOpen} from \"./curve/basisOpen.js\";\nexport {default as curveBasis} from \"./curve/basis.js\";\nexport {default as curveBundle} from \"./curve/bundle.js\";\nexport {default as curveCardinalClosed} from \"./curve/cardinalClosed.js\";\nexport {default as curveCardinalOpen} from \"./curve/cardinalOpen.js\";\nexport {default as curveCardinal} from \"./curve/cardinal.js\";\nexport {default as curveCatmullRomClosed} from \"./curve/catmullRomClosed.js\";\nexport {default as curveCatmullRomOpen} from \"./curve/catmullRomOpen.js\";\nexport {default as curveCatmullRom} from \"./curve/catmullRom.js\";\nexport {default as curveLinearClosed} from \"./curve/linearClosed.js\";\nexport {default as curveLinear} from \"./curve/linear.js\";\nexport {monotoneX as curveMonotoneX, monotoneY as curveMonotoneY} from \"./curve/monotone.js\";\nexport {default as curveNatural} from \"./curve/natural.js\";\nexport {default as curveStep, stepAfter as curveStepAfter, stepBefore as curveStepBefore} from \"./curve/step.js\";\n\nexport {default as stack} from \"./stack.js\";\nexport {default as stackOffsetExpand} from \"./offset/expand.js\";\nexport {default as stackOffsetDiverging} from \"./offset/diverging.js\";\nexport {default as stackOffsetNone} from \"./offset/none.js\";\nexport {default as stackOffsetSilhouette} from \"./offset/silhouette.js\";\nexport {default as stackOffsetWiggle} from \"./offset/wiggle.js\";\nexport {default as stackOrderAppearance} from \"./order/appearance.js\";\nexport {default as stackOrderAscending} from \"./order/ascending.js\";\nexport {default as stackOrderDescending} from \"./order/descending.js\";\nexport {default as stackOrderInsideOut} from \"./order/insideOut.js\";\nexport {default as stackOrderNone} from \"./order/none.js\";\nexport {default as stackOrderReverse} from \"./order/reverse.js\";\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n currentTarget = event.currentTarget,\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","export {default as zoom} from \"./zoom.js\";\nexport {default as zoomTransform, identity as zoomIdentity} from \"./transform.js\";\n","export {version} from \"./dist/package.js\";\nexport * from \"d3-array\";\nexport * from \"d3-axis\";\nexport * from \"d3-brush\";\nexport * from \"d3-chord\";\nexport * from \"d3-color\";\nexport * from \"d3-contour\";\nexport * from \"d3-delaunay\";\nexport * from \"d3-dispatch\";\nexport * from \"d3-drag\";\nexport * from \"d3-dsv\";\nexport * from \"d3-ease\";\nexport * from \"d3-fetch\";\nexport * from \"d3-force\";\nexport * from \"d3-format\";\nexport * from \"d3-geo\";\nexport * from \"d3-hierarchy\";\nexport * from \"d3-interpolate\";\nexport * from \"d3-path\";\nexport * from \"d3-polygon\";\nexport * from \"d3-quadtree\";\nexport * from \"d3-random\";\nexport * from \"d3-scale\";\nexport * from \"d3-scale-chromatic\";\nexport * from \"d3-selection\";\nexport * from \"d3-shape\";\nexport * from \"d3-time\";\nexport * from \"d3-time-format\";\nexport * from \"d3-timer\";\nexport * from \"d3-transition\";\nexport * from \"d3-zoom\";\n","import {Scene, SceneActivationParams, SceneMountParams, SceneParams} from \"./Graphic\";\r\nimport {Subscription} from \"rxjs\";\r\nimport * as d3 from \"d3\";\r\nimport {debounceTime, withLatestFrom} from \"rxjs/operators\";\r\n\r\n\r\nexport function trigger(pos: number) {\r\n return function (target, propertyKey, descriptor?) {\r\n target.fmap = target.fmap || {}\r\n target.fmap[pos] = propertyKey\r\n }\r\n}\r\n\r\ntype TriggerSceneParams = {\r\n data?: any;\r\n}\r\n\r\n\r\n\r\nlet MARGINS = {top: 100, right: window.innerWidth / 4, bottom: 100, left: window.innerWidth / 4}\r\nlet width = window.innerWidth - MARGINS.left - MARGINS.right;\r\nlet height = window.innerHeight - MARGINS.top - MARGINS.bottom;\r\n\r\nexport class TriggerScene implements Scene {\r\n public screenLengths = 0;\r\n public graphicContainer: HTMLDivElement;\r\n\r\n private selections: {[id: string]: any} = {};\r\n private lastTrig = undefined;\r\n private data = null;\r\n private scales: {[id: string]: any} = {};\r\n private shapes: {[id: string]: any} = {};\r\n\r\n constructor(p: SceneParams & TriggerSceneParams) {\r\n this.screenLengths = p.screenLengths;\r\n this.data = p.data;\r\n\r\n this.graphicContainer = document.createElement(\"div\");\r\n this.graphicContainer.classList.add(\"gfx-container\")\r\n }\r\n\r\n public activate(params: SceneActivationParams): Subscription[] {\r\n let subs = [];\r\n\r\n subs.push(params.resize$.subscribe(r => {\r\n MARGINS = {top: 100, right: window.innerWidth / 4, bottom: 100, left: window.innerWidth / 4}\r\n width = window.innerWidth - MARGINS.left - MARGINS.right;\r\n height = window.innerHeight - MARGINS.top - MARGINS.bottom;\r\n this.scales.airY = this.scales.airY.range([height, 0])\r\n this.scales.airYLog = this.scales.airYLog.range([height, 0])\r\n this.scales.airX = this.scales.airX.range([0, width])\r\n\r\n this.scales.bllY = this.scales.bllY.range([height, 0])\r\n this.scales.bllX = this.scales.bllX.range([0, width])\r\n\r\n this.selections.axBllX.interrupt().transition().attr(\"transform\", `translate(0, ${height})`)\r\n let offsetY = 70;\r\n if (window.isMobile.any) {\r\n offsetY = 60\r\n }\r\n this.selections.yUnits.attr(\"y\", -offsetY - 15).attr(\"x\", -height/2).attr(\"transform\", \"rotate(-90)\")\r\n this.selections.ugDl.attr(\"y\", -offsetY).attr(\"x\", -height/2).attr(\"transform\", \"rotate(-90)\")\r\n this.selections.milligramUnits.attr(\"y\", -offsetY).attr(\"x\", -height/2).attr(\"transform\", \"rotate(-90)\")\r\n\r\n this.selections.svg.attr(\"width\", `${r.innerWidth}px`);\r\n this.selections.svg.attr(\"height\", `${r.innerHeight}px`);\r\n this.selections.gMargins.attr(\"transform\", `translate(${MARGINS.left}, ${MARGINS.top})`)\r\n }))\r\n\r\n // console.log(this)\r\n\r\n const trigs = Object.keys(Object.getPrototypeOf(this).fmap).filter(x => x !== \"init\").map(x => parseFloat(x))\r\n\r\n subs.push(params.progress$.pipe(debounceTime(100)).subscribe(p => {\r\n const currentScreen = p * (this.screenLengths) - .5;\r\n if (currentScreen < .01) {\r\n if (this.lastTrig != null) {\r\n this.init();\r\n this.lastTrig = null;\r\n }\r\n\r\n } else {\r\n try {\r\n const t = trigs.filter(x => x >= currentScreen)\r\n if (t[0] !== this.lastTrig) {\r\n this[Object.getPrototypeOf(this).fmap[t[0]]]()\r\n this.lastTrig = t[0]\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }\r\n }))\r\n return subs;\r\n }\r\n\r\n public mount(p: SceneMountParams): void {\r\n this.scales.airY = d3.scaleLinear().domain([0, 3000]).range([height, 0])\r\n this.scales.airYLog = d3.scaleLog().domain([1, d3.max(this.data.airData, d => (d).result)]).range([height, 0])\r\n this.scales.airX = d3.scaleTime().domain([d3.isoParse(\"2013-01-01\"), d3.isoParse(\"2020-01-01\")]).range([0, width])\r\n\r\n this.scales.bllY = d3.scaleLinear().domain([0, 60]).range([height, 0])\r\n this.scales.bllX = d3.scaleTime().domain([d3.isoParse(\"1985-01-01\"), d3.isoParse(\"2017-12-31\")]).range([0, width])\r\n this.selections.photo = d3.select(p.vizPlate).append(\"div\").classed(\"hidden-photo\", true).classed(\"dumeus-photo\", true)\r\n\r\n const svg = d3.select(p.vizPlate).append(\"svg\")\r\n this.selections[\"svg\"] = svg;\r\n this.selections[\"gMargins\"] = svg.append(\"g\").classed(\"margins\", true)\r\n this.selections[\"gAxes\"] = this.selections.gMargins.append(\"g\").classed(\"axes\", true)\r\n this.selections[\"gBloodTests\"] = this.selections[\"gMargins\"].append(\"g\").classed(\"blood-tests\", true)\r\n this.selections[\"gAirTests\"] = this.selections[\"gMargins\"].append(\"g\").classed(\"air-tests\", true)\r\n\r\n let offsetY = 70;\r\n if (window.isMobile.any) {\r\n offsetY = 60\r\n }\r\n\r\n\r\n this.selections.yUnits = this.selections.gAirTests.append(\"text\").classed(\"y-units\", true).text(\"MICROGRAMS PER CUBIC METER\").attr(\"y\", -offsetY - 15).attr(\"x\", -height/2).attr(\"transform\", \"rotate(-90)\").attr(\"opacity\", 0);\r\n this.selections.ugDl = this.selections.gBloodTests.append(\"text\").classed(\"y-units\", true).text(\"MICROGRAMS PER DECILITER\").attr(\"y\", -offsetY).attr(\"x\", -height/2).attr(\"transform\", \"rotate(-90)\").attr(\"opacity\", 0);\r\n this.selections.milligramUnits = this.selections.gBloodTests.append(\"text\").classed(\"y-units\", true).text(\"MILLIGRAMS\").attr(\"y\", -offsetY).attr(\"x\", -height/2).attr(\"transform\", \"rotate(-90)\").attr(\"opacity\", 0);\r\n\r\n\r\n\r\n this.shapes.mucLine = d3.line().x(d => this.scales.airX(d.date)).y(d => this.scales.airY(d.result))\r\n this.shapes.mucLineLog = d3.line().x(d => this.scales.airX(d.date)).y(d => this.scales.airYLog(d.result))\r\n\r\n this.scales.mgScale = d3.scaleLinear().domain([0, 1000]).range([height, 0])\r\n\r\n this.selections[\"mucLine\"] = this.selections.gAirTests.append(\"path\").classed(\"resp-muc\", true).datum([\r\n {date: d3.isoParse(\"2013-01-01\"), result: 2500},\r\n {date: d3.isoParse(\"2020-01-01\"), result: 2500},\r\n ]).attr(\"d\", this.shapes.mucLine)\r\n\r\n this.shapes.cdcLine = d3.line().x(d => this.scales.bllX(d.date)).y(d => this.scales.bllY(d.bll))\r\n this.selections[\"cdcLine\"] = this.selections.gBloodTests.append(\"path\").classed(\"cdc-limit\", true).datum([\r\n {date: d3.isoParse(\"1985-01-01\"), bll: 5},\r\n {date: d3.isoParse(\"2017-12-31\"), bll: 5},\r\n ]).attr(\"d\", this.shapes.cdcLine)\r\n\r\n let len = this.selections.cdcLine.node().getTotalLength()\r\n this.selections.cdcLine.attr(\"stroke-dasharray\", `${len} ${len}`).attr(\"stroke-dashoffset\", len);\r\n\r\n this.shapes.axAirY = d3.axisLeft(this.scales.airY).ticks(4).tickFormat(d => d3.format(\",\")(d))\r\n this.selections.axAirY = this.selections.gAxes.append(\"g\").classed(\"air-y-ax\", true).classed(\"ax\", true).call(this.shapes.axAirY)\r\n\r\n this.shapes.axBllX = d3.axisBottom(this.scales.bllX).ticks(4)\r\n this.selections.axBllX = this.selections.gAxes.append(\"g\").classed(\"bll-x-ax\", true).classed(\"ax\", true).call(this.shapes.axBllX).attr(\"transform\", `translate(0, ${height})`).attr(\"opacity\", 0);\r\n\r\n this.shapes.axBllY = d3.axisLeft(this.scales.bllY).ticks(4)\r\n this.selections.axBllY = this.selections.gAxes.append(\"g\").classed(\"bll-y-ax\", true).classed(\"ax\", true).call(this.shapes.axBllY)\r\n\r\n\r\n this.selections[\"bloodTests\"] = this.selections[\"gBloodTests\"].selectAll(\"circle\").filter(function() {\r\n return this.classList.contains(\"blood-test\");\r\n }).data(this.data.bllData, d => d.id).enter().append(\"circle\").classed(\"blood-test\", true).attr(\"r\", 3)\r\n .attr(\"cx\", d => this.scales.bllX(d.date))\r\n .attr(\"cy\", d => this.scales.bllY(d.bll));\r\n\r\n this.selections[\"airTests\"] = this.selections[\"gAirTests\"].selectAll(\"circle\").filter(function() {\r\n return this.classList.contains(\"air-test\");\r\n }).data(this.data.airData, d => d.id).enter().append(\"circle\").classed(\"air-test\", true).attr(\"r\", 3)\r\n .attr(\"cx\", d => this.scales.airX(d.date))\r\n .attr(\"cy\", this.handleLogNaN.bind(this));\r\n\r\n this.init()\r\n }\r\n\r\n @trigger(3)\r\n @trigger(7)\r\n init() {\r\n this.selections.bloodTests.interrupt().transition().attr(\"cx\", d => this.scales.bllX(d.date)).attr(\"cy\", window.innerHeight)\r\n this.selections.airTests.interrupt().transition().attr(\"cx\", d => this.scales.airX(d.date)).attr(\"cy\", window.innerHeight)\r\n this.selections.axAirY.interrupt().transition().attr(\"opacity\", 0).call(this.shapes.axAirY)\r\n let lineLen = this.selections.mucLine.node().getTotalLength()\r\n this.selections.mucLine.interrupt().attr(\"d\", this.shapes.mucLine)\r\n .attr(\"stroke-dasharray\", `${lineLen} ${lineLen}`)\r\n .attr(\"stroke-dashoffset\", lineLen)\r\n this.selections.axBllX.interrupt().transition().attr(\"opacity\", 0).call(this.shapes.axBllX)\r\n this.selections.axBllY.interrupt().transition().attr(\"opacity\", 0).call(this.shapes.axBllY)\r\n\r\n this.selections.photo.node().classList.add(\"hidden-photo\")\r\n this.selections.photo.node().classList.remove(\"fade-in\")\r\n\r\n this.selections.yUnits.attr(\"opacity\", 0)\r\n this.selections.ugDl.attr(\"opacity\", 0)\r\n this.selections.milligramUnits.attr(\"opacity\", 0)\r\n let len = this.selections.cdcLine.node().getTotalLength()\r\n this.selections.cdcLine.interrupt().transition().attr(\"d\", this.shapes.cdcLine).attr(\"stroke-dasharray\", `${len} ${len}`).attr(\"stroke-dashoffset\", len);\r\n }\r\n\r\n @trigger(1)\r\n bringInAirSamples() {\r\n this.shapes.axAirY = d3.axisLeft(this.scales.airYLog).ticks(4).tickFormat(d => d3.format(\",\")(d))\r\n this.selections.axAirY.interrupt().transition().attr(\"opacity\", 1).call(this.shapes.axAirY)\r\n this.selections.airTests.interrupt().transition().delay((d, i) => i * 4).attr(\"cx\", d => this.scales.airX(d.date)).attr(\"cy\", this.handleLogNaN.bind(this))\r\n .attr(\"opacity\", 1)\r\n let len = this.selections.mucLine.node().getTotalLength();\r\n this.selections.mucLine.interrupt().transition().attr(\"d\", this.shapes.mucLineLog).attr(\"stroke-dasharray\", `${len} ${len}`).attr(\"stroke-dashoffset\", len)\r\n this.selections.axBllX.interrupt().transition().attr(\"opacity\", 0).call(this.shapes.axBllX)\r\n this.selections.axBllY.interrupt().transition().attr(\"opacity\", 0).call(this.shapes.axBllY)\r\n this.selections.yUnits.interrupt().transition().attr(\"opacity\", 1)\r\n\r\n }\r\n\r\n @trigger(2)\r\n highlightOverMUC() {\r\n this.shapes.axAirY = d3.axisLeft(this.scales.airYLog).ticks(4).tickFormat(d => d3.format(\",\")(d))\r\n this.selections.axAirY.interrupt().transition().attr(\"opacity\", 1).call(this.shapes.axAirY)\r\n this.selections.airTests.interrupt().transition().delay((d, i) => i * 4).attr(\"cx\", d => this.scales.airX(d.date)).attr(\"cy\", this.handleLogNaN.bind(this))\r\n .attr(\"opacity\", d => d.exceeds_8hr_muc ? 1 : .1)\r\n this.selections.mucLine.interrupt().transition().attr(\"d\", this.shapes.mucLineLog).attr(\"stroke-dashoffset\", 0)\r\n this.selections.axBllX.interrupt().transition().attr(\"opacity\", 0).call(this.shapes.axBllX)\r\n\r\n this.selections.axBllY.interrupt().transition().attr(\"opacity\", 0).call(this.shapes.axBllY)\r\n this.selections.yUnits.interrupt().transition().attr(\"opacity\", 1)\r\n\r\n }\r\n\r\n @trigger(4)\r\n showBllXAxis() {\r\n this.selections.bloodTests.interrupt().transition().attr(\"cx\", d => this.scales.bllX(d.date)).attr(\"cy\", window.innerHeight)\r\n this.selections.axBllX.interrupt().transition().attr(\"opacity\", 1).call(this.shapes.axBllX)\r\n this.selections.axBllY.interrupt().transition().attr(\"opacity\", 0).call(this.shapes.axBllY)\r\n this.selections.yUnits.interrupt().transition().attr(\"opacity\", 0)\r\n this.selections.ugDl.interrupt().transition().attr(\"opacity\", 0)\r\n let len = this.selections.cdcLine.node().getTotalLength()\r\n this.selections.cdcLine.interrupt().transition().attr(\"stroke-dasharray\", `${len} ${len}`).attr(\"stroke-dashoffset\", len);\r\n }\r\n\r\n @trigger(5)\r\n @trigger(6)\r\n showBloodTests() {\r\n this.selections.bloodTests.interrupt().transition().delay((d, i) => i * 4).attr(\"cx\", d => this.scales.bllX(d.date)).attr(\"cy\", d => this.scales.bllY(d.bll)).attr(\"opacity\", 1)\r\n this.selections.axBllX.interrupt().transition().attr(\"opacity\", 1).call(this.shapes.axBllX)\r\n this.selections.axBllY.interrupt().transition().attr(\"opacity\", 1).call(this.shapes.axBllY)\r\n\r\n this.selections.ugDl.interrupt().transition().attr(\"opacity\", 1)\r\n this.selections.milligramUnits.interrupt().transition().attr(\"opacity\", 0);\r\n this.selections.cdcLine.interrupt().transition().attr(\"stroke-dashoffset\", 0);\r\n }\r\n\r\n // @trigger(12)\r\n @trigger(8)\r\n @trigger(9)\r\n @trigger(10)\r\n showDumeusPhoto() {\r\n this.selections.photo.node().classList.remove(\"hidden-photo\")\r\n setTimeout(() => this.selections.photo.node().classList.add(\"fade-in\"));\r\n }\r\n\r\n\r\n\r\n private handleLogNaN(d) {\r\n let r = this.scales.airYLog(d.result)\r\n if (Number.isNaN(r)) {\r\n return height + 10\r\n }\r\n return r\r\n }\r\n\r\n\r\n\r\n public deactivate(subs: Subscription[]) {\r\n for (let sub of subs) {\r\n sub.unsubscribe();\r\n }\r\n }\r\n}","import { Graphic } from \"./Graphic\";\r\nimport { StageScene } from \"./StageScene\";\r\nimport { BLL } from \"./stages/BLL\";\r\nimport { Dumeus } from \"./stages/Dumeus\";\r\nimport {VideoScene} from \"./VideoScene\";\r\nimport { text } from \"./text\";\r\nimport {TriggerScene} from \"./TriggerScene\";\r\nimport * as d3 from \"d3\";\r\n\r\n\r\nfunction getVidUrl() {\r\n return `./${window.isMobile.any ? \"mobile\" : \"desktop\"}.mp4`\r\n}\r\n\r\nfunction getVidEl() {\r\n const vidEl = document.createElement(\"video\")\r\n vidEl.setAttribute(\"preload\", \"auto\");\r\n vidEl.setAttribute(\"muted\", \"\");\r\n vidEl.setAttribute(\"autoplay\", \"\");\r\n vidEl.setAttribute(\"playsinline\", \"\");\r\n vidEl.playsinline = true;\r\n vidEl.autoplay = true;\r\n vidEl.preload = \"auto\";\r\n vidEl.muted = true;\r\n vidEl.classList.add(\"under-vid\");\r\n vidEl.src = getVidUrl();\r\n vidEl.load();\r\n return vidEl;\r\n}\r\n\r\n\r\n\r\nasync function main() {\r\n\r\n let bllData = await d3.csv(\"./dumeus_blood_tests.csv\", x => {\r\n return {\r\n bll: +x.bll,\r\n cbli: +x.cbli,\r\n cumulative_trap: +x.cumulative_trap,\r\n date: d3.isoParse(x.date),\r\n lower: +x.lower,\r\n upper: +x.upper,\r\n trapezoid: +x.trapezoid,\r\n id: x.id,\r\n days_since_last: +x.days_since_last\r\n }\r\n })\r\n\r\n let airData = await d3.csv(\"./furnace_air.csv\", x => {\r\n return {\r\n date: d3.isoParse(x.date),\r\n id: x.id,\r\n result: +x.result,\r\n exceeds_8hr_muc: +x.result > 2500\r\n }\r\n })\r\n\r\n const g = new Graphic({\r\n scenes: {\r\n \"drone\": new VideoScene({\r\n screenLengths: 24,\r\n framerate: 30,\r\n vidEl: getVidEl(),\r\n frameSteps: window.isMobile.any ? 10 : 20,\r\n // steps,\r\n numFrames: 720\r\n }),\r\n \"d3\": new TriggerScene({\r\n screenLengths: 9,\r\n data: {bllData, airData}\r\n })\r\n // \"bll\": new StageScene({\r\n // screenLengths: 19,\r\n // stages: {\r\n // \"all_bloods\": BLL,\r\n // // \"dumeus\": Dumeus,\r\n // },\r\n // stageOrder: [\"all_bloods\"]\r\n // })\r\n },\r\n sceneOrder: [\r\n \"drone\",\r\n \"d3\"\r\n ],\r\n mountPoint: \"graphic\",\r\n debug: true,\r\n text\r\n })\r\n // await document.body.requestFullscreen();\r\n g.mount(\"graphic\")\r\n return\r\n}\r\n\r\nmain().then(console.log)"]}