{"version":3,"file":"2732.9ba5201b.js","mappings":"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","sources":["webpack://@finviz/website/../node_modules/reakit/es/Popover/PopoverArrow.js","webpack://@finviz/website/../node_modules/reakit/es/Tooltip/Tooltip.js","webpack://@finviz/website/../node_modules/reakit/es/Tooltip/TooltipArrow.js","webpack://@finviz/website/../node_modules/reakit/es/Tooltip/TooltipReference.js","webpack://@finviz/website/../node_modules/reakit/es/Tooltip/TooltipState.js","webpack://@finviz/website/../node_modules/reakit/es/__globalState-300469f0.js","webpack://@finviz/website/../node_modules/reakit/es/__keys-d101cb3b.js","webpack://@finviz/website/../node_modules/d3-array/src/extent.js","webpack://@finviz/website/../node_modules/d3-array/src/nice.js","webpack://@finviz/website/../node_modules/d3-axis/src/identity.js","webpack://@finviz/website/../node_modules/d3-axis/src/axis.js","webpack://@finviz/website/../node_modules/d3-selection/src/selector.js","webpack://@finviz/website/../node_modules/d3-selection/src/selectorAll.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/selectAll.js","webpack://@finviz/website/../node_modules/d3-selection/src/array.js","webpack://@finviz/website/../node_modules/d3-selection/src/matcher.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/selectChild.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/selectChildren.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/sparse.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/enter.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/data.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/sort.js","webpack://@finviz/website/../node_modules/d3-selection/src/namespaces.js","webpack://@finviz/website/../node_modules/d3-selection/src/namespace.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/attr.js","webpack://@finviz/website/../node_modules/d3-selection/src/window.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/style.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/property.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/classed.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/text.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/html.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/raise.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/lower.js","webpack://@finviz/website/../node_modules/d3-selection/src/creator.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/insert.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/remove.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/clone.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/on.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/dispatch.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/index.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/select.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/filter.js","webpack://@finviz/website/../node_modules/d3-selection/src/constant.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/exit.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/join.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/merge.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/order.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/call.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/nodes.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/node.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/size.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/empty.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/each.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/append.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/datum.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/iterator.js","webpack://@finviz/website/../node_modules/d3-dispatch/src/dispatch.js","webpack://@finviz/website/../node_modules/d3-timer/src/timer.js","webpack://@finviz/website/../node_modules/d3-timer/src/timeout.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/schedule.js","webpack://@finviz/website/../node_modules/d3-transition/src/interrupt.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/transform/parse.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/transform/decompose.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/transform/index.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/tween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/interpolate.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/attr.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/attrTween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/delay.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/duration.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/selection.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/style.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/index.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/select.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/selectAll.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/filter.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/merge.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/transition.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/on.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/styleTween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/text.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/textTween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/remove.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/ease.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/easeVarying.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/end.js","webpack://@finviz/website/../node_modules/d3-transition/src/selection/transition.js","webpack://@finviz/website/../node_modules/d3-ease/src/cubic.js","webpack://@finviz/website/../node_modules/d3-transition/src/selection/index.js","webpack://@finviz/website/../node_modules/d3-transition/src/selection/interrupt.js","webpack://@finviz/website/../node_modules/d3-brush/src/brush.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/round.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/dice.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/slice.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/find.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/iterator.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/accessors.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/constant.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/index.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://@finviz/website/../node_modules/d3-selection/src/select.js","webpack://@finviz/website/../node_modules/d3-path/src/path.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/constant.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/math.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/arc.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/array.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/curve/linear.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/point.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/line.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/descending.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/identity.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/pie.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/curve/basis.js","webpack://@finviz/website/../node_modules/d3-drag/src/noevent.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/zoom.js","webpack://@finviz/website/../node_modules/d3-selection/src/pointer.js","webpack://@finviz/website/../node_modules/d3-selection/src/sourceEvent.js","webpack://@finviz/website/../node_modules/d3-zoom/src/constant.js","webpack://@finviz/website/../node_modules/d3-zoom/src/event.js","webpack://@finviz/website/../node_modules/d3-zoom/src/transform.js","webpack://@finviz/website/../node_modules/d3-zoom/src/noevent.js","webpack://@finviz/website/../node_modules/d3-zoom/src/zoom.js","webpack://@finviz/website/../node_modules/d3-drag/src/nodrag.js"],"sourcesContent":["import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useMemo, createElement } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport { useRole } from '../Role/Role.js';\nimport { a as POPOVER_ARROW_KEYS } from '../__keys-26bb1730.js';\n\nvar usePopoverArrow = createHook({\n name: \"PopoverArrow\",\n compose: useRole,\n keys: POPOVER_ARROW_KEYS,\n useOptions: function useOptions(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 30 : _ref$size,\n options = _objectWithoutPropertiesLoose(_ref, [\"size\"]);\n\n return _objectSpread2({\n size: size\n }, options);\n },\n useProps: function useProps(options, _ref2) {\n var _objectSpread2$1;\n\n var htmlRef = _ref2.ref,\n htmlStyle = _ref2.style,\n htmlProps = _objectWithoutPropertiesLoose(_ref2, [\"ref\", \"style\"]);\n\n var _options$placement$sp = options.placement.split(\"-\"),\n placement = _options$placement$sp[0];\n\n var transformMap = {\n top: \"rotateZ(180deg)\",\n right: \"rotateZ(-90deg)\",\n bottom: \"rotateZ(360deg)\",\n left: \"rotateZ(90deg)\"\n };\n var arrowStyles = options.unstable_arrowStyles;\n var transform = transformMap[placement];\n var children = useMemo(function () {\n return /*#__PURE__*/createElement(\"svg\", {\n viewBox: \"0 0 30 30\",\n style: {\n transform: transform\n }\n }, /*#__PURE__*/createElement(\"path\", {\n className: \"stroke\",\n d: \"M23.7,27.1L17,19.9C16.5,19.3,15.8,19,15,19s-1.6,0.3-2.1,0.9l-6.6,7.2C5.3,28.1,3.4,29,2,29h26 C26.7,29,24.6,28.1,23.7,27.1z\"\n }), /*#__PURE__*/createElement(\"path\", {\n className: \"fill\",\n d: \"M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z\"\n }));\n }, [transform]);\n return _objectSpread2({\n ref: useForkRef(options.unstable_arrowRef, htmlRef),\n style: _objectSpread2(_objectSpread2({}, arrowStyles), {}, (_objectSpread2$1 = {\n fontSize: options.size,\n width: \"1em\",\n height: \"1em\",\n pointerEvents: \"none\"\n }, _objectSpread2$1[placement] = \"100%\", _objectSpread2$1), htmlStyle),\n children: children\n }, htmlProps);\n }\n});\nvar PopoverArrow = createComponent({\n as: \"div\",\n memo: true,\n useHook: usePopoverArrow\n});\n\nexport { PopoverArrow, usePopoverArrow };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useEffect, useCallback, createElement } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport '../Role/Role.js';\nimport { getDocument } from 'reakit-utils/getDocument';\nimport 'reakit-utils/canUseDOM';\nimport '../__keys-e6a5cfbe.js';\nimport { useDisclosureContent } from '../Disclosure/DisclosureContent.js';\nimport 'react-dom';\nimport { Portal } from '../Portal/Portal.js';\nimport { T as TOOLTIP_KEYS } from '../__keys-d101cb3b.js';\nimport { g as globalState } from '../__globalState-300469f0.js';\n\nfunction globallyHideTooltipOnEscape(event) {\n if (event.defaultPrevented) return;\n\n if (event.key === \"Escape\") {\n globalState.show(null);\n }\n}\n\nvar useTooltip = createHook({\n name: \"Tooltip\",\n compose: useDisclosureContent,\n keys: TOOLTIP_KEYS,\n useOptions: function useOptions(_ref) {\n var _ref$unstable_portal = _ref.unstable_portal,\n unstable_portal = _ref$unstable_portal === void 0 ? true : _ref$unstable_portal,\n options = _objectWithoutPropertiesLoose(_ref, [\"unstable_portal\"]);\n\n return _objectSpread2({\n unstable_portal: unstable_portal\n }, options);\n },\n useProps: function useProps(options, _ref2) {\n var htmlRef = _ref2.ref,\n htmlStyle = _ref2.style,\n htmlWrapElement = _ref2.wrapElement,\n htmlProps = _objectWithoutPropertiesLoose(_ref2, [\"ref\", \"style\", \"wrapElement\"]);\n\n useEffect(function () {\n var _options$unstable_pop;\n\n var document = getDocument((_options$unstable_pop = options.unstable_popoverRef) === null || _options$unstable_pop === void 0 ? void 0 : _options$unstable_pop.current);\n document.addEventListener(\"keydown\", globallyHideTooltipOnEscape);\n }, []);\n var wrapElement = useCallback(function (element) {\n if (options.unstable_portal) {\n element = /*#__PURE__*/createElement(Portal, null, element);\n }\n\n if (htmlWrapElement) {\n return htmlWrapElement(element);\n }\n\n return element;\n }, [options.unstable_portal, htmlWrapElement]);\n return _objectSpread2({\n ref: useForkRef(options.unstable_popoverRef, htmlRef),\n role: \"tooltip\",\n style: _objectSpread2(_objectSpread2({}, options.unstable_popoverStyles), {}, {\n pointerEvents: \"none\"\n }, htmlStyle),\n wrapElement: wrapElement\n }, htmlProps);\n }\n});\nvar Tooltip = createComponent({\n as: \"div\",\n memo: true,\n useHook: useTooltip\n});\n\nexport { Tooltip, useTooltip };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport 'react';\nimport 'reakit-utils/useForkRef';\nimport '../Role/Role.js';\nimport '../__keys-26bb1730.js';\nimport { usePopoverArrow } from '../Popover/PopoverArrow.js';\nimport { a as TOOLTIP_ARROW_KEYS } from '../__keys-d101cb3b.js';\n\nvar useTooltipArrow = createHook({\n name: \"TooltipArrow\",\n compose: usePopoverArrow,\n keys: TOOLTIP_ARROW_KEYS,\n useOptions: function useOptions(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 16 : _ref$size,\n options = _objectWithoutPropertiesLoose(_ref, [\"size\"]);\n\n return _objectSpread2({\n size: size\n }, options);\n }\n});\nvar TooltipArrow = createComponent({\n as: \"div\",\n memo: true,\n useHook: useTooltipArrow\n});\n\nexport { TooltipArrow, useTooltipArrow };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useCallback } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport { useRole } from '../Role/Role.js';\nimport { b as TOOLTIP_REFERENCE_KEYS } from '../__keys-d101cb3b.js';\n\nvar useTooltipReference = createHook({\n name: \"TooltipReference\",\n compose: useRole,\n keys: TOOLTIP_REFERENCE_KEYS,\n useProps: function useProps(options, _ref) {\n var htmlRef = _ref.ref,\n htmlOnFocus = _ref.onFocus,\n htmlOnBlur = _ref.onBlur,\n htmlOnMouseEnter = _ref.onMouseEnter,\n htmlOnMouseLeave = _ref.onMouseLeave,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"ref\", \"onFocus\", \"onBlur\", \"onMouseEnter\", \"onMouseLeave\"]);\n\n var onFocusRef = useLiveRef(htmlOnFocus);\n var onBlurRef = useLiveRef(htmlOnBlur);\n var onMouseEnterRef = useLiveRef(htmlOnMouseEnter);\n var onMouseLeaveRef = useLiveRef(htmlOnMouseLeave);\n var onFocus = useCallback(function (event) {\n var _onFocusRef$current, _options$show;\n\n (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event);\n if (event.defaultPrevented) return;\n (_options$show = options.show) === null || _options$show === void 0 ? void 0 : _options$show.call(options);\n }, [options.show]);\n var onBlur = useCallback(function (event) {\n var _onBlurRef$current, _options$hide;\n\n (_onBlurRef$current = onBlurRef.current) === null || _onBlurRef$current === void 0 ? void 0 : _onBlurRef$current.call(onBlurRef, event);\n if (event.defaultPrevented) return;\n (_options$hide = options.hide) === null || _options$hide === void 0 ? void 0 : _options$hide.call(options);\n }, [options.hide]);\n var onMouseEnter = useCallback(function (event) {\n var _onMouseEnterRef$curr, _options$show2;\n\n (_onMouseEnterRef$curr = onMouseEnterRef.current) === null || _onMouseEnterRef$curr === void 0 ? void 0 : _onMouseEnterRef$curr.call(onMouseEnterRef, event);\n if (event.defaultPrevented) return;\n (_options$show2 = options.show) === null || _options$show2 === void 0 ? void 0 : _options$show2.call(options);\n }, [options.show]);\n var onMouseLeave = useCallback(function (event) {\n var _onMouseLeaveRef$curr, _options$hide2;\n\n (_onMouseLeaveRef$curr = onMouseLeaveRef.current) === null || _onMouseLeaveRef$curr === void 0 ? void 0 : _onMouseLeaveRef$curr.call(onMouseLeaveRef, event);\n if (event.defaultPrevented) return;\n (_options$hide2 = options.hide) === null || _options$hide2 === void 0 ? void 0 : _options$hide2.call(options);\n }, [options.hide]);\n return _objectSpread2({\n ref: useForkRef(options.unstable_referenceRef, htmlRef),\n tabIndex: 0,\n onFocus: onFocus,\n onBlur: onBlur,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n \"aria-describedby\": options.baseId\n }, htmlProps);\n }\n});\nvar TooltipReference = createComponent({\n as: \"div\",\n useHook: useTooltipReference\n});\n\nexport { TooltipReference, useTooltipReference };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport 'reakit-utils/shallowEqual';\nimport { useState, useRef, useCallback, useEffect } from 'react';\nimport 'reakit-warning';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/dom';\nimport { useSealedState } from 'reakit-utils/useSealedState';\nimport '../Id/IdProvider.js';\nimport '../Id/IdState.js';\nimport '@popperjs/core';\nimport '../Disclosure/DisclosureState.js';\nimport '../Dialog/DialogState.js';\nimport { usePopoverState } from '../Popover/PopoverState.js';\nimport { g as globalState } from '../__globalState-300469f0.js';\n\nfunction useTooltipState(initialState) {\n if (initialState === void 0) {\n initialState = {};\n }\n\n var _useSealedState = useSealedState(initialState),\n _useSealedState$place = _useSealedState.placement,\n placement = _useSealedState$place === void 0 ? \"top\" : _useSealedState$place,\n _useSealedState$unsta = _useSealedState.unstable_timeout,\n initialTimeout = _useSealedState$unsta === void 0 ? 0 : _useSealedState$unsta,\n sealed = _objectWithoutPropertiesLoose(_useSealedState, [\"placement\", \"unstable_timeout\"]);\n\n var _React$useState = useState(initialTimeout),\n timeout = _React$useState[0],\n setTimeout = _React$useState[1];\n\n var showTimeout = useRef(null);\n var hideTimeout = useRef(null);\n\n var _usePopoverState = usePopoverState(_objectSpread2(_objectSpread2({}, sealed), {}, {\n placement: placement\n })),\n modal = _usePopoverState.modal,\n setModal = _usePopoverState.setModal,\n popover = _objectWithoutPropertiesLoose(_usePopoverState, [\"modal\", \"setModal\"]);\n\n var clearTimeouts = useCallback(function () {\n if (showTimeout.current !== null) {\n window.clearTimeout(showTimeout.current);\n }\n\n if (hideTimeout.current !== null) {\n window.clearTimeout(hideTimeout.current);\n }\n }, []);\n var hide = useCallback(function () {\n clearTimeouts();\n popover.hide(); // Let's give some time so people can move from a reference to another\n // and still show tooltips immediately\n\n hideTimeout.current = window.setTimeout(function () {\n globalState.hide(popover.baseId);\n }, timeout);\n }, [clearTimeouts, popover.hide, timeout, popover.baseId]);\n var show = useCallback(function () {\n clearTimeouts();\n\n if (!timeout || globalState.currentTooltipId) {\n // If there's no timeout or a tooltip visible already, we can show this\n // immediately\n globalState.show(popover.baseId);\n popover.show();\n } else {\n // There may be a reference with focus whose tooltip is still not visible\n // In this case, we want to update it before it gets shown.\n globalState.show(null); // Otherwise, wait a little bit to show the tooltip\n\n showTimeout.current = window.setTimeout(function () {\n globalState.show(popover.baseId);\n popover.show();\n }, timeout);\n }\n }, [clearTimeouts, timeout, popover.show, popover.baseId]);\n useEffect(function () {\n return globalState.subscribe(function (id) {\n if (id !== popover.baseId) {\n clearTimeouts();\n\n if (popover.visible) {\n // Make sure there will be only one tooltip visible\n popover.hide();\n }\n }\n });\n }, [popover.baseId, clearTimeouts, popover.visible, popover.hide]);\n useEffect(function () {\n return function () {\n clearTimeouts();\n globalState.hide(popover.baseId);\n };\n }, [clearTimeouts, popover.baseId]);\n return _objectSpread2(_objectSpread2({}, popover), {}, {\n hide: hide,\n show: show,\n unstable_timeout: timeout,\n unstable_setTimeout: setTimeout\n });\n}\n\nexport { useTooltipState };\n","var globalState = {\n currentTooltipId: null,\n listeners: new Set(),\n subscribe: function subscribe(listener) {\n var _this = this;\n\n this.listeners.add(listener);\n return function () {\n _this.listeners.delete(listener);\n };\n },\n show: function show(id) {\n this.currentTooltipId = id;\n this.listeners.forEach(function (listener) {\n return listener(id);\n });\n },\n hide: function hide(id) {\n if (this.currentTooltipId === id) {\n this.currentTooltipId = null;\n this.listeners.forEach(function (listener) {\n return listener(null);\n });\n }\n }\n};\n\nexport { globalState as g };\n","// Automatically generated\nvar TOOLTIP_STATE_KEYS = [\"baseId\", \"unstable_idCountRef\", \"visible\", \"animated\", \"animating\", \"setBaseId\", \"show\", \"hide\", \"toggle\", \"setVisible\", \"setAnimated\", \"stopAnimation\", \"unstable_disclosureRef\", \"unstable_referenceRef\", \"unstable_popoverRef\", \"unstable_arrowRef\", \"unstable_popoverStyles\", \"unstable_arrowStyles\", \"unstable_originalPlacement\", \"unstable_update\", \"placement\", \"place\", \"unstable_timeout\", \"unstable_setTimeout\"];\nvar TOOLTIP_KEYS = [].concat(TOOLTIP_STATE_KEYS, [\"unstable_portal\"]);\nvar TOOLTIP_ARROW_KEYS = TOOLTIP_STATE_KEYS;\nvar TOOLTIP_REFERENCE_KEYS = TOOLTIP_ARROW_KEYS;\n\nexport { TOOLTIP_KEYS as T, TOOLTIP_ARROW_KEYS as a, TOOLTIP_REFERENCE_KEYS as b };\n","export default function extent(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n","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","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","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","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {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 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\";\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 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","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","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","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} 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","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(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","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 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","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\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","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","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import 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","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 number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {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 {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","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","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 {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 {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 {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 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","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 {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 {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 {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","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {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 interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","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","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(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","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","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], 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 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 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 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","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 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","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","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","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 function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\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; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {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","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","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","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 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","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\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, {passive: false})\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 currentTarget = event.currentTarget,\n 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 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","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n"],"names":["usePopoverArrow","name","compose","keys","useOptions","_ref","_ref$size","size","options","_","useProps","_ref2","_objectSpread2$1","htmlRef","ref","htmlStyle","style","htmlProps","placement","split","arrowStyles","unstable_arrowStyles","transform","top","right","bottom","left","children","useMemo","createElement","viewBox","className","d","unstable_arrowRef","fontSize","width","height","pointerEvents","PopoverArrow","as","memo","useHook","globallyHideTooltipOnEscape","event","defaultPrevented","key","g","show","useTooltip","T","_ref$unstable_portal","unstable_portal","htmlWrapElement","wrapElement","useEffect","_options$unstable_pop","unstable_popoverRef","current","addEventListener","useCallback","element","role","unstable_popoverStyles","Tooltip","useTooltipArrow","TooltipArrow","useTooltipReference","htmlOnFocus","onFocus","htmlOnBlur","onBlur","htmlOnMouseEnter","onMouseEnter","htmlOnMouseLeave","onMouseLeave","onFocusRef","onBlurRef","onMouseEnterRef","onMouseLeaveRef","_onFocusRef$current","_options$show","call","_onBlurRef$current","_options$hide","hide","_onMouseEnterRef$curr","_options$show2","_onMouseLeaveRef$curr","_options$hide2","unstable_referenceRef","tabIndex","baseId","TooltipReference","useTooltipState","initialState","_useSealedState","u","_useSealedState$place","_useSealedState$unsta","unstable_timeout","initialTimeout","sealed","_React$useState","useState","timeout","setTimeout","showTimeout","useRef","hideTimeout","_usePopoverState","popover","modal","setModal","clearTimeouts","window","clearTimeout","currentTooltipId","subscribe","id","visible","unstable_setTimeout","globalState","listeners","Set","listener","_this","this","add","delete","forEach","TOOLTIP_STATE_KEYS","TOOLTIP_KEYS","concat","TOOLTIP_ARROW_KEYS","TOOLTIP_REFERENCE_KEYS","extent","values","valueof","min","max","undefined","value","index","nice","start","stop","count","prestep","step","isFinite","Math","floor","ceil","x","epsilon","translateX","translateY","y","number","scale","center","offset","bandwidth","round","entering","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","devicePixelRatio","k","context","ticks","apply","domain","format","identity","spacing","range","range0","range1","length","position","copy","selection","path","selectAll","data","tick","order","tickExit","exit","tickEnter","enter","append","attr","line","select","text","merge","insert","transition","getAttribute","p","parentNode","remove","filter","each","arguments","Array","from","slice","tickSize","axisRight","axisBottom","axisLeft","none","selector","querySelector","empty","querySelectorAll","arrayAll","isArray","matches","childMatcher","node","find","prototype","childFirst","firstElementChild","update","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","bindIndex","group","i","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","Map","keyValues","has","set","get","arraylike","ascending","a","b","NaN","constructor","appendChild","child","insertBefore","next","xhtml","svg","xlink","xml","xmlns","prefix","indexOf","namespaces","hasOwnProperty","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","defaultView","document","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","classList","ClassList","_node","_names","classedAdd","names","list","n","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","onRemove","typename","on","__on","o","j","m","type","removeEventListener","onAdd","contextListener","push","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","join","splice","contains","root","Selection","groups","parents","_groups","_parents","subgroups","subnode","subgroup","selectorAll","selectChild","match","childFind","selectChildren","childrenFilter","matcher","bind","enterGroup","updateGroup","previous","i0","i1","_enter","_exit","map","sparse","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","sort","compare","compareNode","sortgroups","sortgroup","callback","nodes","getAttributeNS","property","classed","html","create","creator","before","deep","t","typenames","parseTypenames","dispatch","Symbol","iterator","noop","test","Error","Dispatch","c","types","that","args","taskHead","taskTail","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","f","clearNow","Timer","_call","_time","timer","delay","time","restart","wake","e","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearInterval","setInterval","elapsed","TypeError","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","timing","schedules","__transition","self","tween","schedule","state","duration","ease","init","active","svgNode","degrees","PI","rotate","skewX","scaleX","scaleY","sqrt","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","s","q","xa","ya","xb","yb","translate","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","color","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTweenNS","attrInterpolateNS","_value","attrTween","attrInterpolate","delayFunction","delayConstant","durationFunction","durationConstant","Transition","_name","newId","selection_prototype","inherit","l","id0","id1","on0","on1","sit","every","onFunction","styleTween","styleNull","listener0","styleMaybeRemove","styleInterpolate","textTween","textInterpolate","removeFunction","easeConstant","easeVarying","end","Promise","resolve","reject","cancel","interrupt","defaultTiming","abs","number1","number2","sum","hierarchy","mapChildren","objectChildren","childs","Node","depth","eachBefore","computeHeight","copyData","x0","y0","x1","y1","eachAfter","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","links","source","target","reverse","phi","squarifyRatio","ratio","row","nodeValue","dx","dy","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","rows","dice","custom","squarify","required","constantZero","tile","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","treemap","positionNode","padding","paddingOuter","resquarify","_squarify","pi","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","x2","y2","arcTo","r","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","tan","acos","t01","t21","arc","a0","a1","ccw","cos","sin","cw","da","rect","w","h","toString","halfPi","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x10","y10","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","buffer","r0","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","x3","y3","x32","y32","intersect","ax","ay","bx","by","kc","lc","centroid","Linear","_context","defined","curve","output","defined0","lineStart","lineEnd","point","sortValues","descending","pie","arcs","pa","Basis","areaStart","_line","areaEnd","_point","nonpassivecapture","capture","passive","preventDefault","stopImmediatePropagation","cosh","exp","zoomRho","rho","rho2","rho4","zoom","S","ux0","uy0","w0","ux1","uy1","w1","log","d1","b0","b1","coshr0","sinh","SQRT2","_1","_2","sourceEvent","currentTarget","ownerSVGElement","createSVGPoint","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","clientLeft","clientTop","pageX","pageY","ZoomEvent","Object","defineProperties","enumerable","configurable","Transform","applyX","applyY","invert","location","invertX","invertY","rescaleX","rescaleY","__zoom","ctrlKey","button","SVGElement","hasAttribute","clientWidth","clientHeight","defaultTransform","defaultWheelDelta","deltaY","deltaMode","navigator","maxTouchPoints","defaultConstrain","translateExtent","touchstarting","touchfirst","touchending","constrain","wheelDelta","touchable","scaleExtent","touchDelay","wheelDelay","clickDistance2","tapDistance","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","gesture","clean","__zooming","Gesture","taps","pow","wheel","mouse","view","moved","noclick","MozUserSelect","__noselect","changedTouches","k1","shiftKey","started","touches","identifier","touch0","touch1","l0","l1","dp","dl","hypot","collection","scaleBy","scaleTo","translateBy","translateTo","emit","clickDistance"],"sourceRoot":""}